定義:查詢中嵌套查詢就是子查詢
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、筠連ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的筠連網(wǎng)站制作公司
子查詢的本質(zhì):
找出工資大于Mark的員工名字和工資
分析:
1.查詢出Mark的工資是多少
2.查詢出高于1450工資的人
整合成子查詢
子查詢的特點:
為什么相關(guān)子查詢的效率極其低下?
結(jié)論:
性能排序/優(yōu)先使用
關(guān)聯(lián)/分組查詢無關(guān)子查詢相關(guān)子查詢
1. 找出工資比'BLAKE'多的員工
2. 列出薪金高于公司平均薪金的所有員工,所在部門
3. 查詢出工資最低的員工的姓名,工作,工資
4. 列出薪金高于在部門30工作的所有員工的薪金的員工姓名和薪金、部門名稱
或者
5.查找出職位和'MARTIN' 或者'SMITH'一樣的員工的平均工資
6. 列出薪金比“BLAKE”或“WARD”多的所有員工的編號、姓名、部門名稱、其領(lǐng)導姓名。
7. 找出各個部門中大于他所在部門平均工資的員工名和工資
8. 查找出收入(工資加上獎金),下級比自己上級還高的員工編號,員工名字,員工收入
9. 得到每個月工資總數(shù)最少的那個部門的部門編號,部門名稱,部門位置
10. 查找出部門10和部門20中,工資最高第3名到工資第5名的員工的員工名字,部門名字,部門位置
11. 以職位分組,找出平均工資最高的兩種職位
12. 查詢出各部門總薪資,平均薪資,總?cè)藬?shù),顯示部門編號,部門名稱與部門總薪資(沒有員工的部門也需要統(tǒng)計)
如果ID是主鍵或者有索引,可以直接查找:
方法一,查詢上一條記錄的SQL語句(如果有其他的查詢條件記得加上other_conditions以免出現(xiàn)不必要的錯誤):1select?*?from?table_a?where?id?=?(select?id?from?table_a?where?id??{$id}?[and?other_conditions]?order?by?id?desc?limit?1)?[and?other_conditions];查詢下一條記錄的SQL語句(如果有其他的查詢條件記得加上other_conditions以免出現(xiàn)不必要的錯誤):1select?*?from?table_a?where?id?=?(select?id?from?table_a?where?id??{$id}?[and?other_conditions]?order?by?id?asc?limit?1)?[and?other_conditions];
方法二,查詢上一條記錄的SQL語句((如果有其他的查詢條件記得加上other_conditions以免出現(xiàn)不必要的錯誤))1select?*?from?table_a?where?id?=?(select?a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9PjIP1Rvuy7hn1NBrAuW0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpAbmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1csnHDkrj6srj04rj64PH0LPj6" target="_blank" class="baidu-highlight"max/a(id)?from?table_a?where?id??{$id}?[and?other_conditions])?[and?other_conditions];
查詢下一條記錄的SQL語句(如果有其他的查詢條件記得加上other_conditions以免出現(xiàn)不必要的錯誤):1select?*?from?table_a?where?id?=?(select?min(id)?from?table_a?where?id??{$id}?[and?other_conditions])?[and?other_conditions]。
在Mysql中顯示所有用戶
1.登錄數(shù)據(jù)庫
首先,你需要使用如下命令登錄到數(shù)據(jù)庫,注意,必須是root用戶哦~
## mysql -u root -p
2.查詢用戶表
在Mysql中其實有一個內(nèi)置且名為mysql的數(shù)據(jù)庫,這個數(shù)據(jù)庫中存儲的是Mysql的一些數(shù)據(jù),比如用戶、權(quán)限信息、存儲過程等,所以呢,我們可以通過如下簡單的查詢語句來顯示所有的用戶呢。
SELECT User, Host, Password FROM mysql.user;
select count(*) where fid=2
union
select count(*) where fid in select id where fid = 2
union
select count(*) where fid in select id where fid in select id where fid = 2
具體語法記不清了,差不多就是這種結(jié)構(gòu)的