數據庫表的主外鍵


主鍵

主鍵(primary key):全稱叫做“主鍵約束”,可以是一列或者多列組合,其值可以唯一標識這條數據。

所以主鍵唯一性,不可以為空。

創建主鍵:

創建表的時候創建主鍵

CREATE  TABLE  food(id INT PRIMARY KEY,name CHAR(32));

在這里插入圖片描述
創建主鍵,並且自增長
(就是插入數據時可不指定主鍵字段,一般都為id int類型)
缺陷:
如果刪除之前的數據,不會自動填充補全數字,如把id=3的數據從表中刪除
1
2
4
5
這樣的,中間3會沒有,空的

CREATE TABLE food(id INT PRIMARY KEY AUTO_INCREMENT,name CHAR(32));

在這里插入圖片描述

添加主鍵:

在已經存在的表當中添加主鍵(字段是已經存在的字段)

ALTER TABLE food ADD PRIMARY KEY (id);

在這里插入圖片描述

ALTER TABLE food ADD PRIMARY KEY AUTO_INCREMENT (id); 由於版本 問題,當前命令不會報錯,但是無法將主鍵設置自增長。導致添加的 數據主鍵為0

修改為自增長:modify
ALTER TABLE food MODIFY id INT AUTO_INCREMENT PRIMARY EKY;

在這里插入圖片描述
添加實際上是將一個已經存在的字段修改為主鍵

**刪除主鍵:**
ALTER TABLE food DROP PRIMARY KEY ;

在這里插入圖片描述

刪除主鍵只是刪除了主鍵類型,並沒有刪除字段
在這里插入圖片描述

如果主鍵設置自增長,先通過修改語句去掉自增長,然后在刪除主鍵。
ALTER TABLE food MODIFY id INT; 去掉自增長
ALTER TABLE food DROP PRIMARY KEY ; 刪除主鍵

外鍵

外鍵:(foreign key):全稱叫做“外鍵約束”,主要用來約束一對多關系, 一對多關系當中,多表當中用外鍵來關聯一表當中的主鍵字段。

create table parent(id int primary key auto_increment,name char(32));

create table child(
id int primary key auto_increment,
name 	char(32),
p_id int, 
foreign key(p_id) references parent(id)
);

1、必須先有外鍵字段,再設置外鍵
2、一表必須先創建出來,最好有主鍵;
3、外鍵字段的數據必須一表對應字段(主鍵)有的數據。

多對多關系中,需在關系表創建時設置多個外鍵,對應相應表中的主鍵字段

在這里插入圖片描述
在這里插入圖片描述

多對多關系中:
專業:
在這里插入圖片描述
課程:
在這里插入圖片描述
關系:
在這里插入圖片描述
創建多對多關系:
創建專業表

create table major(id int primary key auto_increment,name char(32));

創建課程表

create table course(id int primary key auto_increment,name char(32));

創建關系表

create table major_course(
id int primary key auto_increment, 設置主鍵
major_id int, 設置和專業關聯的字段
course_id int, 設置和課程關聯的字段
foreign key(major_id) references major(id), 使用major_id和major表的	id字段進行外鍵關聯
foreign key(course_id) references course(id)使用course_id和course表	的id字段進行外鍵關聯
);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM