约束

1.主键约束:

格式为:
alter table 表格名称 add constraint 约束名称 增加的约束类型 (列名)

例子:
alter table emp add constraint ppp primary key (id);

 

2.check约束:就是给一列的数据进行了限制
格式:
alter table 表名称 add constraint 约束名称 增加的约束类型 (列名)

例子:
alter table emp add constraint xxx check(age>20);

 

3.unique约束:这样的约束就是给列的数据追加的不重复的约束类型

格式:
alter table 表名 add constraint 约束名称 约束类型(列名)
例子:
alter table emp add constraint qwe unique(ename);

 

4.默认约束:意思很简单就是让此列的数据默认为一定的数据

格式:
alter table 表名称 add constraint 约束名称 约束类型 默认值) for 列名

例子:

alter table emp add constraint jfsddefault 10000 for gongzi;

 

5.外键约束:
格式:
alter table 表名 add constraint 约束名称 约束类型 (列名) references 被引用的表名称 (列名)

例子:
alter table emp add constraint jfkdsj foreign key (did) references dept (id);

 

 

——————————————————————————————————————————————————————————————————————————————————————

外键约束(foreign key),指的是一张表的一个字段受限于另一张表的一个字段的值,其目的是在两个表之间建立某种关系,从而保证数据的准确性,优化表的结构,同时也可以达到减少表内容重复性的目的。

~ ~ ~受到外键约束的两个表是主从表(父子表)的关系:

~ ~ ~主表:被从表引用的字段需要有唯一性,该字段需要用UNIQUE进行修饰或者直接使用主表的主键。

~ ~ ~从表:定义外键的表,外键的取值是受限于主表中被引用的字段的(外键的取值必须来源于主表被引用的字段取值或者设置为null)

~ ~ ~我们通过举例来说明外键约束的主要作用,假设我们现在需要建立一个学生信息表,表中包含了学生的学号,姓名,专业。

学号 姓名 专业
8207190705 I an 自动化
8207190706 Mike 自动化
8207190707 Be 金融
8207190708 Bob 计算机
~ ~ ~我们可以发现在专业这一栏,由于不同学生可以是同一专业的,所以专业这一栏中的信息是有所重复的,为了让表的内容更加简洁清晰,减少重复冗余的信息,我们可以采取设置外键约束的方式——设计两个表,一个为主表,一个为从表。
~ ~ ~主表包含的信息:专业编号,专业名
~ ~ ~从表包含的信息:学号,学生姓名,学生专业编号(学生专业编号作为外键引用主表的专业编号)


(改进后的信息表)

从表:

学号 姓名 专业编号
8207190705 I an 01
8207190706 Mike 01
8207190707 Be 03
8207190708 Bob 02


主表:

专业编号 专业名

01 自动化
02 计算机
03 金融
~ ~ ~设置外键后,我们可以同时设置不同的级联操作。
~ ~ ~比如:1.级联更新—— ON UPDATE CASCADE
~ ~ ~  作用:当更改主表中的数据信息后,从表中引用的主表信息也会相应更改。(例:更改主表中的自动化的专业编号(更改为04),则从表中自动化学生信息中的学生专业编号的值也会更改(变为04))
~ ~ ~ 2.级联删除—— ON DELETE CASCADE
~ ~ ~  作用:当删除主表中的某一数据信息后,从表中引用相应主表信息的数据项也会被删除(例:当删除主表中的自动化专业后,从表中属于自动化专业的学生的信息也会被删除)

posted @ 2022-08-11 11:31  小德cyj  阅读(87)  评论(0编辑  收藏  举报