mysql詳細(xì)分析講解子查詢的使用
出現(xiàn)在其他語(yǔ)句中的 select 語(yǔ)句,稱為子查詢或內(nèi)查詢;外部的查詢語(yǔ)句,稱為主查詢或 外查詢 .
-- 子查詢 -- 查詢的條件來(lái)自于另一查詢的結(jié)果 SELECT * FROM t_user WHERE number=(SELECT number FROM t_user WHERE NAME='張三')
當(dāng)然子查詢也有類(lèi)型,分為以下幾種 :
- 標(biāo)量子查詢(結(jié)果集只有一行一列)
- 列子查詢(結(jié)果集只有一列多行)
- 行子查詢(結(jié)果集有一行多列)(較少)
- 表子查詢(結(jié)果集一般為多行多列)
這里我們以新建t_user表為例
需要注意的是 : 這里的分類(lèi)是根據(jù)內(nèi)嵌子查詢的結(jié)果來(lái)分的 例如上述的sql語(yǔ)句就是標(biāo)量子查詢
子查詢結(jié)果只有一行一列
接著我們根據(jù)子查詢?cè)趕ql語(yǔ)句中出現(xiàn)的位置來(lái)討論 :
select后面:僅僅支持標(biāo)量子查詢
-- select語(yǔ)句后面,將t1查詢出的結(jié)果作為子查詢的條件 SELECT t1.number, (SELECT NAME FROM t_user t2 WHERE t1.name = t2.name) FROM t_user t1
查詢結(jié)果 :
insert into , update和 delete后面 :
insert into用來(lái)為表中插入數(shù)據(jù) , 所以后面是可以跟列子查詢和表子查詢的
-- insert into 后跟子查詢 INSERT INTO t_user(number,NAME,age,birthday,weight,sex,opertime) SELECT number,NAME,age,birthday,weight,sex,NOW() FROM t_user WHERE id=3
這里需要注意的是 update與delete
UPDATE t_user SET NAME='abc' WHERE number=(SELECT number FROM t_user WHERE weight=110)
DELETE FROM t_user WHERE id=(SELECT id FROM t_user WHERE id=7)
上述這兩條sql , mysql是不允許我們這樣去執(zhí)行的 :
mysql的底層機(jī)制使得我們?cè)诓僮鞔吮淼臅r(shí)候是不能去改變此表結(jié)構(gòu)的
也就是說(shuō),子查詢不能查詢當(dāng)前正在操作的表
where 后面 : 可跟標(biāo)量子查詢, 列子查詢, 行子查詢
-- where后跟標(biāo)量子查詢 -- 查詢體重最大的人信息 SELECT * FROM t_user WHERE weight=(SELECT MAX(weight) FROM t_user) -- where后跟列子查詢 -- 查詢體重大于或等于130的人信息 SELECT * FROM t_user WHERE weight IN (SELECT weight FROM t_user WHERE weight>=130) -- where后跟行子查詢 -- 查詢年齡最大,體重最大的人的信息 SELECT * FROM t_user WHERE (age,weight) = (SELECT MAX(age),MAX(weight) FROM t_user)
from 后面 : 可跟表子查詢
表字查詢的結(jié)果是多行多列, 也就是一個(gè)表
-- 表子查詢 SELECT t.age FROM (SELECT age,weight FROM t_user)t
結(jié)果 :
到此這篇關(guān)于mysql詳細(xì)分析講解子查詢的使用的文章就介紹到這了,更多相關(guān)mysql子查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows下Mysql啟動(dòng)報(bào)1067的解決方法
這篇文章主要為大家詳細(xì)介紹了Windows下Mysql啟動(dòng)報(bào)1067的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10MySQL 隨機(jī)函數(shù)獲取數(shù)據(jù)速度和效率分析
最近做項(xiàng)目,需要做一個(gè)從mysql數(shù)據(jù)庫(kù)中隨機(jī)取幾條數(shù)據(jù)出來(lái)??偹苤琽rder by rand 會(huì)死人的。。因?yàn)楸救藢?duì)大數(shù)據(jù)量方面的只是了解的很少,無(wú)解,去找百度老師。。搜索結(jié)果千篇一律。特發(fā)到這里來(lái),供大家學(xué)習(xí),需要的朋友可以參考下2016-11-11詳解Mysql自動(dòng)備份與恢復(fù)的幾種方法(圖文教程)
本篇文章主要介紹了Mysql 自動(dòng)備份與恢復(fù),主要有三種方法,有需要的可以了解一下。2016-11-11mysql 5.7.21解壓版本安裝 Navicat數(shù)據(jù)庫(kù)操作工具安裝
這篇文章主要為大家詳細(xì)介紹了mysql 5.7.21解壓版本安裝,Navicat數(shù)據(jù)庫(kù)操作工具安裝,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02修改mysql默認(rèn)字符集的兩種方法詳細(xì)解析
下面小編就為大家介紹兩種修改mysql默認(rèn)字符集的方法。需要的朋友可以過(guò)來(lái)參考下2013-08-08Ubuntu15下mysql5.6.25不支持中文的解決辦法
Ubuntu15下mysql5.6.25出現(xiàn)亂碼,不支持中文,該問(wèn)題如何解決呢?下面看看小編是怎么解決此問(wèn)題的,需要的朋友可以參考下2015-09-09