Oracle中五种约束

Oracle中五种约束:主键约束、外键约束、唯一约束、检查约束、非空约束。

一、主键约束:在每一个数据表中只有一个,但是一个主键约束可以有数据表中多个列组成。

创建主键约束的两种方法:

(1)在创建表的直接创建主键约束,使用primary key(字段名)即可。

举例:创建表tmp_test1包括字段test_id、test_name,其中test_id是主键。

CREATE TABLE TMP_TEST1 (
TEST_ID NUMBER(4),
TEST_NAME VARCHAR2(8),
CONSTRAINTS PK_TEST_ID PRIMARY KEY (TEST_ID)
);

(2)使用ALTER TABLE语句为表添加主键约束。

ALTER TABLE TMP_TEST1 ADD CONSTRAINTS PK_TEST_ID PRIMARY KEY(TEST_ID);

移除主键约束方法:

ALTER TABLE TMP_TEST1 DROP CONSTRAINT PK_TEST_ID ;

注意:PK_TEST_ID     是要移除的约束名称。

二、外键约束:外键约束可以保证使用外线约束的数据库列与所引用的主键约束的数据列一致,外键约束在一个表中可以有多个。

创建外键约束的两种方法:

(1)在创建表的同时创建外键约束;

外键约束是建立在两张表中的约束,需要在建表的后面增加以下语句;

constraint constraint_name foreign key(column_name)
reference table_name(column_name)
on delete cascade;
语法说明:
constraint_name:创建的外键约束名字。
foreign key(column_name):指定外键约束的列名;
reference:要引用的表名(列名);
ON DELETE CASCADE:设置级联删除,当主键的字段被删除时,外键所对应的字段也被同时删除。

举例说明:

create table tmp_test3(
test_id number(4),
test_name varchar2(8),
test_dept_id number(2),

constraint fk_test1 foreign key (test_dept_id) references test_dept (dept_id) on delete cascade);

注意:test_dept表中dept_id字段是主键约束的字段。

create table test_dept(dept_id number(2),
dept_name varchar2(10));

alter table test_dept add constraints pk_test_dept primary key (dept_id);

(2)在修改数据库时添加外键约束;

alter table tmp_test3 add constraint tset_dept foreign key (dept_id)
reference test_dept(dept_id)
on delete cascade;





猜你喜欢

转载自blog.csdn.net/lanxingbudui/article/details/80159891