四、MySQL键值查看mysql索引
索引介绍: 树状⽬录结构; 对记录集的多个字段进⾏排序的⽅法,类似与书的“⽬录”,类型包括 :Btree 、 B+tree 、 hash 优点:加快查询表记录的速度
缺点: 会减慢编辑表记录的速度,且占⽤磁盘的物理存储空间
键值:普通索引唯⼀索引全⽂索引主键外键
普通索引的使⽤(index)
使⽤规则:
⼀个表中可以有多个 INDEX 字段
字段的值允许有重复,且可以赋 NULL 值
经常把做查询条件的字段设置为 INDEX 字段
INDEX 字段的 KEY 标志是 MUL
创建索引
create index 索引名 on 表名(字段名); //在已有表创建索引,可以⾃定义索引名
EG:create index aaa on studb.t2(age);
create table 表名(字段列表,index(字段名),index(字段名)); //新建表时建⽴索引,索引名与字段名⼀致create index xxx on t16(class);
create table t16(name char(15),age int(2),class char(7),index(name),index(class));
查看索引
desc 表名; //KEY 标志是 MUL 表⽰是索引项;
show index from 表名\G; //查看详细信息,加\G 分列显⽰
Table: t2 //表名
Key_name: age //索引名
Column_name: age //列名
Index_type: BTREE //类型,BTREE(⼆叉树)
删除索引
drop index 索引名 on 表名;
主键 primary key
(普通主键复合主键主键+auto_increment)
使⽤规则
⼀个表中只能有⼀个 primary key 字段
对应的字段值不允许有重复,且不允许赋 NULL 值
如果有多个字段都作为 PRIMARY KEY ,称为复合主键,必须⼀起创建。
主键字段的 KEY 标志是 PRI
通常与 AUTO_INCREMENT 连⽤
经常把表中能够唯⼀标识记录的字段设置为主键字段[ 记录编号字段 ]
查看主键
desc 表; //KEY 标志是 PRI
创建主键
在已有表创建 alter table 表 add primary key(字段名);
建表时创建 create table 表名(字段列表,primary key(字段名));
EG: alter table t21 add primary key(stu_id);
create table t17(id char(9) primary key,name char(10)); //该格式不能创建复合主键
create table t18(id char(9),name char(10),primary key(id));
alter table t17 add primary key(id);
删除主键
alter table 表 drop primary key;
复合主键的使⽤:多个字段⼀起做主键,插⼊记录时,只要做主键字段的值不同时重复,就可以插⼊记录。
创建:create table t19(cip char(15),serport smallint(2),status enum("yes","no"),primary key(cip,serport));
删除:alter table t19 drop primary key;
新增:alter table t19 add primary key(cip,serport);
主键primary key 通常和auto_increment连⽤,auto_increment让字段的值⾃动增长i++,i为表中最⼤数值,也可以指定值
create table t21 (id int(2) primary key auto_increment,name char(10)); //创建表,设置某⾏⾃增长
alter table t4 add id int(2) primary key auto_increment; //新增⼀⾏⾃增长
外键(限制如何给字段赋值的)
a表x字段设外键为b表x字段则a表x字段赋值时,值只能在b表的x字段值的范围⾥选择,且b表x字段某值的更改、删除均会让a表x字段对应值⾃动同步。
使⽤规则
表的存储引擎必须是 innodb 字段类型要⼀致被参照字段必须要是索引类型的⼀种 (primary key)
创建外键 foreign key 的命令格式:
create table 表(字段名列表,foreign key(字段名) references 表名(字段名)on update cascade on delete cascade)engine=innodb;
新建表:create table jfb(jfb_id int(2),name char(15), foreign key(name) references bjb(name)on update cascade on delete cascade)engine=innodb;
旧表:alter table bjb add foreign key(bjb_id) references jfb(jfb_id) on update cascade on delete cascade;
查看外键 show create table 表名;
删除外键 alter table 表名 drop foreign key 外键名;
alter table bjb drop foreign key bjb_ibfk_1;
on update 和 on delete 后⾯可以跟的词语有四个no action , set null , set default ,cascade
no action 表⽰不做任何操作, set null 表⽰在外键表中将相应字段设置为null set default 表⽰设置为默认值
cascade 表⽰级联操作,就是说,如果主键表中被参考字段更新,外键表中也更新,主键表中的记录被删除,外键表中改⾏也相应删除
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论