1、非空约束

DROP TABLE member PURGE;
CREATE TABLE member(
mid NUMBER,
name VARCHAR2(20) NOT NULL
);

2、唯一约束

DROP TABLE member PURGE;
CREATE TABLE member(
mid NUMBER,
name VARCHAR2(20),
CONSTRAINT uk_mid UNIQUE(mid)
);

3、检查约束

DROP TABLE member PURGE;
CREATE TABLE member(
mid NUMBER,
name VARCHAR2(20),
CONSTRAINT ck_mid CHECK( mid BETWEEN 1 AND 100)
);
--检查约束会降低数据库的性能,一般用的比较少。

4、主键约束

DROP TABLE member PURGE;
CREATE TABLE member(
mid NUMBER,
name VARCHAR2(20),
CONSTRAINT pk_mid PRIMARY KEY(mid)
);

5、外键约束

DROP TABLE member PURGE
DROP TABLE book PURGE
CREATE TABLE member(
mid NUMBER,
name VARCHAR2(20) NOT NULL,
CONSTRAINT pk_mid PRIMARY KEY(mid)
) --父表 CREATE TABLE book(
bid NUMBER,
title VARCHAR2(20),
mid NUMBER,
CONSTRAINT pk_bid PRIMARY KEY(bid),
CONSTRAINT fk_mid FOREIGN KEY(mid) REFERENCES member(mid)
)--子表 --子表mid取值范围仅在父表中

删除带有外键约束的表

 1、如果表中存在外键约束关系,应该先删除父表再删除子表。也可以使用不建议使用的强制删除
DROP TABLE member CASCADE CONSTRAINT;
2、父表中作为子表关联的外键字段必须设置为主键约束或者是唯一约束
3、默认情况下,如果父表记录中有对应的子表记录,那么父表记录无法被删除。如果要删除应该先删除父表中的内容然后再删除子表中的内容。也可以在建外键约束时这样写
CONSTRAINT fk_mid FOREIGN KEY(mid) REFERENCE member(mid) ON DELETE CASCADE;
在很多时候这样的级联删除并不合适,就相当于解散一个部门但不能将部门里的所有员工全部解雇一样,这个时候就需要级联更新
CONSTRAINT fk_mid FOREIGN KEY(mid) REFERENCE member(mid) ON DELETE SET NULL;

修改表约束

语法:ALTER TABLE 表名称 ADD CONSTRAINT 约束名称 约束类型(字段)[其他选项]

为member表添加主键约束
ALTER TABLE member ADD CONSTRAINT pk_mid PRIMARY KEY(mid);  说明:对于五种约束而言:以上语法使用于检查(CHECK)、唯一(UNIQUE)、主键(PRIMARY KEY)、外键(FOREIGN KEY)四类约束。
如果要为表中添加非空约束,只有一种方式,使用修改表结构的操作完成,如
ALTER TABLE member MODIFY(name VARCHAR2(20) NOT NULL)

删除表约束

语法
ALTER TABLE 表名称 DROP CONSTRAINT 约束名称 删除member表主键约束
ALTER TABLE member DROP CONSTRAINT pk_mid;

Oracle约束的更多相关文章

  1. ORACLE约束总结

    你对ORACLE约束的了解如何?比较模糊还是相当透彻?如果你对下面几个问题了如指掌的话,恭喜你,你已经对约束掌握得比较好了,不用看这篇文章了.ORACLE的约束有啥功能作用? 有哪些类型约束(不同版本 ...

  2. 【Oracle】Oracle约束的总结

    你对ORACLE约束的了解如何?比较模糊还是相当透彻?如果你对下面几个问题了如指掌的话,恭喜你,你已经对约束掌握得比较好了,不用看这篇文章了.ORACLE的约束有啥功能作用? 有哪些类型约束(不同版本 ...

  3. oracle约束约束状态和设计习惯

    oracle约束状态有几个项目,会让人迷惑,分别是: enable/disable--是否启用/禁用 validate/invalidate--确认/不确认 deferrable/not deferr ...

  4. 转 ORACLE约束总结

    https://www.cnblogs.com/kerrycode/archive/2012/05/13/2454614.html 你对ORACLE约束的了解如何?比较模糊还是相当透彻?如果你对下面几 ...

  5. Oracle约束(Constraint)详解

    概述 约束是数据库用来确保数据满足业务规则的手段,不过在真正的企业开发中,除了主键约束这类具有强需求的约束,像外键约束,检查约束更多时候仅仅出现在数据库设计阶段,真实环境却很少应用,更多是放到程序逻辑 ...

  6. Oracle 约束类型

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

  7. Oracle约束操作

    约束的概念: 约束是在表中定义的用于维护数据库完整性的一些规则.通过为表中的字段定义约 束,可以防止将错误的数据插入到表中. 注意: 1.如果某个约束只作用于单独的字段,既可以在字段级定义约束,也可以 ...

  8. 十五、oracle 约束

    一.维护数据的完整性数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则,在oracle中,数据完整性可以使用约束.触发器.应用程序(过程.函数)三种方法来实现,在这三种方法中,因为约束易于维护,并 ...

  9. [Oracle]约束(constraint)

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

  10. Oracle约束、索引

    Oracle中的约束有五种,分别为: 非空:not null 主键:primary key 外键:foreign key 唯一:unique 检查:check 在数据字典视图 user_constra ...

随机推荐

  1. logger.debug的用处

    原文:https://www.cnblogs.com/xiangkejin/p/6426761.html logger.debug的用处 简单的说,就是配合log的等级过滤输出 根据你log4j的配置 ...

  2. vue+element 切换正式和测试环境

    1.package.json { "name": "element-starter", "description": "A Vue ...

  3. codevs 1500 后缀排序

    codevs 1500 后缀排序 http://codevs.cn/problem/1500/  时间限制: 1 s  空间限制: 128000 KB   题目描述 Description 天凯是MI ...

  4. linux scp上传文件到其他机器上

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...

  5. protobuffer

    [protobuffer] 1.扩展名为.proto. 2.定义一个协议: 3.定义一个Service: 4.编译器为protoc,使用protoc: 5.style:所有的类型名均CamelCase ...

  6. 20155336 2016-2017-2《JAVA程序设计》第七周学习总结

    20155336 2016-2017-2<JAVA程序设计>第七周学习总结 教材学习内容总结 第十三章 认识时间与日期 格林威治标准时间:简称GMT时间,参考格林威治皇家天文台的标准太阳时 ...

  7. Python 控制流、列表生成式

    Python的三种控制流.认识分支结构if.认识循环结构while.认识循环结构for.Break语句.Continue语句.

  8. python初步学习-Python模块之 re

    re 正则表达式 python正则表达式在线检验网站 python re正则表达式语法 匹配字符 语法 解释 表达式 匹配实例 . 匹配任意除"\n"以外的任何字符 a.c abc ...

  9. Vue的生命周期的介绍

    [推荐链接] https://segmentfault.com/a/1190000008010666

  10. 15、BigDecimal类简介

    BigDecimal类概述 由于在运算的时候,float类型和double很容易丢失精度,在金融.银行等对数值精度要求非常高的领域里面,就不能使用float或double了,为了能精确的表示.计算浮点 ...