




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQL基本語(yǔ)句及示例1.SQLSELECT語(yǔ)句SELECT語(yǔ)句用于從表中選取數(shù)據(jù)。結(jié)果被存儲(chǔ)在一個(gè)結(jié)果表中(稱為結(jié)果集)。SQLSELECT語(yǔ)法SELECT列名稱FROM表名稱以及:SELECT*FROM表名稱注釋:SQL語(yǔ)句對(duì)大小寫(xiě)不敏感。SELECT等效于select。SQLSELECT實(shí)例如需獲取名為"LastName"和"FirstName"的列的內(nèi)容(從名為"Persons"的數(shù)據(jù)庫(kù)表),請(qǐng)使用類似這樣的SELECT語(yǔ)句:SELECTLastName,FirstNameFROMPersons"Persons"表:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYork3CarterThomasChanganStreetBeijing結(jié)果:LastNameFirstNameAdamsJohnBushGeorgeCarterThomasSQLSELECT*實(shí)例現(xiàn)在我們希望從"Persons"表中選取所有的列。請(qǐng)使用符號(hào)*取代列的名稱,就像這樣:SELECT*FROMPersons提示:星號(hào)(*)是選取所有列的快捷方式。結(jié)果:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYork3CarterThomasChanganStreetBeijing2.SQLSELECTDISTINCT語(yǔ)句在表中,可能會(huì)包含重復(fù)值。這并不成問(wèn)題,不過(guò),有時(shí)您也許希望僅僅列出不同(distinct)的值。關(guān)鍵詞DISTINCT用于返回唯一不同的值。語(yǔ)法:SELECTDISTINCT列名稱FROM表名稱使用DISTINCT關(guān)鍵詞如果要從"Company"列中選取所有的值,我們需要使用SELECT語(yǔ)句:SELECTCompanyFROMOrders"Orders"表:CompanyOrderNumberIBM3532W3School2356Apple4698W3School6953結(jié)果:CompanyIBMW3SchoolAppleW3School請(qǐng)注意,在結(jié)果集中,W3School被列出了兩次。如需從Company"列中僅選取唯一不同的值,我們需要使用SELECTDISTINCT語(yǔ)句:SELECTDISTINCTCompanyFROMOrders結(jié)果:CompanyIBMW3SchoolApple現(xiàn)在,在結(jié)果集中,"W3School"僅被列出了一次。3.WHERE子句如需有條件地從表中選取數(shù)據(jù),可將WHERE子句添加到SELECT語(yǔ)句。語(yǔ)法SELECT列名稱FROM表名稱WHERE列運(yùn)算符值下面的運(yùn)算符可在WHERE子句中使用:操作符描述=等于<>不等于>大于<小于>=大于等于<=小于等于BETWEEN在某個(gè)范圍內(nèi)LIKE搜索某種模式注釋:在某些版本的SQL中,操作符<>可以寫(xiě)為!=。使用WHERE子句如果只希望選取居住在城市"Beijing"中的人,我們需要向SELECT語(yǔ)句添加WHERE子句:SELECT*FROMPersonsWHERECity='Beijing'"Persons"表LastNameFirstNameAddressCityYearAdamsJohnOxfordStreetLondon1970BushGeorgeFifthAvenueNewYork1975CarterThomasChanganStreetBeijing1980GatesBillXuanwumen10Beijing1985結(jié)果:LastNameFirstNameAddressCityYearCarterThomasChanganStreetBeijing1980GatesBillXuanwumen10Beijing1985引號(hào)的使用請(qǐng)注意,我們?cè)诶又械臈l件值周圍使用的是單引號(hào)。SQL使用單引號(hào)來(lái)環(huán)繞文本值(大部分?jǐn)?shù)據(jù)庫(kù)系統(tǒng)也接受雙引號(hào))。如果是數(shù)值,請(qǐng)不要使用引號(hào)。文本值:這是正確的:SELECT*FROMPersonsWHEREFirstName='Bush'這是錯(cuò)誤的:SELECT*FROMPersonsWHEREFirstName=Bush數(shù)值:這是正確的:SELECT*FROMPersonsWHEREYear>1965這是錯(cuò)誤的:SELECT*FROMPersonsWHEREYear>'1965'4.AND和OR運(yùn)算符AND和OR可在WHERE子語(yǔ)句中把兩個(gè)或多個(gè)條件結(jié)合起來(lái)。如果第一個(gè)條件和第二個(gè)條件都成立,則AND運(yùn)算符顯示一條記錄。如果第一個(gè)條件和第二個(gè)條件中只要有一個(gè)成立,則OR運(yùn)算符顯示一條記錄。原始的表(用在例子中的):LastNameFirstNameAddressCityAdamsJohnOxfordStreetLondonBushGeorgeFifthAvenueNewYorkCarterThomasChanganStreetBeijingCarterWilliamXuanwumen10BeijingAND運(yùn)算符實(shí)例使用AND來(lái)顯示所有姓為"Carter"并且名為"Thomas"的人:SELECT*FROMPersonsWHEREFirstName='Thomas'ANDLastName='Carter'結(jié)果:LastNameFirstNameAddressCityCarterThomasChanganStreetBeijingOR運(yùn)算符實(shí)例使用OR來(lái)顯示所有姓為"Carter"或者名為"Thomas"的人:SELECT*FROMPersonsWHEREfirstname='Thomas'ORlastname='Carter'結(jié)果:LastNameFirstNameAddressCityCarterThomasChanganStreetBeijingCarterWilliamXuanwumen10Beijing結(jié)合AND和OR運(yùn)算符我們也可以把AND和OR結(jié)合起來(lái)(使用圓括號(hào)來(lái)組成復(fù)雜的表達(dá)式):SELECT*FROMPersonsWHERE(FirstName='Thomas'ORFirstName='William')ANDLastName='Carter'結(jié)果:LastNameFirstNameAddressCityCarterThomasChanganStreetBeijingCarterWilliamXuanwumen10Beijing5.ORDERBY語(yǔ)句ORDERBY語(yǔ)句用于對(duì)結(jié)果集進(jìn)行排序ORDERBY語(yǔ)句用于根據(jù)指定的列對(duì)結(jié)果集進(jìn)行排序。ORDERBY語(yǔ)句默認(rèn)按照升序?qū)τ涗涍M(jìn)行排序。如果您希望按照降序?qū)τ涗涍M(jìn)行排序,可以使用DESC關(guān)鍵字。原始的表(用在例子中的):Orders表:CompanyOrderNumberIBM3532W3School2356Apple4698W3School6953實(shí)例1以字母順序顯示公司名稱:SELECTCompany,OrderNumberFROMOrdersORDERBYCompany結(jié)果:CompanyOrderNumberApple4698IBM3532W3School6953W3School2356實(shí)例2以字母順序顯示公司名稱(Company),并以數(shù)字順序顯示順序號(hào)(OrderNumber):SELECTCompany,OrderNumberFROMOrdersORDERBYCompany,OrderNumber結(jié)果:CompanyOrderNumberApple4698IBM3532W3School2356W3School6953實(shí)例3以逆字母順序顯示公司名稱:SELECTCompany,OrderNumberFROMOrdersORDERBYCompanyDESC結(jié)果:CompanyOrderNumberW3School6953W3School2356IBM3532Apple4698實(shí)例4以逆字母順序顯示公司名稱,并以數(shù)字順序顯示順序號(hào):SELECTCompany,OrderNumberFROMOrdersORDERBYCompanyDESC,OrderNumberASC結(jié)果:CompanyOrderNumberW3School2356W3School6953IBM3532Apple4698注意:在以上的結(jié)果中有兩個(gè)相等的公司名稱(W3School)。只有這一次,在第一列中有相同的值時(shí),第二列是以升序排列的。如果第一列中有些值為nulls時(shí),情況也是這樣的。6.INSERTINTO語(yǔ)句INSERTINTO語(yǔ)句用于向表格中插入新的行。語(yǔ)法INSERTINTO表名稱VALUES(值1,值2,....)我們也可以指定所要插入數(shù)據(jù)的列:INSERTINTOtable_name(列1,列2,...)VALUES(值1,值2,....)插入新的行"Persons"表:LastNameFirstNameAddressCityCarterThomasChanganStreetBeijingSQL語(yǔ)句:INSERTINTOPersonsVALUES('Gates','Bill','Xuanwumen10','Beijing')結(jié)果:LastNameFirstNameAddressCityCarterThomasChanganStreetBeijingGatesBillXuanwumen10Beijing在指定的列中插入數(shù)據(jù)"Persons"表:LastNameFirstNameAddressCityCarterThomasChanganStreetBeijingGatesBillXuanwumen10BeijingSQL語(yǔ)句:INSERTINTOPersons(LastName,Address)VALUES('Wilson','Champs-Elysees')結(jié)果:LastNameFirstNameAddressCityCarterThomasChanganStreetBeijingGatesBillXuanwumen10BeijingWilson
Champs-Elysees
7.DELETE語(yǔ)句DELETE語(yǔ)句用于刪除表中的行。語(yǔ)法DELETEFROM表名稱WHERE列名稱=值Person:LastNameFirstNameAddressCityGatesBillXuanwumen10BeijingWilsonFredZhongshan23Nanjing刪除某行"FredWilson"會(huì)被刪除:DELETEFROMPersonWHERELastName='Wilson'結(jié)果:LastNameFirstNameAddressCityGatesBillXuanwumen10Beijing刪除所有行可以在不刪除表的情況下刪除所有的行。這意味著表的結(jié)構(gòu)、屬性和索引都是完整的:DELETEFROMtable_name或者DELETE*FROMtable_nameSQL函數(shù)SQLAVG()語(yǔ)法SELECTAVG(column_name)FROMtable_nameSQLAVG()實(shí)例我們擁有下面這個(gè)"Orders"表:O_IdOrderDateOrderPriceCustomer12008/12/291000Bush22008/11/231600Carter32008/10/05700Bush42008/09/28300Bush52008/08/062000Adams62008/07/21100Carter例子1現(xiàn)在,我們希望計(jì)算"OrderPrice"字段的平均值。我們使用如下SQL語(yǔ)句:SELECTAVG(OrderPrice)ASOrderAverageFROMOrders結(jié)果集類似這樣:OrderAverage950例子2現(xiàn)在,我們希望找到OrderPrice值高于OrderPrice平均值的客戶。我們使用如下SQL語(yǔ)句:SELECTCustomerFROMOrdersWHEREOrderPrice>(SELECTAVG(OrderPrice)FROMOrders)結(jié)果集類似這樣:CustomerBushCarterAdamsSQLCOUNT()函數(shù)COUNT()函數(shù)返回匹配指定條件的行數(shù)。SQLCOUNT(column_name)語(yǔ)法COUNT(column_name)函數(shù)返回指定列的值的數(shù)目(NULL不計(jì)入):SELECTCOUNT(column_name)FROMtable_nameSQLCOUNT(*)語(yǔ)法COUNT(*)函數(shù)返回表中的記錄數(shù):SELECTCOUNT(*)FROMtable_nameSQLCOUNT(DISTINCTcolumn_name)語(yǔ)法COUNT(DISTINCTcolumn_name)函數(shù)返回指定列的不同值的數(shù)目:SELECTCOUNT(DISTINCTcolumn_name)FROMtable_name注釋:COUNT(DISTINCT)適用于ORACLE和MicrosoftSQLServer,但是無(wú)法用于MicrosoftAccess。SQLCOUNT(column_name)實(shí)例我們擁有下列"Orders"表:O_IdOrderDateOrderPriceCustomer12008/12/291000Bush22008/11/231600Carter32008/10/05700Bush42008/09/28300Bush52008/08/062000Adams62008/07/21100Carter現(xiàn)在,我們希望計(jì)算客戶"Carter"的訂單數(shù)。我們使用如下SQL語(yǔ)句:SELECTCOUNT(Customer)ASCustomerNilsenFROMOrdersWHERECustomer='Carter'以上SQL語(yǔ)句的結(jié)果是2,因?yàn)榭蛻鬋arter共有2個(gè)訂單:CustomerNilsen2SQLCOUNT(*)實(shí)例如果我們省略WHERE子句,比如這樣:SELECTCOUNT(*)ASNumberOfOrdersFROMOrders結(jié)果集類似這樣:NumberOfOrders6這是表中的總行數(shù)。SQLCOUNT(DISTINCTcolumn_name)實(shí)例現(xiàn)在,我們希望計(jì)算"Orders"表中不同客戶的數(shù)目。我們使用如下SQL語(yǔ)句:SELECTCOUNT(DISTINCTCustomer)ASNumberOfCustomersFROMOrders結(jié)果集類似這樣:NumberOfCustomers3這是"Orders"表中不同客戶(Bush,Carter和Adams)的數(shù)目。MAX()函數(shù)MAX函數(shù)返回一列中的最大值。NULL值不包括在計(jì)算中。注:同理MIN()函數(shù):返回一列中的最小值SQLMAX()語(yǔ)法SELECTMAX(column_name)FROMtable_name注釋:MIN和MAX也可用于文本列,以獲得按字母順序排列的最高或最低值。SQLMAX()實(shí)例我們擁有下面這個(gè)"Orders"表:O_IdOrderDateOrderPriceCustomer12008/12/291000Bush22008/11/231600Carter32008/10/05700Bush42008/09/28300Bush52008/08/062000Adams62008/07/21100Carter現(xiàn)在,我們希望查找"OrderPrice"列的最大值。我們使用如下SQL語(yǔ)句:SELECTMAX(OrderPrice)ASLargestOrderPriceFROMOrders結(jié)果集類似這樣:LargestOrderPrice2000SUM()函數(shù)SUM函數(shù)返回?cái)?shù)值列的總數(shù)(總額)。SQLSUM()語(yǔ)法SELECTSUM(column_name)FROMtable_nameSQLSUM()實(shí)例我們擁有下面這個(gè)"Orders"表:O_IdOrderDateOrderPriceCustomer12008/12/291000Bush22008/11/231600Carter32008/10/05700Bush42008/09/28300Bush52008/08/062000Adams62008/07/21100Carter現(xiàn)在,我們希望查找"OrderPrice"字段的總數(shù)。我們使用如下SQL語(yǔ)句:SELECTSUM(OrderPrice)ASOrderTotalFROMOrders結(jié)果集類似這樣:OrderTotal5700GROUPBY語(yǔ)句合計(jì)函數(shù)(比如SUM)常常需要添加GROUPBY語(yǔ)句。GROUPBY語(yǔ)句用于結(jié)合合計(jì)函數(shù),根據(jù)一個(gè)或多個(gè)列對(duì)結(jié)果集進(jìn)行分組。SQLGROUPBY語(yǔ)法SELECTcolumn_name,aggregate_function(column_name)FROMtable_nameWHEREcolumn_nameoperatorvalueGROUPBYcolumn_nameSQLGROUPBY實(shí)例我們擁有下面這個(gè)"Order
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 毛里求斯協(xié)議書(shū)
- 創(chuàng)設(shè)和諧教育環(huán)境的學(xué)校幼兒園教研計(jì)劃
- 道路通行協(xié)議書(shū)模板
- 車房裝修協(xié)議書(shū)范本
- 民宿包場(chǎng)協(xié)議書(shū)
- 河里取土協(xié)議書(shū)
- 演員合同協(xié)議書(shū)
- 業(yè)務(wù)承攬合同與業(yè)務(wù)行為規(guī)范承諾書(shū)
- 鄉(xiāng)村集體經(jīng)濟(jì)合作協(xié)議
- 建筑業(yè)農(nóng)民工勞動(dòng)合同書(shū)
- 2024-2030年中國(guó)蘿卜種植市場(chǎng)營(yíng)銷渠道分析與發(fā)展規(guī)模研究研究報(bào)告
- 外研版英語(yǔ)四年級(jí)下冊(cè)閱讀理解練習(xí)(含答案)
- 紡織非遺:讓世界讀懂中國(guó)之美智慧樹(shù)知到期末考試答案章節(jié)答案2024年天津工業(yè)大學(xué)
- DZT 0447-2023 巖溶塌陷調(diào)查規(guī)范(1:50000)
- 2024年江西省中考地理試題
- JCT 871-2023 鍍銀玻璃鏡 (正式版)
- 【“三全育人”在幼兒德育教育中的實(shí)踐探究3700字(論文)】
- 法醫(yī)精神病題庫(kù)
- MOOC 英國(guó)小說(shuō)-南京大學(xué) 中國(guó)大學(xué)慕課答案
- 肺栓塞中國(guó)指南
- 房建監(jiān)理投標(biāo)文件技術(shù)部分
評(píng)論
0/150
提交評(píng)論