今天,因為專案有3張表,而且3張表之間,都有關聯,我又重溫習了乙個主鍵與外來鍵的運用:
--刪掉表
drop table dept
drop table emp
--建立dept表,
create table dept(deptno int primary key,dname nvarchar(30),loc nvarchar(30))
--這裡是dept(deptno)主鍵指向外來鍵emp(deptno),沒有聯級刪除與更新
create table emp(empno int primary key
,ename nvarchar(30),
job nvarchar(30),
mgr int,
hiredate datetime,
sal numeric(10,2),
comm numeric(10,2),
deptno int foreign key references dept(deptno));
--以後為建立表時,並建立聯級關係
create table emp(empno int primary key
,ename nvarchar(30),
job nvarchar(30),
mgr int,
hiredate datetime,
sal numeric(10,2),
comm numeric(10,2),
--聯級刪除
deptno int foreign key references dept(deptno) on delete cascade);
--聯級更新
--deptno int foreign key references dept(deptno) on update cascade);
--如果是建立表時,沒有建立聯級關係,可以再增加
create table emp(empno int primary key
,ename nvarchar(30),
job nvarchar(30),
mgr int,
hiredate datetime,
sal numeric(10,2),
comm numeric(10,2),
deptno int);
--這段語句就是增加聯級的刪除與更新
alter table emp add constraint fk_deptno foreign key (deptno) references dept(deptno) on update cascade on delete cascade
[color=red]以上的操作都是在sql server 2000中進行的,以下部分是插入與刪掉的資料,本人已經操作過沒有問題,就不上傳了。
[/color]
insert into dept values(10,'grtu','newke')
insert into dept values(20,'sl','shengchang')
insert into emp(empno,ename,job,mgr,hiredate,sal,deptno)values
(103,'dengping','cleck',9,'1985-9-12',1300.00,10)
insert into emp(empno,ename,job,mgr,hiredate,sal,deptno)values
(106,'milik','cleck',9,'1985-9-12',1300.00,30)--deptno這時為30時,就違反了主鍵定義,因為30不存在,這就是外來鍵指向主鍵的運用
insert into emp(empno,ename,job,mgr,hiredate,sal,deptno)values
(105,'lichong','ipqc',93,'1990-2-22',1400.00,10)
insert into emp(empno,ename,job,mgr,hiredate,sal,deptno)values
(104,'lichong','ipqc',93,'1990-2-22',1400.00,20)
select * from emp
select * from dept
delete from emp where empno= '105';
--聯級刪除
delete from dept where deptno= '10';
--聯級更新
update dept set deptno=11 where deptno =10;
主鍵與外來鍵
一 什麼是主鍵 外來鍵 關係型資料庫中的一條記錄中有若干個屬性,若其中 某乙個屬性組 注意是組 能唯一標識一條記錄 該屬性組就可以成為乙個主鍵 比如 學生表 學號,姓名,性別,班級 其中每個學生的 學號是唯一的,學號就是乙個主鍵 課程表 課程編號 課程名,學分 其中課程編號 是唯一的,課程編號 就是...
Mysql 主鍵與外來鍵
這的pri和mul的含義是什麼意思呢?1.如果key是空的,那麼該列值的可以重複,表示該列沒有索引,或者是乙個非唯一的復合索引的非前導列 2.如果key是pri,那麼該列是主鍵的組成部分 3.如果key是uni,那麼該列是乙個唯一值索引的第一列 前導列 並別不能含有空值 null 4.如果key是m...
Sql 主鍵與外來鍵
三張表 s s sname,gender,age c c cname,tname sc sc s c grade s 為學生號 主鍵 sname為學生姓名,c 為課程號 主鍵 cname為課程名,tname為老師姓名,sc中使用外來鍵關聯 請編寫sql語句完成下列操作 1.將 oracle 成績最高...