在Oracle中的约束类型:
NOT NULL
UNIQUE Key
PRIMARY KEY
FOREIGN KEY
CHECK

create table emp--创建表格 ,注意约束
(
empno number(4) primary key,--主键约束
ename varchar2(11) not NULL,--非空约束
job1 varchar2(9),
mgr number(2) references dept(deptno), 
hiredage date default sysdate,
sal number(10,2) check(sal > 500),--check约束
comm number(9,0) default null
)

alter table emp-- 删除表的列
drop column comm
cascade constraints checkpoint 1000;--约束删除


定义约束
主码或主键约束可以定义在列或表上( PRIMARY KEY )
 CREATE TABLE   dept(
        deptno       NUMBER(2),
        dname      VARCHAR2(14),
        loc      VARCHAR2(13),
        CONSTRAINT dept_dname_uk UNIQUE (dname),定义约束
        CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno));定义约束

create table dept
(
deptno number(2),
dname varchar2(14),
location varchar2(14),
CONSTRAINT dept_dname_uk UNIQUE(dname));-- 唯一约束
)

定义外键约束

CREATE TABLE emp(
      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,(reference dept(deptno) )//括号中也声明其引用外键  
     CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)
     REFERENCES dept (deptno));

CHECK约束:定义表的每一行必须满足的条件(上面有check约束的例子)
CHECK表达是不允许:
引用伪列 CURRVAL, NEXTVAL, LEVEL, 和ROWNUM
调用SYSDATE, UID, USER,和USERENV函数
参照其它行的查询结果


增加约束(可以增加或删除约束但是不能修改约束)

ALTER TABLE     emp
   ADD CONSTRAINT  emp_mgr_fk(约束名)
         FOREIGN KEY(mgr) REFERENCES emp(empno);

...................................................................

ALTER TABLE      emp//删除约束
   DROP CONSTRAINT  emp_mgr_fk;

...................................................................
ALTER TABLE    dept//删除在表DEPT上的PRIMARY KEY约束并且删除在表EMP的DEPTNO列上的 FOREIGN KEY约束。
   DROP PRIMARY KEY CASCADE;


创建和管理约束:约束使能或使不能
ALTER TABLE        emp
    ENABLE CONSTRAINT    emp_empno_pk;
ALTER TABLE        emp
    DISABLE CONSTRAINT    emp_empno_pk CASCADE;


查看约束

查询表USER_CONSTRAINTS可以察看所有的约束和名称

SELECT    constraint_name, constraint_type,
  2        search_condition
  3   FROM    user_constraints
  4   WHERE    table_name = 'EMP';

Oracle 约束类型的更多相关文章

  1. [Oracle]约束(constraint)

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

  2. ORACLE约束总结

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

  3. 【Oracle】Oracle约束的总结

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

  4. 转 ORACLE约束总结

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

  5. oracle字段类型

    oracle 字段类型CHAR    固定长度字符串    最大长度2000    bytes              VARCHAR2    可变长度的字符串    最大长度4000    byt ...

  6. Oracle 日期类型timestamp(时间戳)和date类型使用

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  7. PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结

      前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1  PHP中的抽象 ...

  8. java Hibernate 处理 oracle xmltype类型

    网上关于如何处理oracle xmltype类型的博客很多,我现在分享的是针对具体业务来的,我在oracle数据库entity表中detail插入了一条xmltype类型的数据 xml的详细内容如下: ...

  9. oracle有三种类型的异常错误: 预定义 ( Predefined )错误里面的常见错误

    oracle有三种类型的异常错误: 预定义 ( Predefined )错误, 非预定义 ( Predefined )错误, 用户定义(User_define) 错误 预定义 ( Predefined ...

随机推荐

  1. JPA 原生态SQL 的复杂查询之createNamedQuery

    JPA 原生态SQL 的复杂查询之createNamedQuery调用存储过程,返回的List字段对应的填充实体============实体类,调用存储过程====================== ...

  2. windows win7 win10 多系统启动菜单 多系统引导设置

    win键+R 输入msconfig 根据显示的程序设置(除非你看不懂文字)

  3. java正则表达式语法详解及其使用代码实例

    原文地址 译者序(下载代码) 正则表达式善于处理文本,对匹配.搜索和替换等操作都有意想不到的作用.正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率. ...

  4. Java面试葵花宝典

    面向对象的特征有哪些方面  1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面.抽象并不5. 打算了解全部问题,而6. 只是选择其中的一 ...

  5. 减少远程ssh的延迟

    今天搞了个很廉价的vps,ssh上去之后操作卡顿得不行,有时候输入一行命令后需要等五六秒才显示出来,蛋疼得不行. 然后想找一个解决方案,先是看到了mosh. 搜索了下教程,看了下说明,因为我这个廉价的 ...

  6. 使用GLSL实现的海洋效果 【转】

    http://bbs.osgchina.org/viewthread.php?tid=342&extra=page%3D3 虽说自己原创的部分并不算多,不过总算是调试通过了,中间有多次严重的死 ...

  7. 现有一些开源ESB总线的比較

    现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,如今已经是百花争鸣的景象了.如今我就对现有的各种开源ESB总线根据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. 一. ...

  8. SQL Server 2008 清空删除日志文件

    USE [master]GOALTER DATABASE STAR9SQL SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE STAR9SQL SET ...

  9. mysqldump 安全 --skip-add-drop-table

    [root@localhost data]# mysqldump -uroot --master-data=2  -p  --single-transaction --skip-add-drop-ta ...

  10. DOS命令如何进入指定的下一级目录?

    如cd E:\java workspace\test\src 如何进入E盘 ,直接 E: