sql語句之多表關係 一對多 多對多

2021-10-09 17:42:44 字數 3314 閱讀 9867

#建立主表(分類表)

create

table category(

cid int

primary

keyauto_increment

, cname varchar(20

));#建立從表(產品表)

create

table product(

pid int

primary

keyauto_increment

, pname varchar(20

),price double

, cid int

-- 外來鍵 表示屬於哪個分類

);

》給主表和從表之間新增外來鍵約束 

`alter

table 從表 add

[constraint

][外來鍵名稱]

foreign

key(從表外來鍵欄位名)

references 主表 (主表的主鍵);`

alter

table product add

foreign

key(cid)

references category(cid)

》給主表新增資料

insert

into category value

(null

,'電子'

)insert

into category value

(null

,'服裝'

)》給從表新增資料(新增資料是必須依賴主表)

insert

into product value

(null

,'聯想'

,2000,1

)insert

into product value

(null

,'華為'

,4000,1

)insert

into product value

(null

,'真維斯'

,100,2

)

多對多建立流程

》建立訂單表(主表) order

》建立中間表(從表) 儲存交叉線

》給中間表建立外來鍵約束(2次)

》給訂單表新增資料(隨意)

》給中間表新增資料(受限)

#建立從表(產品表)

create

table product(

pid int

primary

keyauto_increment

, pname varchar(20

),price double

, cid int

-- 外來鍵 表示屬於哪個分類);

create

table orders(

oid int

primary

keyauto_increment

, money double);

create

table product(

pid int

primary

keyauto_increment

, pname varchar(20

),price double

, cid int

-- 外來鍵 表示屬於哪個分類

)insert

into product value

(null

,'聯想'

,2000,1

)insert

into product value

(null

,'華為'

,4000,1

)insert

into product value

(null

,'真維斯'

,100,2

)create

table orders_product(

oid int

,-- 必須存在 外來鍵

pid int

-- 必須存在 外來鍵);

#給中間表建立外來鍵約束(2次)

建立表:多對多的關係(演員表與角色表)

》 建立演員表(左側主表)

》 建立角色表(右側主表)

》建立中間表(從表)

》建立外來鍵約束(2次)

》給演員表新增資料

》給角色表新增資料

》給中間表新增資料

# 建立演員表(左側主表)

create

table users(

uid int

primary

keyauto_increment

, uname varchar(20

))# 建立角色表(右側主表)

create

table role(

rid int

primary

keyauto_increment

, rname varchar(20

))# 建立中間表(從表)

create

table users_role(

rid int

,-- 資料必須在role存在

uid int

-- 資料必須在users存在

)#建立外來鍵約束兩次

多表設計之間的關係 一對一,一對多,多對多

5 多表設計之間的關係 一對多的關係 例如 乙個部門對多個員工,乙個員工只能屬於乙個部門 多對多的關係 例如 學生選課,乙個學生可以選多門課程,一門可能可以被多個學生選擇 一對一的關係 例如 乙個人只能有乙個身份證,乙個身份證只能有乙個人 6 表與表一對多的關係 在一對多時 多的表中新增乙個外來鍵,...

ibatis配置多表關聯(一對一 一對多 多對多)

ibatis的多表關聯。ibatis的表關聯,和資料庫語句無關,是在程式中,把若干語句的結果關聯到一起。這種關聯形式,雖然在大資料量時是很奢侈的行為,但是看起來很乾淨,用起來也很方便。這裡用表lock和key為例,乙個lock可以配多個key。create table lock id int,loc...

表關係 一對一,一對多,多對多

可以在資料庫圖表中的表之間建立關係,以顯示乙個表中的列與另乙個表中的列是如何相鏈結的。更好的方法是將有關出版社的資訊在單獨的表,publishers,中只儲存一次。然後可以在titles表中放置乙個引用出版社表中某項的指標。為了確保您的資料同步,可以實施titles和publishers之間的參照完...