版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、綜合題一、1使用TransactSQL語言創(chuàng)建教學(xué)管理數(shù)據(jù)庫,創(chuàng)建兩個(gè)表學(xué)生信息(學(xué)號,姓名,性別,籍貫,班級編號)和成績表(學(xué)號,課程編號,成績,是否重修)。其中,學(xué)生信息表中學(xué)號為主鍵,其他信息都不允許為空。通過學(xué)號與成績表形成一個(gè)一對多的關(guān)系,成績表中的成績的默認(rèn)值為0,但必須在0100之間。注:將學(xué)號設(shè)置為主鍵,主鍵名為pk_xh;為成績添加默認(rèn)值約束,約束名為df_xb,其值為“0”;為成績添加check約束,約束名為誠懇ck_xb, 在0100之間。CREATE DATABASE 教學(xué)管理 use 教學(xué)管理
2、 go create table 學(xué)生信息 ( 學(xué)號 varchar(20) NOT NULL PRIMARY KEY, 姓名 varchar(20) NOT NULL , 性別
3、0;varchar(10) NOT NULL, 籍貫 varchar(20) NOT NULL, 班級編號 varchar(20) NOT NULL ) go create table 成績表 (
4、 學(xué)號 varchar(20) NOT NULL FOREIGN KEY REFERENCES 學(xué)生信息(學(xué)號), 課程編號 varchar(20) NOT NULL, 成績 numeric(5,2) DEFAULT&
5、#160;(0) CHECK(成績)=0 and 成績<=100) ,是否重修 varchar(8) NOT NULL ) go2寫出實(shí)現(xiàn)各查詢功能的SELECT語句。(1)統(tǒng)計(jì)班級編號為1002的學(xué)生人數(shù)。(2)查詢課程編號為“003”的課程成績高于該門課程平均分的學(xué)生信息。(3)在“學(xué)生信息”表中找出姓“王”的學(xué)生信息。(4)將“成績”表中的課程編號為“001”的成績增加10分。(5)列出每個(gè)同學(xué)的學(xué)號、姓名及選修課程的平均成績情況,沒
6、有選修的同學(xué)也列出。3創(chuàng)建一個(gè)名為stud_view2的視圖,該視圖可以用來查看每個(gè)學(xué)生的選修課程的門數(shù)和平均成績。create view stud_ view2 asselect count(*) as 課程門數(shù),avg(grade) as 平均成績 from成績表 group by 學(xué)號select * from stud_view2 4(1)在“教學(xué)管理”數(shù)據(jù)庫中創(chuàng)建一個(gè)帶參數(shù)的存儲過程proc_score。該存儲過程的作用是:當(dāng)輸入某門課程的課程名稱時(shí),檢索該門課程成績,并將查
7、詢結(jié)果以“學(xué)號” ,“姓名” ,“課程名稱” ,“成績等級”輸出(成績劃分成四個(gè)等級:高于或等于85分者為優(yōu)秀,高于或等于75分者為良好,高于或等于60分者為及格,低于60分者為不及格)。(2)執(zhí)行存儲過程proc_score,查詢“003”課程的成績信息。二、 假設(shè)現(xiàn)有數(shù)據(jù)庫“學(xué)生信息”,其中包含“學(xué)生”、“課程”、“學(xué)期成績”三個(gè)表。表結(jié)構(gòu)如下:“學(xué)生”表結(jié)構(gòu)字段名數(shù)據(jù)類型長度是否為空約束學(xué)號int4否主鍵姓名char10否唯一約束性別char2是默認(rèn)約束專業(yè)char20是班級char12是備注text是“課程”表結(jié)構(gòu)課程(課號,課名,學(xué)分,先修課)“學(xué)期成績”表結(jié)構(gòu)選課(學(xué)號,課號,成績
8、)根據(jù)各題功能要求寫出相應(yīng)的T-SQL語句。1寫出在“學(xué)生信息”數(shù)據(jù)庫中創(chuàng)建“學(xué)生”表的T-SQL語句,并在建表的同時(shí)創(chuàng)建所需約束。約束要求如下: 將學(xué)號設(shè)置為主鍵,主鍵名為pk_xh;為姓名設(shè)置唯一約束,約束名為uk_xm;為性別添加默認(rèn)約束,約束名為df_xb,其值為“男” 。USE 學(xué)生信息
9、160; GO CREATE TABLE 學(xué)生
10、; (學(xué)號 INT CONSTRAINT pk_xh PRIMARY KEY, 姓名 CHAR(10) NOT NULL CONSTRAINT uk_xm UNIQUE, 性別 CHAR
11、(2) NULL CONSTRAINT df_xb DEFAULT '男', 專業(yè) CHAR(20) NULL, 班級 CHAR(12) NULL, 備注 TEXT NULL)2寫出實(shí)現(xiàn)各查詢功能的SELECT語句。(1)計(jì)算機(jī)專業(yè)不及格學(xué)生的學(xué)號和姓名。(2)選修了數(shù)據(jù)庫課程的學(xué)生的學(xué)號、姓名和成績,查詢結(jié)果
12、按分?jǐn)?shù)的降序排列。(3)在“課程”表中找出“課程名”中包含“計(jì)算機(jī)”三個(gè)字的課程。(4)將“課程”表中的課程編號為“001”的學(xué)分增加1學(xué)分;(5)列出每個(gè)同學(xué)的學(xué)號、姓名及選修課程的平均成績情況,沒有選修的同學(xué)也列出。3創(chuàng)建一個(gè)名為stud_view2的視圖,該視圖可以用來查看每個(gè)學(xué)生的選修課程的門數(shù)和平均成績。4(1)在“學(xué)生信息”數(shù)據(jù)庫中創(chuàng)建一個(gè)帶參數(shù)的存儲過程proc_score。該存儲過程的作用是:當(dāng)輸入某門課程的課程名稱時(shí),檢索該門課程成績,并將查詢結(jié)果以“學(xué)號” ,“姓名” ,“課程名稱” ,“成績等級”輸出(成績劃分成四個(gè)等級:高于或等于85分者為優(yōu)秀,高于或等于75分者為良好
13、,高于或等于60分者為及格,低于60分者為不及格)。CREATE PROCEDURE proc_score KCMC CHAR(20) AS SELECT 學(xué)生.學(xué)號,姓名,課程名稱,成績等級=CASE WHEN 成績>=85 THEN '優(yōu)秀' WHEN 成績>=75 THEN '良好' WHEN 成績>=60 THEN '及格' WHEN 成績<60
14、0; THEN '不及格' (或:ELSE '不及格') END FROM 學(xué)生 JOIN 學(xué)期成績 ON 學(xué)生.學(xué)號=學(xué)期成績.學(xué)號 JOIN 課程注冊 ON 課程注冊.課程代碼=學(xué)期成績.課程代碼 WHERE 課程名稱=KCMC GO (2)執(zhí)行存儲過程proc_score,查詢“計(jì)算機(jī)網(wǎng)絡(luò)”課程的成績信息。EXEC proc_scor
15、e 計(jì)算機(jī)網(wǎng)絡(luò)5定義一事務(wù)tran_stu,在學(xué)生“學(xué)期成績”表中,為所有成績高于50分的同學(xué)的成績增加10分,并提交事務(wù)。三、假設(shè)現(xiàn)有數(shù)據(jù)庫“學(xué)生信息”,其中包含“學(xué)生”、“課程注冊”、“學(xué)期成績”三個(gè)表。表結(jié)構(gòu)如下:“學(xué)生”表結(jié)構(gòu):字段名數(shù)據(jù)類型長度是否為空約束學(xué)號int4否主鍵姓名char10否唯一約束性別char2是默認(rèn)約束專業(yè)char20是班級char12是備注text是裝訂線“課程注冊”表結(jié)構(gòu):字段名數(shù)據(jù)類型長度是否為空約束課程代碼char4否主鍵課程名稱char20否“學(xué)期成績”表結(jié)構(gòu):字段名數(shù)據(jù)類型長度是否為空約束學(xué)號int4否外鍵課程代碼char4否外鍵成績floa
16、t8是 根據(jù)各題功能要求寫出相應(yīng)的T-SQL語句。1寫出在“學(xué)生信息”數(shù)據(jù)庫中創(chuàng)建“學(xué)生”表的T-SQL語句,并在建表的同時(shí)創(chuàng)建所需約束。約束要求如下:將學(xué)號設(shè)置為主鍵,主鍵名為pk_xh;為姓名設(shè)置唯一約束,約束名為uk_xm;為性別添加默認(rèn)約束,約束名為df_xb,其值為“男”。USE 學(xué)生信息 &
17、#160; GO CREATE TABLE 學(xué)生
18、0; (學(xué)號 INT CONSTRAINT pk_xh PRIMARY KEY, 姓名 CHAR(10) NOT NULL CONSTRAINT uk_xm UNIQUE, 性別 CHAR(2) NULL CONS
19、TRAINT df_xb DEFAULT '男', 專業(yè) CHAR(20) NULL, 班級 CHAR(12) NULL, 備注 TEXT NULL) 2完成以下查詢。(1)統(tǒng)計(jì)學(xué)生表中各班級的學(xué)生人數(shù)。SELECT 班級,COUNT(*) AS 人數(shù) FROM
20、0; 學(xué)生 GROUP BY 班級 (2) 查詢“軟件工程”課程成績高于該門課程平均分的學(xué)生信息。SELECT 學(xué)號,課程名稱,成績 FROM 學(xué)期成績 JOIN 課程注冊 ON 學(xué)期成績.課程代碼=課程注冊.課程代碼 WHERE 課程名稱='軟件工程' AND 成績> (SELECT AVG(成績)
21、160; FROM 學(xué)期成績 JOIN 課程注冊 ON 學(xué)期成績.課程代碼=課程注冊.課程代碼 WHERE 課程名稱='軟件工程')(3)查詢男同學(xué)選修的課程號。(4)查詢至少選修課程號為“C01”和“C02”的學(xué)生學(xué)號。將所有學(xué)生的“01”課程的成績增加10分。3在“學(xué)生信息”數(shù)據(jù)庫中創(chuàng)建一個(gè)帶參數(shù)的存儲過程st_xsxx。該存儲過程的作用是:當(dāng)輸入某門課程的課程名稱時(shí),檢索該門課程成績,并將查詢結(jié)果以“學(xué)號” ,“姓名” ,
22、“課程名稱” ,“成績等級”輸出(成績劃分成四個(gè)等級:高于或等于85分者為優(yōu)秀,高于或等于75分者為良好,高于或等于60分者為及格,低于60分者為不及格)。CREATE PROCEDURE st_xsxx (1分) KCMC CHAR(20) (1分) AS SELECT 學(xué)生.學(xué)號,姓名,課程名稱,成績等級=CASE WHEN 成績>=85 THEN '優(yōu)秀'
23、 WHEN 成績>=75 THEN '良好' WHEN 成績>=60 THEN '及格' WHEN 成績<60 THEN '不及格' (或:ELSE '不及格') END FROM 學(xué)生 JOIN 學(xué)期成績 ON 學(xué)生.學(xué)號=學(xué)期成績.學(xué)號 JOIN 課程注冊
24、160;ON 課程注冊.課程代碼=學(xué)期成績.課程代碼 WHERE 課程名稱=KCMC (1分) GO四、現(xiàn)有關(guān)系數(shù)據(jù)庫如下: 數(shù)據(jù)庫名:教師數(shù)據(jù)庫教師表(編號 char(6),姓名,性別,民族,職稱,身份證號) 課程表(課號 char(6),名稱) 任課表(ID,教師編號,課號,課時(shí)數(shù)) 用SQL語言實(shí)現(xiàn)下列功能的sql語句代碼:1 寫出創(chuàng)建數(shù)據(jù)庫代碼,創(chuàng)建教師表代碼; 要求使用:編號(主鍵)、默認(rèn)(民族“漢”)、民族和姓名 (非空)、身份證號 (唯一)、性別(檢查約束:只能是男或女)。create database 教師數(shù)
25、據(jù)庫 -(2分) use 教師數(shù)據(jù)庫 go create table 教師表
26、; -(6分) (編號 char(6) primary key, 姓名 nchar(4) not null, 性別 nchar(1) check(性別 in ('男', '女'), 民族 nchar(8) default '漢族' not null, 職稱 nchar(12),
27、0;身份證號 char(18) unique ) create table 課程表 -(2分) (課號 char(6) primary key, 名稱 cha
28、r(40) not null ) create table 任課表 -(4分) (ID IDENTITY(1, 1), 教師編號 char(6)
29、references 學(xué)生表(學(xué)號), 課號 char(6) references 課程表(課號), 課時(shí)數(shù) integer check(課時(shí)數(shù) between 0 and 200) ) 2寫出下列課程記錄添加到課程表的代碼 課號 課程名稱 100001 SQL Server數(shù)據(jù)庫 100002 數(shù)據(jù)結(jié)構(gòu) 100003 VB程序設(shè)計(jì) 修改:把課號為100003的課程名稱改為“Visual Basic程序設(shè)計(jì)”;刪除:課號為100003的課程信息 inser
30、t 課程表 values('100001', 'SQL Server數(shù)據(jù)庫') insert 課程表 values('100002', '數(shù)據(jù)結(jié)構(gòu)') insert 課程表 values('100003', 'VB程序設(shè)計(jì)') update 課程表 set 名稱='Visual Basic程序設(shè)計(jì)'
31、60;where 課號='100003' delete 課程表 where 課號='100003'3創(chuàng)建視圖:任課表 (教師編號,姓名,課號,課程名稱,課時(shí)數(shù));create view 任課表視圖 as select 教師編號,姓名,課號, 課程名稱,課時(shí)數(shù) from 教師表,任課表 where 教師表.編號=任課表.教師編號 4查詢:所有教“SQL Server數(shù)據(jù)庫”這門課程的老師姓名;create&
32、#160;function 某門課任課教師 (課程名 varchar(15) returns table as return (select 課程名稱, 課時(shí)數(shù), 教師姓名=姓名 from 任課表視圖 where 課程名=課程名) go select * from 某門課任課教師('SQL Server數(shù)據(jù)庫')5查詢:最大課時(shí)數(shù)、最低課時(shí)數(shù)、平均課時(shí)的;create p
33、rocedure 統(tǒng)計(jì)課時(shí)數(shù) as select 最大課時(shí)數(shù)=max(課時(shí)) ,最小課時(shí)數(shù)=min(課時(shí)),平均課時(shí)數(shù)=avg(課時(shí)) from 任課表 go 6檢索有一門或一門以上課程課時(shí)數(shù)大于90的所有教師的信息,包括編號、姓名;select 編號, 姓名 from 教師表 where編號 in (select distinct 教師編號 from 任課表 where課時(shí)
34、數(shù)>=90) 7修改教師表結(jié)構(gòu):教師表的職稱列上,規(guī)定取值為('教授','副教授','講師', '助教')之一。create rule zhicheng _rule as zhicheng in ('教授','副教授','講師', '助教') go sp_bindrule zhicheng_rule, '教師表.職
35、稱' 8計(jì)算某教師代課總課時(shí),并將值返回的存儲過程以及執(zhí)行代碼。執(zhí)行:計(jì)算“郭老師”的總課時(shí)。create procedure 統(tǒng)計(jì)課時(shí) 教師名 nchar(16), as begin declare 總課時(shí) int select 總課時(shí)=sum (課時(shí)) from 任課表視圖 where
36、;姓名 = 教師名 end go execute 統(tǒng)計(jì)課時(shí) '郭老師'五、現(xiàn)在要為學(xué)校建立一個(gè)數(shù)據(jù)庫,設(shè)學(xué)校的環(huán)境如下:一個(gè)系有若干個(gè)專業(yè),每個(gè)專業(yè)一年只招一個(gè)班,每個(gè)班有若干個(gè)學(xué)生,現(xiàn)要建立關(guān)于系、學(xué)生、班級的數(shù)據(jù)庫,關(guān)系模式為:學(xué)生表student(學(xué)號,姓名,性別,班級,生源地,高考成績,出生日期)班級表class(班級名,專業(yè)名,系號,入學(xué)年份)系表 department(系號,系名)使用SQL語句完成一下功能:1. 建立數(shù)據(jù)庫名為school并激活當(dāng)前新建的數(shù)據(jù)庫,要求主數(shù)據(jù)文件的邏輯文
37、件名為school,實(shí)際文件名為school.mdf,事務(wù)日志文件的邏輯文件名為school,,實(shí)際文件名分別為school.ldf,上述文件的初始容量均為5MB,最大容量均為20MB,遞增量均為1MB。create database school on primary ( name = school, filename = 'SCHOOL.mdf', SIZE = 5MB, MAXSIZE = 20MB,
38、160;filegrowth = 1MB) log on( name= school_log, filename = SCHOOL_log.ldf', SIZE = 2MB, maxsize = 20MB, filegrowth = 10%) go2建立表student(學(xué)號,姓名,性別,班級,生源地,高考成績,出生日期)要求:(1)表要有主鍵(2)學(xué)生的性別只能取男或者女 (3)學(xué)生姓名不能為空
39、use SCHOOL create table student - 學(xué)生表定義 ( 學(xué)號char(10) primary key , - 主鍵為學(xué)號 姓名varchar(20) not null , - 姓名不能為空值 性別char(4) default '男' , - 性別默認(rèn)為男性 生源地var
40、char(12) , -生源地出生日期datetime , check(性別= '男') or (性別= '女') - 性別必須為男性或女性 )3.在student表中插入一條記錄:(學(xué)號:8101,姓名:張三,性別:男,生源地:山東)insert into student values(8101,'張三','男','山東')4.根據(jù)student表完成以下的查詢功能(1)通
41、過對學(xué)生信息表的查詢,查詢出所有學(xué)生的學(xué)號,姓名和性別。select 學(xué)號,姓名,性別 from student (2)通過對學(xué)生信息表的查詢,查詢來自福建的學(xué)生的記錄。select * from student where 生源地= '福建'(3)在查詢語句中使用聚合函數(shù)計(jì)算出所有學(xué)生總數(shù)(起別名為學(xué)生人數(shù))和平均高考成績(起別名為平均成績)。select count(*) as '學(xué)生人數(shù)' from stud
42、ent (4)更新學(xué)號為8103的這位學(xué)生的姓名為張玲。update student set 姓名= '張玲' where 學(xué)號= '8103'(5)查詢高考成績最高的前5條學(xué)生記錄。Select top 5 * from student order by 高考成績 desc(6)在學(xué)生表中統(tǒng)計(jì)班級列表及各班級的人數(shù)。Select 班級,count(*) from
43、 student group by 班級(7)查詢高考成績在90到100之間的學(xué)生的學(xué)號、姓名、專業(yè)名。Select 學(xué)號,姓名,專業(yè)名 from 學(xué)生表,班級表 where 學(xué)生表.班級=班級表.班級名 and 高考成績 between 90 and 100(8)刪除姓名為李飛的學(xué)生記錄;刪除數(shù)據(jù)表student。delete from student where 姓名= '李飛'
44、;六、已知邏輯結(jié)構(gòu)見下表,寫出各題的T-SQL語句。表readers(讀者信息表)結(jié)構(gòu)屬性名數(shù)據(jù)類型寬度小數(shù)位數(shù)編號(主碼)char8姓名char8讀者類型int2已借數(shù)量int2books表(圖書信息表)結(jié)構(gòu)屬性名數(shù)據(jù)類型寬度編號(主鍵)char15書名char42作者char8出版社char28出版日期datetime8定價(jià)(>0)decimal8borrowinf表(借閱信息表)結(jié)構(gòu)屬性名數(shù)據(jù)類型寬度讀者編號(外鍵)char8圖書編號(外鍵)char15借期datetime8還期datetime8主鍵(讀者編號,圖書編號,借期)視圖overdue(超期信息)列名對應(yīng)基本表的列名讀者編號Reaers.編號讀者姓名Readers.姓名圖書編號Books.書名書名Books.應(yīng)還日期Borrwinf.借期+readrtype期限1. 創(chuàng)建基本表books。CREATE TABLE books ( 圖書編號 CHA
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度中醫(yī)養(yǎng)生產(chǎn)品海外市場推廣合同4篇
- 2025年度商業(yè)綜合體承包轉(zhuǎn)讓合同范本4篇
- 2025年度養(yǎng)老機(jī)構(gòu)場地租賃與養(yǎng)老服務(wù)分成管理合同3篇
- 2025年cfg樁基施工項(xiàng)目環(huán)境保護(hù)與生態(tài)修復(fù)合同3篇
- 2025年度智能家電維修個(gè)人勞務(wù)協(xié)議書4篇
- 2025年中國酚氨咖敏顆粒行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y戰(zhàn)略咨詢報(bào)告
- 2025年度汽車租賃與二手車交易服務(wù)合同3篇
- 2025年溫州家和物業(yè)管理有限公司招聘筆試參考題庫含答案解析
- 2025年溫州個(gè)人房屋買賣合同(含交易資金監(jiān)管)3篇
- 二零二五版離婚協(xié)議書模板:離婚后子女撫養(yǎng)及財(cái)產(chǎn)分割專案協(xié)議2篇
- 氧氣霧化吸入法
- 6月大學(xué)英語四級真題(CET4)及答案解析
- 氣排球競賽規(guī)則
- 電梯維修保養(yǎng)報(bào)價(jià)書模板
- 危險(xiǎn)化學(xué)品目錄2023
- FZ/T 81024-2022機(jī)織披風(fēng)
- GB/T 33141-2016鎂鋰合金鑄錠
- 2023譯林版新教材高中英語必修二全冊重點(diǎn)短語歸納小結(jié)
- JJF 1069-2012 法定計(jì)量檢定機(jī)構(gòu)考核規(guī)范(培訓(xùn)講稿)
- 綜合管廊工程施工技術(shù)概述課件
- 公積金提取單身聲明
評論
0/150
提交評論