创新路
我们一直在努力

Mysql之主键外键

一、主键:

    1.主键分类:普通主键    复合主键    主键+auto_increment

    2.使用规则

        (1)一个表中只能有一个 primary key 字段

        (2)对应的字段值不允许有重复,且不允许赋 NULL 

        (3)如果有多个字段都作为 PRIMARY KEY ,称为复合主键,必须一起创建。

        (4)主键字段的 KEY 标志是 PRI

        (5)通常与 AUTO_INCREMENT 连用

        (6)经常把表中能够唯一标识记录的字段设置为主键字段记录编号字段 ]

    3.查看主键  

        desc  表;  //KEY 标志是 PRI

    4.创建主键

        在已有表创建     alter  table     add   primary  key(字段名)

        建表时创建       create  table  表名(字段列表,primary  key(字段名));

        create table t1(id char(9) primary key,name char(10));    //该格式不能创建复合主键

        create table t2(id char(9),name char(10),primary key(id));

        alter table t1 add primary key(id);

    5.删除主键   

        alter  table     drop    primary  key

    6.复合主键的使用:多个字段一起做主键,插入记录时,只要做主键字段的值不同时重复,就可以插入记录。

        (1)创建:create table t3(cip char(15),serport smallint(2),status enum("yes","no"),primary key(cip,serport));

        (2)删除:alter table t3 drop primary key;

        (3)新增:alter table t3 add primary key(cip,serport); 

    7.注意:主键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;    //新增一行自增长

  

二、外键(限制如何给字段赋值的)

    1.ax字段设外键为bx字段则ax字段赋值时,值只能在b表的x字段值的范围里选择,且bx字段某值的更改、删除均会让ax字段对应值自动同步。

    2.使用规则

        表的存储引擎必须是 innodb       字段类型要一致          被参照字段必须要是索引类型的一种 (primary key

    3.创建外键 foreign  key 的命令格式:

        create table 表(字段名列表,foreign key(字段名) references 表名(字段名)on update cascade on delete cascadeengine=innodb;

        新建表:create  table  jfb(jfb_id int(2),name char(15), foreign key(name) references bjbnameon 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;

     4.查看外键   show create table 表名;    

        删除外键    alter  table  表名  drop  foreign key  外键名;

        alter  table  bjb  drop  foreign key  bjb_ibfk_1;

     5.注意:on update  on delete  后面可以跟的词语有四个no action   set null  set default  cascade

                no action 表示不做任何操作,   set null  表示在外键表中将相应字段设置为null    set default 表示设置为默认值

                cascade 表示级联操作,就是说,如果主键表中被参考字段更新,外键表中也更新,主键表中的记录被删除,外键表中改行也相应删除

 

 

 

未经允许不得转载:天府数据港官方信息博客 » Mysql之主键外键

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机