上次我們介紹了:適合初學者的MySQL學習筆記之MySQL常用命令操作技巧,本次我們介紹一下MySQL學習筆記之SELECT語句的使用方法,接下來就讓我們一起來了解一下這部分內容吧。
SELECT語句的完整語法為:
- SELECT[ALL|DISTINCT|DISTINCTROW|TOP]
- {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}
- FROM tableexpression[,…][IN externaldatabase]
- [WHERE…]
- [GROUP BY…]
- [HAVING…]
- [ORDER BY…]
- [WITH OWNERACCESS OPTION]
說明:用中括號([])括起來的部分表示是可選的,用大括號({})括起來的部分是表示必須從中選擇其中的一個。
1.FROM子句
FROM子句指定了SELECT語句中字段的來源。FROM子句後面是包含一個或多個的表達式(由逗號分開),其中的表達式可為單一表名稱、已保存的查詢或由 INNER JOIN、LEFT JOIN 或RIGHT JOIN 得到的復合結果。如果表或查詢存儲在外部數據庫,在IN子句之後指明其完整路徑。
例:下列SQL語句返回所有有定單的客戶:
- SELECT OrderID,Customer.customerID
- FROM Orders Customers
- WHERE Orders.CustomerID=Customers.CustomeersID
2.ALL、DISTINCT、DISTINCTROW、TOP謂詞
(1) ALL 返回滿足SQL語句條件的所有記錄。如果沒有指明這個謂詞,默認為ALL。例如:
- SELECT ALL FirstName,LastName
- FROM Employees
(2) DISTINCT 如果有多個記錄的選擇字段的數據相同,只返回一個。
(3) DISTINCTROW 如果有重復的記錄,只返回一個。
(4) TOP顯示查詢頭尾若干記錄。也可返回記錄的百分比,這是要用 TOP N PERCENT子句其中N 表示百分比)。
例:返回5%定貨額最大的定單
- SELECT TOP 5 PERCENT*
- FROM [ Order Details]
- ORDER BY UnitPrice*Quantity*(1-Discount) DESC
3.用AS子句為字段取別名
如果想為返回的列取一個新的標題,或者,經過對字段的計算或總結之後,產生了一個新的值,希望把它放到一個新的列裡顯示,則用AS保留。
例:返回FirstName字段取別名為NickName
- SELECT FirstName AS NickName ,LastName ,City
- FROM Employees
例:返回新的一列顯示庫存價值
- SELECT ProductName ,UnitPrice ,UnitsInStock ,UnitPrice*UnitsInStock AS valueInStock
- FROM Products
WHERE 子句指定查詢條件
例:返回96年1月的定單
- SELECT OrderID, CustomerID, OrderDate
- FROM Orders
- WHERE OrderDate>#1/1/96# AND OrderDate<#1/30/96#
注意:
Mcirosoft JET SQL 中,日期用‘#’定界。日期也可以用Datevalue()函數來代替。在比較字符型的數據時,要加上單引號’’,尾空格在比較中被忽略。 例:WHERE OrderDate>#96-1-1#
也可以表示為: WHERE OrderDate>Datevalue(‘1/1/96’)
使用NOT表達式求反:
例:查看96年1月1日以後的定單:WHERE Not OrderDate<=#1/1/96#
范圍BETWEEN 和 NOT BETWEEN):
BETWEEN …AND…運算符指定了要搜索的一個閉區間。
例:返回96年1月到96年2月的定單:WHERE OrderDate Between #1/1/96# And #2/1/96#
列表IN ,NOT IN):
IN 運算符用來匹配列表中的任何一個值。IN子句可以代替用OR子句連接的一連串的條件。
例:要找出住在 London、Paris或Berlin的所有客戶
- SELECT CustomerID, CompanyName, ContactName, City
- FROM Customers
- WHERE City In(‘London’,’ Paris’,’ Berlin’)
模式匹配(LIKE)
LIKE運算符檢驗一個包含字符串數據的字段值是否匹配一指定模式。
LIKE運算符裡使用的通配符
通配符的含義 :
例:返回郵政編碼在171)555-0000到171)555-9999之間的客戶
- SELECT CustomerID ,CompanyName,City,Phone
- FROM Customers
- WHERE Phone Like ‘(171)555-####
關於適合初學者的MySQL學習筆記之SELECT語句的使用就介紹到這裡了,希望本次的介紹能夠對您有所收獲!