hi
今天有事,一會兒要去耍,能學多少是多少吧
1、MySQL
-----子查詢與連接(二)-----
----子查詢
子查詢,是指出現在其他SQL語句內的SELECT子句
注意:子查詢指嵌套在查詢內部,且必須始終出現在圓括號內;可以包含多個關鍵字或條件;外層查詢可以是SELECT,INSERT,UPDATE,SET或DO
子查詢的返回,可以是標量、一行、一列或者是一個子查詢
可以分為三類:使用比較運算符的=,>=等;NOT IN ;EXIST
----使用比較運算符實現子查詢
--
mysql> SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=5391.30;
這裡的數字可以不用管,就是之前獲取的一個平均值。
所以要是想直接得到這個平均值參與的結果,用子查詢這樣寫
mysql> SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price>=(SELECT ROUND(AVG(goods_price),2) FROM tdb_goods);
這裡可以看到,子查詢在小括號中,用到了>=
--
當子查詢返回多個結果,而主查詢用不到這麼多時,可以用ANY SOME ALL關鍵字
其中ANY和SOME一樣,滿足其中一個就好,具體是哪個 要看運算符是什麼(比如>就大於最小值就行)
ALL要求滿足所有返回的要求
用法是寫在子查詢小括號的前面
----由IN或NOT IN引發的子查詢
其實IN 與=ALL運算符等價,NOT IN與=!ALL等價
用法也類似
----EXIST
返回布爾值,用的很少