PL/SQL

PL/SQL 知识量:16 - 57 - 244

3.2 约束><

约束的类型- 3.2.1 -

约束就是用来束缚表中数据的,使表中的数据满足某种条件。在Oracle数据库中一共有5种约束:主键约束、外键约束、唯一约束、检查约束、非空约束。

  • 主键约束:用来唯一标识表中一个列,一个表中的主键约束只能有一个,但是可以在一个主键约束中包括多个列,也称为联合主键。

  • 外键约束:用来约束两个表中列之间的关系。

  • 唯一约束:用来唯一标识表中的列。与主键约束不同的是,在一个数据表中可以有多个唯一约束。

  • 检查约束:用来约束表中列的输入值的范围,例如:在输入性别时,要求在数据库中只能输入男或者女,就可以使用检查约束来约束该列。

  • 非空约束:约束该列一定要输入值。

创建一个带检查约束的表- 3.2.2 -

使用PL/SQL语句创建检查约束的语法如下:

CONSTRAINT constraint_name CHECK(condition)

简要说明:

◆ CONSTRAINT:关键词。

◆ constraint_name:约束名称。

◆ condition:用来唯一标识表中一个列,一个表中的主键约束只能有一个,但是可以在一个主键约束中包括多个列,也称为联合主键。例如,给“性别”字段加一个约束,要求只能输入男或者女。假设输入性别的字段名为“性别”,条件可以写成“性别='男' OR 性别='女'”。

给AGE加上检查约束:

CREATE TABLE PEOPLE 
   (	
        IDD NUMBER(2,0), 
	PNAME VARCHAR2(10), 
	AGE NUMBER(2,0) DEFAULT 0, 
	SEX CHAR(5),
	CONSTRAINT CK_AGE CHECK(AGE>0 AND AGE<120)
   ) ;

创建一个带非空约束的表- 3.2.3 -

给表中的列设置了非空约束,就意味着在向数据表添加数据时,该列是必须要添加的。非空约束就是在创建表时,在字段名的后面添加上NOT NULL。

给PNAME加上一个非空约束:

CREATE TABLE PEOPLE 
   (	
        IDD NUMBER(2,0), 
	PNAME VARCHAR2(10) NOT NULL, 
	AGE NUMBER(2,0) DEFAULT 0, 
	SEX CHAR(5)
   ) ;

创建一个带唯一约束的表- 3.2.4 -

在表中创建唯一约束(UNIQUE)是用来唯一标识一个列中的输入值的,比如:注册的用户名都是唯一的,就可以用唯一约束来约束用户名这个列。使用PL/SQL语句创建唯一约束的语法如下:

CONSTRAINT constraint_name UNIQUE(column_name)

简要说明:

  • UNIQUE:唯一约束的关键词。

  • column_name:唯一约束的名称。

为IDD列添加唯一约束:

CREATE TABLE PEOPLE
   (	
        IDD NUMBER(2,0), 
	PNAME VARCHAR2(10) NOT NULL, 
	AGE NUMBER(2,0) DEFAULT 0, 
	SEX CHAR(5),
        CONSTRAINT UN_IDD UNIQUE(IDD)
   ) ;

创建一个带外键约束的表- 3.2.5 -

外键(FOREIGN KEY)用于建立和加强两个表数据之间连接的一列或多列。当创建或修改表时可通过定义FOREIGN KEY约束来创建外键。在外键引用中,当一个表的列被引用作为另一个表主键值的列时,就在两个表之间创建了连接,这个列就成为第2个表的外键。

系统保证表在外键上的取值要么是主表中某一个主键值或唯一键值,要么取空值,以此保证两个表之间的连接,确保了实体的参照完整性。FOREIGN KEY既可用于列约束,也可用于表约束,其语法格式为:

CONSTRAINT constraint_name FOREIGN KEY (column_name)
REFERENCE  table_name (column_name )
ON DELETE CASCADE

简要说明:

  • CONSTRAINT:创建约束的关键词。

  • FOREIGN KEY:外键约束的关键词。

  • REFERENCE:引用外表的关键词。

  • table_name:需要引用的外表,column_name表示该表的列。