约束(constraint):对创建的表的列属性、字段进行的限制。

诸如:not null/unique/primary key/foreign key/check

作用范围:

        ①列级约束仅仅能作用在一个列上

        ②表级约束能够作用在多个列上(当然表级约束也能够作用在一个列上)

定义方式:列约束必须跟在列的定义后面,表约束不与列一起,而是单独定义。

— —NOT NULL:不为空约束,仅仅能定义在列级

CREATE TABLE employees(
employee_id NUMBER(6),
--<span style="color:#FF0000;">系统命名</span>
 last_name VARCHAR2(25) <span style="color:#FF0000;">NOT NULL</span>,
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
--<span style="color:#FF0000;">用户自己定义命名</span>
 hire_date DATE <span style="color:#FF0000;">CONSTRAINT emp_hire_date_nn NOT NULL</span>,

能够在PL/SQLDEV的My objects-Tables-employees-Check constraints中查看该表的约束。

— —UNIQUE:唯一约束,能够定义在表级或列级

CREATE TABLE employees(
employee_id NUMBER(6),
--<span style="color:#FF0000;">列级,系统命名唯一约束</span>
 last_name VARCHAR2(25) <span style="color:#FF0000;">UNIQUE</span>,
email VARCHAR2(25),
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
hire_date DATE NOT NULL,
...
--<span style="color:#FF0000;">表级,用户自己定义命名唯一约束</span>
CONSTRAINT <span style="color:#FF0000;">emp_email_uk</span> UNIQUE(email));

— —PRIMARY KEY :主键,能够定义在表级或列级

    CREATE TABLE   departments(
department_id NUMBER(4),
department_name VARCHAR2(30) CONSTRAINT dept_name_nn NOT NULL,
manager_id NUMBER(6),
location_id NUMBER(4),
CONSTRAINT dept_id_pk <span style="color:#FF0000;">PRIMARY KEY</span>(department_id));

— —FOREIGN KEY: 外键,在表级指定子表中的列

— —REFERENCES: 标示在父表中的列

— —ON DELETE CASCADE(级联删除): 当父表中的列被删除时。子表中相相应的列也被删除

— —ON DELETE SET NULL(级联置空): 子表中对应的列置空

     constraint emp1_dept_id_fk <span style="color:#FF0000;">foreign key</span>(dept_id) <span style="color:#FF0000;">references</span> departments(department_id) <span style="color:#FF0000;">ON DELETE CASCADE</span>

— —CHECK :定义每一行必须满足的条件

..., salary	NUMBER(2)
CONSTRAINT emp_salary_min
CHECK (salary > 0),...

1.怎样定义约束---在创建表的同一时候。加入相应属性的约束

   1.1 表级约束 & 列级约束

   

create table emp1(
employee_id number(8),
salary number(8),
--<span style="color:#FF0000;">列级约束</span>
hire_date date not null,
dept_id number(8),
email varchar2(8) constraint emp1_email_uk unique,
name varchar2(8) constaint emp1_name_uu not null,
first_name varchar2(8),
--<span style="color:#FF0000;">表级约束</span>
constraint emp1_emp_id_pk primary key(employee_id),
constraint emp1_fir_name_uk unique(first_name),
--<span style="color:#FF0000;">外键约束</span>
 constraint emp1_dept_id_fk foreign key(dept_id) <span style="color:#FF0000;">references</span> departments(department_id) ON DELETE CASCADE
)

1.2 仅仅有not null 仅仅能使用列级约束。其它的约束两种方式皆可



2.加入和删除表的约束--在创建表以后。仅仅能加入和删除,不能改动

    2.1加入

    alter table emp1
add constaint emp1_sal_ck check(salary > 0)

2.1.1对于not null来讲。不用add。须要使用modify:

   

    alter table emp1
modify (salary not null)

2.2 删除

    alter table emp1
drop constaint emp1_sal_ck

2.3使某一个约束失效:此约束还存在于表中,仅仅是不起作用

    alter table emp1

    disable constraint emp1_email_uk;



    2.4使某一个约束激活:激活以后。此约束具有约束力

    alter table emp1
enable constraint emp1_email_uk;

oracle约束总结(not null/unique/primary key/foreign key/check)的更多相关文章

  1. Oracle数据库-primary key/foreign key和references关系

    主要介绍一下个人对主键(primary key).外键(foreign key).候选键(Candidate key).超键(super key).references的总结 概念: 主键:用户选择元 ...

  2. oracle primary key & foreign key

    主键:一个表中只有一个主键约束,但是一个主键约束可以由数据表中的多个列组成:primary key alter table TName add constraints pk_name PRIMARY ...

  3. Oracle primary key&foreign key

    --主键 alter table tablename1 add constraint pk_tablename1 primary key(column1);--增加数据表1的主键column1,如果是 ...

  4. [每日一题] OCP1z0-047 :2013-08-24 FLASHBACK—TABLE/PRIMARY KEY(FOREIGN KEY?)......98

    正确答案:D 根据题意如下操作: 一.创建表dept gyj@OCM> CREATE TABLE DEPT 2 (DEPTNO NUMBER(2,0), 3 DNAME VARCHAR2(14) ...

  5. [Oracle]约束(constraint)

    (一)约束的概念 在Oracle中,可以通过设置约束来防止无效数据进入表中.Oracle一共有5种约束: 主键约束(primary key) 外键约束(foreign key) 唯一性约束(uniqu ...

  6. 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)

    1. 数据库有六大约束 主键(primary key) 外键(foreign key):被参照的键必须有唯一约束或是主键 非空(not null) 默认(default) 检查(check):orac ...

  7. MySQL - primary key PK unique key,key PK index

    primary key PK unique key 总结 primary key = unique + not null 主键不能为空每个字段值都不重复,unique可以为空,非空字段不重复 uniq ...

  8. Oracle 约束类型

    在Oracle中的约束类型:NOT NULLUNIQUE KeyPRIMARY KEYFOREIGN KEYCHECK create table emp--创建表格 ,注意约束( empno numb ...

  9. Oracle——约束

    NOT NULLUNIQUE PRIMARY KEYFOREIGN KEYCHECK 如果不指定约束名 ,Oracle server 自动按照 SYS_Cn 的格式指定约束名 --指定约束名 CREA ...

随机推荐

  1. jvm内存分区

    java内存是由jvm进行管理的,其内存简易模型如下图: jvm管理的内存大体上可分为方法区.堆.程序计数器.线程栈.本地方法区这几部分.方法区:主要存放类的元信息(包括类的名称.修饰符.静态变量.f ...

  2. CSS垂直居中和水平居中的几种方法

    垂直居中 方法一 这个方法把div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align属性. <!DOCTYPE html> <html lang=" ...

  3. JProfiler 9.1.1部署及使用

    软件准备: 官网下载地址:http://www.ej-technologies.com/download/jprofiler/files 软件部署: windows安装双击即可. 注册号: L-Lar ...

  4. text-shadow的用法详解

    1.兼容性:text-shadow 和 box-shadow 这两个属性在主流现代浏览器上得到了很好的支持( > Chrome 4.0, > Firefox 3.5, > Safar ...

  5. arx 插入图片

    #include <ShLwApi.h> #pragma comment(lib, "ShLwApi.lib") //插入影像图 Acad::ErrorStatus i ...

  6. CAD把当前图上数据保存为一个二进流对象(com接口VB语言)

    主要用到函数说明: MxDrawXCustomFunction::WriteBinStreamEx 把当前图上数据保存为一个二进流对象,详细说明如下: 参数 说明 LPCTSTR pszPasswor ...

  7. 微服务网关从零搭建——(九)网关部署到linux服务器

    环境准备 公司电脑已安装core环境所以此处略过core环境安装 可参看此处 consul安装 如果没有wget命令 执行以下命令 yum install wget 下载consul wget htt ...

  8. Win实用好用软件清单推荐

    1. 我的Win实用软件清单 排名不分先后且长期更新 有更好用的或者需要帮助的可以留言----最后一次更新于 2019.06.25 1. Dism++ 1.1. 功能: ​ 系统精简.垃圾清理.系统升 ...

  9. Intel要在中国投35亿美金造这种闪存,3DxPoint技术牛在哪里?

    Repost: https://www.leiphone.com/news/201508/bbCUJqS2M3glCY3m.html 编者按: 今年的IDF上,Intel 再次强调了3DxPoint闪 ...

  10. Github Pages另一个选择:GitCafe-Pages

    今天找资料时,瞥到了GitCafe-Pages字样,记得前些日子就看到过GitCafe,知道这个是国内的类似Github的代码托管平台,所以一看字样就明白了这个是与Github Pages一样的东东. ...