日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

[JavaWeb-MySQL]多表查询(内连接,外连接,子查询)

發(fā)布時(shí)間:2023/12/4 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [JavaWeb-MySQL]多表查询(内连接,外连接,子查询) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

多表查詢的分類:

1. 內(nèi)連接查詢:1. 隱式內(nèi)連接:使用where條件消除無用數(shù)據(jù)* 例子:-- 查詢所有員工信息和對應(yīng)的部門信息SELECT * FROM emp,dept WHERE emp.`dept_id` = dept.`id`;-- 查詢員工表的名稱,性別。部門表的名稱SELECT emp.name,emp.gender,dept.name FROM emp,dept WHERE emp.`dept_id` = dept.`id`;SELECT t1.name, -- 員工表的姓名t1.gender,-- 員工表的性別t2.name -- 部門表的名稱FROMemp t1,dept t2WHERE t1.`dept_id` = t2.`id`;2. 顯式內(nèi)連接:* 語法: select 字段列表 from 表名1 [inner] join 表名2 on 條件* 例如:* SELECT * FROM emp INNER JOIN dept ON emp.`dept_id` = dept.`id`; * SELECT * FROM emp JOIN dept ON emp.`dept_id` = dept.`id`; 3. 內(nèi)連接查詢:1. 從哪些表中查詢數(shù)據(jù)2. 條件是什么3. 查詢哪些字段2. 外鏈接查詢:1. 左外連接:* 語法:select 字段列表 from 表1 left [outer] join 表2 on 條件;* 查詢的是左表所有數(shù)據(jù)以及其交集部分。* 例子:-- 查詢所有員工信息,如果員工有部門,則查詢部門名稱,沒有部門,則不顯示部門名稱SELECT t1.*,t2.`name` FROM emp t1 LEFT JOIN dept t2 ON t1.`dept_id` = t2.`id`;2. 右外連接:* 語法:select 字段列表 from 表1 right [outer] join 表2 on 條件;* 查詢的是右表所有數(shù)據(jù)以及其交集部分。* 例子:SELECT * FROM dept t2 RIGHT JOIN emp t1 ON t1.`dept_id` = t2.`id`;3. 子查詢:* 概念:查詢中嵌套查詢,稱嵌套查詢?yōu)樽硬樵儭?- 查詢工資最高的員工信息-- 1 查詢最高的工資是多少 9000SELECT MAX(salary) FROM emp;-- 2 查詢員工信息,并且工資等于9000的SELECT * FROM emp WHERE emp.`salary` = 9000;-- 一條sql就完成這個(gè)操作。子查詢SELECT * FROM emp WHERE emp.`salary` = (SELECT MAX(salary) FROM emp);* 子查詢不同情況1. 子查詢的結(jié)果是單行單列的:* 子查詢可以作為條件,使用運(yùn)算符去判斷。 運(yùn)算符: > >= < <= =* -- 查詢員工工資小于平均工資的人SELECT * FROM emp WHERE emp.salary < (SELECT AVG(salary) FROM emp);2. 子查詢的結(jié)果是多行單列的:* 子查詢可以作為條件,使用運(yùn)算符in來判斷-- 查詢'財(cái)務(wù)部'和'市場部'所有的員工信息SELECT id FROM dept WHERE NAME = '財(cái)務(wù)部' OR NAME = '市場部';SELECT * FROM emp WHERE dept_id = 3 OR dept_id = 2;-- 子查詢SELECT * FROM emp WHERE dept_id IN (SELECT id FROM dept WHERE NAME = '財(cái)務(wù)部' OR NAME = '市場部');3. 子查詢的結(jié)果是多行多列的:* 子查詢可以作為一張?zhí)摂M表參與查詢-- 查詢員工入職日期是2011-11-11日之后的員工信息和部門信息-- 子查詢SELECT * FROM dept t1 ,(SELECT * FROM emp WHERE emp.`join_date` > '2011-11-11') t2WHERE t1.id = t2.dept_id;-- 普通內(nèi)連接SELECT * FROM emp t1,dept t2 WHERE t1.`dept_id` = t2.`id` AND t1.`join_date` > '2011-11-11'

總結(jié)

以上是生活随笔為你收集整理的[JavaWeb-MySQL]多表查询(内连接,外连接,子查询)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。