日期:2014-05-16  浏览次数:20561 次

Oracle 学习笔记 10 -- 约束

本次笔记来学习约束,约束在表中无处不在。例如,表中的数据不允许为空或者是表中id为设为主键,都是约束。

约束分类:

        主键约束(PRIMARY KEY):主键表示表中一个唯一的标识,本身不能为空。

        唯一约束(UNIQUE):在一个表中只能允许建立一个主键约束,其它的列不会与此列产生重复的值。

        检查约束(CHECK):检查一个列的内容是否合法,如:工资在 1500 – 3000之间。

        非空约束(NOT NULL):内容不能为空。

        外键约束(FOREIGN KEY):两张表之间的进行约束操作。

约束也是有名字的,如果不指定约束的名字,系统会自动的为我们重建约束名,格式类似于sys_cn 。也可以自己创

建约束的名字,格式一般为:constraint  表名_列名_约束名 约束。之所以使用 “表名_列名_约束名”这样的格式,

也是为了达到一种见名知意的效果。定义的方式:列约束必须跟在列的后面进行定义,表级约束可以不跟在列的后面,进行单独的定义。

约束的范围:列级约束和表级约束,列级约束只能作用在一个列上,表级约束可以作用在多个列上,也可以作用在一个列上。

可以创建约束,也可以修改约束。创建约束在创建表的时候创建,修改约束在表创建完成之后再进行修改。

基本的语法格式:

列级约束定义:

CREATE TABLE table_name(

       列名1 列的数据类型类型  [约束 | constraint 约束名称  约束],

  列名2 列的数据类型类型  [约束 | constraint 约束名称  约束]

)

表级约束定义:

CREATE TABLE table_name(

         列名1  列的数据类型 ,

      列名2  列的数据类型 ,

      constraint  约束名称 约束(列名)

)

NOT NULL 约束

非空的约束只能定义在列上。使用非空约束,表示一个字段的内容不允许为空,即:插入的数据必须是有内容

的,不允许为null 。

例:创建表emp2 ,表中包含三列,id , name  , salary 。其中要求id 列不能为空。