程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 適合初學者的MySQL學習筆記之SELECT語句使用詳解

適合初學者的MySQL學習筆記之SELECT語句使用詳解

編輯:MySQL綜合教程

上次我們介紹了:適合初學者的MySQL學習筆記之MySQL常用命令操作技巧,本次我們介紹一下MySQL學習筆記之SELECT語句的使用方法,接下來就讓我們一起來了解一下這部分內容吧。

SELECT語句的完整語法為:

  1. SELECT[ALL|DISTINCT|DISTINCTROW|TOP]   
  2. {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}   
  3. FROM tableexpression[,…][IN externaldatabase]   
  4. [WHERE…]   
  5. [GROUP BY…]   
  6. [HAVING…]   
  7. [ORDER BY…]   
  8. [WITH OWNERACCESS OPTION] 

說明:用中括號([])括起來的部分表示是可選的,用大括號({})括起來的部分是表示必須從中選擇其中的一個。

1.FROM子句

FROM子句指定了SELECT語句中字段的來源。FROM子句後面是包含一個或多個的表達式(由逗號分開),其中的表達式可為單一表名稱、已保存的查詢或由 INNER JOIN、LEFT JOIN 或RIGHT JOIN 得到的復合結果。如果表或查詢存儲在外部數據庫,在IN子句之後指明其完整路徑。

例:下列SQL語句返回所有有定單的客戶:

  1. SELECT OrderID,Customer.customerID   
  2. FROM Orders Customers   
  3. WHERE Orders.CustomerID=Customers.CustomeersID 

2.ALL、DISTINCT、DISTINCTROW、TOP謂詞

(1) ALL 返回滿足SQL語句條件的所有記錄。如果沒有指明這個謂詞,默認為ALL。例如:

  1. SELECT ALL FirstName,LastName   
  2. FROM Employees  

(2) DISTINCT 如果有多個記錄的選擇字段的數據相同,只返回一個。

(3) DISTINCTROW 如果有重復的記錄,只返回一個。

(4) TOP顯示查詢頭尾若干記錄。也可返回記錄的百分比,這是要用 TOP N PERCENT子句其中N 表示百分比)。

例:返回5%定貨額最大的定單

  1. SELECT TOP 5 PERCENT*   
  2. FROM [ Order Details]   
  3. ORDER BY UnitPrice*Quantity*(1-Discount) DESC 

3.用AS子句為字段取別名 

如果想為返回的列取一個新的標題,或者,經過對字段的計算或總結之後,產生了一個新的值,希望把它放到一個新的列裡顯示,則用AS保留。

例:返回FirstName字段取別名為NickName

  1. SELECT FirstName AS NickName ,LastName ,City   
  2. FROM Employees  

例:返回新的一列顯示庫存價值

  1. SELECT ProductName ,UnitPrice ,UnitsInStock ,UnitPrice*UnitsInStock AS valueInStock   
  2. FROM Products 

WHERE 子句指定查詢條件

例:返回96年1月的定單

  1. SELECT OrderID, CustomerID, OrderDate   
  2. FROM Orders   
  3. 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的所有客戶

  1. SELECT CustomerID, CompanyName, ContactName, City   
  2. FROM Customers   
  3. WHERE City In(‘London’,’ Paris’,’ Berlin’)  

模式匹配(LIKE)

LIKE運算符檢驗一個包含字符串數據的字段值是否匹配一指定模式。

LIKE運算符裡使用的通配符

通配符的含義 :

  • ? 任何一個單一的字符
  • * 任意長度的字符
  • # 0~9之間的單一數字
  • [字符列表] 在字符列表裡的任一值
  • [!字符列表] 不在字符列表裡的任一值
  • - 指定字符范圍,兩邊的值分別為其上下限

例:返回郵政編碼在171)555-0000到171)555-9999之間的客戶

  1. SELECT CustomerID ,CompanyName,City,Phone   
  2. FROM Customers   
  3. WHERE Phone Like ‘(171)555-#### 

關於適合初學者的MySQL學習筆記之SELECT語句的使用就介紹到這裡了,希望本次的介紹能夠對您有所收獲!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved