人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

SQL語(yǔ)句的基本語(yǔ)法

發(fā)布日期:2022-02-05 10:03 | 文章來(lái)源:站長(zhǎng)之家

尹紅寫(xiě)的,實(shí)在忍不主貼在這里做為查看資料.
因?yàn)樵氖窃趙ord里面寫(xiě)的,段落有點(diǎn)亂.
一.Select語(yǔ)句的完整語(yǔ)法為:
Select[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[ASalias1][,[table.]field2[ASalias2][,…]]}
FROMtableexpression[,…][INexternaldatabase]
[Where…]
[GROUPBY…]
[HAVING…]
[ORDERBY…]
[WITHOWNERACCESSOPTION]
說(shuō)明:
用中括號(hào)([])括起來(lái)的部分表示是可選的,用大括號(hào)({})括起來(lái)的部分是表示必須從中選擇其中的一個(gè)。 一.1FROM子句
FROM子句指定了Select語(yǔ)句中字段的來(lái)源。FROM子句后面是包含一個(gè)或多個(gè)的表達(dá)式(由逗號(hào)分開(kāi)),其中的表達(dá)式可為單一表名稱(chēng)、已保存的查詢(xún)或由INNERJOIN、LEFTJOIN或RIGHTJOIN得到的復(fù)合結(jié)果。如果表或查詢(xún)存儲(chǔ)在外部數(shù)據(jù)庫(kù),在IN子句之后指明其完整路徑。
例:下列SQL語(yǔ)句返回所有有定單的客戶(hù):
SelectOrderID,Customer.customerID
FROMOrdersCustomers
WhereOrders.CustomerID=Customers.CustomeersID 一.2ALL、DISTINCT、DISTINCTROW、TOP謂詞
(1)ALL返回滿(mǎn)足SQL語(yǔ)句條件的所有記錄。如果沒(méi)有指明這個(gè)謂詞,默認(rèn)為ALL。
例:SelectALLFirstName,LastName
FROMEmployees
(2)DISTINCT如果有多個(gè)記錄的選擇字段的數(shù)據(jù)相同,只返回一個(gè)。
(3)DISTINCTROW如果有重復(fù)的記錄,只返回一個(gè)
(4)TOP顯示查詢(xún)頭尾若干記錄。也可返回記錄的百分比,這是要用TOPNPERCENT子句(其中N表示百分比)
例:返回5%定貨額最大的定單
SelectTOP5PERCENT*
FROM[OrderDetails]
ORDERBYUnitPrice*Quantity*(1-Discount)DESC 一.3用AS子句為字段取別名
如果想為返回的列取一個(gè)新的標(biāo)題,或者,經(jīng)過(guò)對(duì)字段的計(jì)算或總結(jié)之后,產(chǎn)生了一個(gè)新的值,希望把它放到一個(gè)新的列里顯示,則用AS保留。
例:返回FirstName字段取別名為NickName
SelectFirstNameASNickName,LastName,City
FROMEmployees
例:返回新的一列顯示庫(kù)存價(jià)值
SelectProductName,UnitPrice,UnitsInStock,UnitPrice*UnitsInStockASvalueInStock
FROMProducts 二.Where子句指定查詢(xún)條件 二.1比較運(yùn)算符
比較運(yùn)算符含義
=等于
>大于
<小于
>=大于等于
<=小于等于
<>不等于
!>不大于
!<不小于
例:返回96年1月的定單
SelectOrderID,CustomerID,OrderDate
FROMOrders
WhereOrderDate>#1/1/96#ANDOrderDate<#1/30/96#
注意:
McirosoftJETSQL中,日期用‘#'定界。日期也可以用Datevalue()函數(shù)來(lái)代替。在比較字符型的數(shù)據(jù)時(shí),要加上單引號(hào)'',尾空格在比較中被忽略。
例:
WhereOrderDate>#96-1-1#
也可以表示為:
WhereOrderDate>Datevalue(‘1/1/96')
使用NOT表達(dá)式求反。
例:查看96年1月1日以后的定單
WhereNotOrderDate<=#1/1/96# 二.2范圍(BETWEEN和NOTBETWEEN)
BETWEEN…AND…運(yùn)算符指定了要搜索的一個(gè)閉區(qū)間。
例:返回96年1月到96年2月的定單。
WhereOrderDateBetween#1/1/96#And#2/1/96# 二.3列表(IN,NOTIN)
IN運(yùn)算符用來(lái)匹配列表中的任何一個(gè)值。IN子句可以代替用OR子句連接的一連串的條件。
例:要找出住在London、Paris或Berlin的所有客戶(hù)
SelectCustomerID,CompanyName,ContactName,City
FROMCustomers
WhereCityIn(‘London','Paris','Berlin') 二.4模式匹配(LIKE)
LIKE運(yùn)算符檢驗(yàn)一個(gè)包含字符串?dāng)?shù)據(jù)的字段值是否匹配一指定模式。
LIKE運(yùn)算符里使用的通配符
通配符含義
?任何一個(gè)單一的字符
*任意長(zhǎng)度的字符
#0~9之間的單一數(shù)字
[字符列表]在字符列表里的任一值
[!字符列表]不在字符列表里的任一值
-指定字符范圍,兩邊的值分別為其上下限
例:返回郵政編碼在(171)555-0000到(171)555-9999之間的客戶(hù)
SelectCustomerID,CompanyName,City,Phone
FROMCustomers
WherePhoneLike‘(171)555-####'
LIKE運(yùn)算符的一些樣式及含義
樣式含義不符合
LIKE‘A*'A后跟任意長(zhǎng)度的字符Bc,c255
LIKE'5
'5*5555
LIKE'5?5'5與5之間有任意一個(gè)字符55,5wer5
LIKE'5##5'5235,50055kd5,5346
LIKE'[a-z]'a-z間的任意一個(gè)字符5,%
LIKE'[!0-9]'非0-9間的任意一個(gè)字符0,1
LIKE'[[]'1,* 三.用ORDERBY子句排序結(jié)果
ORDER子句按一個(gè)或多個(gè)(最多16個(gè))字段排序查詢(xún)結(jié)果,可以是升序(ASC)也可以是降序(DESC),缺省是升序。ORDER子句通常放在SQL語(yǔ)句的最后。
ORDER子句中定義了多個(gè)字段,則按照字段的先后順序排序。
例:
SelectProductName,UnitPrice,UnitInStock
FROMProducts
ORDERBYUnitInStockDESC,UnitPriceDESC,ProductName
ORDERBY子句中可以用字段在選擇列表中的位置號(hào)代替字段名,可以混合字段名和位置號(hào)。
例:下面的語(yǔ)句產(chǎn)生與上列相同的效果。
SelectProductName,UnitPrice,UnitInStock
FROMProducts
ORDERBY1DESC,2DESC,3 四.運(yùn)用連接關(guān)系實(shí)現(xiàn)多表查詢(xún)
例:找出同一個(gè)城市中供應(yīng)商和客戶(hù)的名字
SelectCustomers.CompanyName,Suppliers.ComPany.Name
FROMCustomers,Suppliers
WhereCustomers.City=Suppliers.City
例:找出產(chǎn)品庫(kù)存量大于同一種產(chǎn)品的定單的數(shù)量的產(chǎn)品和定單
SelectProductName,OrderID,UnitInStock,Quantity
FROMProducts,[OrderDeails]
WhereProduct.productID=[OrderDetails].ProductID
ANDUnitsInStock>Quantity
另一種方法是用MicrosofJETSQL獨(dú)有的JNNERJOIN
語(yǔ)法:
FROMtable1INNERJOINtable2
ONtable1.field1comparisiontable2.field2
其中comparision就是前面Where子句用到的比較運(yùn)算符。
SelectFirstName,lastName,OrderID,CustomerID,OrderDate
FROMEmployees
INNERJOINOrdersONEmployees.EmployeeID=Orders.EmployeeID
注意:
INNERJOIN不能連接MemoOLEObjectSingleDouble數(shù)據(jù)類(lèi)型字段。
在一個(gè)JOIN語(yǔ)句中連接多個(gè)ON子句
語(yǔ)法:
Selectfields
FROMtable1INNERJOINtable2
ONtable1.field1compoprtable2.field1AND
ONtable1.field2compoprtable2.field2OR
ONtable1.field3compoprtable2.field3
也可以
Selectfields
FROMtable1INNERJOIN
(table2INNERJOIN[(]table3
[INNERJOER][(]tablex[INNERJOIN]
ONtable1.field1compoprtable2.field1
ONtable1.field2compoprtable2.field2
ONtable1.field3compoprtable2.field3
外部連接返回更多記錄,在結(jié)果中保留不匹配的記錄,不管存不存在滿(mǎn)足條件的記錄都要返回另一側(cè)的所有記錄。
FROMtable[LEFT|RIGHT]JOINtable2
ONtable1.field1comparisiontable.field2
用左連接來(lái)建立外部連接,在表達(dá)式的左邊的表會(huì)顯示其所有的數(shù)據(jù)
例:不管有沒(méi)有定貨量,返回所有商品
SelectProductName,OrderID
FROMProducts
LEFTJOINOrdersONProducts.PrductsID=Orders.ProductID
右連接與左連接的差別在于:不管左側(cè)表里有沒(méi)有匹配的記錄,它都從左側(cè)表中返回所有記錄。
例:如果想了解客戶(hù)的信息,并統(tǒng)計(jì)各個(gè)地區(qū)的客戶(hù)分布,這時(shí)可以用一個(gè)右連接,即使某個(gè)地區(qū)沒(méi)有客戶(hù),也要返回客戶(hù)信息。
空值不會(huì)相互匹配,可以通過(guò)外連接才能測(cè)試被連接的某個(gè)表的字段是否有空值。
Select*
FROMtalbe1
LEFTJOINtable2ONtable1.a=table2.c 四.1連接查詢(xún)中使用Iif函數(shù)實(shí)現(xiàn)以0值顯示空值
Iif表達(dá)式:Iif(IsNull(Amount,0,Amout)
例:無(wú)論定貨大于或小于¥50,都要返回一個(gè)標(biāo)志。
Iif([Amount]>50,?Bigorder?,?Smallorder?) 五分組和總結(jié)查詢(xún)結(jié)果
在SQL的語(yǔ)法里,GROUPBY和HAVING子句用來(lái)對(duì)數(shù)據(jù)進(jìn)行匯總。GROUPBY子句指明了按照哪幾個(gè)字段來(lái)分組,而將記錄分組后,用HAVING子句過(guò)濾這些記錄。
GROUPBY子句的語(yǔ)法
Selectfidldlist
FROMtable
Wherecriteria
[GROUPBYgroupfieldlist[HAVINGgroupcriteria]]
注:MicrosoftJet數(shù)據(jù)庫(kù)Jet不能對(duì)備注或OLE對(duì)象字段分組。
GROUPBY字段中的Null值以備分組但是不能被省略。
在任何SQL合計(jì)函數(shù)中不計(jì)算Null值。
GROUPBY子句后最多可以帶有十個(gè)字段,排序優(yōu)先級(jí)按從左到右的順序排列。
例:在‘WA'地區(qū)的雇員表中按頭銜分組后,找出具有同等頭銜的雇員數(shù)目大于1人的所有頭銜。
SelectTitle,Count(Title)asTotal
FROMEmployees
WhereRegion=‘WA'
GROUPBYTitle
HAVINGCount(Title)>1
JETSQL中的聚積函數(shù)
聚集函數(shù)意義
SUM()求和
AVG()平均值
COUNT()表達(dá)式中記錄的數(shù)目
COUNT(*)計(jì)算記錄的數(shù)目
MAX最大值
MIN最小值
var方差
STDEV標(biāo)準(zhǔn)誤差
FIRST第一個(gè)值
LAST最后一個(gè)值 六用Parameters聲明創(chuàng)建參數(shù)查詢(xún)
Parameters聲明的語(yǔ)法:
PARAMETERSnamedatatype[,namedatatype[,…]]
其中name是參數(shù)的標(biāo)志符,可以通過(guò)標(biāo)志符引用參數(shù).
Datatype說(shuō)明參數(shù)的數(shù)據(jù)類(lèi)型.
使用時(shí)要把PARAMETERS聲明置于任何其他語(yǔ)句之前.
例:
PARAMETERS[Lowprice]Currency,[Beginningdate]datatime
SelectOrderID,OrderAmount
FROMOrders
WhereOrderAMount>[lowprice]
ANDOrderDate>=[Beginningdate] 七功能查詢(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%
UpdateOEDERS
SETOrderAmount=OrderAmount*1.1
,Freight=Freight*1.03
WhereShipCountry=‘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*
FROMOrders
WhereOrderData<#94-1-1# 七.3追加查詢(xún)
Insert子句可以將一個(gè)或一組記錄追加到一個(gè)或多個(gè)表的尾部.
INTO子句指定接受新記錄的表
valueS關(guān)鍵字指定新記錄所包含的數(shù)據(jù)值.
Insert子句的語(yǔ)法:
INSETRINTO目的表或查詢(xún)(字段1,字段2,…)
valueS(數(shù)值1,數(shù)值2,…)
例:增加一個(gè)客戶(hù)
InsertINTOEmployees(FirstName,LastName,title)
valueS(‘Harry','Washington','Trainee') 七.4生成表查詢(xún)
可以一次性地把所有滿(mǎn)足條件的記錄拷貝到一張新表中.通常制作記錄的備份或副本或作為報(bào)表的基礎(chǔ).
SelectINTO子句用來(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*
INTOOrdersArchive
FROMOrders 八聯(lián)合查詢(xún)
UNION運(yùn)算可以把多個(gè)查詢(xún)的結(jié)果合并到一個(gè)結(jié)果集里顯示.
UNION運(yùn)算的一般語(yǔ)法:
[表]查詢(xún)1UNION[ALL]查詢(xún)2UNION…
例:返回巴西所有供給商和客戶(hù)的名字和城市
SelectCompanyName,City
FROMSuppliers
WhereCountry=‘Brazil'
UNION
SelectCompanyName,City
FROMCustomers
WhereCountry=‘Brazil'
注:
缺省的情況下,UNION子句不返回重復(fù)的記錄.如果想顯示所有記錄,可以加ALL選項(xiàng)
UNION運(yùn)算要求查詢(xún)具有相同數(shù)目的字段.但是,字段數(shù)據(jù)類(lèi)型不必相同.
每一個(gè)查詢(xún)參數(shù)中可以使用GROUPBY子句或HAVING子句進(jìn)行分組.要想以指定的順序來(lái)顯示返回的數(shù)據(jù),可以在最后一個(gè)查詢(xún)的尾部使用OREERBY子句. 九交*查詢(xún)
交*查詢(xún)可以對(duì)數(shù)據(jù)進(jìn)行總和,平均,計(jì)數(shù)或其他總和計(jì)算法的計(jì)算,這些數(shù)據(jù)通過(guò)兩種信息進(jìn)行分組:一個(gè)顯示在表的左部,另一個(gè)顯示在表的頂部.
MicrosoftJetSQL用TRANSFROM語(yǔ)句創(chuàng)建交*表查詢(xún)語(yǔ)法:
TRANSFORMaggfunction
Select語(yǔ)句
GROUPBY子句
PIVOTpivotfield[IN(value1[,value2[,…]])]
Aggfounction指SQL聚積函數(shù),
Select語(yǔ)句選擇作為標(biāo)題的的字段,
GROUPBY分組
說(shuō)明:
Pivotfield在查詢(xún)結(jié)果集中創(chuàng)建列標(biāo)題時(shí)用的字段或表達(dá)式,用可選的IN子句限制它的取值.
value代表創(chuàng)建列標(biāo)題的固定值.
例:顯示在1996年里每一季度每一位員工所接的定單的數(shù)目:
TRANSFORMCount(OrderID)
SelectFirstName&''&LastNameASFullName
FROMEmployeesINNERJOINOrders
ONEmployees.EmployeeID=Orders.EmployeeID
WhereDatePart(“yyyy”,OrderDate)=‘1996'
GROUPBYFirstName&''&LastName
ORDERBYFirstName&''&LastName
POVOTDatePart(“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*FROMProducts
WhereUnitPrice>ANY
(SelectUnitPriceFROM[OrderDetails]WhereDiscount>0.25) 十.2檢查表達(dá)式的值是否匹配子查詢(xún)返回的一組值的某個(gè)值
語(yǔ)法:
[NOT]IN(子查詢(xún))
例:返回庫(kù)存價(jià)值大于等于1000的產(chǎn)品.
SelectProductNameFROMProducts
WhereProductIDIN
(SelectPrdoctIDFROM[OrderDEtails]
WhereUnitPrice*Quantity>=1000) 十.2檢測(cè)子查詢(xún)是否返回任何記錄
語(yǔ)法:
[NOT]EXISTS(子查詢(xún))
例:用EXISTS檢索英國(guó)的客戶(hù)
SelectComPanyName,ContactName
FROMOrders
WhereEXISTS
(Select*
FROMCustomers
WhereCountry=‘UK'AND
Customers.CustomerID=Orders.CustomerID)

海外穩(wěn)定服務(wù)器

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線(xiàn)路精選!

全天候客戶(hù)服務(wù)

7x24全年不間斷在線(xiàn)

專(zhuān)屬顧問(wèn)服務(wù)

1對(duì)1客戶(hù)咨詢(xún)顧問(wèn)

在線(xiàn)
客服

在線(xiàn)客服:7*24小時(shí)在線(xiàn)

客服
熱線(xiàn)

400-630-3752
7*24小時(shí)客服服務(wù)熱線(xiàn)

關(guān)注
微信

關(guān)注官方微信
頂部