




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫原理與應(yīng)用(SQL Server)練習(xí)題 - 14 - 實驗1 數(shù)據(jù)庫操作1創(chuàng)建數(shù)據(jù)庫:操作1.1:創(chuàng)建一個test數(shù)據(jù)庫,其主數(shù)據(jù)文件邏輯名test_data,物理文件名test_data.mdf,初始大小10MB,最大尺寸為無限大,增長速度1MB;數(shù)據(jù)庫日志文件邏輯名稱為test_log,物理文件名為test_log.ldf,初始大小為1MB,最大尺寸為5MB,增長速度為10%。參考答案:create database TestON primary(name = test_data,filename = d:testtest_data.mdf,size = 5MB,maxsize = unlimited,filegrowth = 1MB)LOG ON(name = test_log,filename = d:testtest_log.ldf,size = 1MB,maxsize = 5MB,filegrowth = 10%)GO2查看數(shù)據(jù)庫屬性:操作1.2:使用T-SQL語句查看數(shù)據(jù)庫test屬性參考答案:EXEC sp_helpdb test3刪除數(shù)據(jù)庫:操作1.3:使用T-SQL語句刪除數(shù)據(jù)庫test參考答案:drop database Test實驗2 表操作1創(chuàng)建表:操作2.1:創(chuàng)建學(xué)生表:表名:student說明:學(xué)生基本信息表屬性列數(shù)據(jù)類型長度空值列約束說明st_idnVarChar9Not NullPK學(xué)生學(xué)號st_nmnVarChar8Not Null學(xué)生姓名st_sexnVarChar2Null學(xué)生性別st_birthdatetimeNull出生日期st_scoreintNull入學(xué)成績st_datedatetimeNull入學(xué)日期st_fromnChar20Null學(xué)生來源st_dpidnVarChar2Null所在系編號st_mnttinyintNull學(xué)生職務(wù)參考答案:USE testGOCREATE TABLE student(st_id nVarChar(9) primary key NOT NULL ,st_nm nVarChar(8) NOT NULL ,st_sex nVarChar(2) NULL ,st_birth datetime NULL ,st_score int NULL ,st_date datetime NULL ,st_ from nVarChar(20)NULL ,st_dpid nVarChar(2) NULL ,st_ mnt tinyint NULL)GO操作2.2:創(chuàng)建課程信息表:表名:couse說明:課程信息表屬性列數(shù)據(jù)類型長度空值列約束說明cs_idnVarChar4Not NullPK課程編號cs_nmnVarChar20Not Null課程名稱cs_tmintNull課程學(xué)時cs_scintNull課程學(xué)分參考答案:USE testGOCREATE TABLE couse(cs_id nVarChar(4) primary key NOT NULL ,cs_nm nVarChar(20) NOT NULL ,cs_tm int NULL ,cs_sc int NULL)GO操作2.3:創(chuàng)建選課表:表名:slt_couse說明:選課表屬性列數(shù)據(jù)類型長度空值列約束說明cs_idnVarChar4Not NullFK課程編號st_idnVarChar9Not NullFK學(xué)生編號scoreintNull課程成績sltdatedatetimeNull選課日期參考答案:USE testGOCREATE TABLE couse(cs_id nVarChar(4) NOT NULL ,st_id nVarChar(9) NOT NULL ,score int NULL ,sltdate datetime NULL)GO操作2.4:創(chuàng)建院系信息表:表名:dept說明:院系信息表屬性列數(shù)據(jù)類型長度空值列約束說明dp_idnVarChar2Not Null系編號dp_nmnVarChar20Not Null院系名稱dp_drtnVarChar8Null院系主任dt_telnVarChar12Null聯(lián)系電話參考答案:USE testGOCREATE TABLE dept(dp_id nVarChar(2) NOT NULL ,dp_nm nVarChar(20)NOT NULL ,dp_drtnVarChar(8) NULL ,dp_telnVarChar(12)NULL)GO2修改表結(jié)構(gòu):(1)向表中添加列:操作2.5:為“dept”表添加“dp_count”列(數(shù)據(jù)類型為nvarchar,長度為3,允許為空)參考答案:ALTER TABLE dept ADD dp_count nvarchar(3) NULL(2)修改列數(shù)據(jù)類型:操作2.6:修改“dept”表的“dp_count”列數(shù)據(jù)類型為int參考答案:ALTER TABLE dept ALTER COLUMN dp_count int NULL(3)刪除表中指定列:操作2.7:刪除“dept”表的“dp_count”列參考答案:ALTER TABLE dept DROP COLUMN dp_count3刪除表操作2.8:刪除“dept”表參考答案:DROP TABLE student4向表中輸入數(shù)據(jù)記錄操作2.9:分別向“student”表、“couse”表、“slt_couse”表、“dept”表中輸入數(shù)據(jù)記錄實驗3 數(shù)據(jù)完整性1空值約束( NULL )操作3.1:將student表中的st_sex列屬性更改為NOT NULL參考答案:ALTER TABLE student ALTER COLUME st_nm nVarChar(8) NOT NULL2默認(rèn)值約束( DEFAULT )操作3.2:將student表中的st_from列默認(rèn)值設(shè)置為“陜西省”參考答案:ALTER TABLE student ADD DEFAULT 陜西省 FOR st_from3默認(rèn)值對象操作3.3:創(chuàng)建默認(rèn)值對象df_today為當(dāng)前日期,并將其綁定到slt_couse表中的sltdate列,然后取消綁定,最后刪除默認(rèn)值對象df_today。參考答案:CREATE DEFAULT df_today AS Getdate( )GOEXEC sp_bindefault df_today, slt_couse.sltdateGOEXEC sp_unbindefault slt_couse.sltdateGODROP DEFAULT df_todayGO4檢查約束( CHECK )操作3.4:將slt_couse表中的score列的檢查約束設(shè)置為=0且=0 AND score= 2008操作6.4:在查詢student表080808班學(xué)生的學(xué)號、姓名、性別和入學(xué)成績SELECT st_id, st_nm, st_sex, st_score FROM studentWHERE Left(st_id,6)=0808082使用邏輯表達(dá)式表示查詢條件操作6.5:查詢student表中非11系的學(xué)生信息SELECT * FROM student WHERE NOT (st_dpid = 11)操作6.6:查詢選修了1002號課程且成績在60以下的學(xué)生學(xué)號SELECT st_id FROM slt_couseWHERE (cs_id=1002) AND (score75操作8.11:查詢選修了2門以上課程的學(xué)生學(xué)號SELECT st_id FROM slt_couseGROUP BY st_id HAVING COUNT(*)2操作8.12:明細(xì)匯總年齡20的學(xué)生,并匯總學(xué)生數(shù)量、平均年齡SELECT st_nm,DATEPART(yy,GETDATE( )-DATEPART(yy,st_birth) AS 年齡FROM studentWHERE DATEPART(yy,GETDATE()-DATEPART(yy,st_birth)20COMPUTE COUNT(st_nm),AVG(DATEPART(yy,GETDATE()-DATEPART(yy,st_birth)操作8.13:按班級明細(xì)匯總成績85分的學(xué)生,匯總學(xué)生數(shù)、均分SELECT st_nm, LEFT(st_id,6) AS 班級, st_scoreFROM studentWHERE st_score85ORDER BY 班級COMPUTE COUNT(st_nm), AVG(st_score) BY 班級實驗9 數(shù)據(jù)查詢(5)連接查詢操作9.1:用SQL Server形式連接查詢學(xué)生學(xué)號、姓名、性別及其所選課程編號SELECT a.st_id, st_nm, st_sex, cs_idFROM student a, slt_couse bWHERE a.st_id = b.st_idORDER BY a.st_id操作9.2:用ANSI形式連接查詢學(xué)生學(xué)號、姓名、性別及其所選課程編號SELECT a.st_id, st_nm, st_sex, cs_idFROM student a INNER JOIN slt_couse bON a.st_id = b.st_idORDER BY a.st_id操作9.3:用SQL Server形式連接查詢學(xué)生學(xué)號、姓名及其所選課程名稱及成績SELECT a.st_id, st_nm, cs_nm, scoreFROM student a, slt_couse b, couse cWHERE a.st_id = b.st_id AND b.cs_id = c.cs_idORDER BY a.st_id操作9.4:用ANSI形式連接查詢學(xué)生學(xué)號、姓名及其所選課程名稱及成績SELECT a.st_id, st_nm, cs_nm, scoreFROM slt_couse a INNER JOIN student b ON a.st_id = b.st_idINNER JOIN couse c ON a.cs_id = c.cs_idORDER BY b.st_id操作9.5:查詢選修了1002課程的學(xué)生學(xué)號、姓名及1001課程成績SELECT a.st_id, st_nm, scoreFROM student a,slt_couse bWHERE a.st_id = b.st_id AND b.cs_id = 1002ORDER BY b.st_id操作9.6:查詢選修了“數(shù)據(jù)結(jié)構(gòu)”課程的學(xué)生學(xué)號、姓名及課程成績SELECT a.st_id, st_nm, scoreFROM student a, slt_couse b, couse cWHERE a.st_id=b.st_id AND b.cs_id=c.cs_id AND c.cs_nm=數(shù)據(jù)結(jié)構(gòu)ORDER BY a.st_id操作9.7:用左外連接查詢沒有選修任何課程的學(xué)生學(xué)號、姓名SELECT a.st_id, st_nm, scoreFROM student a LEFT OUTER JOIN slt_couse b ON a.st_id = b.st_idWHERE b.cs_id IS NULLORDER BY b.st_id操作9.8:用右外連接查詢選修各個課程的學(xué)生學(xué)號SELECT b.cs_id, a.st_idFROM slt_couse a Right OUTER JOIN couse b ON a.cs_id = b.cs_idORDER BY b.cs_id實驗10 數(shù)據(jù)查詢(6)子查詢操作10.1:用子查詢對各班人數(shù)進(jìn)行查詢(新增列)SELECT DISTINCT LEFT(a.st_id,6) AS 班級, 人數(shù) = ( SELECT COUNT(st_id) FROM student b WHERE LEFT(a.st_id,6) = LEFT(b.st_id,6)FROM student a ORDER BY LEFT(a.st_id,6) ASC操作10.2:用子查詢對各課程的選課人數(shù)進(jìn)行查詢(新增列)SELECT DISTINCT a.cs_id, 人數(shù) = ( SELECT COUNT(st_id) FROM slt_couse b WHERE a.cs_id = b.cs_id)FROM slt_couse a ORDER BY a.cs_id ASC操作10.3:查詢選修了1002課程成績不及格的學(xué)生的學(xué)號、姓名和性別,并按姓名升序排序通過子查詢實現(xiàn):使用IN關(guān)鍵字SELECT st_id, st_nm, st_sex FROM studentWHERE st_id IN( SELECT st_id FROM slt_couse WHERE cs_id=1002 AND score 60)ORDER BY st_nm通過子查詢實現(xiàn):使用比較運算符SELECT st_id, st_nm, st_sexFROM student aWHERE ( SELECT score FROM slt_couse b WHERE a.st_id = b.st_id AND cs_id = 1002 ) ANY(SELECT score FROM slt_couse WHERE cs_id = 1002 AND LEFT(st_id,6)=070511)AND LEFT(st_id,6) 070511 AND cs_id = 1002操作10.6:查詢其它班比070511班任一學(xué)生的1002號課程成績高的學(xué)生信息(ANY/ALL)SELECT * FROM slt_couseWHERE score ALL(SELECT score FROM slt_couse WHERE cs_id = 1002 AND LEFT(st_id,6)=070511)AND LEFT(st_id,6) 070511 AND cs_id = 1002操作10.7:查詢大于等于60分且且比1003課程平均成績低的學(xué)生課程信息(BetweenAnd)SELECT * FROM slt_couse aWHERE a.score BETWEEN 60 AND ( SELECT AVG(b.score) FROM slt_couse bWHERE b.cs_id=1003 )操作10.8:查詢系主任為“趙虎”的系的所有學(xué)生信息通過子查詢實現(xiàn):IN運算符SELECT * FROM student WHERE EXISTS( SELECT * FROM dept WHERE st_dpid = dp_id AND dp_drt=趙虎 )通過子查詢實現(xiàn):=運算符SELECT * FROM student WHERE st_dpid =( SELECT dp_id FROM dept WHERE dp_drt=趙虎 )實驗11 數(shù)據(jù)查詢(7)數(shù)據(jù)更新與子查詢操作11.1:將070511班所有學(xué)生信息插入到表student01(st_id,st_nm,st_sex)INSERT INTO student01SELECT st_id,st_nm,st_sex FROM studentWHERE LEFT(st_id,6)=070511操作11.2:生成1002號課程的成績單student02(st_id,st_nm, score)INSERT INTO student02SELECT a.st_id,st_nm,score FROM student a, slt_couse bWHERE a.st_id=b.st_id AND cs_id=1002操作11.3:將有不及格成績的學(xué)生的st_mnt值更改為3UPDATE student SET st_mnt=3WHERE st_id IN( SELECT DISTINCT st_id FROM slt_couse WHERE score 60)操作11.4:將沒有被選修的課程的學(xué)分更改為0UPDATE couse SET cs_sc=0WHERE cs_id NOT IN( SELECT DISTINCT cs_id
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 真空電子器件在光纖傳感器中的應(yīng)用考核試卷
- 抽紗刺繡技藝的科普傳播考核試卷
- 磷肥產(chǎn)業(yè)技術(shù)研發(fā)與市場應(yīng)用考核試卷
- 天然氣企業(yè)綠色發(fā)展與循環(huán)經(jīng)濟(jì)考核試卷
- 派遣工勞動法律法規(guī)宣傳教育考核試卷
- 畜牧業(yè)的畜禽產(chǎn)品的加工技術(shù)與綠色低碳生產(chǎn)考核試卷
- 期貨市場中介職能分析考核試卷
- 2025專賣店超市商場員工聘用合同模板
- 2025合作伙伴協(xié)議-產(chǎn)品代理合同
- 《2025設(shè)備采購合同》
- 夫妻債務(wù)轉(zhuǎn)讓協(xié)議書范本
- 2025年房地產(chǎn)經(jīng)紀(jì)人(業(yè)務(wù)操作)考前必刷綜合題庫(800題)附答案
- 桌球助教合同協(xié)議
- 電商行業(yè)10萬字PRD
- 2024-2025學(xué)年八年級下學(xué)期道德與法治期中模擬試卷(一)(統(tǒng)編版含答案解析)
- 高一下學(xué)期《雙休時代自由時間背后暗藏殘酷篩選+你是“獵手”還是“獵物”?》主題班會
- GB/T 26354-2025旅游信息咨詢服務(wù)
- 交互式影像中敘事與視覺表達(dá)的融合及其觀眾體驗研究
- SL631水利水電工程單元工程施工質(zhì)量驗收標(biāo)準(zhǔn)第1部分:土石方工程
- 甘肅省蘭州市第十一中學(xué)教育集團(tuán)2023-2024學(xué)年八年級下學(xué)期期中考試數(shù)學(xué)試卷
- (高清版)TDT 1075-2023 光伏發(fā)電站工程項目用地控制指標(biāo)
評論
0/150
提交評論