MySQL關聯關係之多對一關係的建立與查詢

2021-10-08 21:48:57 字數 1382 閱讀 4035

多對一關係在關聯關係中是很常見的,就比如:

乙個班級對應著多個學生,乙個學生只對應乙個班級。

一張銀行卡對應乙個人,乙個人對應多張銀行卡。

一瓶水對應乙個人,乙個人可以對應多瓶水…………

…………

想要用mysql語句建立多對一關係的話一定要弄清楚外來鍵創在哪一方。

一般都是將外來鍵創在多的一方,以免資料冗餘。

首先建立乙個班級資料庫表

create table class

( cid int(10

) not null primary key,

cname varchar(20

));

然後建立乙個學生資料庫表
create table student

( sid int(10

) not null primary key,

sname varchar(20

),classid int(10

) not null

);

建立外來鍵
alter table student add constraint fk_student_classid foreign key

(classid) references class

(cid)

;

至此就完成了對mysql的多對一的關聯關係的建立。

新增資料

insert into class

value(1

,'一班'),

(2,'二班'

);

insert into student value(1

,'學生1',1

),(2

,'學生2',1

),(3

,'學生3',2

),(4

,'學生4',2

);

查詢
mysql> select class

.cname,student.sname from

class

inner join student on class

.cid=student.classid;+--

-----+

-------

+| cname | sname |+--

-----+

-------

+| 一班 | 學生1

|| 一班 | 學生2

|| 二班 | 學生3

|| 二班 | 學生4|+

-------

+-------+

4 rows in

set(

0.00 sec)

建立多對一關係

在資料庫設計中,很多實體之前並不是簡單的一對一關係。有些可能是多對一,多對多關係。下面的文章中以常見的客戶訂單之間的關係為例,介紹在hibernate中,如果去配置多對一的關係。1.實體分析 客戶和訂單之間是一對多的關係,或者說訂單和客戶之間是多對一的關係。按照上面的思想,可以設計出兩種方式的類關係...

一對一關係

1 共享主鍵方式 共享主鍵方式就是限制兩個資料表的主鍵使用相同的值,通過主鍵形成一對一的對映關係。如 學員的登入帳號資訊和學員的詳細分別存放到兩張不同的表中。表 持久化類 public class student public class stupwd student.hbm.xml cascade...

hibernate多對一關係對映

多對一雙向關聯 多對一與一對多 假設使用者user和idcard多對多關聯 user中存在屬性set屬性儲存多個idcard,idcard中存在user屬性 user對映檔案 idcard table指定集合表名,此處已告訴引用型別,故可省略 集合外來鍵,引用對方表中,對應我方表主鍵 也可為其他屬性...