




已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)原理與應(yīng)用(SQL Server)練習(xí)題 - 14 - 實(shí)驗(yàn)1 數(shù)據(jù)庫(kù)操作1創(chuàng)建數(shù)據(jù)庫(kù):操作1.1:創(chuàng)建一個(gè)test數(shù)據(jù)庫(kù),其主數(shù)據(jù)文件邏輯名test_data,物理文件名test_data.mdf,初始大小10MB,最大尺寸為無(wú)限大,增長(zhǎng)速度1MB;數(shù)據(jù)庫(kù)日志文件邏輯名稱為test_log,物理文件名為test_log.ldf,初始大小為1MB,最大尺寸為5MB,增長(zhǎng)速度為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ù)庫(kù)屬性:操作1.2:使用T-SQL語(yǔ)句查看數(shù)據(jù)庫(kù)test屬性參考答案:EXEC sp_helpdb test3刪除數(shù)據(jù)庫(kù):操作1.3:使用T-SQL語(yǔ)句刪除數(shù)據(jù)庫(kù)test參考答案:drop database Test實(shí)驗(yàn)2 表操作1創(chuàng)建表:操作2.1:創(chuàng)建學(xué)生表:表名:student說明:學(xué)生基本信息表屬性列數(shù)據(jù)類型長(zhǎng)度空值列約束說明st_idnVarChar9Not NullPK學(xué)生學(xué)號(hào)st_nmnVarChar8Not Null學(xué)生姓名st_sexnVarChar2Null學(xué)生性別st_birthdatetimeNull出生日期st_scoreintNull入學(xué)成績(jī)st_datedatetimeNull入學(xué)日期st_fromnChar20Null學(xué)生來源st_dpidnVarChar2Null所在系編號(hào)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ù)類型長(zhǎng)度空值列約束說明cs_idnVarChar4Not NullPK課程編號(hào)cs_nmnVarChar20Not Null課程名稱cs_tmintNull課程學(xué)時(shí)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ù)類型長(zhǎng)度空值列約束說明cs_idnVarChar4Not NullFK課程編號(hào)st_idnVarChar9Not NullFK學(xué)生編號(hào)scoreintNull課程成績(jī)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ù)類型長(zhǎng)度空值列約束說明dp_idnVarChar2Not Null系編號(hào)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,長(zhǎng)度為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ù)記錄實(shí)驗(yàn)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)值對(duì)象操作3.3:創(chuàng)建默認(rèn)值對(duì)象df_today為當(dāng)前日期,并將其綁定到slt_couse表中的sltdate列,然后取消綁定,最后刪除默認(rèn)值對(duì)象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é)號(hào)、姓名、性別和入學(xué)成績(jī)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號(hào)課程且成績(jī)?cè)?0以下的學(xué)生學(xué)號(hào)SELECT st_id FROM slt_couseWHERE (cs_id=1002) AND (score75操作8.11:查詢選修了2門以上課程的學(xué)生學(xué)號(hào)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:按班級(jí)明細(xì)匯總成績(jī)85分的學(xué)生,匯總學(xué)生數(shù)、均分SELECT st_nm, LEFT(st_id,6) AS 班級(jí), st_scoreFROM studentWHERE st_score85ORDER BY 班級(jí)COMPUTE COUNT(st_nm), AVG(st_score) BY 班級(jí)實(shí)驗(yàn)9 數(shù)據(jù)查詢(5)連接查詢操作9.1:用SQL Server形式連接查詢學(xué)生學(xué)號(hào)、姓名、性別及其所選課程編號(hào)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é)號(hào)、姓名、性別及其所選課程編號(hào)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é)號(hào)、姓名及其所選課程名稱及成績(jī)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é)號(hào)、姓名及其所選課程名稱及成績(jī)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é)號(hào)、姓名及1001課程成績(jī)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é)號(hào)、姓名及課程成績(jī)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é)號(hào)、姓名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:用右外連接查詢選修各個(gè)課程的學(xué)生學(xué)號(hào)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實(shí)驗(yàn)10 數(shù)據(jù)查詢(6)子查詢操作10.1:用子查詢對(duì)各班人數(shù)進(jìn)行查詢(新增列)SELECT DISTINCT LEFT(a.st_id,6) AS 班級(jí), 人數(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:用子查詢對(duì)各課程的選課人數(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課程成績(jī)不及格的學(xué)生的學(xué)號(hào)、姓名和性別,并按姓名升序排序通過子查詢實(shí)現(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通過子查詢實(shí)現(xiàn):使用比較運(yù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號(hào)課程成績(jī)高的學(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課程平均成績(jī)低的學(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é)生信息通過子查詢實(shí)現(xiàn):IN運(yùn)算符SELECT * FROM student WHERE EXISTS( SELECT * FROM dept WHERE st_dpid = dp_id AND dp_drt=趙虎 )通過子查詢實(shí)現(xiàn):=運(yùn)算符SELECT * FROM student WHERE st_dpid =( SELECT dp_id FROM dept WHERE dp_drt=趙虎 )實(shí)驗(yàn)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號(hào)課程的成績(jī)單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:將有不及格成績(jī)的學(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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)智能驅(qū)動(dòng)下的企業(yè)決策與績(jī)效管理研究
- 辦公室中如何實(shí)施藥店管理革新
- 企業(yè)數(shù)字化戰(zhàn)略規(guī)劃與執(zhí)行力的提升途徑
- 2025年低碳城市規(guī)劃與建設(shè)案例:綠色城市實(shí)踐深度報(bào)告
- 供應(yīng)鏈風(fēng)險(xiǎn)管理在汽車配件行業(yè)2025年應(yīng)用前景研究報(bào)告
- 商業(yè)培訓(xùn)的數(shù)字化教學(xué)改革與實(shí)踐
- 企業(yè)數(shù)字化轉(zhuǎn)型的組織文化影響與應(yīng)對(duì)
- 企業(yè)如何在數(shù)字時(shí)代下重塑核心競(jìng)爭(zhēng)力
- 基于數(shù)字孿生的智能家居系統(tǒng)維護(hù)與管理探討
- 在家辦公也能高效工作-工具軟件解析
- 油船實(shí)操考試題及答案
- 2024安徽三支一扶試卷真題及答案詳解解析
- T-CMAM Z13-2022 慶巴灑曲(肝硬化腹水)藏醫(yī)診療指南
- 2025-2030全球及中國(guó)網(wǎng)絡(luò)訪問控制(NAC)解決方案行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 初二學(xué)生心理健康教育
- 2025年社會(huì)工作者職業(yè)水平考試初級(jí)綜合能力測(cè)試題庫(kù)
- 氣管切開非機(jī)械通氣患者氣道護(hù)理團(tuán)體標(biāo)準(zhǔn)課件
- 數(shù)學(xué)-湖北省武漢市2025屆高中畢業(yè)生二月調(diào)研考試(武漢二調(diào))試題和解析
- 中醫(yī)理療合同范本
- 《經(jīng)典常談》各章測(cè)試題
- 職業(yè)教育教師數(shù)智素養(yǎng)指標(biāo)體系構(gòu)建
評(píng)論
0/150
提交評(píng)論