索引
索引的作用 (重点)
1·快速读取数据
2·保证数据的唯一性
3·时间表与表之间的参照完整性
4·在使用 order by ,group by 子句去进行索引时,索引可以减少排序和分组的时间
优点:
1·大大加快数据的检索速度
2·创建唯一性索引,保证数据库中的每一行数据的唯一性
3·加速表与表之间的连接
4·在使用分组和排序进行检索时,可以显著的减少查询的时间
缺点:
1·索引占物理空间
2·当对表中的数据进行增加,删除和修改的时候,索引也要动态的维护,降低了数据的维护速度
3.1 普通索引 ----创建后不会对字段有任何约束,可以为空,或是不为空
index==索引的意思
创建普通索引:
greate index a on aa (id); 给aa表中的id字段创建了一个普通索引
查询索引:
show index from aa; 查询aa表中有哪些索引
删除索引:
alter table aa drop index a; 删除a表中的索引
3.2 唯一索引---值不能相同,可以为空
创建普通索引 unique index
create unique index a on aa(id); 给aa表中创建一个唯一索引
查询索引:
show index from aa; 查询aa中有哪些索引
删除索引:
alter table aa drop index a; 删除aa表中的索引
3.3 主键索引----不能为空,不能相同(常见),表里只能有一个主键
创建表的时候增加主键:create table aa (id int(3)primary key);
表已经创建ok增加主键:alter table aa change id id int(4)primary key;
alter table aa add primary key(id);
查询索引:
show index from aa;
删除索引:
alter table aa drop primary key;
普通索引,唯一索引,主键索引的区别??
1·普通唯一索引再表中是可以有多个存在的(但是一般不会这样做)
2·主键索引再表中只能有一个
3·普通索引没有任何约束,唯一值不能相同但是可以为空
主键索引---不能为空,不能相同
1、vim /etc/my.cnf====》在linux交互界面中输入该命令编辑mysql配置文件
2、配置详情如下:[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0lower_case_table_names=1character-set-server=utf8[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[client]default-character-set=utf8[mysql]default-character-set=utf8
3、以上为配置后的文件内容,新增内容如下
①、在[mysqld]里面添加:character-set-server=utf8
②、新建[client]后添加:default-character-set=utf8
③、新建[mysql]后添加:default-character-set=utf84、
编辑配置文件后重启数据库生效:service mysqld restart
5、在服务器或者navicat创建表时需要在创表的语句最后加上default charset='utf8',
如下所示:
create table pp(id int,name varchar(20))default charset='utf8';
|