Oracle | PL/SQL唯一索引(Unique Constraint)使用方法

1 目标

用演示样例演示怎样创建、删除、禁用和使用唯一性约束。

2 什么是唯一性约束?

唯一性约束指表中一个字段或者多个字段联合起来可以唯一标识一条记录的约束。

联合字段中,可以包括空值。

注:在Oracle中,唯一性约束最多能够有32列。

唯一性约束能够在创建表时或使用ALTER TABLE语句创建。

3 唯一性约束和主键的差别

  • 主键(Primary Key):全部组成主键的列都不能包括空值。
  • 唯一性约束(Unique Constraint):假设唯一性约束由多列组成,当中的部分列能够包括空值。
  • Oracle中不容许在同样列上既创建主键又创建唯一性约束。

4 创建表时定义唯一性约束

1)语法:

CREATE TABLE table_name
(column1 datatype null/not null,column2 datatype null/not null,...CONSTRAINT constraint_name UNIQUE (column1, column2,...,column_n)
);

2)基于单列的唯一性约束演示样例:

create table tb_supplier
(supplier_id          number not null,supplier_name        varchar2(50),contact_name         varchar2(50),CONSTRAINT tb_supplier_u1 UNIQUE (supplier_id)--创建表时创建唯一性约束
);

3)基于多列的唯一性约束演示样例:

create 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)语法

ALTER TABLE table_name
ADD CONSTRAINT constraint_name
UNIQUE (column1, column2, ... , column_n);

2)演示样例准备,先创建表

drop 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)基于单列的唯一性约束

alter table tb_supplier
add constraint  tb_supplier_u1
unique (supplier_id);

4)基于多列的唯一性约束

alter table tb_products
add constraint  tb_products_u1
unique (product_id,product_name);

6 禁用唯一性约束

1)语法:

ALTER TABLE table_name
DISABLE CONSTRAINT constraint_name;

2)演示样例:

ALTER TABLE tb_supplier
DISABLE CONSTRAINT  tb_supplier_u1;

7 使用唯一性约束

1)语法:

ALTER TABLE table_name
ENABLE CONSTRAINT constraint_name;

2)演示样例:

ALTER TABLE tb_supplier
ENABLE CONSTRAINT tb_supplier_u1;

8  删除唯一性约束

1)语法:

ALTER TABLE table_name
DROP CONSTRAINT constraint_name;

2)演示样例:

ALTER TABLE tb_supplier DROP CONSTRAINT tb_supplier_u1;
ALTER TABLE tb_products DROP CONSTRAINT tb_products_u1;
---------------------------------------------------------------------------------------------------------

假设您们在尝试的过程中遇到什么问题或者我的代码有错误的地方,请给予指正,很感谢!

联系方式:david.louis.tian@outlook.com

版权@:转载请标明出处!

----------------------------------------------------------------------------------------------------------

Oracle之唯一性约束(UNIQUE Constraint)使用方法具体解释相关推荐

  1. Oracle之唯一性约束(UNIQUE Constraint)用法详解

    Oracle | PL/SQL唯一索引(Unique Constraint)用法 1 目标 用示例演示如何创建.删除.禁用和使用唯一性约束. 2 什么是唯一性约束? 唯一性约束指表中一个字段或者多个字 ...

  2. MySQL删除唯一性约束unique

    先查看创建表: show create table humanidentity.citycode;drop index citycode_2 on humanidentity.citycode;dro ...

  3. Oracle之唯一性约束(UNIQUEConstraint)用法详解

    Oracle | PL/SQL唯一索引(Unique Constraint)用法 1 目标 用示例演示如何创建.删除.禁用和使用唯一性约束. 2 什么是唯一性约束? 唯一性约束指表中一个字段或者多个字 ...

  4. 删除唯一性约束unique

    删除唯一性约束 语法如下: alter table tableName drop index key_name;#删除唯一性约束,实际就是删除索引 drop index key_name on tab ...

  5. [数据库] Navicat for Oracle设置唯一性和递增序列实验

    这篇文章主要讲述Navicat for Oracle设置唯一性约束和设置某字段为递增序列.文章主要以图文为主,虽然都是非常简单基础的文章,但还是希望对你有所帮助. 推荐前一篇文章:[数据库] Navi ...

  6. mysql中ak替换键_数据库:唯一性约束_alternate key(替换键) mySQL Oracle 数据库 ak 唯一性约束...

    数据库:唯一性约束_alternate key(替换键) mySQL Oracle 数据库 ak 唯一性约束 数据库:唯一性约束 所谓唯一性约束(unique constraint)不过是数据表内替代 ...

  7. 联合主键违反唯一性约束_(变强、变秃)Java从零学习024/252数据库之定义约束。...

    知识点太多太杂了,随机一个: 十. 定义约束 1 数据库中的约束类型 – 非空约束(NOT NULL) – 唯一性约束(UNIQUE) – 主键约束(PRIMARY KEY) – 外键约束(FOREI ...

  8. 约束——非空约束和唯一性约束

    1.什么是约束? 约束对应的英语单词:constraint 在创建表的时候,我们可以给表中的字段加上一些约束,来保证这个表中数据的 完整性.有效性!!!约束的作用就是为了保证:表中的数据有效!! 1. ...

  9. mysql中主键约束和唯一约束的区别_主键约束和唯一性约束的区别

    1.主键约束(PRIMARY KEY) 1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键. 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空 ...

最新文章

  1. 【驱动】GPIO 作为按键时的 设备树 配置
  2. vim在系统剪切板的复制与粘贴
  3. Spring中ApplicationContext和beanfactory区别
  4. mysql和mybatis面试题_BATJ面试题汇总详解:MyBatis+MySQL+Spring+Redis+多线程
  5. java null和 的区别_java中null和的区别
  6. java获取指定年月往前推12个月的年月_java 获取日期的几天前,几个月前和几年前的实例...
  7. c++ 写入文件_利用Python把数据存储在csv文件中
  8. java 获取叶子节点_java – 如何获取树的所有叶节点?
  9. 坑爹系列:sizeof运算符
  10. Web前端开发规范之脚本文件和动态文本文件命名规则
  11. C语言函数库之字符串连接函数(string.h)
  12. openstack-packstack一键式在线部署
  13. 工业机器人应用编程考核设备
  14. Catalan number (卡兰特数)
  15. 一文搞懂前台,后台,中台,前端,后端,管理端,业务端,技术中台,业务中台,数据中台,物联网中台到底是什么?
  16. 使用STL给选手打分
  17. python海量数据分析师职业技能_大数据分析师技能图谱详解与零基础自学内容大全...
  18. 豆腐王国小游戏,烧脑推理全新来袭
  19. excel方差函数和均方差函数使用介绍
  20. 红帽linux挑战赛题目,浅谈红帽linux挑战赛(三)

热门文章

  1. 多表查询事务DCL权限管理
  2. 大数据分布式集群搭建(6)
  3. 视频中的运动特征--Learning Motion Patterns in Videos
  4. Flask+gunicorn部署HTTP服务
  5. 为什么要低温保存_渔之歌科普课堂:冷冻食品为什么要规定零下18摄氏度冷藏?...
  6. 分布式系统,session共享方案
  7. java-高并发解决方案
  8. 服务器默认字符集 网页乱码,关于apache默认字符集乱码的问题
  9. 下列哪项不属于以太网交换机的特点_网络测试作业题
  10. 聊聊电商系统中常见的9大坑,库存超卖、重复下单、物流单ABA...