Oracle之唯一性约束(UNIQUEConstraint)用法详解
-
Oracle | PL/SQL唯一索引(Unique Constraint)用法
1 目标
用示例演示如何创建、删除、禁用和使用唯一性约束。
2 什么是唯一性约束?
唯一性约束指表中一个字段或者多个字段联合起来能够唯一标识一条记录的约束。联合字段中,可以包含空值。
注:在Oracle中,唯一性约束最多可以有32列。
唯一性约束可以在创建表时或使用ALTER TABLE语句创建。
3 唯一性约束和主键的区别
主键(Primary Key):所有组成主键的列都不能包含空值。唯一性约束(Unique Constraint):如果唯一性约束由多列组成,其中的部分列可以包含空值。Oracle中不容许在相同列上既创建主键又创建唯一性约束。
4 创建表时定义唯一性约束
1)语法:
?1234567CREATE
TABLE
table_name
(
column1 datatype
null
/
not
null
,
column2 datatype
null
/
not
null
,
...
CONSTRAINT
constraint_name
UNIQUE
(column1, column2,...,column_n)
);
2)基于单列的唯一性约束示例:
?1234567create
table
tb_supplier
(
supplier_id number
not
null
,supplier_name varchar2(50)
,contact_name varchar2(50)
,
CONSTRAINT
tb_supplier_u1
UNIQUE
(supplier_id)
--创建表时创建唯一性约束
);
3)基于多列的唯一性约束示例:
?12345678create
table
tb_products
(
product_id number
not
null
,
product_name number
not
null
,
product_type varchar2(50),
supplier_id number,
CONSTRAINT
tb_products_u1
UNIQUE
(product_id, product_name)
--定义复合唯一性约束
);
5 使用ALTER TABLE语法创建唯一性约束
1)语法
?123ALTER
TABLE
table_name
ADD
CONSTRAINT
constraint_name
UNIQUE
(column1, column2, ... , column_n);
2)示例准备,先创建表
?1234567891011121314151617drop
table
tb_supplier;
drop
table
tb_products;
create
table
tb_supplier
(
supplier_id number
not
null
,supplier_name varchar2(50)
,contact_name varchar2(50)
);
create
table
tb_products
(
product_id number
not
null
,
product_name number
not
null
,
product_type varchar2(50),
supplier_id number
);
3)基于单列的唯一性约束
?123alter
table
tb_supplier
add
constraint
tb_supplier_u1
unique
(supplier_id);
4)基于多列的唯一性约束
?123alter
table
tb_products
add
constraint
tb_products_u1
unique
(product_id,product_name);
6 禁用唯一性约束
1)语法:
?12ALTER
TABLE
table_name
DISABLE
CONSTRAINT
constraint_name;
2)示例:
?12ALTER
TABLE
tb_supplier
DISABLE
CONSTRAINT
tb_supplier_u1;
7 使用唯一性约束
1)语法:
?12ALTER
TABLE
table_name
ENABLE
CONSTRAINT
constraint_name;
2)示例:
?12ALTER
TABLE
tb_supplier
ENABLE
CONSTRAINT
tb_supplier_u1;
8 删除唯一性约束
1)语法:
?12ALTER
TABLE
table_name
DROP
CONSTRAINT
constraint_name;
2)示例:
?12ALTER
TABLE
tb_supplier
DROP
CONSTRAINT
tb_supplier_u1;
ALTER
TABLE
tb_products
DROP
CONSTRAINT
tb_products_u1;
-----------------------------------------------------------------------------------
Oracle之唯一性约束(UNIQUEConstraint)用法详解相关推荐
- Oracle中游标Cursor基本用法详解
这篇文章主要介绍了Oracle中游标Cursor基本用法详解,还是比较全面的,具有一定参考价值,需要的朋友可以了解下. 查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT ...
- Oracle之外键(Foreign Key)用法详解(一)
Oracle外键(Foreign Key)用法详解(一) 1.目标 演示如何在Oracle数据库中使用外键 2.什么是外键? 1)在Oracle数据库中,外键是用来实现参照完整性的方法之一.打个形象的 ...
- oracle clob 写入mongo,【Oracle】Varchar2/Blob/Clob用法详解
数据库中提供了三种字段类型Varchar2.Blob和Clob用于存储字符串或二进制数据,其中Varchar2.Clob用于存储字符串数据,而Blob用于存储二进制数据. Varchar2采用单字节存 ...
- oracle的substr函数用法,Oracle的substr函数简单用法详解
substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 subst ...
- oracle中的exists 和 not exists 用法详解
from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...
- oracle中取反_oracle正则表达式regexp_like的用法详解
oracle正则表达式regexp_like的用法详解 更新时间:2013年06月13日 17:42:05 作者: 本篇文章是对oracle正则表达式regexp_like的用法进行了详细的分析介 ...
- Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解
Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解 关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户 ...
- Oracle Merge Into 的用法详解实例
Oracle merge into 的用法详解实例 作用:merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表: 语法: MERGE INTO [your table- ...
- oracle8i substr,Oracle中的INSTR,NVL和SUBSTR函数的用法详解
Oracle中INSTR的用法: INSTR方法的格式为 INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号) 返回找到的位置,如果找不到则返回0. 例如:INSTR ...
最新文章
- 关于CLR、CIL、CTS、CLS、CLI、BCL和FCL
- 盘外招无法击垮比特币现金(BCH)的意志
- Android Support Library 24.2.0 正式发布
- Apache部署网页-Ubuntu16.04
- mysql mysqlnd_利用mysqlnd_ms实现mysql读写分离
- STL容器的线程安全
- ASP.Net Telerik RadGrid动态生成表头
- JS 三级联动 下拉列表
- python or的用法_python and or用法详解
- Debian 中使用apt-get update 出现NO_PUBKEY 解决方法
- 运行 jar 文件_如何运行JAR文件
- 在c语言程序中整型常量不能表示的数制是,C源程序中不能表示的数制有哪些
- CAD2010安装→注册
- RMAN-06004、RMAN-20011
- 【历史上的今天】1 月 6 日:“互联网之子”的陨落;微软云服务先驱出生;世界上第一台 5G 笔记本
- Log4j2 JDBCAppender的使用
- 牛客网 SQL17 10月的新户客单价和获客成本
- 理性、抽丝剥茧地解决 Easypoi、poi 版本冲突问题,而不是无头苍蝇一样闷头百度、google 一顿搜
- 视频安防“上帝视角“的畅想
- arcgis使用arcpy计算土地利用LUCC变化转移矩阵、马尔科夫模型变化表,最好用的方法TabulateArea实现两期数据变化统计
热门文章
- $_SERVER[HTTP_HOST]和$_SERVER[SERVER_NAME]
- 【读书笔记】Java基础学习之目录
- 联合国超10万名员工记录遭泄露
- GitHub 发布 Octoverse 开源软件安全趋势报告(超详)
- 苹果iPhone XI新爆料:用了被小米当噱头的TOF技术
- 【laravel5.4】查询构造器对象与模型instance的互相换换
- JavaAgent学习笔记
- SFTP上传下载文件
- IOS --xcode删除Provisioning Profiles文件
- Scroll View 控件以Thumbnail的方式显示一个目录的全部图片,相似图片浏览器