数据库 (三) -- 简单 SQL 语句

数据库 (三) --简单 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
上一篇:SQL 入门教程:使用 WHERE 子句


下一篇:MySQL_高级数据过滤 AND OR IN NOT