1)自動增長(配合int類型的主鍵使用, 自增後的id值取決於上一條)
(1)如果某一列是數值類型的,使用auto_increment可以來完成值的自動增長
(2)創建表時,添加自動增長
create table stu{
id int primary key auto_increment, -- 給id添加主鍵約束
name varchar(20)
}
(3)刪除自動增長
alter table stu modify id int;
(4)添加自動增長
alter table stu modify id int auto_increment;
2)外鍵約束
不好的地方:
(1)發現數據由冗餘, 不太符合數據庫設計的準則
(2)修改不方便,比如: 想把研發部修改個名字
改進: 設計爲2個表(部門表和員工表)
問題:
zhangsan lisi wangwu 位於1號部門,
但是,1號部門的表格已經刪除了
解決辦法: 因此外鍵約束的引入
語法:
create table 表名{
外鍵列
constraint 外鍵名稱 foreign key 外鍵列名稱 references 主表名稱(主表主鍵名稱)
}
如:
create table employee(
id int primary key auto_increment,
dep_id int,
constraient emp_dept_fk foreign key (dep_id) references deparences department(id)
);
刪除外鍵:
alter table employee drop foreign key emp_dept_fk;
添加外鍵:
alter table employee add constraint emp_dept_fk foreign key(dep_id) references department(id);
3)級聯的操作(慎用,比較危險, 會把相關的記錄都被刪除, 性能也低下)
(1)alter table employee add constraint emp_dept_fk foreign key(dep_id) references department(id)
on update cascade on delete cascade;
筆記:
級聯更新: on update cascade
級聯刪除: on delete cascade