关系型数据库_字段约束和表关系
一、字段约束
对字段内数据的约束。
主键约束(Primay Key):
值唯一,且非空。 命名:pk_表名_列名
支持:Oracle、MySQL
唯一约束(Unique):
值唯一,可以有一个空。 命名:un_表名_列名
支持:Oracle、MySQL
检查约束(Check):
自定义约束,对值进行限制。 命名:ck_表名_列名
支持:Oracle
注意:MySQL虽然不支持,但是可以使用Check关键字,没有效果。
非空约束(Not null):
值不为空。
支持:Oracle、MySQL
注意:MySQL中允许空值存入字段,Oracle不允许空值存入字段。空值:''
外键约束(Foregin Key):
值必须为其它表已经存在的数据。 命名:fk_表名_列名
二、表关系
表与表之间的连接。
一对多:
使用外键约束实现,外键约束在多方。
例子:
学生表、教室表。
规定:多个学生使用一个教室。
所以:在学生表里添加一个外键指向教室表。
一对一:
使用外键约束+唯一性约束实现,约束可在任意一方。
例子:
演员表,角色表。
规定:每个角色只能由一个演员扮演。
所以:在角色表添加一个外键指向演员表,然后给这个外键添加唯一约束。
多对多:
借助一个中间表,中间表里面使用联合主键约束+外键约束实现。
例子:
商品表、订单表。
规定:每个商品可以被多次下单。
所以:创建一个中间表,表内有两个字段,分别为指向商品表的外键和指向订单表的外键,同时两个字段组成一个联合主键。
注意:在删除数据时,从有外键的表开始删除。