SQL單表查詢內容

單列查詢

prod_id爲列名,milk_tea爲表名, “9折” 爲新列的值,discount1爲新列的列名,sale_price * 0.9是對sale_price列乘0.9,new_sale1爲查詢列的列名

-- 查詢表已有的列
SELECT prod_id FROM milk_tea;
-- 查詢表沒有的列
SELECT "9折" AS discount1 FROM milk_tea;
-- 對錶已有的列進行四則運算並查詢
SELECT  sale_price * 0.9 AS new_sale1 FROM milk_tea;

多列查詢

prod_id, prod_name等爲列名,milk_tea爲表名

-- 查詢表已有的列
SELECT prod_id, prod_name FROM milk_tea;
-- 查詢表已有的列和進行四則運算之後的列
SELECT prod_name, in_price, sale_price, sale_price * 0.9 AS new_sale1 FROM milk_tea;

SELECT prod_name, in_price, sale_price, (sale_price * 0.9 - in_price) AS new_profit1 FROM milk_tea;

整表查詢

* 表示所有列(也可以列所有列名), milk_tea爲表名

SELECT * FROM milk_tea;

排序

-- 按 cost 列升序排列
SELECT * FROM prod_info ORDER BY cost;

-- 按 sale_price 列降序排列
SELECT * FROM prod_info ORDER BY sale_price DESC;

去重

-- 對 prodname 列去重
SELECT DISTINCT prodname FROM order_list; 

過濾

-- 過濾  sale_price > 10 的行
SELECT * FROM milk_tea WHERE sale_price > 10;

過濾和排序

-- 要求利潤(sale_price – in_price)大於5。如果sale_price爲空的話,默認設置爲20,並對結果進行降序排列
SELECT prod_name FROM milk_tea WHERE (IFNULL(sale_price, 20) - in_price) > 5 ORDER BY sale_price DESC;

模糊查詢

下劃線:WHERE <列名> LIKE ‘…_…’,表示一個字符,知道字符的位置;
百分號:WHERE <列名> LIKE ‘…%…’,表示0或多個字符,知道字符的位置。

-- prod_name是‘薯’開頭或者‘糖’結尾的。
SELECT * FROM milk_tea WHERE prod_name LIKE '薯%' OR prod_name LIKE '%糖';

-- prod_name是‘薯’開頭或者‘糖’結尾的,且只有2個字。
SELECT * FROM milk_tea WHERE prod_name LIKE '薯_' OR prod_name LIKE '_糖';

-- prod_name是‘奶’開頭並且‘茶’結尾的。
SELECT * FROM milk_tea WHERE prod_name LIKE '奶%' AND prod_name LIKE '%茶';

聚合函數和分組

-- 查詢樣本有多少行
SELECT COUNT(*) FROM prod_info;
SELECT COUNT(1) FROM prod_info;
SELECT COUNT(prod_id) FROM prod_info;
-- 查詢每個 class 有多少行
SELECT class, COUNT(*) FROM prod_info GROUP BY class;
-- 查詢多少顧客購買了商品
SELECT COUNT(DISTINCT cust_name) FROM order_list;

分組之後的過濾

-- 各類別中,產品數量在5件以上
SELECT class, COUNT(class) FROM prod_info GROUP BY class HAVING COUNT(class) > 5;

信息拼接

‘的地址爲’, addr, ‘、’,聯繫電話爲’、’。‘爲拼接字符串,supplier_name、addr、tel爲表的列,supplier_info爲表名;’ | '爲列與列之間聯繫的字符

--  不同字符拼接
SELECT *, CONCAT(supplier_name, '的地址爲', addr, ',聯繫電話爲', tel, '。') AS 供應商信息 FROM  supplier_info;

-- 相同字符拼接
SELECT *, CONCAT_WS(' | ', supplier_name, addr, tel) AS 供應商信息 FROM supplier_info;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章