mysql 表參照關係 MYSQL表關係

2021-10-17 17:25:27 字數 2270 閱讀 9696

表關係

一、外來鍵--foreign key

​   作用:約束當前表的某列值必須取自於另一張表的主鍵列值

​   外來鍵所在的列稱之為「外來鍵列」

​   外來鍵所在的表稱之為「外來鍵表」或「子表」

​   被外來鍵列所引用的表稱之為「主表」或「主鍵表」

語法:1.建立表的同時指定外來鍵

create table ***(

字段 型別,

constraint 外鍵名 foreign key(字段)

references 主鍵表(主鍵列)

--建立course表:id,cname,cduration

create tablecourse(

idint primary keyauto_increment,

cnamevarchar(30) not null,

cdurationint not null)--建立teacher表:id,name,age,gender,hobby,course--course_id是外來鍵,引用自course表的主鍵id

create tableteacher(

idint primary keyauto_increment,

namevarchar(30) not null,

ageint not null,

gendervarchar(2) not null,

hobbyvarchar(50) not null,

course_idint,--外來鍵約束

constraintfk_course_teacherforeign key(course_id) --設定外來鍵

references course(id) --參照主鍵(參照course的id值)參照誰就寫誰

​   2.對已有表增加外來鍵

​   alter table 表名

​   add constraint 外鍵名

​   foreign key(字段)

​   references 主鍵表(主鍵)

--建立student表:id,name,age,gender,school,class_id,major_id

create tablestudent(

idint primary keyauto_increment,

namevarchar(30) not null,

ageint not null,

gendervarchar(2) not null,

schoolvarchar(100) not null,

class_idint not null,

major_idint not null);--建立classinfo表:id,classname,status

create tableclassinfo(

idint primary keyauto_increment,

classnamevarchar(30) not null,

statusvarchar(2) not null);--更新student表結構,增加外來鍵在class_id,引用子classinfo表的主鍵id

alter tablestudentadd constraintfk_class_studentforeign key(class)references classinfo(id)

3.刪除外來鍵

alter table 表名 drop foreign key 外鍵名;

4.檢視外鍵名

show create table 表名;

二、級聯操作

​ 1.語法:

alter table 表名

add constraint 外鍵名

foreign key(字段)

references 主鍵表(主鍵)

on delete 級聯操作

on update 級聯操作

--為score表中的stu_id增加外來鍵,並設定級聯操作

alter tablescoreadd constraintfk_student_scoreforeign key(stu_id)referencesstudent(id)on delete cascade

on update cascade

​ 2.級聯操作取值

(1)cascade

資料級聯刪除、更新(主表有啥動作,子表跟著有啥動作)

(2)restrict(預設)

子表中有關聯資料,那麼主表中就不允許做刪除、更新。

(3)set null

主表刪除資料時子表中的相關資料會設定為null

mysql 主屬性 參照 mysql型別參照

mysql資料庫內容總結 數字型別 tinyint m unsigned zerofull 1個位元組 預設的是有符號的 128 127 unsigned 無符號整數 範圍0 255 m 代表寬度 在zerofull時才有意義 只是乙個顯示效果,不會影響到實際的資料長度 zerofull 零填充 如...

mysql 參照表 MySQL外部參照表

由於某些原因,我需要對外部參照表進行一些幫助,因此我正在繪製空白.我有以下3張桌子 products id stock number size qty category id name description img 外部參照表 category prod cat id prod id 考慮到這一點...

mysql 關係 MySQL之表關係

mysql表關係 一對多關係 一對多與多對一是乙個概念,指的是乙個實體的某個資料與另外乙個實體的多個資料有關聯關係。舉例,學校中乙個學 院可以有很多的學生,而乙個學生只屬於某乙個學院 通常情況下 學院與學生之間的關係就是一對多的關係,通過外來鍵關聯來實現這種關係。建立學院表 mysql create...