数据库 (三) --简单 SQL 语句
排序
DISTINCT
去重,作用于所有列
SELECT DISTINCT vend_id FROM Products;
ORDER BY
/* 先按 prod_price 排序 */
/* 为每一列指定 DESC */
select prod_id,prod_price,prod_name from Products order by prod_price DESC,prod_id DESC;
过滤
WHERE
IN
指定范围条件, WHERE 子句中用来指定要匹配值的清单的关键字,功能与 OR 相当
select prod_name
from Products
where vend_id in ('DLL01', 'BRS01) -- 等同于 where vend_id = 'DLLL01' or 'BRS01'
order by prod_name;
NOT
SELECT prod_name
FROM Products
WHERE NOT vend_id = 'DLL01'
ORDER BY prod_name;
分组
GROUP BY
把查询出的数据,具有相同值的行分到一起
HAVING
WHERE 在数据分组前进行过滤, HAVING 在数据分组后,使用 HAVING 时结合 GROUP BY
一般使用 WHERE 过滤之后,使用 GROUP BY 进行分组,再用 HAVING 删除一些分组行
通配符
% 通配符
% 表示任何字符出现任意次数。可以匹配 0 个字符
SELECT user_name
FROM User
WHERE user_email LIKE 'b%@forta.com'
_ 通配符
只匹配单个字符,不能多也不能少
[] 通配符
匹配集合内的元素
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[JM]%'
ORDER BY cust_contact;
简单函数
拼接 concatenate
返回 vend_name 和 vend_country 拼接后的结果
-- RTRIM 去除右空格
select Concat(RTRIM(vend_name), '(',RTRIM(vend_country),')')
from Vendors;
聚集函数
- AVG()
- COUNT()
- MAX()
- MIN()
- SUM()
集合操作
- UNION
- INTERSECT
- EXCEPT