日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 表结构关系_mysql 表关系 与 修改表结构

發布時間:2025/4/16 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 表结构关系_mysql 表关系 与 修改表结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysql 表關系 與 修改表結構

兩張表關系

多對一 以員工和部門舉例 多個員工對應一個部門 foreign key 永遠是在多的那張表中設置外鍵

"""

從左邊的表思考,這張表的多條信息是否能對應上右邊表的一條信息,能對應上(成立),再從右邊的表思考,

右表的多條信息是否能對應上左表的一條信息(不成立),那么兩張表就可以確定是多對一關系,右表是多,左表是一,右邊表就是設置外鍵的表

"""

多個員工對應一個部門

員工表關聯部門表

員工表是多 部門表是一

foreign key(字段信息多的) references 表(字段信息少的)

多對多 以書和作者舉例 多個作者合作出一本書(成立),多本書是一個作者(成立)

這時就(產成第三張表) 把兩個表的id,作為第三張表的外鍵,創建關系表

多個作者可以共同出版一本書

多本書可以是一個作者寫的

關系表設置外鍵 foreign key 分別對應作者和書的id

一對一 以客戶 和 學員為例 (一個客戶報名繳費后,只能對應一個學員)

先有客戶表,客戶成交后成為學員,后出現的學員表設置外鍵,并且要約束這個外鍵是唯一,關聯客戶表一對一關系成立

如果1和2都不成立,而是左表的一條記錄唯一對應右表的一條記錄,反之亦然。這種情況很簡單,

就是在左表foreign key右表的基礎上,將左表的外鍵字段設置成unique即可

分析步驟

"""

#1、先站在左表的角度去找

是否左表的多條記錄可以對應右表的一條記錄,如果是,則證明左表的一個字段foreign key 右表一個字段(通常是id)

#2、再站在右表的角度去找

是否右表的多條記錄可以對應左表的一條記錄,如果是,則證明右表的一個字段foreign key 左表一個字段(通常是id)

#3、總結:

#多對一:

如果只有步驟1成立,則是左表多對一右表

如果只有步驟2成立,則是右表多對一左表

#多對多

如果步驟1和2同時成立,則證明這兩張表時一個雙向的多對一,即多對多,需要定義一個這兩張表的關系表來專門存放二者的關系

#一對一:

如果1和2都不成立,而是左表的一條記錄唯一對應右表的一條記錄,反之亦然。這種情況很簡單,

就是在左表foreign key右表的基礎上,將左表的外鍵字段設置成unique即可

"""

修改表結構

對表結構進行修改的情況在那些時候發生?

創建項目之前

項目開發、運行過程中"""

語法:

1. 修改表名

alter table 表名

rename 新表名;

2. 增加字段

alter table 表名

add 字段名 數據類型 [完整性約束條件…],

add 字段名 數據類型 [完整性約束條件…];

3. 刪除字段

alter table 表名

drop 字段名;

4. 修改字段

alter table 表名

modify 字段名 數據類型 [完整性約束條件…];

alter table 表名

change 舊字段名 新字段名 舊數據類型 [完整性約束條件…];

alter table 表名

change 舊字段名 新字段名 新數據類型 [完整性約束條件…];

5.修改字段排列順序/在增加的時候指定字段位置

alter table 表名

add 字段名 數據類型 [完整性約束條件…] first;

alter table 表名

add 字段名 數據類型 [完整性約束條件…] after 字段名;

alter table 表名

change 字段名 舊字段名 新字段名 新數據類型 [完整性約束條件…] first;

alter table 表名

modify 字段名 數據類型 [完整性約束條件…] after 字段名;

6.去掉null約束

create table t(id int unique,name char(10) not null);

alter table t modify name char(10) null;

7.添加null約束

alter table t modify name char(10) not null;

8.去掉unique約束

alter table t drop index id;

9.添加unique約束

alter table t modify id int unique;

10.刪除表

drop table 表名;

"""

alter table 表名 modify 修改已經存在的字段 的類型 寬度 約束

alter table 表名 change 修改已經存在的字段 的類型 寬度 約束 和 字段名字

alter table 表名 add 字段名 數據類型(寬度) 約束 first/after name

alter table 表名 drop 字段名

alter table 表名 modify name varchar(12) not null

alter table 表名 change name new_name varchar(12) not null

id name age

alter table 表名 modify age int not null after id;

alter table 表名 modify age int not null first;

內容來源于網絡如有侵權請私信刪除

總結

以上是生活随笔為你收集整理的mysql 表结构关系_mysql 表关系 与 修改表结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。