主鍵自增長、外鍵約束、級聯更新

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
			

			

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章