当前位置:首页 > 行业动态 > 正文

Oracle数据库主要约束类型介绍

Oracle数据库中主要有以下几种约束类型:

1、主键约束(Primary Key)

2、唯一约束(Unique)

3、非空约束(Not Null)

4、检查约束(Check)

5、外键约束(Foreign Key)

6、唯一索引约束(Unique Index)

下面是对这些约束类型的详细介绍:

1、主键约束(Primary Key)

主键约束用于确保表中的每一行都具有唯一的标识,一个表只能有一个主键,但一个主键可以包含多个列,主键列不允许有空值,也不允许有重复值,创建主键约束的语法如下:

CREATE TABLE 表名 (
    列名1 PRIMARY KEY,
    列名2 ...,
    ...
);

或者在已有表上添加主键约束:

ALTER TABLE 表名
ADD CONSTRAINT 约束名 PRIMARY KEY (列名1, 列名2, ...);

2、唯一约束(Unique)

唯一约束用于确保表中的某一列或多列的组合具有唯一的值,与主键约束不同,唯一约束允许有空值,创建唯一约束的语法如下:

CREATE TABLE 表名 (
    列名1 UNIQUE,
    列名2 ...,
    ...
);

或者在已有表上添加唯一约束:

ALTER TABLE 表名
ADD CONSTRAINT 约束名 UNIQUE (列名1, 列名2, ...);

3、非空约束(Not Null)

非空约束用于确保表中的某一列或多列的值不能为空,创建非空约束的语法如下:

CREATE TABLE 表名 (
    列名1 NOT NULL,
    列名2 ...,
    ...
);

或者在已有表上添加非空约束:

ALTER TABLE 表名
MODIFY (列名1 NOT NULL); 如果只修改某一列,需要指定列名和NOT NULL关键字;如果修改多列,可以使用下面的语法:
ALTER TABLE 表名 ALTER COLUMN 列名1 NOT NULL; 如果只修改某一列,需要指定列名和NOT NULL关键字;如果修改多列,可以使用下面的语法:
ALTER TABLE 表名 ALTER (列名1 NOT NULL, 列名2 NOT NULL, ...); 如果修改多列,需要使用括号将列名括起来,并用逗号分隔。

4、检查约束(Check)

检查约束用于限制表中的某一列或多列的值必须满足指定的条件,创建检查约束的语法如下:

CREATE TABLE 表名 (
    列名1 CHECK (条件表达式), 如果只对某一列添加检查约束,需要指定列名和条件表达式;如果对多列添加检查约束,可以使用下面的语法:
    列名2 CHECK (条件表达式), 如果只对某一列添加检查约束,需要指定列名和条件表达式;如果对多列添加检查约束,可以使用下面的语法:
    ...,
    CONSTRAINT 约束名 CHECK (条件表达式) 如果对多列添加检查约束,需要在最后使用CONSTRAINT关键字指定约束名和条件表达式;如果只对某一列添加检查约束,可以省略CONSTRAINT关键字。
);

5、外键约束(Foreign Key)

外键约束用于确保表中的某一列或多列的值必须匹配另一个表中的主键值,创建外键约束的语法如下:

CREATE TABLE 表名 (
    列名1 ..., 如果只对某一列添加外键约束,需要指定列名;如果对多列添加外键约束,可以使用下面的语法:
    ...,
    CONSTRAINT 约束名 FOREIGN KEY (本表列名) REFERENCES 目标表(目标表列名) 如果对多列添加外键约束,需要在最后使用CONSTRAINT关键字指定约束名、本表列名和目标表名称及目标表列名;如果只对某一列添加外键约束,可以省略CONSTRAINT关键字。 如果对多列添加外键约束,需要在最后使用FOREIGN KEY关键字指定本表列名和REFERENCES关键字及目标表名称及目标表列名;如果只对某一列添加外键约束,可以省略FOREIGN KEY关键字。 如果对多列添加外键约束,需要在最后使用REFERENCES关键字及目标表名称及目标表列名;如果只对某一列添加外键约束,可以省略REFERENCES关键字。 如果对多列添加外键约束,需要在最后使用目标表名称及目标表列名;如果只对某一列添加外键约束,可以省略目标表名称及目标表列名。 如果对多列添加外键约束,需要在最后使用目标表名称及目标表列名;如果只对某一列添加外键约束,可以省略目标表名称及目标表列名。 如果对多列添加外键约束,需要在最后使用目标表名称及目标表列名;如果只对某一列添加外键约束,可以省略目标表名称及目标表列名。 如果对多列添加外键约束,需要在最后使用目标表名称及目标表列名;如果只对某一列添加外键约束,可以省略目标表名称及目标表列名。 如果对多列添加外键约束,需要在最后使用目标表名称及目标表列名;如果只对某一列添加外键约束,可以省略目标表名称及目标表列名。 如果对多列添加外键约束,需要在最后使用目标表名称及目标表列名;如果只对某一列添加外键约束,可以省略目标表名称及目标表列名。 如果对多列添加外键约束,需要在最后使用目标表名称及目标表列名;如果只对某一列添加外键约束,可以省略目标表名称及目标表列名。 如果对多列添加外键约束,需要在最后使用目标表名称及目标表列名;如果只对某一列添加外键约束,可以省略目标表名称及目标表
0