SQL-Sever-2005-習(xí)題與答案_第1頁
SQL-Sever-2005-習(xí)題與答案_第2頁
SQL-Sever-2005-習(xí)題與答案_第3頁
SQL-Sever-2005-習(xí)題與答案_第4頁
SQL-Sever-2005-習(xí)題與答案_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一1使用SQL Server管理平臺(tái)中創(chuàng)建studentsdb數(shù)據(jù)庫,并修改studentsdb數(shù)據(jù)文件和日志的初始大小、最大文件大小、增長(zhǎng)容量及文件路徑。2使用Transact-SQL語句CREATE DATABASE創(chuàng)建studb數(shù)據(jù)庫,指定數(shù)據(jù)文件大小、最大文件大小、增長(zhǎng)容量及文件路徑。3使用Transact-SQL語句ALTER DATABASE完成修改數(shù)據(jù)庫設(shè)置、增加日志文件及更名等操作。4使用SQL Server管理平臺(tái)中在studentsdb數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表student_info(其數(shù)據(jù)結(jié)構(gòu)如圖1-2所示),并增加部分?jǐn)?shù)據(jù)。5使用Transact-SQL語句CREATE TA

2、BLE在studentsdb數(shù)據(jù)庫中創(chuàng)建grade表,其數(shù)據(jù)結(jié)構(gòu)如圖1-4所示。6使用Transact-SQL語句ALTER TABLE修改grade表的“學(xué)號(hào)”列,使之為非空。7使用Transact-SQL語句ALTER.ADD為studentsdb數(shù)據(jù)庫的grade表添加一個(gè)名為“備注”的數(shù)據(jù)列,其數(shù)據(jù)類型為VARCHAR(20)8使用Transact-SQL語句INSERT INTO.VALUES向studentsdb數(shù)據(jù)庫的grade表插入數(shù)據(jù):學(xué)號(hào)為0004,課程編號(hào)為0001,分?jǐn)?shù)為80。9使用Transact-SQL語句DELETE刪除studentsdb數(shù)據(jù)庫的grade表中學(xué)

3、號(hào)為0004的成績(jī)記錄。10使用Transact-SQL語句UPDATE將studentsdb數(shù)據(jù)庫的grade表中學(xué)號(hào)為0003、課程編號(hào)為0005的分?jǐn)?shù)修改為90的成績(jī)記錄。二1在studentsdb數(shù)據(jù)庫中使用SELECT語句進(jìn)行基本查詢。(1) 在student_info表中,查詢每個(gè)學(xué)生的學(xué)號(hào)、姓名、出生日期信息。(2) 查詢學(xué)號(hào)為0002 的學(xué)生的姓名和家庭住址。(3) 找出所有男同學(xué)的學(xué)號(hào)和姓名。2使用SELECT語句進(jìn)行條件查詢。(1) 在grade表中查找分?jǐn)?shù)在8090范圍內(nèi)的學(xué)生的學(xué)號(hào)和分?jǐn)?shù)。(2)在grade表中查詢課程編號(hào)為0003的學(xué)生的平均分。(3)在grade表中

4、查詢學(xué)習(xí)各門課程的人數(shù)。(4)查詢所有姓“張”的學(xué)生的學(xué)號(hào)和姓名。3對(duì)student_info表,按性別順序列出學(xué)生的學(xué)號(hào)、姓名、性別、出生日期及家庭住址,性別相同的按學(xué)號(hào)由小到大排序。4使用GROUP BY查詢子句列出各個(gè)學(xué)生的平均成績(jī)。5在student_info表中查找與“劉衛(wèi)平”性別相同的所有學(xué)生的姓名、出生日期。6使用IN子查詢,查找所修課程編號(hào)為0002、0005的學(xué)生學(xué)號(hào)、姓名、性別。7查詢學(xué)習(xí)“C語言程序設(shè)計(jì)”課程的學(xué)生的學(xué)號(hào)、姓名、分?jǐn)?shù)。8查詢每個(gè)學(xué)生的所選課程的最高成績(jī),要求列出學(xué)號(hào)、姓名、課程編號(hào)、分?jǐn)?shù)。9查詢所有學(xué)生的總成績(jī),要求列出學(xué)號(hào)、姓名、總成績(jī),沒有選修課程的學(xué)

5、生的總成績(jī)?yōu)榭铡?0為grade表添加數(shù)據(jù)行: 學(xué)號(hào)為0004、課程編號(hào)為0006、分?jǐn)?shù)為76。查詢所有課程的選修情況,要求列出課程編號(hào)、課程名稱、選修人數(shù),curriculum表中沒有的課程列值為空。三1使用Transact-SQL語句為studentsdb數(shù)據(jù)庫的student_info表和curriculum表創(chuàng)建主鍵索引。2使用SQL Server管理平臺(tái)按curriculum表的課程編號(hào)列創(chuàng)建唯一性索引。3使用Transact-SQL語句為studentsdb數(shù)據(jù)庫的grade表的“分?jǐn)?shù)”字段創(chuàng)建一個(gè)非聚集索引,命名為grade_index。4為studentsdb數(shù)據(jù)庫的grade

6、表的“學(xué)號(hào)”和“課程編號(hào)”字段創(chuàng)建一個(gè)復(fù)合唯一索引,命名為grade_id_c_ind。5使用SQL Server管理平臺(tái)對(duì)grade表創(chuàng)建一個(gè)聚集索引和唯一索引。6使用SQL Server系統(tǒng)存儲(chǔ)過程sp_helpindex查看grade表和student_info表上的索引信息。7使用Transact-SQL語句DROP INDEX刪除索引grade_ind。8在studentsdb數(shù)據(jù)庫中,以student_info表為基礎(chǔ),使用SQL Server管理平臺(tái)建立名為v_stu_i的視圖,使視圖顯示學(xué)生姓名、性別、家庭住址。9在studentsdb數(shù)據(jù)庫中,使用Transact-SQL語句

7、CREATE VIEW建立一個(gè)名為v_stu_c的視圖,顯示學(xué)生的學(xué)號(hào)、姓名、所學(xué)課程的課程編號(hào),并利用視圖查詢學(xué)號(hào)為0003的學(xué)生情況。10基于student_info表、curriculum表和grade表,建立一個(gè)名為v_stu_g的視圖,視圖中具有所有學(xué)生的學(xué)號(hào)、姓名、課程名稱、分?jǐn)?shù)。11使用視圖v_stu_g查詢學(xué)號(hào)為0001的學(xué)生的所有課程與成績(jī)。12使用Transact-SQL語句修改視圖v_stu_c,使之顯示學(xué)號(hào)、姓名、每個(gè)學(xué)生所學(xué)課程數(shù)目。13利用視圖v_stu_i為student_info表添加一行數(shù)據(jù):學(xué)號(hào)為0015、姓名為陳婷、性別為女。14利用視圖v_stu_g修改

8、姓名為劉衛(wèi)平的學(xué)生的高等數(shù)學(xué)的分?jǐn)?shù)為84。15使用Transact-SQL語句DROP VIEW刪除視圖v_stu_c和v_stu_g。四1為studentsdb數(shù)據(jù)庫創(chuàng)建一個(gè)規(guī)則,限制所輸入的數(shù)據(jù)為7位09的數(shù)字。2創(chuàng)建一個(gè)規(guī)則stusex_rule,將其綁定到stu_phone表的“性別”列上,保證輸入的性別值只能是“男”或“女”。3使用系統(tǒng)存儲(chǔ)過程sp_help查詢stusex_rule規(guī)則列表,使用sp_helptext查詢stusex_rule規(guī)則的文本,使用sp_rename將stusex_rule規(guī)則更名為stu_s_rule。4為student_info表添加一列,命名為“院系

9、”,創(chuàng)建一個(gè)默認(rèn)對(duì)象stu_d_df,將其綁定到student_info表的“院系”列上,使其默認(rèn)值為“信息院”,對(duì)student_info表進(jìn)行插入操作,操作完成后,刪除該默認(rèn)對(duì)象。5在studentsdb數(shù)據(jù)庫中用CREATE TABLE語句創(chuàng)建表stu_con,并同時(shí)創(chuàng)建約束。表結(jié)構(gòu)為:stu_con(學(xué)號(hào)char(4),姓名char(8),性別char(2),出生日期datatime)。約束要求為:將學(xué)號(hào)設(shè)置為主鍵(PRIMARY KEY),主鍵名為pk_sid;為姓名添加唯一約束(UNIQUE),約束名為uk_name;為性別添加默認(rèn)約束(DEFAULT),默認(rèn)名稱為df_sex,其

10、值為“男”。為出生日期添加屬性值約束(CHECK),約束名為ck_bday,其檢查條件為:出生日期1988-1-1。6在查詢?cè)O(shè)計(jì)器中,為studentsdb數(shù)據(jù)庫的grade表添加外鍵約束(FOREIGN KEY),要求將“學(xué)號(hào)”設(shè)置為外鍵,參照表為student_info,外鍵名稱為fk_sid。五1在grade表中,使用適當(dāng)函數(shù)找出“高等數(shù)學(xué)”課程的最高分、最低分和平均分。2查詢grade表。如果分?jǐn)?shù)大于等于90,顯示A; 如果分?jǐn)?shù)大于等于80小于90,顯示B;如果分?jǐn)?shù)大于等于70小于80,顯示C;如果分?jǐn)?shù)大于等于60小于70,顯示D; 其他顯示E。3編寫代碼計(jì)算并顯示n=1+2+3+20

11、。4編寫代碼計(jì)算并顯示1100之間的所有能被7整除的數(shù)的個(gè)數(shù)及總和。5編寫程序,定義一個(gè)游標(biāo)cur_stu,通過讀取cur_stu數(shù)據(jù)行,計(jì)算student_info表中男、女的人數(shù)。六1使用studentsdb數(shù)據(jù)庫中的student_info表、curriculum表、grade表。 創(chuàng)建一個(gè)存儲(chǔ)過程stu_grade,查詢學(xué)號(hào)為0001的學(xué)生的姓名、課程名稱、分?jǐn)?shù)。 執(zhí)行存儲(chǔ)過程stu_grade,查詢0001學(xué)生的姓名、課程名稱、分?jǐn)?shù)。 使用系統(tǒng)存儲(chǔ)過程sp_rename將存儲(chǔ)過程stu_grade更名為stu_g。2使用student_info表、curriculum表、grade表

12、。 創(chuàng)建一個(gè)帶參數(shù)的存儲(chǔ)過程stu_g_p,當(dāng)任意輸入一個(gè)學(xué)生的姓名時(shí),將從3個(gè)表中返回該學(xué)生的學(xué)號(hào)、選修的課程名稱和課程成績(jī)。 執(zhí)行存儲(chǔ)過程stu_g_p,查詢“劉衛(wèi)平”的學(xué)號(hào)、選修課程和課程成績(jī)。 使用系統(tǒng)存儲(chǔ)過程sp_helptext,查看存儲(chǔ)過程stu_g_p的文本信息。3使用grade表。 創(chuàng)建一個(gè)存儲(chǔ)過程stu_g_r,當(dāng)輸入一個(gè)學(xué)生的學(xué)號(hào)時(shí),通過返回輸出參數(shù)獲取該學(xué)生各門課程的平均成績(jī)。 執(zhí)行存儲(chǔ)過程stu_g_r,輸入學(xué)號(hào)0002。 顯示0002號(hào)學(xué)生的平均成績(jī)。4輸入以下代碼,復(fù)制student_info表命名為stu2,為stu2表創(chuàng)建一個(gè)觸發(fā)器stu_tr,當(dāng)stu2表插

13、入一條記錄時(shí),為該記錄生成一個(gè)學(xué)號(hào),該學(xué)號(hào)為學(xué)號(hào)列數(shù)據(jù)的最大值加1。-復(fù)制student_info表命名為stu2SELECT * INTO stu2 FROM student_infoGO-為stu2表創(chuàng)建一個(gè)INSERT型觸發(fā)器stu_trCREATE TRIGGER stu_trON stu2 FOR INSERTASDECLARE max char(4)SET max=(SELECT MAX(學(xué)號(hào)) FROM stu2)SET max=max+1UPDATE stu2 SET 學(xué)號(hào)=REPLICATE(0,4-len(max)+maxFROM stu2 INNER JOIN inser

14、ted on stu2.學(xué)號(hào)=inserted.學(xué)號(hào)執(zhí)行以上代碼,查看studentsdb數(shù)據(jù)庫中是否有stu2表,展開stu2,查看其觸發(fā)器項(xiàng)中是否有stu_str觸發(fā)器。在查詢?cè)O(shè)計(jì)器的編輯窗口輸入以下代碼: INSERT INTO stu2(學(xué)號(hào),姓名,性別) VALUES(0001,張主,女)運(yùn)行以上代碼,查看stu2表的變化情況,為什么插入記錄的學(xué)號(hào)值發(fā)生了改變?答案一crate database studbon(name=studb1_dat, filename=g:studentsstudb1.ndf, size=5Mb, maxsize=10Mb, filegrowth=1Mb)

15、alter database studbadd file(name=studb1_dat, filename=g:studentsstudb1.ndf, size=5Mb, maxsize=10Mb, filegrowth=1Mb)use studentdbcreate table grade(學(xué)號(hào)char(4), 課程編號(hào)char(4), 分?jǐn)?shù)char (5)alter table gradealter column 學(xué)號(hào)char(4) not nullalter table grade add 備注 varchar(20)insert into grade(學(xué)號(hào),課程編號(hào),分?jǐn)?shù))value

16、s (0004,0001,80)delete from grade where 學(xué)號(hào)=0001update grade set 備注=成績(jī)良好 where 學(xué)號(hào)=0004二select 學(xué)號(hào),姓名,出生日期from student_infoselect 姓名,家庭住址from student_info where 學(xué)號(hào)=0002select 學(xué)號(hào),姓名from student_info where 性別=男select 學(xué)號(hào),分?jǐn)?shù)from grade where 分?jǐn)?shù)between 80 and 90select avg(分?jǐn)?shù)) from grade where 課程編號(hào)=0003select

17、 課程編號(hào),count(*) as 人數(shù)from grade group by 課程編號(hào)select 學(xué)號(hào),姓名from student_info where 姓名like 張%select 學(xué)號(hào),姓名,性別,出生日期,家庭住址from student_info order by 性別,學(xué)號(hào)select 學(xué)號(hào),avg(分?jǐn)?shù)) as 平均分from grade group by 學(xué)號(hào)select 姓名,出生日期from student_info where 性別=(select 性別from student_info where 姓名=劉衛(wèi)平) select 學(xué)號(hào),姓名,性別from stude

18、nt_info where 學(xué)號(hào)in (select 學(xué)號(hào)from grade where 課程編號(hào)in (0002,0005)select a.學(xué)號(hào),b.姓名,a.課程編號(hào),a.分?jǐn)?shù)from grade a inner join student_info b on a.學(xué)號(hào)=b.學(xué)號(hào)where a.分?jǐn)?shù)in (select max(分?jǐn)?shù)) from grade group by 學(xué)號(hào)select a.學(xué)號(hào),姓名,sum(分?jǐn)?shù)) as 總成績(jī)from student_info a left outer join grade b on a.學(xué)號(hào)=b.學(xué)號(hào)group by a.學(xué)號(hào),a.姓名ins

19、ert into grade values (0004,0006,76)select a.課程編號(hào),b.課程名稱,count(a.學(xué)號(hào)) as 選修人數(shù)from grade a left outer join curriculum b on a.課程編號(hào)=b.課程編號(hào)group by a.課程編號(hào),b.課程名稱三3.1 alter table student_info add constraint pk_no primary key(學(xué)號(hào))alter table curriculum add constraint pk_kc primary key(課程編號(hào))3.2 略3.3 create i

20、ndex grade_index on grade(分?jǐn)?shù))3.4 create unique index grade_id_ind on grade(學(xué)號(hào),課程編號(hào))3.5 略3.6 exec sp_helpindex grade exec sp_helpindex student_info3.7 drop index grade.grade_index3.8 略3.9 create view v_stu_cas select a.學(xué)號(hào),a.姓名,b.課程編號(hào) from student_info a inner join grade b on a.學(xué)號(hào)=b.學(xué)號(hào)select * from v_

21、stu_c3.10 create view v_stu_gas SELECT a.學(xué)號(hào),a.姓名,b.課程編號(hào),b.分?jǐn)?shù),c.課程名稱FROM student_info a INNER JOIN grade b ON a.學(xué)號(hào)=b.學(xué)號(hào)INNER JOIN curriculum c ON b.課程編號(hào)= c.課程編號(hào)3.11 select 學(xué)號(hào),姓名,課程名稱,分?jǐn)?shù)from v_stu_g where 學(xué)號(hào)=00013.12 alter view v_stu_cas SELECT a.學(xué)號(hào), a.姓名, COUNT(b.課程編號(hào)) AS 人數(shù) FROM student_info a INNER

22、 JOIN grade b ON a.學(xué)號(hào)= b.學(xué)號(hào) GROUP BY a.學(xué)號(hào),a.姓名3.13 insert into v_stu_i values (0015,陳婷,女)3.14 update v_stu_g set 分?jǐn)?shù)=84 where 姓名=劉衛(wèi)平 and 課程名稱=高等數(shù)學(xué)3.15 DROP VIEW v_stu_c,v_stu_g四/* 4.1 */SELECT * INTO stu_phone FROM student_infoALTER TABLE stu_phone ADD 電話號(hào)碼CHAR(7) NULLCREATE rule phone_ruleASphone LI

23、KE 0-90-90-90-90-90-90-9sp_bindrule phone_rule ,stu_phone.電話號(hào)碼INSERT INTO stu_phone(學(xué)號(hào),姓名,電話號(hào)碼) VALUES(0009,王國(guó)強(qiáng),)/* 4.2 */CREATE rule stusex_ruleASsex in (男,女)sp_bindrule stusex_rule,stu_phone.性別/* 4.3 */sp_helptext stusex_rulesp_rename stusex_rule,stu_s_rule/* 4.4 */ALTER TABLE student_info ADD 院系C

24、HAR(10) NULLcreate default stu_d_df as 信息學(xué)院sp_bindefault stu_d_df,student_info.院系sp_unbindefault student_info.院系drop default stu_d_df/* 4.5 */create table stu_con(學(xué)號(hào)char(4), 姓名char(8), 性別char(2), 出生日期datetime, constraint pk_sid primary key (學(xué)號(hào)), constraint uk_name unique (姓名), constraint ck_bday che

25、ck (出生日期1988-1-1)alter table stu_conadd constraint df_sex default 男 for 性別/* 4.6 */alter table gradeadd constraint fk_sid foreign key (學(xué)號(hào))references student_info(學(xué)號(hào))五select 學(xué)號(hào),分?jǐn)?shù),等級(jí)=case when 分?jǐn)?shù)=90 then A when 分?jǐn)?shù)=80 and 分?jǐn)?shù)=70 and 分?jǐn)?shù)=60 and 分?jǐn)?shù)70 then D else Eendfrom gradedeclare a float,b float,c flo

26、atselect a=max(分?jǐn)?shù)),b=min(分?jǐn)?shù)),c=avg(分?jǐn)?shù))from grade a inner join curriculum b on a.課程編號(hào)=b.課程編號(hào)where 課程名稱=高等數(shù)學(xué)select a,b,cdeclare n int,s intset s=0set n=1while n=10begin set s=s+n set n=n+1endprint 1+2+3+.+10=+str(s,2)declare i int,n int,s int set i=1set n=0set s=0while i=90 then A when 分?jǐn)?shù)=80 and 分?jǐn)?shù)=70 and 分?jǐn)?shù)=60 and 分?jǐn)?shù)70 then D else Eendfrom gradedeclare n int,s intset s=0set n=1while n=10begin set s=s+n set n=n+1endprint 1+2+3+.+10=+str(s,2)declare i int,n int,s int set i=1set n=0set s=0while i=100begin if i%7=0 begin set n=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論