適合初學(xué)者的MySQL學(xué)習(xí)筆記之MySQL查詢(xún)示例
上次我們介紹了:適合初學(xué)者的MySQL學(xué)習(xí)筆記之MySQL管理心得,本次我們介紹一下MySQL查詢(xún)操作,包括功能查詢(xún)、子查詢(xún)等操作,接下來(lái)就讓我們來(lái)一起了解一下這部分內(nèi)容吧。
功能查詢(xún)
所謂功能查詢(xún),實(shí)際上是一種操作查詢(xún),它可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行快速高效的操作.它以選擇查詢(xún)?yōu)槟康?挑選出符合條件的數(shù)據(jù),再對(duì)數(shù)據(jù)進(jìn)行批處理.功能查詢(xún)包括更新查詢(xún),刪除查詢(xún),添加查詢(xún),和生成表查詢(xún).
1.更新查詢(xún)
UPDATE子句可以同時(shí)更改一個(gè)或多個(gè)表中的數(shù)據(jù).它也可以同時(shí)更改多個(gè)字段的值.
更新查詢(xún)語(yǔ)法:
UPDATE 表名
SET 新值
WHERE 準(zhǔn)則
例:英國(guó)客戶(hù)的定貨量增加5%,貨運(yùn)量增加3%
UPDATE OEDERS
SET OrderAmount = OrderAmount *1.1
Freight = Freight*1.03
WHERE ShipCountry = ‘UK’
2.刪除查詢(xún)
DELETE子句可以使用戶(hù)刪除大量的過(guò)時(shí)的或冗于的數(shù)據(jù).
注:刪除查詢(xún)的對(duì)象是整個(gè)記錄.
DELETE子句的語(yǔ)法:
DELETE [表名.*]
FROM 來(lái)源表
WHERE 準(zhǔn)則
例: 要?jiǎng)h除所有94年前的定單
- DELETE *
- FROM Orders
- WHERE OrderData<#94-1-1#
3.追加查詢(xún)
INSERT子句可以將一個(gè)或一組記錄追加到一個(gè)或多個(gè)表的尾部.
INTO 子句指定接受新記錄的表
valueS 關(guān)鍵字指定新記錄所包含的數(shù)據(jù)值.
INSERT 子句的語(yǔ)法:
INSETR INTO 目的表或查詢(xún)(字段1,字段2,…)
valueS(數(shù)值1,數(shù)值2,…)
例:增加一個(gè)客戶(hù)
- INSERT INTO Employees(FirstName,LastName,title)
- valueS(‘Harry’,’Washington’,’Trainee’)
4.生成表查詢(xún)
可以一次性地把所有滿足條件的記錄拷貝到一張新表中.通常制作記錄的備份或副本或作為報(bào)表的基礎(chǔ).
SELECT INTO子句用來(lái)創(chuàng)建生成表查詢(xún)語(yǔ)法:
SELECT 字段1,字段2,…
INTO 新表[IN 外部數(shù)據(jù)庫(kù)]
FROM 來(lái)源數(shù)據(jù)庫(kù)
WHERE 準(zhǔn)則
例:為定單制作一個(gè)存檔備份
- SELECT *
- INTO OrdersArchive
- FROM Orders
聯(lián)合查詢(xún)
UNION運(yùn)算可以把多個(gè)查詢(xún)的結(jié)果合并到一個(gè)結(jié)果集里顯示.
UNION運(yùn)算的一般語(yǔ)法:
[表]查詢(xún)1 UNION [ALL]查詢(xún)2 UNION …
例:返回巴西所有供給商和客戶(hù)的名字和城市
- SELECT CompanyName,City
- FROM Suppliers
- WHERE Country = ‘Brazil’
- UNION
- SELECT CompanyName,City
- FROM Customers
- WHERE Country = ‘Brazil’
注:
缺省的情況下,UNION子句不返回重復(fù)的記錄.如果想顯示所有記錄,可以加ALL選項(xiàng)
UNION運(yùn)算要求查詢(xún)具有相同數(shù)目的字段.但是,字段數(shù)據(jù)類(lèi)型不必相同.
每一個(gè)查詢(xún)參數(shù)中可以使用GROUP BY 子句 或 HAVING 子句進(jìn)行分組.要想以指定的順序來(lái)顯示返回的數(shù)據(jù),可以在***一個(gè)查詢(xún)的尾部使用OREER BY子句.
交叉查詢(xún)
交叉查詢(xún)可以對(duì)數(shù)據(jù)進(jìn)行總和,平均,計(jì)數(shù)或其他總和計(jì)算法的計(jì)算,這些數(shù)據(jù)通過(guò)兩種信息進(jìn)行分組:一個(gè)顯示在表的左部,另一個(gè)顯示在表的頂部.
Microsoft Jet SQL 用TRANSFROM語(yǔ)句創(chuàng)建交叉表查詢(xún)語(yǔ)法:
TRANSFORM aggfunction
SELECT 語(yǔ)句
GROUP BY 子句
PIVOT pivotfield[IN(value1 [,value2[,…]]) ]
Aggfounction指SQL聚積函數(shù),
SELECT語(yǔ)句選擇作為標(biāo)題的的字段,
GROUP BY 分組
說(shuō)明:
Pivotfield 在查詢(xún)結(jié)果集中創(chuàng)建列標(biāo)題時(shí)用的字段或表達(dá)式,用可選的IN子句限制它的取值.
value代表創(chuàng)建列標(biāo)題的固定值.
例:顯示在1996年里每一季度每一位員工所接的定單的數(shù)目:
- TRANSFORM Count(OrderID)
- SELECT FirstName&’’&LastName AS FullName
- FROM Employees INNER JOIN Orders
- ON Employees.EmployeeID = Orders.EmployeeID
- WHERE DatePart(“yyyy”,OrderDate)= ‘1996’
- GROUP BY FirstName&’’&LastName
- ORDER BY FirstName&’’&LastName
- POVOT DatePart(“q”,OrderDate)&’季度’
子查詢(xún)
子查詢(xún)可以理解為 套查詢(xún).子查詢(xún)是一個(gè)SELECT語(yǔ)句.
1 表達(dá)式的值與子查詢(xún)返回的單一值做比較
語(yǔ)法:
表達(dá)式 comparision [ANY|ALL|SOME](子查詢(xún))
說(shuō)明:
ANY 和SOME謂詞是同義詞,與比較運(yùn)算符(=,<,>,<>,<=,>=)一起使用.返回一個(gè)布爾值True或 False.ANY的意思是,表達(dá)式與子查詢(xún)返回的一系列的值逐一比較,只要其中的一次比較產(chǎn)生True結(jié)果,ANY測(cè)試的返回 True值(既WHERE子句的結(jié)果),對(duì)應(yīng)于該表達(dá)式的當(dāng)前記錄將進(jìn)入主查詢(xún)的結(jié)果中.ALL測(cè)試則要求表達(dá)式與子查詢(xún)返回的一系列的值的比較都產(chǎn)生 True結(jié)果,才回返回True值.
例:主查詢(xún)返回單價(jià)比任何一個(gè)折扣大于等于25%的產(chǎn)品的單價(jià)要高的所有產(chǎn)品
- SELECT * FROM Products
- WHERE UnitPrice>ANY
- (SELECT UnitPrice FROM[Order Details] WHERE Discount>0.25)
2 檢查表達(dá)式的值是否匹配子查詢(xún)返回的一組值的某個(gè)值
語(yǔ)法:
[NOT]IN(子查詢(xún))
例:返回庫(kù)存價(jià)值大于等于1000的產(chǎn)品.
- SELECT ProductName FROM Products
- WHERE ProductID IN
- (SELECT PrdoctID FROM [Order DEtails]
- WHERE UnitPrice*Quantity>= 1000)
3.檢測(cè)子查詢(xún)是否返回任何記錄
語(yǔ)法:
[NOT]EXISTS (子查詢(xún))
例:用EXISTS檢索英國(guó)的客戶(hù)
- SELECT ComPanyName,ContactName
- FROM Orders
- WHERE EXISTS
- (SELECT *
- FROM Customers
- WHERE Country = ‘UK’ AND
- Customers.CustomerID= Orders.CustomerID)
關(guān)于適合初學(xué)者的MySQL學(xué)習(xí)筆記之MySQL查詢(xún)示例就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】






