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

適合初學者的MySQL學習筆記之MySQL查詢示例

編輯:MySQL綜合教程

上次我們介紹了:適合初學者的MySQL學習筆記之MySQL管理心得,本次我們介紹一下MySQL查詢操作,包括功能查詢、子查詢等操作,接下來就讓我們來一起了解一下這部分內容吧。

功能查詢

所謂功能查詢,實際上是一種操作查詢,它可以對數據庫進行快速高效的操作.它以選擇查詢為目的,挑選出符合條件的數據,再對數據進行批處理.功能查詢包括更新查詢,刪除查詢,添加查詢,和生成表查詢.

1.更新查詢

UPDATE子句可以同時更改一個或多個表中的數據.它也可以同時更改多個字段的值.

更新查詢語法:

UPDATE 表名

SET 新值

WHERE 准則

例:英國客戶的定貨量增加5%,貨運量增加3%

UPDATE OEDERS

SET OrderAmount = OrderAmount *1.1

Freight = Freight*1.03

WHERE ShipCountry = ‘UK’

2.刪除查詢

DELETE子句可以使用戶刪除大量的過時的或冗於的數據.

注:刪除查詢的對象是整個記錄.

DELETE子句的語法:

DELETE [表名.*]

FROM 來源表

WHERE 准則

例: 要刪除所有94年前的定單

  1. DELETE *   
  2. FROM Orders   
  3. WHERE OrderData<#94-1-1#   
  4.  

3.追加查詢

INSERT子句可以將一個或一組記錄追加到一個或多個表的尾部.

INTO 子句指定接受新記錄的表

valueS 關鍵字指定新記錄所包含的數據值.

INSERT 子句的語法:

INSETR INTO 目的表或查詢(字段1,字段2,…)

valueS(數值1,數值2,…)

例:增加一個客戶

  1. INSERT INTO Employees(FirstName,LastName,title)   
  2. valueS(‘Harry’,’Washington’,’Trainee’)   
  3.  

4.生成表查詢

可以一次性地把所有滿足條件的記錄拷貝到一張新表中.通常制作記錄的備份或副本或作為報表的基礎.

SELECT INTO子句用來創建生成表查詢語法:

SELECT 字段1,字段2,…

INTO 新表[IN 外部數據庫]

FROM 來源數據庫

WHERE 准則

例:為定單制作一個存檔備份

  1. SELECT *   
  2. INTO OrdersArchive   
  3. FROM Orders   
  4.  

聯合查詢

UNION運算可以把多個查詢的結果合並到一個結果集裡顯示.

UNION運算的一般語法:

[表]查詢1 UNION [ALL]查詢2 UNION …

例:返回巴西所有供給商和客戶的名字和城市

  1. SELECT CompanyName,City   
  2. FROM Suppliers   
  3. WHERE Country = ‘Brazil’   
  4. UNION   
  5. SELECT CompanyName,City   
  6. FROM Customers   
  7. WHERE Country = ‘Brazil’   
  8.  

注:

缺省的情況下,UNION子句不返回重復的記錄.如果想顯示所有記錄,可以加ALL選項

UNION運算要求查詢具有相同數目的字段.但是,字段數據類型不必相同.

每一個查詢參數中可以使用GROUP BY 子句 或 HAVING 子句進行分組.要想以指定的順序來顯示返回的數據,可以在最後一個查詢的尾部使用OREER BY子句.

交叉查詢

交叉查詢可以對數據進行總和,平均,計數或其他總和計算法的計算,這些數據通過兩種信息進行分組:一個顯示在表的左部,另一個顯示在表的頂部.

Microsoft Jet SQL 用TRANSFROM語句創建交叉表查詢語法:

TRANSFORM aggfunction

SELECT 語句

GROUP BY 子句

PIVOT pivotfield[IN(value1 [,value2[,…]]) ]

Aggfounction指SQL聚積函數,

SELECT語句選擇作為標題的的字段,

GROUP BY 分組

說明:

Pivotfield 在查詢結果集中創建列標題時用的字段或表達式,用可選的IN子句限制它的取值.

value代表創建列標題的固定值.

例:顯示在1996年裡每一季度每一位員工所接的定單的數目:

  1. TRANSFORM Count(OrderID)   
  2. SELECT FirstName&’’&LastName AS FullName   
  3. FROM Employees INNER JOIN Orders   
  4. ON Employees.EmployeeID = Orders.EmployeeID   
  5. WHERE DatePart(“yyyy”,OrderDate)= ‘1996’   
  6. GROUP BY FirstName&’’&LastName   
  7. ORDER BY FirstName&’’&LastName   
  8. POVOT DatePart(“q”,OrderDate)&’季度’   

子查詢

子查詢可以理解為 套查詢.子查詢是一個SELECT語句.

1 表達式的值與子查詢返回的單一值做比較

語法:

表達式 comparision [ANY|ALL|SOME](子查詢)

說明:

ANY 和SOME謂詞是同義詞,與比較運算符(=,<,>,<>,<=,>=)一起使用.返回一個布爾值True或 False.ANY的意思是,表達式與子查詢返回的一系列的值逐一比較,只要其中的一次比較產生True結果,ANY測試的返回 True值(既WHERE子句的結果),對應於該表達式的當前記錄將進入主查詢的結果中.ALL測試則要求表達式與子查詢返回的一系列的值的比較都產生 True結果,才回返回True值.

例:主查詢返回單價比任何一個折扣大於等於25%的產品的單價要高的所有產品

  1. SELECT * FROM Products   
  2. WHERE UnitPrice>ANY   
  3. (SELECT UnitPrice FROM[Order Details] WHERE Discount>0.25)  

2 檢查表達式的值是否匹配子查詢返回的一組值的某個值

語法:

[NOT]IN(子查詢)

例:返回庫存價值大於等於1000的產品.

  1. SELECT ProductName FROM Products   
  2. WHERE ProductID IN   
  3. (SELECT PrdoctID FROM [Order DEtails]   
  4. WHERE UnitPrice*Quantity>= 1000)   

3.檢測子查詢是否返回任何記錄

語法:

[NOT]EXISTS (子查詢)

例:用EXISTS檢索英國的客戶

  1. SELECT ComPanyName,ContactName   
  2. FROM Orders   
  3. WHERE EXISTS   
  4. (SELECT *   
  5. FROM Customers   
  6. WHERE Country = ‘UK’ AND   
  7. Customers.CustomerID= Orders.CustomerID)  

關於適合初學者的MySQL學習筆記之MySQL查詢示例就介紹到這裡了,希望本次的介紹能夠對您有所收獲!

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