欢迎来到天天文库
浏览记录
ID:6346418
大小:28.00 KB
页数:5页
时间:2018-01-10
《oracle数据完整性和约束性》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Oracle数据完整性和约束性非空约束、主键约束、唯一约束、外键约束、检查约束、默认约束。非空约束空值(NULL)是不存在的值,它既不是0,也不是空字符串,是不存在,未知的情况。创建表时,表中的列默认是允许为NULL。语法:创建表时添加非空约束Createtablett1(Booknonumber(4)notnull,Booknamevarchar2(10));为已经创建的表添加非空约束Altertablett1modifybooknamenotnull;注意:如果bookname中已经存在为n
2、ull的数据时,则添加notnull约束时会失败,Oracle会先检查表中所有行对应列是否含有null值。删除表列的非空约束Altertablett1modifybooknamenull;主键约束每个表中最多只有一个主键约束,可以是一列组成,也可以是两个或者两个以上组成(组成)。主键约束列都是不同的,主键约束同时也具有非空约束的特性。行级约束:主键约束由一列组成。表级约束:主键约束由两个或者两个以上的列组成。语法:创建表时添加主键约束Createtablett1(Booknonumber(4)p
3、rimarykey,//由系统命名,也可加constraint关键字为约束命名Booknamevarchar2(10));Createtablett1(Booknonumber(4),//由系统自动分配名称的主键约束Booknamevarchar2(10),Constraintbookno_pkprimarykey(Bookno)//手动创建主键名称的主键约束);注意:如果有多个列组成主键约束,则在primarykey(Bookno)括号内用逗号隔开列名。在创建表之后添加主键约束Altertab
4、lett1addconstraintbookno_pkprimarykey(Bookno);//手动为主键命名Altertablett1addprimarykey(Bookno);//系统自动为主键命名Constraint关键字是用来手动給约束指定名称。注意:如果列中已经存在相同的数据或者null的数据,添加主键约束失败。删除主键约束语法:Altertablett1dropconstraintbookno_pk;唯一性约束唯一性约束强调所在列不允许有相同的值,特点它的列允许有空值,作用保存除主键
5、列外的其他列的唯一性。语法:创建表指定唯一性约束Createtablett1(Booknonumber(4),Booknamevarchar2(10)constraintbookname_ukunique//手动命名);Createtablett1(Booknonumber(4),Booknamevarchar2(10),constraintbookname_ukunique(Bookname)//手动命名);注意:如果有多个列添加唯一约束,则在unique(Bookname)括号内用逗号隔开列
6、名。唯一约束加非空约束等于主键约束。删除唯一性约束语法:Altertablett1dropconstraintbookname_uk;外键约束一般外键约束会使用两个表进行关联(当然也存在同一个表自连接的情况)。外键是指‘当前表’(即外键表)引用‘表2’(即被引用表)的某个列或某几个列,‘表2’中被引用的列必须具有主键约束或者唯一性约束。在‘表2’中被引用的列中不存在的数据不能出现在‘当前表’表对应的列中。如果外键列存储了被引用表中将要被删除的数据,那么对被引用表的删除操作将失败。給已经存在的表添
7、加外键语法:Createtablett1(Booknonumber(4),Booknamevarchar2(10),StuNonumber(4));表2student主键StuNoAltertablett1addconstraintstudent_stuno_fkforeignkey(StuNo)referfencesstudent(StuNo);如果外键表和被引用表的列名相同,则可以Altertablett1addconstraintstudent_stuno_fkforeignkey(Stu
8、No)referfencesstudent;在定义外键时,使用on关键字指定引用行为的类型。Noaction:当删除被引用表中被引用的数据时,违反外键约束,删除失败。这时外键约束的默认引用类型。Setnull:当被引用表中被引用列的数据被删除时,外键表中列被设置为Null。注意,要使用这个关键字,外键列必须支持NULL值。Cascade:当被引用表中被引用列的数据被删除时,外键表中对应的数据也将被删除。这叫做‘级联删除’。语法:Altertablett1addconstraintstudent_
此文档下载收益归作者所有