MySQL 創(chuàng)建多對(duì)多和一對(duì)一關(guān)系方法
一、創(chuàng)建多對(duì)多
1.學(xué)生表
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.插入數(shù)據(jù)
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,"數(shù)學(xué)"); 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.查詢學(xué)生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數(shù)學(xué)被誰選了
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 創(chuàng)建一對(duì)一關(guān)系
1.一對(duì)一
創(chuàng)建用戶表:
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.插入數(shù)據(jù)
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);
查詢?nèi)说娜啃畔ⅲ?/strong>
select * from users inner join users_info on users_info.user_id =users.id;
到此這篇關(guān)于MySQL 創(chuàng)建多對(duì)多和一對(duì)一關(guān)系方法的文章就介紹到這了,更多相關(guān)MySQL 創(chuàng)建多對(duì)多和一對(duì)一內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL Union合并查詢數(shù)據(jù)及表別名、字段別名用法分析
這篇文章主要介紹了MySQL Union合并查詢數(shù)據(jù)及表別名、字段別名用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了mysql使用Union合并連接查詢數(shù)據(jù)以及使用as實(shí)現(xiàn)表別名與字段別名操作,需要的朋友可以參考下2018-06-06MySQL啟動(dòng)報(bào)錯(cuò)提示發(fā)生系統(tǒng)錯(cuò)誤5,拒絕訪問的原因和解決方法
使用命令net start mysql啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)時(shí)候,出現(xiàn)如下錯(cuò)誤提示發(fā)生系統(tǒng)錯(cuò)誤5,拒絕訪問,所以本文給大家介紹了MySQL啟動(dòng)報(bào)錯(cuò)提示發(fā)生系統(tǒng)錯(cuò)誤5,拒絕訪問的原因和解決方法,需要的朋友可以參考下2024-01-01Mysql中調(diào)試存儲(chǔ)過程最簡(jiǎn)單的方法
以前同事告訴我用臨時(shí)表插入變量數(shù)據(jù)來查看,但是這種方法過于麻煩,而且Mysql沒有比較好的調(diào)試存儲(chǔ)過程的工具。今天google了下發(fā)現(xiàn)可以用select + 變量名的方法來調(diào)試2021-06-06MySQL定時(shí)器開啟、調(diào)用實(shí)現(xiàn)代碼
有些新手朋友對(duì)MySQL定時(shí)器開啟、調(diào)用不是很熟悉,本人整理測(cè)試一些,拿出來和大家分享一下,希望可以幫助你們2012-12-12Mysql數(shù)據(jù)庫(kù)之sql基本語句小結(jié)
這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)之sql基本語句,結(jié)合實(shí)例形式總結(jié)分析了MySQL數(shù)據(jù)庫(kù)連接、登錄、查看以及數(shù)據(jù)庫(kù)、數(shù)據(jù)表等常見操作技巧,需要的朋友可以參考下2019-11-11MySQL 查找價(jià)格最高的圖書經(jīng)銷商的幾種SQL語句
不同的圖書,在不同的經(jīng)銷商的價(jià)格不同,我們這里要找到每種圖書最高的經(jīng)銷商是誰? 找最低的類似了。2009-07-07MYSQL(電話號(hào)碼,身份證)數(shù)據(jù)脫敏的實(shí)現(xiàn)
在日常開發(fā)需求中會(huì)經(jīng)常遇到數(shù)據(jù)脫敏處理,比如身份證號(hào)、手機(jī)號(hào),需要使用*進(jìn)行部分替換顯示。這樣能使敏感隱私信息在一定程度上得到保護(hù)。本文就來介紹一下2021-05-05