Oracle 通用表

/*

emp 表                             dept  部门表                 salgrade 表

empno 员工编号               deptno  部门编号          grade  工资等级

ename  员工姓名             dname  部门名称          losal    工资范围下限

job       职位                      loc 工作地点                 hisal   工资范围上限

mgr     经理编号

hiredate  入职日期

sal        薪金

comm  奖金

deptno  部门编号

*/

Oracle实例演练

--约束:

--保证数据完整性的规则,设置在单个字段或者多个字段组合上,写入这些字段的

--数据必须符合约束的限制

--约束类型

--1、NOT NULL:非空约束,指定某列的所有行数据不能包含空值

--2、UNIQUE    :唯一性约束,指定列或者列的组合 的所有行数据必须唯一

--3、PRIMARY KEY:主键约束,表的每行的唯一性标识,

                               --指定列或者列的组合 的所有行数据必须唯一

--4、FOREIGN KEY:外键约束,在列及引用列上建立的一种强制依赖关系

--5、CHECK:检查性约束,在列上指定一个必须满足的条件

--除了NOT NULL约束外,建议给其它约束起名字,命名规则为:表名_列名_约束类型。

--NOT NULL约束只能定义在列级别上,联合主键或联合唯一性约束只能定义在表级别上,

--其它约束既可以定义成表级别,也可以定义成列级别;    

--CONSTRAINT:约束的关键字;constraint_name:约束名字;constraint_type:约束的类型;  

1、创建非空约束

--NOT NULL

CREATE TABLE emp_nn(

empno NUMBER(4),

ename VARCHAR2(10) NOT NULL,   --非空约束

job        VARCHAR2(9),

mgr       NUMBER(4),

hiredate DATE,

sal         NUMBER(7, 2),

comm  NUMBER(7,2),

deptno NUMBER(7,2) NOT NULL );   --非空约束

2、UNIQUE 约束

--唯一约束

--用来确保表中的某一列或者某几列组合的所有行数据必须唯一,

--定义UNIQUE约束的列 (或列组合) 被称为唯一键。

--每个表可以有多个为UNIQUE约束。

--①UNIQUE约束定义在列一级

CREATE TABLE deptment(

deptno  number(2),

dname VARCHAR2(14) CONSTRAINT dept_dname_uk UNIQUE,

loc        VARCHAR2(13));

--②UNIQUE约束定义在表一级   

CREATE TABLE deptment(

deptno  number(2),

dname VARCHAR2(14),

loc        VARCHAR2(13),

CONSTRAINT dept_dname_uk UNIQUE(dname));

 3、PRIMARY KEY约束

--主键约束,用来确保表中的某一列或者某几列组合的所有行数据必须唯一,

---并且确保作为主键一部分的列不能包含空值;

--每个表只能创建一个主键约束。

--①可以定义在列一级

CREATE TABLE deptment(

deptno        NUMBER(2) CONSTRAINT dept_deptno_pk  PRIMARY KEY,

dname       VARCHAR2(14),

loc             VARCHAR2(13),

CONSTRAINT dept_dname_uk UNIQUE (dname));

--②可以定义在表一级

CREATE TABLE deptment(

deptno         NUMBER(2),

dname         VARCHAR2(14),

loc                VARCHAR2(13),

CONSTRAINT dept_dname_uk UNIQUE(dname),

CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno));

4、Foreign Key约束

--外键约束,外键确保了相关联的两个字段的关系:

--外键列的值必须在引用列值的范围内,或者为空;

--外键参照的是列必须是主键或者唯一键;

--主键表主键值被外键表参照时,主键表记录不允许被删除。

--定义在列一级

CREATE TABLE emp_fk1(

empno   NUMBER(4),

ename   VARCHAR2(10)  NOT NULL,

job          VARCHAR2(9),

deptno    NUMBER(7, 2) NOT NULL,

CONSTRAINT  emp_deptno_fk FOREIGN KEY(deptno)  REFERENCES dept (deptno),

sal           NUMBER(7,2));

--也可定义在表一级

CREATE TABLE emp_fk2(

empno NUMBER(4),

ename VARCHAR2(10) NOT NULL,

deptno VARCHAR2(7,2) NOT NULL,

CONSTRAINT emp_deptno_fk FOREIGN KEY(deptno) REFERENCES dept(deptno)

ON DELETE  CASCADE);

--FOREIGN KEY: 定义在子表的列中

--REFERENCES: 引用列所在的父表

--注:ON DELETE CASCADE:当父表中的行被删除时,子表中相依赖的行同时被删除;

--         ON DELETE SET NULL:当父表的行被删除时,子表中相依赖的行被转换为空值;

--        无ON DELETE CASCADE或ON DELETE SET NULL选项,

--        当附表中的行被删除时,如果父表中的行在子表中被引用,则提示不能被删除。

5、CHECK约束

--检查性约束,确保某个列的所有行数据都必须满足的条件

--sal NUMBER(8,2) CONSTRAINT dept_sal_min CHECK (sal> 0)

--–要求sal字段的所有行数据必须大于0

--可以定义为列一级

CREATE TABLE emp_fk3(

empno    NUMBER(4),

ename     VARCHAR2(10) NOT NULL,

deptno     NUMBER(7,2),

CONSTRAINT emp_deptno_ck CHECK(deptno BETWEEN 10 AND 99),

sal             NUMBER(7,2));

--可以定义为表一级

CREATE TABLE emp_fk4(

empno NUMBER(4),

ename VARCHAR2(10) NOT NULL,

deptno NUMBER(7,2) NOT NULL,

sal         NUMBER(7,2),

CONSTRAINT emp_deptno_ck CHECK(deptno BETWEEN 10 AND 99));

Oracle学习——第五讲(约束)相关推荐

  1. ORACLE学习笔记-关于索引和约束

    /*** 约束 ***/ * 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,但如果某个约束作用于多个字段, 必须在表级定义约束 * 在定义约束时可以通过CONSTRAI ...

  2. ORACLE学习笔记 索引和约束

    /*** 约束 ***/ * 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约 束,但如果某个约束作用于多个字段,   必须在表级定义约束 * 在定义约束时可以通过CONST ...

  3. oracle字段加约束,Oracle数据库的字段约束创建和维护示例

    创建Oracle数据库的字段约束: 非空约束 唯一约束 对字段的取值的约束 默认值 外键约束 create table tab_class( class_id number primary key, ...

  4. Oracle学习系列1-7

    Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...

  5. Oracle学习-08.09

    Oracle学习 第一章 Oracle数据库概述 1.2 数据库基本术语 数据库 数据库是位于计算机存储设备上存放数据的仓库 数据库管理系统(DBMS) 数据库系统中对数据进行管理的软件系统,踏实数据 ...

  6. 开辟ORACLE 学习之路,努力的去成为DBA

    开辟ORACLE 学习之路,努力的去成为DBA IT的日子让我奋斗的时候,忘了下班:高兴时候,和朋友聚聚餐,出去游玩一下:迷茫时候,让自己踌躇满志,犹豫不前~ 总体来说IT的日子自己还要坚持下去,一步 ...

  7. oracle外键约束强行insert,oracle 禁用外键约束

    1.ORACLE数据库中的外键约束名都在表user_constraints中可以查到.其中constraint_type='R'表示是外键约束. 2.启用外键约束的命令为:alter table ta ...

  8. 怎样学好Oracle子查询,Oracle学习(六):子查询

    Oracle学习(6):子查询 子查询 为何要用子查询 SQL> --查询工资比SCOTT高的员工信息 SQL> --1. 知道SCOTT的工资 SQL> select sal fr ...

  9. oracle两表链接序列跳序,Oracle学习之 序列(Sequence)

    Oracle学习之 序列(Sequence) [Oracle学习]之 序列(Sequence) oracle文档:https://docs.oracle.com/cd/B28359_01/server ...

  10. oracle 主键_Oracle约束详解

    一 约束的定义 约束是强加在表上的规则或条件.确保数据库满足业务规则.保证数据的完整性.当对表进行DML或DDL操作时,如果此操作会造成表中的数据违反约束条件或规则的话,系统就会拒绝执行这个操作.约束 ...

最新文章

  1. [python] 溜了,溜了,七牛云图片资源批量下载 自建图床服务器
  2. Java在使用时需要注意那些问题_java使用String.split方法时要注意的问题
  3. php获取访问者ip地址汇总,php获取访问者IP地址汇总_PHP
  4. java中去除文件名的后缀名_Java程序在最后一个点后去除其扩展名的文件名
  5. 应用系统开发--银行系统
  6. excel 超链接修改失败解决办法
  7. 一个互联网研发团队的标准配置
  8. python 面试题 aac caa相似_Python 面试实训 100 题,哪道难住了你?| 文末附答案
  9. java oop 题目_JavaOOP试题JavaOOP试题.doc
  10. html放大镜原理,简单的js放大镜功能的实现
  11. 我的世界服务器修改皮肤指令,我的世界怎么拿指令来改皮肤的 | 手游网游页游攻略大全...
  12. 关于偶的专业-信息工程
  13. 互联网+国家战略-整理
  14. MBR格式转GPT格式阿里云云盘在线扩容
  15. 百度以图搜图API介绍
  16. 深度学习入门笔记之DenseNet网络
  17. 享元模式--大量的飞龙
  18. RDMA入门——RDMA学习笔记(一)
  19. 利用ArcGIS结合DEM提取小流域单元
  20. 使用 elasticsearch、LogStash、Kibana完成网站流量的监控系统(基于nginx的访问日志实现流量监控)

热门文章

  1. 安装VMware提示“此产品安装程序不支持降级“
  2. 一些文字游戏....
  3. 微博营销的价值与注意点
  4. [Qualcomm][MSM8909]APQ8009基线上编写一个OpenGl测试程序
  5. 【OpenFOAM】学习module1
  6. Excel如何从复杂文本中提取数字
  7. python——【2】gzip模块二进制格式读取压缩文件
  8. 大学上计算机课要准备笔记本电脑吗,大一新生需要买笔记本电脑吗 有必要吗...
  9. [爬虫项目]猫眼电影TOP100
  10. 大秦帝国------令人神往的时代