主键--外键

主键自增长:
   主键只能够设置在数据类型为整型的列上。可以子集设置主键值,也可以利用主键自增长的特性
实现主键数据的自动更新。自增长只能作用于当前的数据库,但是在集群的状态下主键自增长可能
会失效。
    使用uuid来代替主键自增长,这样可以避免在集群环境的主键重复。
    使用代理主键来代替自然主键,防止业务变更时导致系统崩溃。
非空约束:
    将某些列的值设置为非空(not null),虽然约束为非空,但是可以重复。
唯一约束:
     将某些列的值设置为唯一(unique),该约束为唯一约束,但是并没有规定值不可以为空。


概念模型:
   实体之间的关系:
   一对一:老公和夫妻之间的关系。
   一对多:老师可以有多个学生。
   多对多:学生和老师之间的关系,老师可有多个学生,学生也可以有多个老师。

外键约束:
    外键必须是另一张表的主键。(外键必须引用主键)
    外键是可用重复的,但必须是另一张表的主键
    外键也是可以为空的
    一张表中可以含有多个外键,可引用多个表的主键。
    创建具有外键的表时,包含该外键需要引用的主表需要先存在,并且在删除表时,要先删除从表
才能够删除主表。

    外键约束的创建方法:
    1 首先可以在创建一张表的时候创建表中外键列,语法为constraint 约束名 foreign key(列名)references
主键表(主键列名)。创建外键列时不必和主键的列同名。
    2 可以使用alter table 表明 add ...  来为当前的表来创建外键约束。
    需要注意的地方是往一个含有外键的表当中插入数据时,插入的数据值不能为主表当中主键列所不包含的值,否则
可能会出现插入失败的情况。

猜你喜欢

转载自www.cnblogs.com/wangkaia/p/11962588.html
今日推荐