约束,是标记的强制规定;如果不指定约束名,Oracle会自动按照SYS_Cn的格式指定约束名;可以在列级或表级定义约束,可通过数据字典视图参看约束,约束有一下五种;
一.NOT NULL(非空约束,只能定义在列上):
例:创建非空约束:
已经创建了名为“text”的表,其中的列为“Monday”,其约束为非空约束,为检验其效果,插入系统时间和空值,结果如下:
注:非空约束只能定义在列上;
二.UNIQE(唯一约束)
例:创建唯一约束:
已经创建了名为“text”的表,其中的列为“Monday”,其约束为唯一约束,为检验其效果,插入两次相同的值,结果如下
第二次插入相同值时:
唯一约束,顾名思义,即该值只能唯一;
三.Check 约束:
例:创建Check 约束
已经创建了名为“text”的表,列名为“Salary”,其约束为Check约束,为验证其效果,插入两次值,一次为符合Check条件的值,另一个不符合Check的值,效果如下:
第二次插入不符合条件的值:
Check约束,定义每一行都必须满足条件;
四.PRIMARY KEY 约束:
Primary key 为主键约束,可以定义在表级或者列级
五.FOREIGN KEY 约束:
Foreign key 为外键约束,可以定义在表级或者列级,在表级中则指定子表中的列;
六.可以添加约束或者删除约束,但是不能修改约束,也可以有效化或者无效化约束,有例外的,在添加not null 约束时,要使用modify 语句;
①:添加约束:
Alter table biaoming add constraint constraint type (sc date not null);
②:删除约束:
Alter table biaomnig drop constraint emp_emp_id_pk;
③:无线化约束:
Alter table biaoming disable constraint emp_emp_id_pk;
④:激活约束:
lter table biaoming enable constraint emp_emp_id_pk;
⑤:查询约束:
Select constraint_name,constraint_type,search_condition from user_constraints where table_name = biaoming
⑥:查询约束定义的列:
Select constraint_name,column_name from user_cons_columns where table_name =’biaoming’