《SQL Server數(shù)據(jù)庫實用案例教程》 實驗4-單表查詢 參考代碼-不要先發(fā)學(xué)生_第1頁
《SQL Server數(shù)據(jù)庫實用案例教程》 實驗4-單表查詢 參考代碼-不要先發(fā)學(xué)生_第2頁
《SQL Server數(shù)據(jù)庫實用案例教程》 實驗4-單表查詢 參考代碼-不要先發(fā)學(xué)生_第3頁
《SQL Server數(shù)據(jù)庫實用案例教程》 實驗4-單表查詢 參考代碼-不要先發(fā)學(xué)生_第4頁
《SQL Server數(shù)據(jù)庫實用案例教程》 實驗4-單表查詢 參考代碼-不要先發(fā)學(xué)生_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

提示:不要把答案先發(fā)給學(xué)生,實驗結(jié)束后再公布答案。要讓學(xué)生先自己思考做題,老師對學(xué)生不會的題目適當提示,一題題解決困惑。實驗4單表查詢參考代碼繼續(xù)使用實驗2創(chuàng)建的銀行儲蓄數(shù)據(jù)庫,客戶信息(customerinfo)表、賬戶信息(accountinfo)表、交易信息(transInfo)表三個表的表結(jié)構(gòu)見表2-18?表2-20。先用創(chuàng)建環(huán)境文檔創(chuàng)建數(shù)據(jù)庫和表,然后打開數(shù)據(jù)庫,使用SQL語句完成如下查詢操作,每個查詢只涉及一張表中的數(shù)據(jù)。(1)用SQL語句查詢所有客戶的信息。-說明:先確定要查詢的數(shù)據(jù)在哪個表中,查所有信息用*號最簡單。select*fromcustomerinfo―查詢結(jié)果如圖1-也可以把一個個列名寫出來,表名、列名都不能寫錯,列的順序可以任意selectcustomerTD,customerName,phone,address,cardType,cardTDfromcustomerlnfo國結(jié)果為消息customerlDcustomerNamecardTypecardIDphoneaddress11 |你的名字身份證111111111111安徽蕪湖灣讓區(qū)22同學(xué)1身份證22222221111安徽合肥33同學(xué)2身份證33333331111安徽蚌埠圖144張亮亮護照43434431111安徽蕪湖55亮晶晶軍官證56789551111NULLcustomerlDcustomerNamephoneaddresscardTypecardID11 1你的名字111111安徽蕪湖灣扯區(qū)身份證min22同學(xué)1221111安徽合肥身份證22222圖233同學(xué)2331111安徽蚌埠身份證3333344張亮亮431111安徽蕪湖護照 4343455?日日冗日日日日551111NULL軍官證56789(2)用SQL語句查詢所有“蕪湖”客戶的客戶編號、客戶姓名、電話,按照姓名排序。--說明:先aselect*from表名”查看表中列名select*fromcustomerinfo--select后面寫需要查詢的列名,from后面寫表名,條件寫在where后面--模糊查詢不能用二號,需要用like與通配符配合,有兩個不同的通配符。-通配符%表示該位置可以有任意多個字符,也可以沒有-通配符一表示該位置必須有一個,并且只能有一個字符selectcustomerlD,customerName,phonefromcustomerinfowhereaddresslike%蕪湖%,-like模糊查詢包含“蕪湖”的地址orderbycustomerName ---排序用orderby子句目結(jié)果魚消息customerlDcustomerNamephone.????????????????????????????????????????????????■i 11 |你的名字 min2 4 張亮亮 431111(3)用SQL語句查詢哪些客戶沒有填寫地址和郵編。--說明:先"select*from表名”查看表中地址和郵編的列名select*fromcustomerinfo--判斷空值用isnull,不要用=null,null大小寫都可以,不可以加引號Select*fromcustomerinfowhereaddressisnull里結(jié)果心消息customerlDcustomerNamecardTypecardIDphoneaddress1 \5:亮晶晶 軍官證56789551111NULL(4)用SQL語句查詢姓名第二個字是“亮”的客戶,顯示客戶名稱和電話的漢字列名。--定義別名有三種方式,見例題2-64說明文字。selectcustomerName客戶名稱,phone電話fromcustomerinfowherecustomerNamelike1亮%,---模糊查詢必須用like與通配符配合使用客戶名稱電話|聞結(jié)果B消息1I諫亮亮 |431111客戶名稱電話I I {(5)用SQL語句查詢存款的貨幣類型(不顯示重復(fù)值)。-說明:貨幣類型存儲在賬戶信息(accountinfo)表--先“select*from表名”查看表中貨幣類型的列名是moneyTypeselect*fromcustomerinfo-以下兩條語句執(zhí)行效果不同,第一條語句執(zhí)行效果如左圖--第二條語句執(zhí)行效果如右圖,是希望的結(jié)果,用distinct去除了結(jié)果中的重復(fù)行selectmoneyTypefromaccountinfoselectdistinctmoneyTypefromaccountinfomoneyType:人民幣人民幣港幣moneyType1moneyType1:港幣2人民幣人民幣人民幣(6)用SQL語句查詢你的某一位好友在本銀行是否有注冊信息(按姓名查詢)。-說明:再次練習(xí)使用where子句篩選滿足條件的行-同學(xué)的名字根據(jù)自己的數(shù)據(jù)決定,如果查不到顯示空表Select*fromcustomerinfowherecustomerName='同學(xué)名'旦結(jié)果魚消息customerlDcustomerNamecardTypecardIDphoneaddress(7)用SQL語句查詢賬戶余額在100到300之間的的賬號和余額。-說明:賬號和余額在賬戶信息(accountinfo)表中-可以先寫“select*表名”查看表中列的名字,然后再寫準確的列名select二fromaccountinfo-多個條件同時滿足用and邏輯運算符,不能寫成〈二@出011111]\4011?丫<=500selectaccountID,accountMoneyfromaccountinfowhereaccountMoney>=300andaccountMoney<=500-也可以用between.,and,查詢效果一樣,包括兩個邊界值selectaccountID,accountMoneyfromaccountinfowhereaccountMoneybetween300and500□結(jié)果」消息account!D|1003accountMoneyaccount!D|1003accountMoney400.00(8)用SQL語句查詢賬戶余額最高的前十個賬戶的賬號和余額。-說明:查詢前n行用topn,因為表中沒有10行數(shù),我們改為查詢前兩行-本題需要按照余額降序排序再取前幾行selecttop2accountID,accountMoneyfromaccountinfoorderbyaccountMoneydescs結(jié)果B消息accountlDaccountMoney1I1001I2590.002 3001 1000.00--查詢表中所有行按照余額降序排序的結(jié)果selectaccountlD,accountMoneyfromaccountinfoorderbyaccountMoneydesc結(jié)果UJ消息accountlDaccountMoney1I1001

*2 30011I1001

*2 30013 10034 10025 10056 1004j2590.001000.00400.00200.0040.0030.00(9)用SQL語句查詢目前的存款總額,也就是所有賬戶余額之和。-說明:賬戶余額在賬戶信息(accountinfo)表,查看列名select*fromaccountinfo--本題用到聚合函數(shù)sum()對余額求和selectsum(accountMoney)fromaccountinfo--可以給查詢結(jié)果重新定義列名,查詢結(jié)果如右圖selectsum(accountMoney)□結(jié)果selectsum(accountMoney)□結(jié)果J消息(無列名)1I426000I??存款總額fromaccountinfo口結(jié)果3消息存款總額4260.00(10)用SQL語句查詢某一天的取款總金額,具體哪一天自己指定。-說明:每天的取款信息在交易信息(transInfo)表中記錄--先用“select*from表名”查看表中的數(shù)據(jù)和列名select*fromtransInfo-取款時間是日期型,需要轉(zhuǎn)換為數(shù)值型再比較,用到日期函數(shù),見附錄A-4selectSUM(transMoney)取款總金額fromtransInfo-取款記錄-取交易日期中的年-取交易日期中的月--取交易日期中的日wheretransType='支取'andYEAR(transDate)=-取款記錄-取交易日期中的年-取交易日期中的月--取交易日期中的日1國結(jié)果g消息取款總金額i2bobI(11)用SQL語句查詢每個月的存款總金額,并按存款總金額降序排序。-說明:先用“select*from表名”查看表中的數(shù)據(jù)和列名select*fromtransInfo-查詢每個月的存款總金額用到groupby分組子句,對每一組聚合統(tǒng)計-用到日期轉(zhuǎn)字符串類型函數(shù)DATENAME0,連接字符串用+加號selectDATENAME(yy,transDate)+7'+DATENAME(mm,transDate),SUM(transMoney)fromtransInfowheretransType='存入'groupbyDATENAME(yy,transDate)+7'+DATENAME(mm,transDate)這結(jié)果3消息(無列名)(無列名)112023/05|4280.002'5o5§/O6100.00-定義列別名selectDATENAME(yy,transDate)+7'+DATENAME(mm,transDate)年月,SUM(transMoney)總金額fromtransInfowheretransType='存入’groupbyDATENAME(yy,transDate)+7,+DATENAME(mm,transDate)口結(jié)果消息年月總金額I??????????????????????????????????????? 2023/05I4280.002 2023/06100.00(12)用SQL語句查詢哪些客戶編號有多張銀

溫馨提示

  • 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

提交評論