1. 程式人生 > 其它 >資料庫 (三) -- 簡單 SQL 語句

資料庫 (三) -- 簡單 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