MySQL如何創造多對多和一對一關係
mysql
一、建立多對多
1.學生表
create table students ( id int not null primary key auto_increment, name varchar(45) not null )engine=innodb default charset=utf8;
登入後複製
2.課程表
create table courses ( id int not null primary key auto_increment, name varchar(45) not null )engine=innodb default charset=utf8;
登入後複製
3.中間表
create table stu_cour ( id int not null primary key auto_increment course_id int not null, stu_id int not null, constraint cour foreign key(course_id) references courses(id), constraint stu foreign key(stu_id) references students(id) )engine=innodb default charset=utf8;
登入後複製
4.插入資料
insert into students values (0,"小王"); insert into students values (0,"小宋"); insert into students values (0,"小李"); insert into courses values (0,"语文"); insert into courses values (0,"数学"); insert into courses values (0,"英语"); insert into stu_cour values (0,1,1); insert into stu_cour values (0,1,2); insert into stu_cour values (0,1,3); insert into stu_cour values (0,2,1); insert into stu_cour values (0,2,3); insert into stu_cour values (0,3,2); insert into stu_cour values (0,3,3);
登入後複製
5.查詢學生1選了哪些科目
SELECT courses.id,courses.name FROM courses INNER JOIN stu_cour ON stu_cour.course_id=courses.id INNER JOIN students ON students.id= 1 and students.id = stu_cour.stu_id;
登入後複製
#6.查詢id=2數學被誰選了
SELECT students.name FROM students INNER JOIN stu_cour ON stu_cour.stu_id =students.id INNER JOIN courses ON courses.id= 2 and stu_cour.course_id = courses.id;
登入後複製
二、MySQL 建立一對一關係
1.一對一
建立使用者表:
CREATE TABLE users ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL )ENGINE=InnoDB DEFAULT CHARSET=utf8;
登入後複製
使用者資訊表:
CREATE TABLE users_info ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, age int NOT NULL, phone varchar(11) NOT NULL, user_id int not null, constraint user_info foreign key(user_id) references users(id) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
登入後複製
2.插入資料
insert into users values (0,"小王"); insert into users values (0,"小宋"); insert into users_info values (0,12,'13812345678',1); insert into users_info values (0,14,'13812345679',2);
登入後複製
查詢人的完整資訊:
select * from users inner join users_info on users_info.user_id =users.id;
登入後複製
以上是MySQL如何創造多對多和一對一關係的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何修復 MySQL 8.4 上的 mysql_native_password 未載入錯誤
