mysql詳細(xì)分析講解子查詢的使用
出現(xiàn)在其他語(yǔ)句中的 select 語(yǔ)句,稱為子查詢或內(nèi)查詢;外部的查詢語(yǔ)句,稱為主查詢或 外查詢 .
-- 子查詢 -- 查詢的條件來自于另一查詢的結(jié)果 SELECT * FROM t_user WHERE number=(SELECT number FROM t_user WHERE NAME='張三')
當(dāng)然子查詢也有類型,分為以下幾種 :
- 標(biāo)量子查詢(結(jié)果集只有一行一列)
- 列子查詢(結(jié)果集只有一列多行)
- 行子查詢(結(jié)果集有一行多列)(較少)
- 表子查詢(結(jié)果集一般為多行多列)
這里我們以新建t_user表為例
需要注意的是 : 這里的分類是根據(jù)內(nèi)嵌子查詢的結(jié)果來分的 例如上述的sql語(yǔ)句就是標(biāo)量子查詢

子查詢結(jié)果只有一行一列
接著我們根據(jù)子查詢?cè)趕ql語(yǔ)句中出現(xiàn)的位置來討論 :
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用來為表中插入數(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)的
也就是說,子查詢不能查詢當(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)文章
mysql數(shù)據(jù)庫(kù)開發(fā)規(guī)范【推薦】
這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)開發(fā)規(guī)范的相關(guān)內(nèi)容,還是十分不錯(cuò)的,這里給大家分享下,需要的朋友可以參考。2017-10-10
淺談innodb的索引頁(yè)結(jié)構(gòu),插入緩沖,自適應(yīng)哈希索引
下面小編就為大家?guī)硪黄獪\談innodb的索引頁(yè)結(jié)構(gòu),插入緩沖,自適應(yīng)哈希索引。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03
MySQL中case?when對(duì)NULL值判斷的踩坑記錄
最近在學(xué)習(xí)Hive基礎(chǔ)知識(shí)時(shí),遇到了遇到了Case?When?Else?End語(yǔ)法,這篇文章主要給大家介紹了關(guān)于MySQL中case?when對(duì)NULL值判斷的踩坑記錄,需要的朋友可以參考下2021-12-12
MySQL性能優(yōu)化之路---修改配置文件my.cnf
mysql數(shù)據(jù)庫(kù)的優(yōu)化,算是一個(gè)老生常談的問題了,網(wǎng)上也有很多關(guān)于各方面性能優(yōu)化的例子,今天我們要談的是MySQL 系統(tǒng)參數(shù)的優(yōu)化即優(yōu)化my.cnf文件2014-06-06

