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. MyEclipse10 Tomcat7关联

    MyEclipse10 Tomcat7配置 配置: 选择Window下的preferences界面 配置jdk,可以选择自己安装的jdk,点击ok就配置好了. 测试: 菜单file>new> ...

  2. Hadoop部署方式-高可用集群部署(High Availability)

    版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客的高可用集群是建立在完全分布式基础之上的,详情请参考:https://www.cnblogs.com/yinzhengjie/p/90651 ...

  3. Django 2.0.1 官方文档翻译: 编写你的第一个 Django app,第三部分(Page 8)

    编写你的第一个 Django app,第三部分(Page 8)转载请注明链接地址 本页教程接前面的第二部分.我们继续开发 web-poll app,我们会专注于创建公共接口上 -- "视图& ...

  4. SELECT INTO 和 INSERT INTO SELECT比较

    Insert是T-sql中常用语句,但我们在开发中经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用S ...

  5. 深入理解非阻塞同步IO和非阻塞异步IO

    这两篇文章分析了Linux下的5种IO模型 http://blog.csdn.net/historyasamirror/article/details/5778378 http://blog.csdn ...

  6. [转载]Getting Started with ASP.NET vNext and Visual Studio 14

    说在转载之前的话:ASP.NET框架之前不断做大,而vNext则是从头开始,对ASP.NET框架进行拆分并瘦身,面对不同的需求而更加灵活,各个拆分出来的模块更加轻量.vNext的出现,对ASP.NET ...

  7. 编辑器之王:Emacs 和 Vim

    Emacs 是神的编辑器,而 Vim 是编辑器之神.二者为何会有如此美誉,且听本文向你一一道来. Author: Jiqing Wu email: jiqingwu@gmail.com homepag ...

  8. js获取变量的值

    <body> <?php echo "<script> var message = \"$message\";</script> ...

  9. Python练习-os模块练习-还算是那么回事儿

    # 编辑者:闫龙 # 小程序:根据用户输入选择可以完成以下功能: # 创建文件,如果路径不存在,创建文件夹后再创建文件 # 能够查看当前路径 # 在当前目录及其所有子目录下查找文件名包含指定字符串的文 ...

  10. html5 构造网页的新方式

    从 html 诞生至今,我们构建 html 页面的使用 html 元素好像并没有太多的进步.在构建 html 页面中,用的最多的是 div 标签.但是应用 div 标签构建 html 页面有一个问题, ...