定义约束
CREATE TABLE [schema.]table_name(
column_name datatype [default expr] [column_constraint],
...
[table_constraint] [,...]
);
- 列级约束:
column [CONSTRAINT constraint_name] constraint_type - 表级约束:column,...,[CONSTRAINT constrian_name] constraint_type(column,...) column 表示列名。
注意:如果不指定约束名,那么oracle会自动生成格式为SYS_Cnnn的约束名;如果指定约束名,那么必须指定CONSTRAINT选项。
定义Not Null 约束:列级约束

定义UNIQUE约束:列级或表级,可以为null

定义PRIMARY KEY约束:列、表级

定义 FOREIGN KEY 约束:要求外部键列的数据必须在主表的主键列(或惟一列)中存在
- FOREIGN KEY:用于指定在表级定义外部键约束。在列级定义外部键约束时不需要指定。
- REFERENCES:用于指定主表名及其主键列。
- ON DELETE CASCADE:如果定义了该选项,当删除主表数据时会级联删除从表的相关数据。
- ON DELETE SET NULL:如果定义了该选项,当删除主表数据时会将从表外部数据设置为NULL.


定义CHECK约束:列表级,充许列为NULL

定义复合主键

维护约束
语法如下:
- 其它情况:
ALTER TABLE table ADD [CONSTRAINT constraint_name] constratint_type (column,..);
- 增加not null约束:
ALTER TABLE table MODIFY column [CONSTRAINT constraint_name] NOT NULL;

修改维束名:ALTER TALBE table RENAME CONSTRAINT old_constraint_name to new _constraint_name;