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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL语言之DQL语言学习(十)子查询

發布時間:2025/3/20 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL语言之DQL语言学习(十)子查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

含義:

出現在其他語句中的select語句,稱為子查詢或內查詢外部的查詢語句,稱為主查詢或外查詢

分類

按子查詢出現的位置:

select后面: 僅僅支持標量子查詢

from后面: 支持表子查詢
where或having后面:★ 標量子查詢(單行)列子查詢(多行)√行子查詢
exists后面(相關子查詢) 表子查詢

按結果集的行列數不同:

標量子查詢(結果集只有一行一列>
列子查詢(結果集只有一列多行
行子查詢(結果集有一行多列)
表子查詢<結果集一般為多行多列>

一.where或having后面

1.標量子查詢

案例一:誰的工資比Abel高

SELECT last_name,salary from employees WHERE salary>(SELECT salaryFROM employeesWHERE last_name= 'Abel' )

案例二.查詢最低工資大于50號部門最低工資的部門id和其最低工資

SELECT MIN(SAlary),department_id FROM employees GROUP BY department_id HAVING MIN(salary)>(SELECT MIN(salary)FROM employeesWHERE department_id=50 )


2.列子查詢

in / not in :等于列表中的任意一個

any/some 和子查詢返回的一個值比較

all 和子查詢返回的值比較

案例一:返回location_id是1400或1700的部門中的所有員工姓名

SELECT last_name from employees WHERE department_id in( SELECT DISTINCT department_id FROM departments WHERE location_id in (1400,1700) )

3.行子查詢

查詢員工編號最小并且工資最高的員工信息

SELECT * from employees WHERE (employee_id,salary)=(SELECT MIN(employee_id),MAX(salary)from employees )


或者

SELECT * from employees WHERE (employee_id)=(SELECT MIN(employee_id)from employees ) and salary=(SELECT MAX(salary)FROM employees )

二.Select后面的子查詢

案例.查詢每個部門的員工個數

SELECT d.department_name,(SELECT COUNT(*)FROM employees eWHERE e.department_id = d.department_id ) from departments d

三,exists后的(相關子查詢)

exists 即 存在

語法:

exists(完整的查詢語句)

結果:1或0

案例:查詢有員工的部門名

SELECT department_name FROM departments d WHERE EXISTS(SELECT *FROM employees eWHERE d.department_id = e.department_id )

總結

以上是生活随笔為你收集整理的SQL语言之DQL语言学习(十)子查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。