oracle约束总结(not null/unique/primary key/foreign key/check)
约束(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)的更多相关文章
- Oracle数据库-primary key/foreign key和references关系
主要介绍一下个人对主键(primary key).外键(foreign key).候选键(Candidate key).超键(super key).references的总结 概念: 主键:用户选择元 ...
- oracle primary key & foreign key
主键:一个表中只有一个主键约束,但是一个主键约束可以由数据表中的多个列组成:primary key alter table TName add constraints pk_name PRIMARY ...
- Oracle primary key&foreign key
--主键 alter table tablename1 add constraint pk_tablename1 primary key(column1);--增加数据表1的主键column1,如果是 ...
- [每日一题] 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) ...
- [Oracle]约束(constraint)
(一)约束的概念 在Oracle中,可以通过设置约束来防止无效数据进入表中.Oracle一共有5种约束: 主键约束(primary key) 外键约束(foreign key) 唯一性约束(uniqu ...
- 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)
1. 数据库有六大约束 主键(primary key) 外键(foreign key):被参照的键必须有唯一约束或是主键 非空(not null) 默认(default) 检查(check):orac ...
- MySQL - primary key PK unique key,key PK index
primary key PK unique key 总结 primary key = unique + not null 主键不能为空每个字段值都不重复,unique可以为空,非空字段不重复 uniq ...
- Oracle 约束类型
在Oracle中的约束类型:NOT NULLUNIQUE KeyPRIMARY KEYFOREIGN KEYCHECK create table emp--创建表格 ,注意约束( empno numb ...
- Oracle——约束
NOT NULLUNIQUE PRIMARY KEYFOREIGN KEYCHECK 如果不指定约束名 ,Oracle server 自动按照 SYS_Cn 的格式指定约束名 --指定约束名 CREA ...
随机推荐
- 21 调试我们的C#程序
我们写的C#程序,很多的时候不是能一次就写对的.尤其是在实际的项目中,你经常要做的工作就是不断修改你写的程序,让它正常运行.程序有错误,主要是两种情况.一种是程序报错了,不能正常运行下去.另一种是程序 ...
- Ubuntu下查看服务器cpu是否支持VT
http://blog.51cto.com/zhangmingqian/1249522 Ubuntu下查看服务器cpu是否支持VT 原创wazjajl 2013-07-15 16:25评论(0)119 ...
- PHP开发心得一
1,php获得服务器时间 $time= date('Y-m-d H:i'); echo $time; 一般写法如上,但发现打印出来的时间小时数总数不对,和机器的时间差几个小时.查资料发现,要设定时区. ...
- tp登陆注册(转)
登录时,更新用户数据,登录ip和登录时间,以及登录次数+1,此实现方便不知是否合适,待验证.源码地址:https://github.com/grh0812/thinkphp-login-registe ...
- Angular——自定义服务
基本介绍 之前我们介绍了angular内置的几种服务,这里我们介绍如何自己定义自己的服务,主要是通过三个方法:factory.service.value 基本使用 factory:可以返回对象,也可以 ...
- java设计模式之策略模式总结
策略模式的定义:(定义截自http://www.cnblogs.com/whgk/p/6087064.html) 1.策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立 ...
- 扩增子分析解读2提取barcode 质控及样品拆分 切除扩增引物
本节课程,需要完成扩增子分析解读1质控 实验设计 双端序列合并 先看一下扩增子分析的整体流程,从下向上逐层分析 分析前准备 # 进入工作目录 cd example_PE250 上一节回顾:我们拿到了双 ...
- 05Microsoft SQL Server 表创建,查看,修改及删除
Microsoft SQL Server 表创建,查看,修改及删除 创建表 创建普通表 use 数据库名称 go create table 表名称( 列1 ) not null, 列2 ) not n ...
- oracle文件 结构01
1.减少数据的冗余(例如使用id) 2.保证数据库一致性 关联表越多越慢 主机名 hosts 文件 ntp 时间同步
- ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法(去掉15px空白间距)
但是在ios8中,设置setSeparatorInset:UIEdgeInsetsZero 已经不起作用了.下面是解决办法: 首先在viewDidLoad方法加入以下代码: if(leftTable! ...