日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MySQL多表聯查的實現思路

瀏覽:29日期:2023-02-18 16:43:46
目錄
  • 多表聯查場景
    • 一對一
    • 多對一
    • 多對多
    • 內連接查詢
    • 外連接
    • 自連接
    • 聯合查詢
    • 子查詢

多表聯查場景

一對一

用戶與用戶信息表:當用戶的信息數據過多時,我們可以將其分成兩個表分別對應用戶基本信息和用戶的詳情信息。

create table user(    `id` int auto_increment primary key comment"用戶id",    `name` varchar(10),    `age` varchar(10),    `gender` char,    `tel` varchar(30),    `school` varchar(20),    `addr` varchar(20),    `degree` varchar(10),    `university` varchar(10));

當用戶信息過多時,就可以使用外鍵進行關聯。在任意一方加入外鍵,關聯另一方主鍵,并且設置外鍵為唯一的UNIQUE如下實現:

create table user(    `id`  	 int auto_increment primary key,    `name`   varchar(10),    `age`    varchar(10),    `gender` char);create table user_info(    `id` int auto_increment primary key ,    `tel`varchar(30),    `school`     varchar(20),    `addr`       varchar(20),    `degree`     varchar(10),    `university` varchar(10),    `user_id` int unique,    constraint fk_user_info foreign key (user_id) references user(id));

多對一

部門與員工:一個員工對應一個部門,一個部門對應多個員工

員工指向多的一方,部門指向一的一方。此時應該在員工表中創建外鍵,指向部門表中的主鍵

# 員工表create table emp(  `emp_id`      int auto_increment primary key,  `emp_name`    varchar(20) not null,  `emp_gender`  char,  `emp_tel`     varchar(30),  `emp_dept_id` int,  constraint fk_emp_dept foreign key (emp_dept_id) references dept (dept_id));# 部門表create table dept(  `dept_id` int auto_increment primary key,  `dept_name` varchar(20) not null);

查詢方法:

-- 正常單表查select * from emp;-- 全查 笛卡爾積select * from emp,dept;-- 聯查 消除無效的笛卡爾積select * from emp,dept where emp_dept_id = dept.dept_id;

多對多

學生與課程:一個學生可以選修多門課程,一門課程可以被多個學生選擇

此時我們應該在學生表與課程表之間建立中間表。中間表包含兩個外鍵,分別對應學生表和課程表的主鍵

首先我們準備好數據,學生表+課程表+中間信息表

# 學生表CREATE TABLE student(	id INT auto_increment PRIMARY KEY COMMENT "主鍵ID",	name VARCHAR(10) COMMENT "姓名",	no VARCHAR(10) COMMENT "學號")COMMENT "學生表";INSERT INTO student VALUES(NULL,"小癟三","2001"),(NULL,"小癟四","2002"),(NULL,"小癟五","2003"),(NULL,"小癟六","2004");# 課程表CREATE TABLE course(	id INT auto_increment PRIMARY KEY COMMENT"主鍵ID",	name VARCHAR(10) COMMENT "課程名稱")COMMENT "課程表";INSERT INTO course VALUES(NULL,"java"),(NULL,"PHP"),(NULL,"MySQL"),(NULL,"Hadoop");# 學生課程關系表(中間表)CREATE TABLE student_course(	id INT auto_increment COMMENT "主鍵" PRIMARY KEY,	student_id INT NOT NULL COMMENT "學生ID",	course_id INT NOT NULL COMMENT "課程ID",	CONSTRAINT fk_course_id FOREIGN KEY (course_id) REFERENCES course (id),	CONSTRAINT fk_student_id FOREIGN KEY (student_id) REFERENCES student (id))COMMENT "學生——課程關系中間表";INSERT INTO student_course VALUES(null,1,1),(null,1,2),(null,1,3),(null,2,2),(null,2,3),(null,3,4);

我們切換IDEA打開可以清晰的看到三個表之間的關系,中間信息表中的兩個外鍵:student_id與course_id將學生表和課程表關聯了起來

內連接查詢

查詢A集合與B集合的交集

-- 方式一select [字段列表] from 表1,表2 where 條件...;-- 方式二select [字段列表] from 表1 inner join 表2 on 條件...;

示例:查詢所有員工與其所屬部門

-- 方式一select emp_name,dept_name from emp inner join dept d on emp.emp_dept_id = d.dept_id;-- 方式二select emp_name,dept_name from emp,dept where emp.emp_dept_id = dept.dept_id;

外連接

右外連接:查詢右表所有數據以及兩表交集部分數據

select 字段列表 from 表1 right outer join 表2 on 條件...;

左外連接:查詢左表所有數據以及兩表交集部分數據

select 字段列表 from 表1 left outer join 表2 on 條件...;

示例:

-- 2. 查詢員工全部信息及其對應的部門信息 左外連接select  e.*,dept_name from emp e left join dept d on d.dept_id = e.emp_dept_id;-- 3. 查詢全部部門和其對應的所有員工信息 右外連接select d.*,e.emp_name from emp e right join dept d on e.emp_dept_id = d.dept_id;

自連接

當前表與自身的連接查詢,自連接必須使用別名

格式:

select 字段列表 from 表A 別名 join 表A 別名 on 條件...;

在員工表中,所有的普通員工、管理者都是員工。查詢每個員工歸屬哪個管理者管理就需要用到自連接

select a.name,b.name from emp a join emp b on a.emp_id = b.manager_id;

聯合查詢

關鍵字 union [all] 將兩條sql語句查詢的結果拼接起來

-- 查詢年齡大于50的員工  和薪資小于10000的員工select * from emp where emp.emp_age > 50union allselect * from emp where emp.emp_salary < 10000;

加上all表示不會去重,不加all表示去重復(即同時滿足兩條sql語句的只出現一次即可)

多張表的列數必須保持一致,字段類型也需要一致

子查詢

子查詢是指在SQL語句中嵌套select語句進行嵌套查詢

select * from t1 where column1 =(select column1 from t2);

子查詢的外部語句可以是insert、uodate、delete、select的任何一個

標量子查詢示例:查詢‘ 開發部 ’的全部員工信息

首先你可以利用正常的兩條sql去查詢:

-- 查詢“開發部”的所有員工-- 1. 兩條語句查詢select dept_id from dept where dept_name = "開發部";select emp_name from emp where emp_dept_id = 1;

或者你可以使用內連接方式進行聯查:

-- 內連接select e.emp_name,d.dept_name from emp e inner join dept d on e.emp_dept_id = d.dept_id where dept_name = "開發部";

或者使用子查詢:

-- 使用子查詢select * from emp where emp_dept_id = (select dept_id from dept where dept_name = "開發部");

到此這篇關于MySQL多表聯查的實現思路的文章就介紹到這了,更多相關MySQL多表聯查內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: MySQL
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费久久99精品国产| 日韩精品91亚洲二区在线观看| 三级在线观看一区二区| 日韩成人三级| 久久99久久久精品欧美| 亚洲精品观看| 天堂网在线观看国产精品| 水蜜桃久久夜色精品一区| 蜜桃av一区二区三区电影| 日韩在线短视频| 狠狠久久伊人| 另类欧美日韩国产在线| 日韩精彩视频在线观看| 日韩在线一二三区| 99视频一区| 婷婷综合五月| 99视频精品全部免费在线视频| 国产福利资源一区| 午夜在线一区| 99国产精品久久久久久久成人热| 日韩另类视频| 久久久久蜜桃| 亚洲欧美日韩精品一区二区| 免费视频久久| 人人爱人人干婷婷丁香亚洲| 欧美1区2区3| 伊人久久在线| 国产专区一区| 蜜臀久久久久久久| 国产欧美日韩亚洲一区二区三区| 国产成人久久精品一区二区三区| 日韩中文影院| 亚洲精品在线国产| 国产成人免费av一区二区午夜| 中文字幕系列一区| 久久国产高清| 久久不见久久见免费视频7| 日韩免费久久| 99国产精品久久久久久久| 婷婷视频一区二区三区| 麻豆久久久久久| 极品日韩av| 日韩高清国产一区在线| 中文在线免费视频| 一区二区不卡| 黄毛片在线观看| 亚洲一二av| 精品久久福利| 国产精品日韩欧美一区| 国产精品17p| 精品91久久久久| 国产精品天天看天天狠| 激情婷婷欧美| 日本视频在线一区| 久久天堂成人| 国产欧美日韩在线一区二区| 欧美日韩中文一区二区| 久久国产乱子精品免费女| 欧美亚洲激情| 国产极品一区| 性色av一区二区怡红| 精品欠久久久中文字幕加勒比| 久久www成人_看片免费不卡| 久久久久观看| 蜜桃一区二区三区在线| 日韩综合一区| 清纯唯美亚洲综合一区| 国内精品福利| 国产精品网站在线看| 亚洲精品网址| 精品久久91| 日韩影院在线观看| 亚洲四虎影院| 国产欧美日韩亚洲一区二区三区| 欧美成人基地| 国产毛片久久久| 中文欧美日韩| 91欧美在线| 欧美亚洲网站| 男女精品网站| 亚洲一级黄色| 国产精品成人一区二区不卡| 日韩av在线免费观看不卡| 久久亚洲国产| 精品在线网站观看| 久久狠狠久久| 蜜臀久久久久久久| 91精品1区| 一本大道色婷婷在线| 国产精品嫩草99av在线| 91精品国产自产在线观看永久∴| 国产乱码精品一区二区亚洲| 亚洲综合婷婷| 亚洲一区国产| 91久久久久| 久久国产欧美| 日韩亚洲精品在线| 久久精品国产亚洲夜色av网站| 国产精品午夜一区二区三区| 激情中国色综合| 国产精品xxx| 欧美日韩精品一区二区三区在线观看| 亚洲一区二区三区免费在线观看 | 婷婷精品视频| 动漫av一区| 日韩一区精品| 日韩一级精品| 欧美1级日本1级| 久久精品影视| 国产一区2区| 久久精品午夜| 国产精品麻豆成人av电影艾秋 | 久久久久久色| 一区二区电影| 国产亚洲网站| 9色精品在线| 久久国产亚洲精品| 精品成人免费一区二区在线播放| 精品视频久久| 欧美精品成人| 国产精品日本一区二区不卡视频| 欧美日韩黄网站| 国产亚洲高清在线观看| 日韩一区二区三区精品 | 中文字幕免费精品| 在线看片日韩| 免费久久99精品国产自在现线| aⅴ色国产欧美| 丝袜美腿亚洲色图| 亚洲日产国产精品| 日本成人在线网站| 国产精品久久久久久妇女| 国产精品激情电影| 日韩国产高清在线| 国产精品亲子伦av一区二区三区| 欧美国产极品| 欧美激情91| 日韩在线二区| 黄色免费成人| 亚洲va久久| 麻豆视频观看网址久久| 精品一区二区三区中文字幕| 日韩电影二区| 亚洲二区三区不卡| 亚洲色图网站| 国产精品对白| 日韩另类视频| 日本大胆欧美人术艺术动态| 日本成人中文字幕| 精品国产欧美日韩| 久久精品国产68国产精品亚洲| 欧美91精品| 免费成人av在线播放| 国产欧美一区二区三区精品观看 | 日韩av片子| 91成人超碰| 日本成人在线不卡视频| 美女视频黄 久久| 婷婷成人在线| 日本在线成人| 久久天堂影院| 夜久久久久久| 国产欧美日韩影院| av资源新版天堂在线| 欧美另类综合| 日韩欧美久久| 国产一区一一区高清不卡| 亚洲成a人片| 日韩精品一二三| 精品国产aⅴ| 欧美中文日韩| 麻豆高清免费国产一区| 蜜臀91精品国产高清在线观看| 亚洲另类av| 97精品国产福利一区二区三区| 欧美中文字幕| 粉嫩av一区二区三区四区五区| 亚州av乱码久久精品蜜桃| 国产欧美日韩综合一区在线播放| 精品一区二区三区亚洲| 国产精品99免费看| 国产精品欧美在线观看| 欧美日韩一区二区三区视频播放| 亚洲人亚洲人色久| 四季av一区二区凹凸精品| 亚洲欧美日韩国产一区二区| 久久只有精品| 日本大胆欧美人术艺术动态| 国产一区丝袜| 亚洲乱码一区| 欧美不卡高清一区二区三区| 亚洲精品福利| 日韩精品电影| 国产欧美日韩影院| 婷婷色综合网| 麻豆精品视频在线| 综合五月婷婷| 宅男在线一区| 精品亚洲免a| 日韩va亚洲va欧美va久久|