约束的类型
1. 主键约束(PRIMARY KEY)
2. 唯一性约束(UNIQUE)
3. 非空约束(NOT NULL)
4. 检查约束(CHECK)
5. 外键约束(FOREIGN KEY)
主键约束(PRIMARY KEY)
1. 非空加唯一约束;
2. 一个表只有一个主键;
3. 主键会默认加索引;
student_id int primary key
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
唯一性约束(UNIQUE)
student_num number unique
alter table table_name add constraint student_code_uq unique(student_num);
删除约束
alter table table_name drop index constraint_name;
非空约束(NOT NULL)
非空约束作用的列也叫强制列。顾名思义,强制键列中必须有值,当然建表时候若使用default关键字指定了默认值,则可不用输入。
score_name varchar(32) not null
检查约束(CHECK)
检查约束可用来实施一些简单的规则,比如列值必须在某个范围内。检查的规则必须是一个结果为true或false 的表达式
student_sex varchar2(1) check(student_sex in('男','女')),
score_value number check(score_value between 0 and 100)
Mysql 的检查约束语法可以使用,但不强制?
外键约束(FOREIGN KEY)
- 外键约束的子表中的列和对应父表中的列数据类型必须相同,列名可以不同
- 对应的父表列必须存在主键约束(PRIMARY KEY)或唯一约束(UNIQUE)
- 外键约束在子表里,外键的取值范围不能大于父表键值
- 如果想删除主表的主键,需要先删除子表的关联字段