实例详解oracle添加唯一约束

实例详解oracle添加唯一约束

浏览次数:1636次
信息来源: 银河系资源网
更新日期: 2022-05-14
文章简介

本篇文章给大家带来了关于Oracle的知识,其中主要介绍了添加唯一约束的问题,唯一性约束指表中一个字段或者多个字段联合起来可以唯一标识一条记录的约束,下面一起来看一下,希望对大家有帮助。教程:《Oracle教程》...

本篇文章给大家带来了关于Oracle的知识,其中主要介绍了添加唯一约束的问题,唯一性约束指表中一个字段或者多个字段联合起来可以唯一标识一条记录的约束,下面一起来看一下,希望对大家有帮助。

教程:《Oracle教程》

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 tb_supplier
ENABLE CONSTRAINT tb_supplier_u1;

2)演示样例:

ALTER TABLE tb_supplier
ENABLE CONSTRAINT tb_supplier_u1;

7 删除唯一性约束

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;

教程:《Oracle教程》

以上就是实例详解oracle添加唯一约束的详细内容

标签: 暂无标签
mysql字段类型有哪些
« 上一篇
mysql怎么修改一列的值
下一篇 »
  • oracle怎么查询数据库中的所有表名
    811172阅读
    查询方法:1、使用“SELECT * FROM all_tables WHERE OWNER = '用户名'”语句,可查询指定用户的所有表名;2、使用“SELECT * FROM user_tables”语句,可查询当前用户的所有表名。本教程操作环境:Windows7...
  • 总结MySQL常见错误分析与解决方法
    79852阅读
    免费学习:mysql教程一、Can’t connect to MySQL server on ‘localhost’ (10061) 翻译:不能连接到 localhost 上的mysql 分析:这说明“localhost”计算机是存在的,但在这台机器上却没提供MySQL服务。 需要启动这...
  • mysql怎么查询第一列数据
    2475阅读
    在mysql中,可以利用SELECT语句来查询第一列数据,该语句可以根据指定列的字段名来查询数据并输出结果,只需要将“SELECT”关键字后面的字段名设置为需要查找的第一列字段名即可; 语法“SELECT 第一列字段名 FROM 表...
  • oracle怎么查询clob字段数据
    1875阅读
    在oracle中,可以利用instr()函数配合select语句查询clob字段数据,instr函数用于判断字符串是否含有指定的字符,语法为“select*from 表名 ...instr(字段名(clod类型),'查询条件',1,1)”。本教程操作环境:...
  • mysql主从同步如何跳过错误
    1816阅读
    mysql主从同步跳过错误的方法:1、跳过指定数量的事务,代码为【mysql>SET GLOBAL SQL_SLAVE_SKIP..】;2、修改mysql的配置文件,通过【slave_skip_errors】参数来跳所有错误。本教程操作环境:windows7系统、mysql ...
  • oracle怎么判断数据是否是数字类型
    1666阅读
    方法:1、利用“trim(translate(column,'0123456789',' ')) is NULL;”判断数据是否是数字;2、利用“regexp_like(column,'^[0-9]+[0-9]$');”判断数据是否是数字。本教程操作环境:Windows...
  • mysql workbench是什么意思
    1660阅读
    mysql workbench是管理MySQL数据库工具的意思,是一款专门为mysql设计的集成化桌面软件;该软件同时具有开源社区版和收费商业版两个版本,主要用于设计和创建新的数据库图示、建立数据库文档以及进行复杂的mysql迁移...
  • MySQL索引给拿捏住了
    1579阅读
    本篇文章给大家带来了关于mysql的知识,其中主要介绍了关于mysql索引的问题,包括了索引按照逻辑功能划分、按照物理实现划分、按照字段个数划分等索引类型问题,希望对大家有帮助。学习:mysql教程在 SQL 优化中,索...
  • oracle怎么删除trigger
    1526阅读
    在oracle中,可以利用DROP TRIGGER语句来删除trigger,DROP语句用于进行删除操作,DROP TRIGGER语句的作用就是删除指定的trigger,语法为“DROP TRIGGER 需要删除的trigger名称;”。本教程操作环境:Windows10系统、...
  • oracle怎么将时间日期转换成时间戳
    1523阅读
    转换方法:1、使用to_char()函数,可将时间日期按照指定的格式输出,得到的是字符串,语法“to_char(日期,"转换格式")”;2、使用to_date()函数,语法“to_date("时间字符串","转换的时间日期格式")”。本教程操作环...

如本文对您有帮助,随意赞赏一下!