3 主键

作者: 沈婷_bbf1 | 来源:发表于2018-05-25 09:38 被阅读5次

Createtable A select * from B

可以建立表,而且表A和表B一样,数据都有,但是有个缺点,没有主键限制,或者主键会丢失。

Renametable bb to aa;

Altertable bb rename to aa;

Altertable bb rename aa;

把表BB改名为aa,

Alter

table aa change name 名字varchar(30);

把name改变成名字;

Altertable tt add constraint primary key (t);

Altertable tt add constraint  pk  primary key (t);   待探究pk和mpk的差别

在tt表中,把t 列作为主键约束列。

当要成为主键的那一行中有重复值不能建主键,

Alter

table tt drop primary key 删除主键。

Primary

key (host,user)同时把两列作为主键,叫做复合主键,只要这两列不是都一样就可以。

 使用外键的话,引擎一定要是innodb

Namevarchar(30) not null  unique名字这一列不能有重复项。

Alter

table ss add constraint uk unique (name);注意括号,这个是建立表后,再给表的某个字段增加唯一约束。

Alter

table ss drop index ‘uk’; 删除约束,注意这里和索引的删除方法一样。

当主键有auto -increment这样的时候,没有办法删除主键,因为自增必须是主键(有待探究)

增加外键,增加外键一般用于连个表都建好了,这样灵活度会高一些。

Altertable ss add constraint fk foreign key (tid) references  teacher(id);

在ss 表中把tid这一行作为外键列,指向teacher表的id 列

 删除外键

Altertable ss drop foreign key fk;

如果出现已经删除外键,后来还是出现了,可能不是外键,而是索引,仔删除索引就好了

Altertable ss drop index fk;  删除索引。

外键指向另一个表的主键,或者唯一约束键。当一个表通过外键和另外一个表产生连接时,不能随意删除这个表的信息(比如不能删除teacher表里和ss相关联的信息)。

1,Altertable ss add constraint fk foreign key (tid) references  teacher(id);

当删除两个有外键连接的表时,要先删掉那个有外键的表,再删除那个有联系的表,不然删不掉,(先删掉ss,再删掉teacher).

2,Altertable ss add constraint fk foreign key (tid) references  teacher(id) on delete set null

当加了on delete set null 的时候,可以先删除teacher 这时候ss里面的相关信息也会自动删除。

3,Altertable ss add constraint fk foreign key (tid) references  teacher(id) on deletecascade;

这样的话会导致如果在teacher表里面删掉了一个老师,ss表里和这个老师对应的学生都会被删掉。但是2的话,就会把删掉老师后,学生对应老师那一列会变成0,

1的话是不能删除和学生有对应关系的老师

4Alter table ss add constraint fk foreign key (tid)  references teacher(id) on delete set null on update casecade;

删除老师的话会把学生对应老师那里变成空,如果老师信息改了,学生那里也会改变,如果老师对应的信息改成了200,学生对应老师的信息也会变成200

相关文章

  • 3 主键

    Createtable A select * from B 可以建立表,而且表A和表B一样,数据都有,但是有个缺点...

  • 数据库 三范式最简单最易记的解释

    1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 解释: 1NF:原子...

  • 浅谈数据库主键外键索引

    目录 1、主键、外键、索引定义 2、为什么定义主键、外键 3、主键和外键的关系 4、数据库中主键和外键的设计原则 ...

  • MySQL学习笔记-数据库三范式

    1NF:字段不可分;2NF:有主键,非主键字段依赖主键;3NF:非主键字段不能相互依赖; 解释:1NF:原子性 字...

  • 关系型数据库和非关系型数据库

    一 三范式1,所有列必须为原子化列2,设计时需要主键列3,所有非主键列不能依靠传递与主键列发生关系(所有列与主键列...

  • MYSQL--ALTER TABLE

    1、添加字段 2、添加索引 3、添加主键

  • 5.dplyr处理关系数据(2)

    二、筛选连接 需要注意的问题 1.尽量寻找主键,而不是变量组合2.确保主键没有缺失值3.检查外键与主键是否相匹配 ...

  • hibernate 主键、持久化、缓存、事务

    自然主键和代理主键 关系数据库主要依靠主键区分不同的记录,主键又有自然主键和代理主键之分。 自然主键自然主键:就是...

  • repeatable read下的 gap locks

    1、表结构 2、验证1 (主键索引 等值查询) 会话1 会话2 3、验证2 会话1 会话2(主键索引 区间区间)...

  • sql优化

    设计索引 3.非主键索引树使用的主键的值作为键,所以主键最好是整型,避免出现二级索引再查找的问题。4.不要在数据基...

网友评论

      本文标题:3 主键

      本文链接:https://www.haomeiwen.com/subject/zwlyjftx.html