SELECT語句基礎(chǔ)
1、從表中選取符合條件的數(shù)據(jù)
語法:
SELECT <列名>,……
??FROM <表名>
WHERE <條件表達(dá)式>;
例:
SELECT product_name? ?#其中*代表全部列的意思,設(shè)定漢語別名的時(shí)候需要使用雙引號
??FROM product
WHERE product_type = '衣服';
-- 使用DISTINCT刪除product_type列中重復(fù)的數(shù)據(jù)
SELECT DISTINCT product_type
??FROM product;
2、從表中選取數(shù)據(jù)并進(jìn)行運(yùn)算
= 相等;<>不相等;>=大于等于;<=小于等于
例:
SELECT product_name,sale_price,sale_price * 2 AS "sale_price x2"
FROM product;
WHERE sale_price>= 500;
SELECT product_name,purchase_price
??FROM product
WHERE purchase_price IS NULL;/WHERE purchase_price IS NOT NULL;
3、邏輯運(yùn)算符
NOT運(yùn)算符
SELECT product_name,product_type,sale_price
??FROM product
WHERE NOT sale_price >= 1000;
AND/OR運(yùn)算符
AND運(yùn)算符為取交集
OR取并集
例:AND的運(yùn)算優(yōu)先于OR,想要優(yōu)先執(zhí)行OR運(yùn)算,可以使用括號:
SELECT product_name, product_type, regist_date
??FROM product
WHERE product_type = '辦公用品'
???AND ( regist_date = '2009-09-11'
????????OR regist_date = '2009-09-20');
練習(xí)題一
2.1
SELECT product name,regist_date
FROM product
WHERE regist>=‘2009-4-28’
2.2?
1、返回所有purchase_price為空的行
2、返回所有這個非空的行
3、返回所有非空的行
2.3
SELECT product_name
FROM? product
WHERE saleprice-purchase price>500
2.4
SELECT product_name,product_type,0.9*saleprice-purchase price AS profit
FROM product
WHERE 0.9*saleprice-purchase price>100 AND(product_type="辦公用品" OR product_type="廚房用具")
2.4? 對表進(jìn)行聚合查詢
聚合函數(shù)
COUNT:計(jì)算表中的記錄數(shù)(行數(shù))
SUM:計(jì)算表中數(shù)值列中數(shù)據(jù)的合計(jì)值
AVG:計(jì)算表中數(shù)值列中數(shù)據(jù)的平均值
MAX:求出表中任意列中數(shù)據(jù)的最大值
MIN:求出表中任意列中數(shù)據(jù)的最小值
例:
SELECT COUNT(purchase_price)
??FROM product;
聚合函數(shù)刪除重復(fù)值
- 計(jì)算去除重復(fù)數(shù)據(jù)后的數(shù)據(jù)行數(shù)
SELECT COUNT(DISTINCTproduct_type)
FROM product;
2.5 對表進(jìn)行分組
GROUP BY 語句
SELECT <列名1>,<列名2>, <列名3>, ……
??FROM <表名>
GROUP BY <列名1>, <列名2>, <列名3>, ……;
-- 按照商品種類統(tǒng)計(jì)數(shù)據(jù)行數(shù)
SELECT product_type, COUNT(*)
??FROM product
GROUP BY product_type;
HAVING分組后過濾
SELECT product_type, COUNT(*)
??FROM product
GROUP BY product_type
HAVINGCOUNT(*) = 2;#可以使用數(shù)字、聚合函數(shù)和GROUP BY當(dāng)中特定列明
2.6對查詢結(jié)果排序
ORDER BY?
SELECT <列名1>, <列名2>, <列名3>, ……
??FROM <表名>
ORDER BY <排序基準(zhǔn)列1>, <排序基準(zhǔn)列2>, ……
例:
默認(rèn)為升序排列,降序排列為DESC
SELECT product_id, product_name, sale_price, purchase_price
??FROM product
ORDER BY sale_price DESC;
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
練習(xí)題第二部分
2.5 改為
SELECT product id,SUM(product id)
FROM product
WHERE regist_date>'2009-09-01'
GROUP BY product_type
2.6
SELECT product type,SUM(product type)
FROM product
WHERE1.5*SUM(sale_price)=SUM(purchase price)
2.7
ORDER BY regist_date
