1. 非空 (NOT NULL) 约束: 所定义的列不绝对不能为空;
例如: 将已经创建好的表 BOOK 中的 bookname 字段修改为不为空:
利用 ALTER TABLE.......MODIFY .......NOT NULL;
ALTER TABLE BOOK MODIFY bookname NOT NULL;
2. 主键 (PRIMARY KEY) 约束: 唯一的标识表中的每一行;
例如: 为已经创建好的表 book 中的 bookid 字段添加名称为 "BOOK_PK 的主键"
利用 ALTER TABLE ..... ADD CONSTRAINT BOOK_PK PRIMARY KEY(字段);
ALTER TABLE BOOK ADD CONSTRAINT BOOK_PK PRIMARY KEY(bookid);
3. 唯一 (UNIQUE) 约束: 每列字段的值不能相同;
例如: 为表 usertable 中的 phone 字段添加唯一约束
利用 ALTER TABLE ..... ADD CONSTRAINT BOOK_PK PRIMARY KEY(字段);
ALTER TABLE usertable ADD CONSTRAINT PHONE_UK unique (phone);
4. 外键 (FOREIGN KEY) 约束: 用来维护从表与主表之间的引用完整性;
例如 dept 为主表, emp 为从表(外键表),emp 中的外键列 deptno 引用 dept 中的主键
ALTER TABLE emp ADD CONSTRAINT EMP_TEPTNO_FK FOREIGN KEY(deptno) REFERENCES dept(deptno);
级联删除: 删除引用表 (主表) 中的被引用列时, 外键表中对应的数据也将被删除(实现方式如下)
ALTER TABLE emp ADD CONSTRAINT EMP_TEPTNO_FK FOREIGN KEY(deptno) REFERENCES dept ON DELETE CASCADE;
5. 条件 (CHECK) 约束: 表中每行都要满足该约束条件.
例如: 创建已给学生表 (Student), 为年龄列(Age) 定义一个 disable 状态的 Check 约束(Age>0 and Age<120)(建表时的部分代码如下:)
Age int constraint AGE_CK check(Age>0 and Age<120) disable,
来源: https://www.cnblogs.com/AIHEN/p/9393639.html