SQL語法的重要知識點總結

黃博文發表於2013-07-30

SQL語法的重要知識點總結

好幾年沒寫SQL語句了。現在到了新的team,需要用到資料庫。作為QA的話時常需要使用客戶端工具連線到資料庫中找尋或修改資料。這麼長時間沒使用,一些SQL的使用技巧都忘得差不多了。晚上看了一些資料,花了1個多小時又撿起了曾經的知識。現在總結一下以方便以後查閱。

  1. SQL不是大小寫敏感的。

  2. 分號是分割多條SQL語句的標準的分隔符,所以在單條SQL語句後面總加上分隔符是不會出錯的。

  3. DISTINCT關鍵字用於剔除重複的結果資料。SELECT DISTINCT City FROM Customers;意味著從Customers表中返回不重複的City值。

  4. ORDER BY用於對查詢結果排序。 ORDER BY column_name ASC表示遞增排序,也是預設順序,可以省略ASCORDER BY column_name DESC表示遞減排序; ORDER BY後面可跟多個列名進行排序。

  5. 返回指定數目的記錄。在SQL Server/MS Access中可以使用 SELECT TOP number|percent column_name(s) FROM table_name; MySQl中語法是 SELECT column_name(s) FROM table_name LIMIT number;Oracle中語法是SELECT column_name(s) FROM table_name WHERE ROWNUM <= number;. SELECT TOP number PERCENT * FROM table可以返回指定指定百分數的資料。

  6. 使用LIKE可以匹配字串值,同時可以使用萬用字元。%匹配0或多個字元,_匹配一個字元,[charlist]匹配一組字元,[^charlist][!charlist]表示匹配不在此列表中的字元。

  7. 使用AS關鍵字可以給列或表起別名。也可以給組合後的列起別名,如 SELECT CustomerName, Address+', '+City+', '+PostalCode+', '+Country AS Address FROM Customers;

  8. 使用JOIN關鍵字可以合併兩個或連個以上的表的資料行,要基於所有表中的某一列建立一個連線條件。Join有四種:

    • INNER JOIN返回兩個表中滿足條件的行資料。
    • LEFT JOIN返回左表所有行資料及滿足條件的右錶行資料。
    • RIGHT JOIN返回右表的所有行資料及滿足條件的左錶行資料。
    • FULL JOIN返回左表和右表所有行資料行。
  9. UNION用於合併兩個或多個查詢結果。要求查詢結果的列數及資料型別要一樣。

  10. SELECT INTO可以將一個表中資料插入到另一個新表中。如 SELECT * INTO CustomersBackup2013 FROM Customers;它還有個巧妙的用法是建立一個空的新表格,其schema與後者一致,方法是SELECT * INTO newtable FROM table1 WHERE 1=0;

  11. INSERT INTO SELECTSELECT INTO使用較相似,不同的是SELECT INTO會建立新表,而INSERT INTO SELECT是插入到已存在的表中。

  12. 一些常用的SQL函式。(注意這些函式並一定都是通用的,但所有資料庫基本上都有類似的功能)

    聚合函式

    • AVG() - 求平均值
    • COUNT() - 返回行數
    • FIRST() - 返回第一個值
    • LAST() - 返回最後一個值
    • MAX() - 返回最大值
    • MIN() - 返回最小值
    • SUM() - 求和

    其他常用函式

    • UCASE() - 轉換為大寫
    • LCASE() - 轉換為小寫
    • MID() - 提取字串
    • LEN() - 獲取字串長度
    • ROUND() - 對資料進行舍入
    • NOW() - 返回當前系統時間
    • FORMAT() - 格式化field的顯示
  13. GROUP BY用於對使用了聚合函式的查詢結果進行分組。這是一個很強大的語法。

  14. HAVING用於對使用了聚合函式的欄位進行條件篩選。

如果要詳細瞭解SQL的這些使用的話,我推薦http://www.w3schools.com/sql/default.asp。你不僅可以看到說明和示例,也可以隨時實時練習。實在是不可不得的好網站。

相關文章