1create
table emp (--
建立emp表
2 id int
primary
keyauto_increment,
3 name varchar(30
),4 age int
,5 dep_name varchar(30),--
部門名稱
6 dep_location varchar(30)--
部門位址7);
8--新增資料
9insert
into emp (name, age, dep_name, dep_location) values ('
張三', 20, '
研發部', '廣州'
);10
insert
into emp (name, age, dep_name, dep_location) values ('
李四', 21, '
研發部', '廣州'
);11
insert
into emp (name, age, dep_name, dep_location) values ('
王五', 20, '
研發部', '廣州'
);12
insert
into emp (name, age, dep_name, dep_location) values ('
老王', 20, '
銷售部', '深圳'
);13
insert
into emp (name, age, dep_name, dep_location) values ('
大王', 22, '
銷售部', '深圳'
);14
insert
into emp (name, age, dep_name, dep_location) values ('
小王', 18, '
銷售部', '深圳'
);15
16select
*from
emp;
1718
--建立部門表(id,dep_name,dep_location)
19--
一方,主表
20create
table
department(
21 id int
primary
keyauto_increment,
22 dep_name varchar(20
),23 dep_location varchar(20)24
);25
--建立員工表(id,name,age,dep_id)
26--
多方,從表
27create
table
employee(
28 id int
primary
keyauto_increment,
29 name varchar(20
),30 age int
,31 dep_id int
--外來鍵對應主表的主鍵32)
3334
--新增 2 個部門
35insert
into department values(null, '
研發部','
廣州'),(null, '
銷售部', '深圳'
);36
37--
新增員工,dep_id 表示員工所在的部門
38insert
into employee (name, age, dep_id) values ('
張三', 20, 1
);39
insert
into employee (name, age, dep_id) values ('
李四', 21, 1
);40
insert
into employee (name, age, dep_id) values ('
王五', 20, 1
);41
insert
into employee (name, age, dep_id) values ('
老王', 20, 2
);42
insert
into employee (name, age, dep_id) values ('
大王', 22, 2
);43
insert
into employee (name, age, dep_id) values ('
小王', 18, 2
);44
45select
*from
employee;
4647
select
*from
department;
4849
drop
table
department;
5051
drop
table
employee;
5253
--建立部門表(id,dep_name,dep_location)
54--
一方,主表
55create
table
department(
56 id int
primary
keyauto_increment,
57 dep_name varchar(20
),58 dep_location varchar(20)59
);60
--新增 2 個部門
61insert
into department values(null, '
研發部','
廣州'),(null, '
銷售部', '深圳'
);62
63--
建立從表 employee 並新增外來鍵約束 emp_depid_fk
64--
多方,從表
65create
table
employee(
66 id int
primary
keyauto_increment,
67 name varchar(20
),68 age int
,69 dep_id int, --
外來鍵對應主表的主鍵
70--
建立外來鍵約束
71constraint emp_dept_fk foreign
key (dep_id) references
department(id)72)
73--
正常新增資料
74insert
into employee (name, age, dep_id) values ('
張三', 20, 1
);75
insert
into employee (name, age, dep_id) values ('
李四', 21, 1
);76
insert
into employee (name, age, dep_id) values ('
王五', 20, 1
);77
insert
into employee (name, age, dep_id) values ('
老王', 20, 2
);78
insert
into employee (name, age, dep_id) values ('
大王', 22, 2
);79
insert
into employee (name, age, dep_id) values ('
小王', 18, 2
);80
81select
*from
employee;
8283
select
*from
department;
8485
--刪除外來鍵
8687
alter
table employee drop
foreign
keyemp_dept_fk;
8889
--新增外來鍵
90alter
table employee add
constraint emp_dept_fk foreign
key (dep_id) references
department(id);
9192
update employee set dep_id=
null
where dep_id=1;
9394
update employee set dep_id=
5where dep_id is
null;95
96update employee set dep_id=
1where dep_id=5;
9798
--新增外來鍵,設定級聯刪除
99alter
table employee add
constraint emp_dept_fk foreign
key (dep_id) references
department(id)
100on
delete
cascade
;101
102--
新增外來鍵,設定級聯更新
103alter
table employee add
constraint emp_dept_fk foreign
key (dep_id) references
department(id)
104on
update
cascade;
外來鍵約束 外來鍵級聯操作
建立db2資料庫 create database db2 使用db2資料庫 use db2 外來鍵約束 標準語法 constraint 外鍵名 foreign key 本表外來鍵列名 references 主表名 主表主鍵列名 建表時新增外來鍵約束 建立user使用者表 create table u...
主鍵自增長 外來鍵約束 級聯更新
1 自動增長 配合int型別的主鍵使用,自增後的id值取決於上一條 1 如果某一列是數值型別的,使用auto increment可以來完成值的自動增長 2 建立表時,新增自動增長 create table stu 3 刪除自動增長 alter table stu modify id int 4 新增...
MySQL外來鍵約束 級聯刪除和更新
外來鍵約束 什麼是外來鍵約束 一張表中的某個字段引用另乙個表的主鍵 主表 約束別人 副表 從表 使用別人的資料,被別人約束 建立部門表 create table department id int primary key auto increment,主鍵自增 dep name varchar 20...