SQL語句的基本語法_第1頁
SQL語句的基本語法_第2頁
SQL語句的基本語法_第3頁
SQL語句的基本語法_第4頁
SQL語句的基本語法_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SQL語句的基基本語法一.SELECCT語句的完完整語法為:SELECCTALLL|DISTTINCT|DISTIINCTROOW|TOPP*|ttalbe.*|taable.fieldd1AS aliass1,tablee.fieeld2AAS aliias2,FROM tableeexpreessionn,IN exxternaaldataabaseWHERREGGROUP BYHAVINNGOORDER BYWITH OWNERRACCESSS OPTTION說說明:用中括括號()括起來的部部分表示是可可選的,用大大括號()括起來的的部分是表示示必須從中選選擇其中的一一個。1 FROM子

2、子句FROMM子句指定了了SELECCT語句中字字段的來源。FFROM子句句后面是包含含一個或多個個的表達式(由逗號分開開),其中的的表達式可為為單一表名稱稱、已保存的的查詢或由 INNERR JOINN、LEFTT JOINN 或 RIIGHT JJOIN 得得到的復(fù)合結(jié)結(jié)果。如果表表或查詢存儲儲在外部數(shù)據(jù)據(jù)庫,在INN 子句之后后指明其完整整路徑。例:下列SQLL語句返回所所有有定單的的客戶:SEELECT OrderrID,Cuustomeer.cusstomerrIDFROOM Ordders CCustommersWHHERE OOrderss.CusttomerIID=Cussto

3、merrs.CusstomeeersID2 ALL、DDISTINNCT、DIISTINCCTROW、TTOP謂詞(1) ALLL 返回滿滿足SQL語語句條件的所所有記錄。如如果沒有指明明這個謂詞,默默認為ALLL。例:SEELECT ALL FFirstNName,LLastNaameFROOM Empployeees(2) DISTIINCT 如如果有多個記記錄的選擇字字段的數(shù)據(jù)相相同,只返回回一個。(33) DISSTINCTTROW 如如果有重復(fù)的的記錄,只返返回一個(44) TOPP顯示查詢頭頭尾若干記錄錄。也可返回回記錄的百分分比,這是要要用 TOPP N PEERCENTT子句(

4、其中中N 表示百百分比)例:返回5%定定貨額最大的的定單SELLECT TTOP 5 PERCEENT*FRROM Orderr DetaailsOORDER BY UnnitPriice*Quuantitty*(1-Discoount) DESC3 用 AS 子句為字段段取別名如果果想為返回的的列取一個新新的標題,或或者,經(jīng)過對對字段的計算算或總結(jié)之后后,產(chǎn)生了一一個新的值,希希望把它放到到一個新的列列里顯示,則則用AS保留留。例:返回回FirsttName字字段取別名為為NickNNameSEELECT FirsttName AS NiickNamme ,LaastNamme ,Ciity

5、FROOM Empployeees例:返回回新的一列顯顯示庫存價值值SELECCT ProoductNName ,UnitPPrice ,UnittsInSttock ,UnitPPrice*UnitssInStoock ASS valuueInSttockFRROM Prroductts二 .WHERRE 子句指指定查詢條件件1 比較運算符符比較運算符符 含義= 等于 大大于= 大于于等于= 小于等于 不等于于! 不大大于!#11/1/966# ANDD OrdeerDatee#966-1-1#也可以表示示為:WHEERE OrrderDaateDaatevallue(11/1/966)使用

6、 NOOT 表達式式求反。例:查看96年年1月1日以以后的定單WWHERE Not OOrderDDateQuanntity另另一種方法是是用 Miccrosoff JET SQL 獨獨有的 JNNNER JJOIN語法法:FROMM tablle1 INNNER JJOIN ttable22ON taable1.fieldd1 commparission ttable22.fielld2其中ccomparrisionn 就是前面面WHEREE子句用到的的比較運算符符。SELEECT FiirstNaame,laastNamme,OrdderID,CustoomerIDD,OrdeerDate

7、eFROM EmplooyeesIINNER JOIN Orderrs ON Emplooyees.EmplooyeeIDD=Ordeers.EmmployeeeID注意意:INNEER JOIIN不能連接接Memo OLE OObjectt Singgle Doouble 數(shù)據(jù)類型字字段。在一個個JOIN語語句中連接多多個ON子句句語法:SELLECT ffieldssFROM tablee1 INNNER JOOIN taable2OON tabble1.ffield11 comppopr ttable22.fielld1 ANNDON ttable11.fielld2 coompoprr

8、 tablle2.fiield2 ORON tablee1.fieeld3 ccompoppr tabble2.ffield33也可以SELLECT ffieldssFROM tablee1 INNNER JOOIN(taable2 INNERR JOINN ( tablee3INNNER JOOER ( taablexINNERR JOINNON ttable11.fielld1 coompoprr tablle2.fiield1OON tabble1.ffield22 comppopr ttable22.fielld2ON tablee1.fieeld3 ccompoppr tabble2

9、.ffield33外部連接返返回更多記錄錄,在結(jié)果中中保留不匹配配的記錄,不不管存不存在在滿足條件的的記錄都要返返回另一側(cè)的的所有記錄。FROM table LEFT|RIGHTJOIN table2ON table1.field1comparision table.field2用左連接來建立外部連接,在表達式的左邊的表會顯示其所有的數(shù)據(jù)例:不管有沒有定貨量,返回所有商品SELECT ProductName ,OrderIDFROM ProductsLEFT JOIN Orders ON Products.PrductsID=Orders.ProductID右連接與左連接的差別在于:不管左側(cè)表

10、里有沒有匹配的記錄,它都從左側(cè)表中返回所有記錄。例:如果想了解客戶的信息,并統(tǒng)計各個地區(qū)的客戶分布,這時可以用一個右連接,即使某個地區(qū)沒有客戶,也要返回客戶信息??罩挡粫嗷テヅ?,可以通過外連接才能測試被連接的某個表的字段是否有空值。SELECT *FROM talbe1LEFT JOIN table2 ON table1.a=table2.c1 連接查詢中中使用Iiff函數(shù)實現(xiàn)以以0值顯示空空值Iif表表達式: IIif(IssNull(Amounnt,0,AAmout)例:無論定定貨大于或小小于¥50,都都要返回一個個標志。Iiif(Ammount50,?Big oorder?,?Smaa

11、ll orrder?)五. 分組和總總結(jié)查詢結(jié)果果在SQL的的語法里,GGROUP BY和HAAVING子子句用來對數(shù)數(shù)據(jù)進行匯總總。GROUUP BY子子句指明了按按照哪幾個字字段來分組,而而將記錄分組組后,用HAAVING子子句過濾這些些記錄。GRROUP BBY 子句的的語法SELLECT ffidldllistFRROM taableWHHERE ccriterriaGRROUP BBY grooupfieeldlisst HAAVING grouppcriteeria注:Miccrosofft Jett數(shù)據(jù)庫 JJet 不能能對備注或OOLE對象字字段分組。GGROUP BY字段中中

12、的Nulll值以備分組組但是不能被被省略。在任任何SQL合合計函數(shù)中不不計算Nulll值。GRROUP BBY子句后最最多可以帶有有十個字段,排排序優(yōu)先級按按從左到右的的順序排列。例:在WA地區(qū)的雇員表中按頭銜分組后,找出具有同等頭銜的雇員數(shù)目大于1人的所有頭銜。SELECT Title ,Count(Title) as TotalFROM EmployeesWHERE Region = WAGROUP BY TitleHAVING Count(Title)1JET SQL 中的聚積函數(shù)聚集函數(shù) 意義SUM ( ) 求和AVG ( ) 平均值COUNT ( ) 表達式中記錄的數(shù)目COUNT (

13、* ) 計算記錄的數(shù)目MAX 最大值MIN 最小值VAR 方差STDEV 標準誤差FIRST 第一個值LAST 最后一個值六. 用Parrameteers聲明創(chuàng)創(chuàng)建參數(shù)查詢詢Parammeterss聲明的語法法:PARAAMETERRS namme dattatypee,namme dattatypee, 其中naame 是參參數(shù)的標志符符,可以通過過標志符引用用參數(shù).Daatatyppe說明參數(shù)數(shù)的數(shù)據(jù)類型型.使用時要要把PARAAMETERRS 聲明置置于任何其他他語句之前.例:PARAAMETERRSLoww pricce Cuurrenccy,Beeginniing daatedaat

14、atimmeSELEECT OrrderIDD ,OrdderAmoountFRROM OrrdersWWHERE OrderrAMounntloow priiceANND OrdderDatte=BBeginnning ddate七. 功能查詢詢所謂功能查查詢,實際上上是一種操作作查詢,它可可以對數(shù)據(jù)庫庫進行快速高高效的操作.它以選擇查查詢?yōu)槟康?挑選出符合合條件的數(shù)據(jù)據(jù),再對數(shù)據(jù)據(jù)進行批處理理.功能查詢詢包括更新查查詢,刪除查查詢,添加查查詢,和生成成表查詢.1 更新查詢UUPDATEE子句可以同同時更改一個個或多個表中中的數(shù)據(jù).它它也可以同時時更改多個字字段的值.更更新查詢語法法:UPD

15、AATE 表名名SET 新新值WHERRE 準則例例:英國客戶戶的定貨量增增加5%,貨貨運量增加33%UPDAATE OEEDERSSSET OrrderAmmount = OrdderAmoount *1.1Frreightt = Frreightt*1.033WHEREE ShippCounttry = UK2 刪除查詢DDELETEE子句可以使使用戶刪除大大量的過時的的或冗于的數(shù)數(shù)據(jù).注:刪刪除查詢的對對象是整個記記錄.DELLETE子句句的語法:DDELETEE 表名.*FROOM 來源表表WHEREE 準則例: 要刪除所所有94年前前的定單DEELETE *FROMM Ordeers

16、WHEERE OrrderDaata#994-1-11#3 追加查詢IINSERTT子句可以將將一個或一組組記錄追加到到一個或多個個表的尾部.INTO 子句指定接接受新記錄的的表valuueS 關(guān)鍵鍵字指定新記記錄所包含的的數(shù)據(jù)值.IINSERTT 子句的語語法:INSSETR IINTO 目目的表或查詢詢(字段1,字段2,)valuueS(數(shù)值值1,數(shù)值22,)例:增加一個客客戶INSEERT INNTO Emmployeees(FiirstNaame,LaastNamme,tittle)vaalueS(Harrry,WWashinngton,Traainee)4 生成表查詢詢可以一次性性地

17、把所有滿滿足條件的記記錄拷貝到一一張新表中.通常制作記記錄的備份或或副本或作為為報表的基礎(chǔ)礎(chǔ).SELEECT INNTO子句用用來創(chuàng)建生成成表查詢語法法:SELEECT 字段段1,字段22,INTTO 新表IN 外部部數(shù)據(jù)庫FFROM 來來源數(shù)據(jù)庫WWHERE 準則例:為為定單制作一一個存檔備份份SELECCT *INNTO OrrdersAArchivveFROMM Ordeers八. 聯(lián)合查詢詢UNIONN運算可以把把多個查詢的的結(jié)果合并到到一個結(jié)果集集里顯示.UUNION運運算的一般語語法:表查詢1 UUNION ALL查詢2 UUNION 例:返回回巴西所有供供給商和客戶戶的名字和城城

18、市SELEECT CoompanyyName,CityFFROM SSuppliiersWHHERE CCountrry = BraziilUNIIONSELLECT CCompannyNamee,CityyFROM CustoomersWWHERE Counttry = Brazzil注:缺省的情況況下,UNIION子句不不返回重復(fù)的的記錄.如果果想顯示所有有記錄,可以以加ALL選選項UNIOON運算要求求查詢具有相相同數(shù)目的字字段.但是,字段數(shù)據(jù)類類型不必相同同.每一個查查詢參數(shù)中可可以使用GRROUP BBY 子句 或 HAVVING 子子句進行分組組.要想以指指定的順序來來顯示返回的的

19、數(shù)據(jù),可以以在最后一個個查詢的尾部部使用OREEER BYY子句.九. 交叉查詢詢交叉查詢可可以對數(shù)據(jù)進進行總和,平平均,計數(shù)或或其他總和計計算法的計算算,這些數(shù)據(jù)據(jù)通過兩種信信息進行分組組:一個顯示示在表的左部部,另一個顯顯示在表的頂頂部.Miccrosofft Jett SQL 用TRANNSFROMM語句創(chuàng)建交交叉表查詢語語法:TRAANSFORRM agggfuncttionSEELECT 語句GROOUP BYY 子句PIIVOT ppivotffieldIN(vaalue1 ,vallue2,) Aggffouncttion指SSQL聚積函函數(shù),SELLECT語句句選擇作為標標題的

20、的字段段,GROUUP BY 分組說明:Pivottfieldd 在查詢結(jié)結(jié)果集中創(chuàng)建建列標題時用用的字段或表表達式,用可可選的IN子子句限制它的的取值.vaalue代表表創(chuàng)建列標題題的固定值.例:顯示在在1996年年里每一季度度每一位員工工所接的定單單的數(shù)目:TTRANSFFORM CCount(OrderrID)SEELECT FirsttName&LaastNamme AS FullNNameFRROM Emmployeees INNNER JJOIN OOrderssON Emmployeees.EmmployeeeID = Ordeers.EmmployeeeIDWHHERE DDa

21、tePaart(“yyyyy”,OrderrDate)= 19996GRROUP BBY FirrstNamme&LastNNameORRDER BBY FirrstNamme&LastNNamePOOVOT DDatePaart(“qq”,OrdderDatte)&季季度十 .子查詢子子查詢可以理理解為 套查查詢.子查詢詢是一個SEELECT語語句.1 表達式的值值與子查詢返返回的單一值值做比較語法法:表達式 compaarisioon ANNY|ALLL|SOMEE(子查詢詢)說明:ANYY和SOMEE謂詞是同義義詞,與比較較運算符(=,=)一一起使用.返返回一個布爾爾值Truee或Falsse.ANYY的意思是,表達式與子子查詢返回的的一系列的值值逐一比較,只

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論