运维的日记

MySQL键值

2020-03-27  本文已影响0人  陈公子ks

键值类型:
index 普通索引
unique 唯一索引
fulltext 全文索引
primary key 主键
foreign key 外键
索引相当于书的目录,对表中的字段值进行排序
索引类型:
btree(默认)、b+tree、hash
索引优点:
创建索引可以保持数据库表中数据唯一性,可以加速数据查询速度;
索引缺点:
增删改查的时候,索引也要跟着调整,降低了数据的维护速度。
实际中,读的次数比修改的要多,所以索引有利于查询速度。
1.index
index 规则:一个表中可以有多个index字段,字段的值允许重复,且可以赋予null,通常会把查询条件的字段设置为index。index字段标志mul

mysql> create database db2;
mysql> create table db2.t1(name char(10),age int,sex enum("boy","girl"),index(name),index(sex));
mysql> desc db2.t1;

建表时,直接建索引

mysql> create index on t2(name);
mysql> drop index on t2(name);
mysql> show index from t2\G;

已有表建索引,删除索引,查看索引
2.primary ke
主键:字段值不允许重复,且不允许赋予null,一个表中只能由一个primary key,主键的标志PRI,主键一般会和auto_increment连用

mysql> create table t1(name char(10) primary key,age int,class char(7));
mysql> create tablbe t2(name char(10),age int,class char(7),primary key(name));

两种创建主键的方式

mysql> alter table t1 add primary key(字段名);
mysql> alter table t1 drop primary key;

已有表中添加主键,删除主键
复合主键:多个字段作为主键,多条记录时,复合主键字段值,不能相同

mysql> create table db2.pay(name char(10),class char(7),pay enum("yes","no"),primary key(name,class,pay));
mysql> desc pay;
mysql> create table t3(id int primary key auto_increment,name char(10),age tinyint unsigned,class char(7)default "abc");
mysql> desc t3;

与auto_increment连用 作用是让字段自增长的方式赋值

mysql> alter table t3 modify id int not null;
mysql> alter table t3 drop primary key;

先修改字段,再删除主键

上一篇下一篇

猜你喜欢

热点阅读