SQL语法的重要知识点总结
好幾年沒寫SQL語句了。現在到了新的team,需要用到數據庫。作為QA的話時常需要使用客戶端工具連接到數據庫中找尋或修改數據。這么長時間沒使用,一些SQL的使用技巧都忘得差不多了。晚上看了一些資料,花了1個多小時又撿起了曾經的知識。現在總結一下以方便以后查閱。
SQL不是大小寫敏感的。
分號是分割多條SQL語句的標準的分隔符,所以在單條SQL語句后面總加上分隔符是不會出錯的。
DISTINCT關鍵字用于剔除重復的結果數據。SELECT DISTINCT City FROM Customers;意味著從Customers表中返回不重復的City值。
ORDER BY用于對查詢結果排序。 ORDER BY column_name ASC表示遞增排序,也是默認順序,可以省略ASC。 ORDER BY column_name DESC表示遞減排序; ORDER BY后面可跟多個列名進行排序。
返回指定數目的記錄。在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可以返回指定指定百分數的數據。
使用LIKE可以匹配字符串值,同時可以使用通配符。%匹配0或多個字符,_匹配一個字符,[charlist]匹配一組字符,[^charlist]或[!charlist]表示匹配不在此列表中的字符。
使用AS關鍵字可以給列或表起別名。也可以給組合后的列起別名,如 SELECT CustomerName, Address+', '+City+', '+PostalCode+', '+Country AS Address FROM Customers;
使用JOIN關鍵字可以合并兩個或連個以上的表的數據行,要基于所有表中的某一列建立一個連接條件。Join有四種:
- INNER JOIN返回兩個表中滿足條件的行數據。
- LEFT JOIN返回左表所有行數據及滿足條件的右表行數據。
- RIGHT JOIN返回右表的所有行數據及滿足條件的左表行數據。
- FULL JOIN返回左表和右表所有行數據行。
UNION用于合并兩個或多個查詢結果。要求查詢結果的列數及數據類型要一樣。
SELECT INTO可以將一個表中數據插入到另一個新表中。如 SELECT * INTO CustomersBackup2013 FROM Customers;它還有個巧妙的用法是創建一個空的新表格,其schema與后者一致,方法是SELECT * INTO newtable FROM table1 WHERE 1=0;
INSERT INTO SELECT與SELECT INTO使用較相似,不同的是SELECT INTO會創建新表,而INSERT INTO SELECT是插入到已存在的表中。
一些常用的SQL函數。(注意這些函數并一定都是通用的,但所有數據庫基本上都有類似的功能)
聚合函數
- AVG() - 求平均值
- COUNT() - 返回行數
- FIRST() - 返回第一個值
- LAST() - 返回最后一個值
- MAX() - 返回最大值
- MIN() - 返回最小值
- SUM() - 求和
其他常用函數
- UCASE() - 轉換為大寫
- LCASE() - 轉換為小寫
- MID() - 提取字符串
- LEN() - 獲取字符串長度
- ROUND() - 對數據進行舍入
- NOW() - 返回當前系統時間
- FORMAT() - 格式化field的顯示
GROUP BY用于對使用了聚合函數的查詢結果進行分組。這是一個很強大的語法。
HAVING用于對使用了聚合函數的字段進行條件篩選。
如果要詳細了解SQL的這些使用的話,我推薦http://www.w3schools.com/sql/default.asp。你不僅可以看到說明和示例,也可以隨時實時練習。實在是不可不得的好網站。
轉載于:https://www.cnblogs.com/huang0925/p/3226515.html
總結
以上是生活随笔為你收集整理的SQL语法的重要知识点总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重载和重写以及重写的权限问题
- 下一篇: linux 下访问mysql