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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章