




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
提示:不要把答案先發給學生,實驗結束后再公布答案。要讓學生先自己思考做題,老師對學生不會的題目適當提示,一題題解決困惑。實驗6多種方式多表查詢參考代碼繼續使用實驗2創建的銀行儲蓄數據庫,客戶信息(customerinfo)表、賬戶信息(accountinfo)表、交易信息(transInfo)表三個表的表結構見表2-18?表2-20。(1)查詢賬戶余額低于100元的客戶的客戶編號、客戶姓名、電話、地址郵編(連接查詢、嵌套)。提示:在交易信息表中修改數據,制造數據驗證查詢效果。--說明:本題涉及兩張表“select*from表名”查看表中列名和數據select*fromcustomerinfoselect*fromaccountinfo-連接查詢是將涉及的表都放在FROM后面,關聯條件寫在where后面selectac.customerlD,customerName,phone,addressfromcustomerinfocu,accountinfoac 一本題只需兩張表wherecu.customerlD=ac.customerlD 一關聯條件,表別名?列名andaccountMoney<100-嵌套查詢是FROM后面只寫一個表,where條件中關聯另一個表-不管是連接查詢還是嵌套查詢,關聯條件不變,都是customerlDselectcustomerlD,customerName,phone,addressfromcustomerinfo --只寫一個張表wherecustomerlDin --用in不能用二,因為查詢結果可能多行(selectcustomerlDfromaccountinfo 一嵌套一個完整查詢語句whereaccountMoney<100)里結果魚消息phoneaddress431111phoneaddress431111安徽蕪湖551111NULL1 |4 |張元殼2 5 亮晶晶(2)查詢本月存款超過三次的賬號所屬客戶的詳細信息,包括客戶編號、客戶姓名、證件類型、證件號碼、電話、地址郵編。(連接查詢、嵌套查詢)-說明:本題涉及三張表“select*from表名”查看表中列名和數據select*fromcustomerinfoselect:fromaccountlnfoselect:fromtransInfo-三個表,兩級嵌套查詢selectcustomerlD,customerName,cardType,cardID,phone,addressfromcustomerinfo 一一個表wherecustomerlDin 一第一級嵌套,關聯到accountinfo表(selectcustomerlDfromaccountinfowhereaccountIDin --第二級嵌套,關聯到transInfo表(selectaccountIDfromtransInfowhereMONTH(transDate)=MONTH(GETDATE())―本月的條件andtransType廿存入,groupbyaccountIDhavingCOUNT(^)>3))--存款超過三次-說明:沒有超過三次的可以改為havingCOUNT(*)〉2-連接查詢,所有查詢列都放在groupby后面進行分組selectac.customerlD,customerName,cardType,cardID,phone,addressfromcustomerinfocu,accountinfoac,transInfotr --三個表wherecu.customerlD=ac.customerlDandac.accountID=tr.accountIDandMONTH(transDate)=MONTH(GETDATE())andtransType廿存入'groupbyac.customerlD,customerName,cardType,cardID,phone,addresshavingCOUNT(*)>3 -存款超過三次(3)查詢哪些客戶既有存款,也有取款操作,顯示客戶姓名、電話、賬號(嵌套查詢、集合查詢)。-說明:本題涉及三張表“select*from表名”查看表中列名和數據select*fromcustomerinfoselect*fromaccountinfoselect*fromtransInfo-從交易信息(transInfo)表能看到存款還是取款-交易信息表與賬戶信息(accountinfo)表通過賬號關聯--賬戶信息表與客戶信息(customerinfo)表通過客戶編號關聯selectcustomerName客戶姓名,phone電話,accountID賬號fromcustomerinfocu,accountinfoac -先寫兩個表wherecu.customerlD=ac.customerlDandaccountIDin(selectaccountIDfromtransInfowheretransType廿存入'andMONTH(transDate)=MONTH(GETDATE()))andaccountIDin(selectaccountIDfromtransInfowheretransType廿支取'andMONTH(transDate)=MONTH(GETDATE()))-集合查詢:分別查詢存款和取款的,然后取交集selectcustomerName客戶姓名,phone電話,ac.accountID賬號fromcustomerinfocu,accountinfoac,transInfotr --三個表wherecu.customerlD=ac.customerlDandac.accountID=tr.accountIDandtransType廿存入'andMONTH(transDate)=MONTH(GETDATE())intersect -取兩個查詢結果的交集selectcustomerName客戶姓名,phone電話,ac.accountID賬號fromcustomerinfocu,accountinfoac,transInfotr --三個表wherecu.customerlD=ac.customerlDandac.accountID=tr.accountIDandtransType廿支取'andMONTH(transDate)=MONTH(GETDATE())口結果4消息客戶姓名電話禰的茗字I111111客戶姓名電話禰的茗字I111111賬號2001(4)查詢哪些客戶在今年只有存款,沒有取款,顯示客戶姓名(嵌套查詢、集合查詢)o-在上一題的基礎上修改就很簡單--連接查詢+嵌套查詢,比上題僅修改一處notinselectcustomerName客戶姓名,phone電話,accountID賬號fromcustomerinfocu,accountinfoac 一先寫兩個表wherecu.customerlD=ac.customerlDandaccountIDin(selectaccountIDfromtransInfowheretransType廿存入'andMONTH(transDate)=MONTH(GETDATE()))andaccountIDnotin(selectaccountIDfromtransInfo一沒有取款notinwheretransType廿支取'andMONTH(transDate)=MONTH(GETDATE()))-集合查詢:分別查詢存款和取款的,然后取交集selectcustomerName客戶姓名,phone電話,ac.accountID賬號fromcustomerinfocu,accountinfoac,transInfotr --三個表wherecu.customerlD=ac.customerlDandac.accountID=tr.accountIDandtransType廿存入'andMONTH(transDate)=MONTH(GETDATE())except 一-不是取交集了,改為差操作selectcustomerName客戶姓名,phone電話,ac.accountID賬號fromcustomerinfocu,accountinfoac,transInfotr --三個表wherecu.customerlD=ac.customerlDandac.accountID=tr.accountIDandtransType廿支取'andMONTH(transDate)=MONTH(GETDATE())國結果3消息客戶姓名1客戶姓名1rwi-2'…同學5……22111110103311111011(5)查詢存款余額最低的賬戶的客戶信息,顯示客戶編號、客戶姓名、電話(嵌套查詢、基于派生表查詢)。-說明:本題涉及兩張表“select*from表名”查看表中列名和數據selectfromcustomerinfoselect二fromaccountTnfoorderbyaccountMoney--嵌套查詢,兩級嵌套,自己查看表中數據進行驗證selectcustomerlD客戶編號,customerName客戶姓名,phone電話fromcustomerinfo 一一個表wherecustomerlDin 一第一級嵌套(selectcustomerlDfromaccountinfowhereaccountMoney= --第二級嵌套,最低余額只有一個,用二即可(selectMIN(accountMoney)fromaccountinfo)) --查最低余額-基于派生表查詢,兩個基本表和一個派生表連接查詢selectcu.customerlD客戶編號,customerName客戶姓名,phone電話fromcustomerinfocu,accountinfoac,(selectMIN(accountMoney)mfromaccountinfo)ss-4卮生表wherecu.customerlD=ac.customerlDandaccountMoney=m國結果為消息客戶編號客戶姓名電話???????????????????????????????????????????I1 |4 張亮亮431111(6)查詢單筆存款金額最大的客戶的客戶編號、客戶姓名、電話(嵌套查詢、基于派生表查詢)。-說明:本題涉及三張表“select*from表名”查看表中列名和數據select*fromcustomerinfoselectfromaccountinfoselectfromtransInfo-嵌套查詢,三級嵌套,自己查看表中數據進行驗證selectcustomerlD客戶編號,customerName客戶姓名,phone電話fromcustomerinfo --一個表wherecustomerlDin --第一級嵌套(selectcustomerlDfromaccountinfowhereaccountIDin --第二級嵌套(selectaccountIDfromtransInfowheretransMoney= 一第三級嵌套,子查詢結果確定一行,用=即可(selectMAX(transMoney)fromtransInfowheretransType='存入')))-基于派生表查詢,三個基本表和一個派生表連接查詢selectcu.customerlD客戶編號,customerName客戶姓名,phone電話fromcustomerinfocu,accountinfoac,transInfotr,(selectMAX(transMoney)mmfromtransInfowheretransType='存入')sswherecu.customerlD=ac.customerlDandac.accountID=tr.accountIDandtransMoney=mm口結果」消息客戶編號客戶姓名電話1Pi I你的名字 mm(7)查詢哪些客戶從未取款,顯示客戶編號、客戶姓名、電話(嵌套查詢、外連接查詢、集合查詢)。-說明:本題涉及三張表“select*from表名”查看表中列名和數據select二fromcustomerinfoselect:fromaccountinfoselect*fromtransInfo--嵌套查詢,三級嵌套,自己查看表中數據進行驗證selectcustomerlD客戶編號,customerName客戶姓名,phone電話fromcustomerinfo 一一個表wherecustomerlDnotin --第一級嵌套notin(selectcustomerlDfromaccountinfowhereaccountIDin --第二級嵌套(selectaccountIDfromtransInfowheretransType='支取'))-外連接+內連接selectdistinctcu.customerlD客戶編號,customerName客戶姓名,phone電話fromcustomerinfoculeftjoin(selectcustomerlDfromaccountinfoac,transInfotrwhereac.accountID二tr.accountIDandtransType='支取')aaoncu.customerlD=aa.customerlD --外連接要有on接連接條件whereaa.customerlDisnull --外連接其他條件還是在where子句-集合查詢selectcustomerlD客戶編號,customerName客戶姓名,phone電話fromcustomerinfoexcept 一差運算selectcu.customerlD客戶編號,customerName客戶姓名,phone電話fromcustomerinfocu,accountinfoac,transInfotrwherecu.customerlD=ac.customerlDandac.accountID=tr.accountID口結果3消息客戶編號3口結果3消息客戶編號34567客戶姓名電話同學2 |331111張亮亮 431111亮晶晶 551111張華 661111李莉華 771111(8)統計日營業額,顯示日期、存款金額、取款金額、余額(存款金額-取款金額),查詢結果按照日期降序(外連接查詢、基于派生表查詢)。-說明:本題只涉及交易信息(transInfo)表select*fromtransInfo-基于派生表查詢+外連接查詢,自己查看表中數據進行驗證有的月份只有存款,或者只有取款,用內連接會無法取出selectbl.rq,bl.je存款金額,b2.je取款金額,bl.je-b2.je余額from(selectCONVERT(char,transDate,102)rq,SUM(transMoney)jefromtransInfowheretransType='存入'groupbyCONVERT(char,transDate,102))blleftjoin(selectCONVERT(char,transDate,102)rq,SUM(transMoney)jefromtransInfowheretransType='支取’groupbyCONVERT(char,transDate,102
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦石浮選工藝優化-石墨滑石選礦考核試卷
- 畜禽繁殖力與遺傳改良研究考核試卷
- 紡織材料與纖維的研究與發展考核試卷
- 電腦系統優化與提速技巧考核試卷
- 筆的制造生產計劃編制與執行考核試卷
- 嘉興南湖學院《Python數據分析與應用》2023-2024學年第二學期期末試卷
- 昆明理工大學津橋學院《CAD制圖》2023-2024學年第二學期期末試卷
- 咸陽市2025年三年級數學第二學期期末學業水平測試試題含解析
- 日照職業技術學院《國際商務創業策劃案例分析》2023-2024學年第二學期期末試卷
- 寧德市周寧縣2024-2025學年數學四年級第二學期期末考試試題含解析
- “皖南八校”2024-2025學年高一第二學期期中考試-生物(乙)及答案
- 血站安全與衛生培訓課件
- 人教版四年級數學下冊期中期中測試卷(提優卷)(含答案)
- 巖土真實考試題及答案
- 高考前的“加速度”高三下學期期中家長會
- 畢業設計(論文)-板材碼垛機器人機械結構設計
- 銷售人員合同范文
- 網絡安全教育主題班會
- 品牌管理塑造、傳播與維護案例教學課件 品牌定位:元氣森林
- 福建省泉州市2023年第29屆WMO競賽六年級數學下學期競賽試卷
- 各國貨幣知識
評論
0/150
提交評論