Oracle的表操作 外來鍵約束

2021-08-10 12:31:46 字數 1515 閱讀 5978

1、外來鍵約束:外來鍵(foreign key)是用來建立和加強兩個表資料之間的連線的一列或多列。外來鍵約束是唯一涉及兩個表關係的約束。

注:先建立的表叫主表或附表,後建立的且和主表有關係的表叫從表或子表

2、外來鍵約束的注意事項:

(1)、設定外來鍵約束時主表的字段必須是主鍵列(或唯一列)

(2)、主從表中相應字段必須是同一資料型別

(3)、從表中外鍵字段的值必須來自主表中的相應欄位的值,或者為null

3、建立表時設定外來鍵約束的方法

(1)、列級約束:create table 從表 ( column_name datatype references 主表 ( column_name) [ on delete cascade ],...);

例:主表:

create table department(

depid varchar2(10) primary key,

depname varchar2(30)

);子表:

create table student(

sid number(8,0),

name varchar2(20),

*** char(2),

birthday date,

address varchar2(50),

depid varchar2(10) references department(depid)

注:子表中的depid可以隨意取名

(2)、表級約束:constraint constraint_name foreign key ( column_name ) references 主表 ( column_name) [ on delete cascade]

例:主表:

create table department(

depid varchar2(10) primary key,

depname varchar2(30)

);子表:

create table student(

sid number(8,0),

name varchar2(20),

*** char(2),

birthday date,

address varchar2(50),

constraint fk_depid foreign key(depid) references department(depid) on delete cascade

4、修改表時新增外來鍵約束的方法:alter table  student add constraint fk_depid foreign key(depid) references department(depid) on delete cascade;

5、刪除外來鍵約束的方法:

(1)、禁用約束:alter table  table_name disable constraint column_name;

(2)、徹底刪除:alter table table_name drop constraint column_name;

oracle外來鍵約束

新建父表 sql create table teacher 2 3 id number primary key,4 name varchar2 10 5 table created.新建子表 sql 1 create table student 2 3 id number primary key,4...

Oracle 外來鍵約束

新增主鍵約束 alter table ga airline add constraint pk airline id primary key airline id 有三種形式的外來鍵約束 1 普通外來鍵約束 如果存在子表引用父表主鍵,則無法刪除父表記錄 alter table t invoice d...

Oracle 外來鍵約束

下面的語句建立department 20表,並定義和啟用department id列上的外來鍵,該外來鍵引用departments表的department id列上的主鍵 create table dept 20 employee id number 4 last name varchar2 10 ...