




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)三、T-SQL基礎(chǔ)、查詢和視圖(2學(xué)時(shí))實(shí)驗(yàn)?zāi)康模海?)掌握T-SQL基礎(chǔ)(2)熟練掌握簡(jiǎn)單SQL查詢命令的使用(3)學(xué)習(xí)、掌握分組與匯總的函數(shù)的使用(4)學(xué)習(xí)、掌握在SQL語(yǔ)句中使用函數(shù)的方法(5)學(xué)習(xí)、掌握連接查詢的方法(6)學(xué)習(xí)、掌握子查詢的方法(7)創(chuàng)建、維護(hù)視圖實(shí)驗(yàn)內(nèi)容:簡(jiǎn)單查詢1. * 的使用查詢orders表的所有內(nèi)容select * from Orders;2 order by 使用查詢所有訂單的金額,并按照金額的降序排列(單個(gè)字段)select Osum from Ordersorder by Osum desc;查詢出訂單所有內(nèi)容,按照cno和odate排序,cno降序
2、,odate升序。注意查看結(jié)果,當(dāng)有多個(gè)排序字段時(shí),首先按照第一個(gè)字段進(jìn)行排序,當(dāng)?shù)谝粋€(gè)字段相等時(shí),按照第二個(gè)字段排序,且默認(rèn)升序排序(asc)select * from Ordersorder by Cno desc, Odate asc;3where子句查詢庫(kù)存數(shù)量少于100的零件號(hào)和名稱。select Pno,Pname from Storewhere Pnum < 100;4is null 使用查詢郵編為空的顧客的情況。select * from Customer where Czip is null;5where子句中使用函數(shù)查詢簽訂日期在2009年的所有訂單的信息。selec
3、t * from Orders where datepart(year ,Orders.Odate) = '2009'6模式匹配、通配符、禁止重復(fù)distinct使用查詢顧客姓名中以“北京”開頭的顧客姓名和電話。select distinct Cname,Ctel from Customer where Cname like'北京%'7.算術(shù)運(yùn)算符在SQL中的使用,定義別名select Pnum as 原始數(shù)量,Pnum*2 as 更新數(shù)量 from Store8.連字符的使用select Cname+'位于'+Caddr as'顧客地址
4、' from Customer 9.操作符的應(yīng)用1)BETWEEN的應(yīng)用查詢零件數(shù)量在200到800之間的零件名稱select Pname from Store where Pnum between 200 and 800;2)IN在庫(kù)存表中查詢零件類別等于傳動(dòng)或者標(biāo)準(zhǔn)的所有零件select * from Store where Ptype in ('傳動(dòng)','標(biāo)準(zhǔn)');復(fù)雜查詢1、查詢訂單金額大于100的顧客的名稱和電話;select Customer.Cname,Customer.Ctelfrom Customer,Orderswhere Order
5、s.Cno=Customer.Cno and Orders.Osum>1002、查詢所有簽訂訂單的顧客的名稱和郵編;select distinct Customer.Cname,Customer.Czipfrom Customer,Orderswhere Orders.Cno=Customer.Cno3、統(tǒng)計(jì)每類零件的數(shù)量分別為多少;select store.Pname,SUM(store.Pnum)零件數(shù)量from Store,Orderswhere store.Pno=Orders.Pnogroup by store.Pname,store.Pnum4、統(tǒng)計(jì)每個(gè)顧客簽訂訂單的次數(shù);s
6、elect Customer.Cname,count(*) 訂單次數(shù)from Customer,Orderswhere Customer.Cno=Orders.Cnogroup by Customer.Cname,Customer.Cno5、查詢所有顧客簽訂訂單的情況(包括沒有簽訂訂單的顧客);select *from Customer,Orderswhere Customer.Cno=Orders.Cno or Customer.Cno!=Orders.Cno 6、查詢沒有賣過一次的零件號(hào)(沒有訂單);select distinct store.Pnofrom Store,Orderswhe
7、re store.Pno not in(select distinct store.Pno from Store,Orders where store.Pno=Orders.Pno)7、查詢每個(gè)顧客簽訂訂單的金額總數(shù);select Orders.Cno,SUM(Orders.Osum)金額總數(shù)from Orders,Customerwhere Orders.Cno=Customer.Cnogroup by Orders.Cno8、查詢所有訂單金額的平均值;select Orders.Cno,AVG(Orders.Osum)訂單金額from Orders,Customerwhere Custom
8、er.Cno=Orders.Cnogroup by Orders.Cno9、查詢至少簽訂過兩次訂單的顧客信息。select customer.Cno,Cname,Ctel,Caddr,czipfrom Customer,Orderswhere Customer.Cno=Orders.Cno group by Customer.Cno,Cname,Ctel,Caddr,Cziphaving COUNT(*)>=2視圖1使用SSMS創(chuàng)建視圖向?qū)ㄟ^SSMS的Create View Wizard創(chuàng)建新視圖1) 在SSMS中,展開“數(shù)據(jù)庫(kù)”后,在視圖處單擊鼠標(biāo)右鍵。2),雙擊菜單“創(chuàng)建視圖”3)
9、選擇表order4)選擇字段Ono, Cno, Pno, Onum。5)輸入條件語(yǔ)句WHERE Onum >1000,select Ono, Cno, Pno, Onumfrom dbo.Orderswhere (Onum > 100)6)輸入視圖名稱v_order8)在SSMS中的“數(shù)據(jù)庫(kù)” àOrderMagà視圖下查看視圖v_order。9)在查詢窗口中輸入并執(zhí)行語(yǔ)句SELECT * FROM v_order10)結(jié)果如何?顯示的字段是否為前面自己定義的字段?答:顯示的是前面自己定義的字段。11)刪除視圖v_order。drop view v_order刪
10、除前如下圖:刪除后如下圖:2. 在查詢中創(chuàng)建視圖1) 建立一個(gè)視圖,包括訂單號(hào)、零件名稱、顧客名稱、訂單金額等信息。select dbo.Orders.Cno, dbo.Store.Pname, dbo.Customer.Cname, dbo.Orders.Onumfrom dbo.Ordersinner joindbo.Customer on dbo.Orders.Cno = dbo.Customer.Cno inner join dbo.Store on dbo.Orders.Pno = dbo.Store.Pno2)建立一個(gè)視圖,查詢訂單金額大于10000元的大客戶信息。select d
11、bo.Customer.Cname, dbo.Customer.Ctel, dbo.Customer.Caddr, dbo.Customer.Czip, dbo.Orders.Osumfrom dbo.Orders inner joindbo.Customer on dbo.Orders.Cno = dbo.Customer.Cno anddbo.Orders.Cno = dbo.Customer.Cno inner joindbo.Store on dbo.Orders.Pno = dbo.Store.Pnowhere (dbo.Orders.Osum > 100)3)建立一個(gè)視圖,查
12、詢每個(gè)顧客簽訂訂單的總金額select dbo.Customer.Cname, SUM(dbo.Orders.Osum) as 訂單總金額from dbo.Orders inner joindbo.Customer on dbo.Orders.Cno = dbo.Customer.Cno and dbo.Orders.Cno = dbo.Customer.Cno and dbo.Orders.Cno = dbo.Customer.Cno inner joindbo.Store on dbo.Orders.Pno = dbo.Store.Pnogroup by dbo.Customer.Cnam
13、eT-SQL基礎(chǔ) 根據(jù)提供的數(shù)據(jù)庫(kù)備份文件,還原數(shù)據(jù)庫(kù)編寫一段程序代碼,實(shí)現(xiàn)隨機(jī)抽取設(shè)備的功能,要求:輸入學(xué)生編號(hào),執(zhí)行該程序,能夠顯示該學(xué)生姓名、抽取的設(shè)備詳細(xì)信息; 每個(gè)學(xué)生只能抽取一次。說明:如果現(xiàn)有數(shù)據(jù)庫(kù)字段無(wú)法滿足程序需求,可以自行添加所需字段。/*表說明:Student:學(xué)生基本信息表,fno為學(xué)生編號(hào)create table Student (sno varchar(10),cno varchar(10),fno varchar(10),sname varchar(10),ssex varchar(2),sage int,class varchar(20)Computer:電腦設(shè)
14、備信息表,fno為設(shè)備編號(hào)create table Computer(fno varchar(10),fname varchar(10),ftype varchar(10),fcpu varchar(10),fmemory varchar(10),fHardDisk varchar(10),fVideo varchar(10),fDisp varchar(10),fOther varchar(50)HomeWork:作業(yè)完成情況表,fno為學(xué)生編號(hào),fhwno為作業(yè)編號(hào)create table HomeWork(fhwno varchar(10),sno varchar(10),fno var
15、char(10),fhowntype varchar(50),fhownother varchar(50)TaskList:作業(yè)信息表:FworkNo為作業(yè)編號(hào)create table TaskList(FworkNo varchar(10),fno varchar(10),sno varchar(10),Fworktype varchar(50),Fworkother varchar(50)-創(chuàng)建返回表信息的自定義函數(shù),通過傳入學(xué)生編號(hào),返回有同學(xué)姓名和給其電腦信息的表create function fnGetCOMInfo(sno varchar(5) returns tableasret
16、urn( select s.Fname,c.FNo,c.Ftype,c.FModule,FCPU,FMemory,FHardDisk,FVideo,FDisp,FOther from Computer c,Student s where c.FUserNo=s.FNo and c.FuserNo=sno)goupdate Computer set FUserNO=null declare cno varchar(5) -輸出電腦編號(hào) declare count int select count=count(*) from Computer where FUserNo='001' -是否給該同學(xué)分配過電腦,不進(jìn)行數(shù)據(jù)庫(kù)操作 if(count>0) begin set cno=0 end else -未給該同學(xué)分配電腦 begin select cno=FNo from Computer where FUserNo is null order by NEWID() -隨機(jī)產(chǎn)生一臺(tái)未分配的電腦編號(hào) update Computer set FUse
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝廠工人勞動(dòng)合同書
- 楊樹買賣合同書
- 綠色出行推廣服務(wù)合同
- 商鋪經(jīng)營(yíng)房屋租賃合同
- 醫(yī)務(wù)人員聘用合同
- 農(nóng)村山地承包合同
- 柴山承包合同
- 注塑委托加工合同
- 人教版信息技術(shù)八年級(jí)下冊(cè)第二單元第5課《用反射變換作圖》教學(xué)設(shè)計(jì)
- 長(zhǎng)春信息技術(shù)職業(yè)學(xué)院《二維動(dòng)畫軟件》2023-2024學(xué)年第二學(xué)期期末試卷
- 售電公司與電力用戶委托交易代理合同
- 基礎(chǔ)護(hù)理學(xué)試題及答案(各章節(jié))-基礎(chǔ)護(hù)理學(xué)第四版試題及答案
- 色彩發(fā)展的歷史課件
- 學(xué)生成長(zhǎng)導(dǎo)師制工作手冊(cè)
- (2023年最新版)醫(yī)師執(zhí)業(yè)、變更執(zhí)業(yè)、多機(jī)構(gòu)備案申請(qǐng)審核表
- 醫(yī)療器械臨床試驗(yàn)質(zhì)量管理規(guī)范培訓(xùn)課件
- 《紙馬》教學(xué)設(shè)計(jì)公開課
- 建設(shè)工程工程量清單計(jì)價(jià)標(biāo)準(zhǔn)(2022)
- 小學(xué)道德與法治五年級(jí)下冊(cè)全冊(cè)優(yōu)質(zhì)教案(含課件和素材)
- 施耐德公司品牌戰(zhàn)略
- 三方聯(lián)測(cè)測(cè)量記錄表
評(píng)論
0/150
提交評(píng)論