四、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小时内删除。