1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

概述Oracle Unique约束

2022-11-27 | 数据库 | gtxyzz | 605°c
A+ A-

Oracle还是比较常用的,于是我研究了一下Oracle Unique约束,在这里拿出来和大家分享一下,希望对大家有用。如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,但如果某个约束作用于多个字段,必须在表级定义约束

◆在定义约束时可以通过CONSTRAINT关键字为约束命名,如果没有指定,Oracle将自动为约束建立默认的名称定义primary key约束(单个字段)

createtableemployees(empnonumber(5)primarykey,...)

指定约束名

createtableemployees(empnonumber(5)constraintemp_pkprimarykey,...)

定义primary key约束(多个字段,在表级定义约束)

createtableemployees (empnonumber(5), deptnonumber(3)notnull, constraintemp_pkprimarykey(empno,deptno) usingindextablespaceindx storage(initial64K next64K ) )








Oracle自动会为具有PRIMARY KEY约束的字段(主码字段)建立一个***索引和一个NOT NULL约束,定义PRIMARY KEY约束时可以为它的索引指定存储位置和存储参数

altertableemployeesaddprimarykey(empno) altertableemployeesaddconstraintemp_pkprimarykey(empno) altertableemployeesaddconstraintemp_pkprimarykey(empno,deptno) notnull约束(只能在字段级定义NOTNULL约束,在同一个表中可以定义多个NOTNULL约束) altertableemployeesmodifydeptnonotnull/null




Unique约束

createtableemployees (empnonumber(5), enamevarchar2(15), phonevarchar2(15), emailvarchar2(30)unique, deptnonumber(3)notnull, constraintemp_ename_phone_ukunique(ename,phone) ) altertableemployees addconstraintemp_ukunique(ename,phone) usingindextablespaceindx










定义了Oracle Unique约束的字段中不能包含重复值,可以为一个或多个字段定义Oracle Unique约束,因此,Unique即可以在字段级也可以在表级定义,在Oracle Unique约束的字段上可以包含空值.

foreign key约束

◆定义为FOREIGN KEY约束的字段中只能包含相应的其它表中的引用码字段的值或者NULL值

◆可以为一个或者多个字段的组合定义FOREIGN KEY约束

◆定义了FOREIGN KEY约束的外部码字段和相应的引用码字段可以存在于同一个表中,这种情况称为”自引用”

◆对同一个字段可以同时定义FOREIGN KEY约束和NOT NULL约束

本文来源:1818IP

本文地址:https://www.1818ip.com/post/12039.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。