子查詢:顧名思義就是在查詢中,嵌套查詢。嵌套的查詢就是子查詢。

(1)子查詢指嵌套在查詢內部,且必須始終出現在圓括弧內。
(2)子查詢可以包含多個關鍵字或條件,
如:DISTINCT / GROUP BY / ORDER BY / LIMIT / 函數等。
(3)子查詢的外層查詢可以是:SELECT, INSERT, UPDATE , SET 或DO
(4)子查詢可以返回標量、一行、一列或子查詢。

比較運算符的子查詢:

//求平均值
select avg(goods_price) from tb_goods;
//保留平均值後面兩位小數;
select round(avg(goods_price),2) from tdb_goods;
//類似的求max 求 min

數據的添加和更新:

//創建一個表,添加數據的時候從另一個表查詢.
create table person(id smallint unsigned primary key auto_increment,
classmate varchar(20) not null)
select brand_name from person2 group by brand_name;
//插入數據的時候,從另一個表中查詢
select into target_table(column1,column2)
select column1,column2
from source_table

普通查詢中的子查詢:

SELECT id,name,price
FROM goods WHERE price >=
(SELECT ROUND(AVG(price),2)
FROM goods);

總結:

子查詢相對來說容易理解,就是各種嵌套。
和連接做比較來說,效率要高點。
因為連接要下進行笛卡爾積。
個人觀點而已。

推薦閱讀:

相关文章