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. 3.CentOS的一些小笔记

    1.一般来说,主文件夹都在/home下面,比如登陆的账户为LyndonMario,则我的主文件夹为 /home/LyndonMario. 2.ctrl+space可以调出输入法. 3.CentOS中的 ...

  2. css基础--常用css属性01

    1  背景相关 背景颜色 background-color     = 颜色名称/rgb值/十六进制值 背景图片 background-image = url('') 背景图片平铺方式 backgro ...

  3. 理解jquery的$.extend()、$.fn和$.fn.extend()的区别及用法

    viajQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); jQuery.fn jQuery.fn = jQuery.prototy ...

  4. java.lang.AutoCloseable

    java.lang.AutoCloseable和java.io.Closeable public interface AutoCloseable { void close() throws Excep ...

  5. jQuery读取KindEditor的值

    $(document.getElementsByTagName("iframe")[0].contentWindow.document.body).html();

  6. location.href跳转测试

    测试代码 <script type="text/javascript"> function ToUrl(x){ location.href=x; } </scri ...

  7. svn 节点处冲突 解决

    问题描述: [root@localhost ] $ svn up 正在升级 ‘.’: 已跳过 ‘bg0605’ – 节点处于冲突状态 版本 175. 冲突概要: 跳过的路径:1 解决方法: 当前目录下 ...

  8. 超简单将Centos的yum源更换为国内的阿里云源

    自己的yum源不知道什么时候给改毁了……搜到了个超简单的方法将yum源更换为阿里的源 完全参考 http://mirrors.aliyun.com/help/centos?spm=5176.bbsr1 ...

  9. Java并发编程原理与实战四十二:锁与volatile的内存语义

    锁与volatile的内存语义 1.锁的内存语义 2.volatile内存语义 3.synchronized内存语义 4.Lock与synchronized的区别 5.ReentrantLock源码实 ...

  10. 【Swift】UILabel的简单操作方法

    @IBAction func buttonClick_LabelCtrl(sender: AnyObject) { //定义CGRect来初始化UILable var frame: CGRect = ...