1、(2)查询课程编号为“003”的课程成绩高于该门课程平均分的学生信息。(3)在“学生信息”表中找出姓“王”的学生信息。(4)将“成绩”表中的课程编号为“001”的成绩增加10分。(5)列出每个同学的学号、姓名及选修课程的平均成绩情况,没有选修的同学也列出。3创建一个名为stud_view2的视图,该视图可以用来查看每个学生的选修课程的门数和平均成绩。viewstud_ view2 asselectcount(*) as 课程门数,avg(grade) as 平均成绩from成绩表groupby学号*fromstud_view24(1)在“教学管理”数据库中创建一个带参数的存储过程proc_sc
2、ore。该存储过程的作用是:当输入某门课程的课程名称时,检索该门课程成绩,并将查询结果以“学号” ,“姓名” ,“课程名称” ,“成绩等级”输出(成绩划分成四个等级:高于或等于85分者为优秀,高于或等于75分者为良好,高于或等于60分者为及格,低于60分者为不及格)。(2)执行存储过程proc_score,查询“003”课程的成绩信息。二、 假设现有数据库“学生信息”,其中包含“学生”、“课程”、“学期成绩”三个表。表结构如下:“学生”表结构字段名数据类型长度是否为空约束int4否主键姓名char10唯一约束性别2是默认约束专业20班级12备注text“课程”表结构课程(课号,课名,学分,先修
3、课)“学期成绩”表结构选课(学号,课号,成绩)根据各题功能要求写出相应的T-SQL语句。1写出在“学生信息”数据库中创建“学生”表的T-SQL语句,并在建表的同时创建所需约束。约束要求如下: 将学号设置为主键,主键名为pk_xh;为姓名设置唯一约束,约束名为uk_xm;为性别添加默认约束,约束名为df_xb,其值为“男” 。USEGOTABLE学生(学号INTCONSTRAINTpk_xhCHAR(10)uk_xmUNIQUE,CHAR(2)df_xb男专业CHAR(20)班级CHAR(12)备注TEXTNULL)(1)计算机专业不及格学生的学号和姓名。(2)选修了数据库课程的学生的学号、姓名
4、和成绩,查询结果按分数的降序排列。(3)在“课程”表中找出“课程名”中包含“计算机”三个字的课程。(4)将“课程”表中的课程编号为“001”的学分增加1学分;4(1)在“学生信息”数据库中创建一个带参数的存储过程proc_score。CREATE PROCEDURE proc_score KCMC CHAR(20) AS SELECT 学生.学号,姓名,课程名称,成绩等级=CASEWHEN成绩=85THEN优秀=75良好=60及格60不及格(或:ELSE)ENDFROMJOIN学期成绩ON学生.学号=学期成绩.学号课程注册课程注册.课程代码=学期成绩.课程代码WHERE课程名称=KCMC(2)
5、执行存储过程proc_score,查询“计算机网络”课程的成绩信息。EXEC proc_score计算机网络5定义一事务tran_stu,在学生“学期成绩”表中,为所有成绩高于50分的同学的成绩增加10分,并提交事务。三、假设现有数据库“学生信息”,其中包含“学生”、“课程注册”、“学期成绩”三个表。“学生”表结构:装订线“课程注册”表结构:课程代码课程名称“学期成绩”表结构:外键成绩float8 根据各题功能要求写出相应的T-SQL语句。为性别添加默认约束,约束名为df_xb,其值为“男”。NULL)2完成以下查询。(1)统计学生表中各班级的学生人数。SELECT班级,COUNT(*)AS人
6、数 学生 GROUP BY 班级(2)查询“软件工程”课程成绩高于该门课程平均分的学生信息。学号,课程名称,成绩学期成绩.课程代码=课程注册.课程代码课程名称=软件工程AND(SELECTAVG(成绩)(3)查询男同学选修的课程号。(4)查询至少选修课程号为“C01”和“C02”的学生学号。将所有学生的“01”课程的成绩增加10分。3在“学生信息”数据库中创建一个带参数的存储过程st_xsxx。PROCEDUREst_xsxx(1分)KCMC(1分)学生.学号,姓名,课程名称,成绩等级=GO四、现有关系数据库如下:数据库名:教师数据库教师表(编号 char(6),姓名,性别,民族,职称,身份证
7、号) 课程表(课号 char(6),名称) 任课表(ID,教师编号,课号,课时数) 用SQL语言实现下列功能的sql语句代码:1 写出创建数据库代码,创建教师表代码; 要求使用:编号(主键)、默认(民族“汉”)、民族和姓名 (非空)、身份证号 (唯一)、性别(检查约束:只能是男或女)。database教师数据库-(2分)教师表-(6分)(编号char(6)primarykey,姓名nchar(4)notnull,性别nchar(1)check(性别in(女),民族nchar(8)default汉族职称nchar(12),身份证号char(18)unique课程表-(2分)(课号名称char(4
8、0)null任课表-(4分)(IDIDENTITY(1,1),教师编号references学生表(学号),课号课程表(课号),课时数integercheck(课时数between0200)2写出下列课程记录添加到课程表的代码 课号 课程名称 100001 SQL Server数据库 100002 数据结构 100003 VB程序设计 修改:把课号为100003的课程名称改为“Visual Basic程序设计”;删除:课号为100003的课程信息 insertvalues(100001SQLServer数据库100002数据结构100003VB程序设计updateset名称=VisualBasi
9、c程序设计where课号=delete3创建视图:任课表 (教师编号,姓名,课号,课程名称,课时数);任课表视图as教师编号,姓名,课号,课程名称,课时数教师表,任课表教师表.编号=任课表.教师编号4查询:所有教“SQL Server数据库”这门课程的老师姓名;function某门课任课教师 (课程名varchar(15)returnsreturn(select课程名称,课时数,教师姓名=姓名任课表视图课程名=课程名)某门课任课教师(5查询:最大课时数、最低课时数、平均课时的;procedure统计课时数最大课时数=max(课时),最小课时数=min(课时),平均课时数=avg(课时)6检索有
10、一门或一门以上课程课时数大于90的所有教师的信息,包括编号、姓名;编号,where编号distinct教师编号where课时数=90)7修改教师表结构:教师表的职称列上,规定取值为(教授,副教授讲师, 助教)之一。rulezhicheng_rulezhicheng,sp_bindrulezhicheng_rule,教师表.职称8计算某教师代课总课时,并将值返回的存储过程以及执行代码。执行:计算“郭老师”的总课时。统计课时教师名nchar(16),begindeclare总课时int总课时=sum(课时)=endexecute郭老师五、现在要为学校建立一个数据库,设学校的环境如下:一个系有若干个
11、专业,每个专业一年只招一个班,每个班有若干个学生,现要建立关于系、学生、班级的数据库,关系模式为:学生表student(学号,姓名,性别,班级,生源地,高考成绩,出生日期)班级表class(班级名,专业名,系号,入学年份)系表 department(系号,系名)使用SQL语句完成一下功能:1. 建立数据库名为school并激活当前新建的数据库,要求主数据文件的逻辑文件名为school,实际文件名为school.mdf,事务日志文件的逻辑文件名为school,,实际文件名分别为school.ldf,上述文件的初始容量均为5MB,最大容量均为20MB,递增量均为1MB。schoolonprimar
12、ynameschool,filenameSCHOOL.mdfSIZE5MB,MAXSIZE20MB,filegrowth1MB)logonname=school_log, SCHOOL_log.ldf2MB,maxsize10%)2建立表student(学号,姓名,性别,班级,生源地,高考成绩,出生日期)要求:(1)表要有主键(2)学生的性别只能取男或者女 (3)学生姓名不能为空SCHOOLstudent-学生表定义学号char(10)key主键为学号姓名varchar(20)姓名不能为空值性别char(4)性别默认为男性生源地varchar(12)-生源地出生日期datetimecheck(
13、性别=or(性别=) -性别必须为男性或女性3.在student表中插入一条记录:(学号:8101,姓名:张三,性别:男,生源地:山东)intovalues(8101,张三山东4.根据student表完成以下的查询功能(1)通过对学生信息表的查询,查询出所有学生的学号,姓名和性别。学号,姓名,性别(2)通过对学生信息表的查询,查询来自福建的学生的记录。生源地=福建(3)在查询语句中使用聚合函数计算出所有学生总数(起别名为学生人数)和平均高考成绩(起别名为平均成绩)。count(*)学生人数(4)更新学号为8103的这位学生的姓名为张玲。姓名=张玲学号=8103(5)查询高考成绩最高的前5条学生
14、记录。Selecttop5order高考成绩desc(6)在学生表中统计班级列表及各班级的人数。班级,count(*)(7)查询高考成绩在90到100之间的学生的学号、姓名、专业名。学号,姓名,专业名学生表,班级表学生表.班级=班级表.班级名90100(8)删除姓名为李飞的学生记录;删除数据表student。李飞六、已知逻辑结构见下表,写出各题的T-SQL语句。表readers(读者信息表)结构属性名宽度小数位数编号(主码)读者类型已借数量books表(图书信息表)结构编号(主键)15书名42作者出版社28出版日期datetime定价(0)decimalborrowinf表(借阅信息表)结构读
15、者编号(外键)图书编号(外键)借期还期主键(读者编号,图书编号,借期)视图overdue(超期信息)列名对应基本表的列名读者编号Reaers.编号读者姓名Readers.姓名图书编号Books.书名Books.应还日期Borrwinf.借期+readrtype期限1. 创建基本表books。books图书编号CHAR(15)KEY,书名CHAR(42),作者CHAR(8),出版社CHAR(28),出版日期DATETIME,价格float(8);2. 创建基本表borrowinf。borrowinf读者编号CHAR(10),图书编号CHAR(15),借期DATETIME,还期DATETIME,(
16、读者编号,图书编号),(读者编号)readers(读者编号),(图书编号)books(图书编号)3. 创建视图overdue(超期信息)。Create view overdue as SELECT 图书编号 FROM borrowinf WHERE 还期4. 查询姓名为王立群的读者的借阅信息。图书编号,借期,还期borrowinf读者编号INreaders姓名=王立5. 查询书名中包含文字程序设计的图书信息。SELECT * FROM books WHERE 书名 LIKE%程序设计6. 查询各出版社的馆藏书数量。SELECT COUNT(DISTINCT 图书编号) FROM books7. 查询2004-1-1和2004-12-31之间作者为梁晓峰的图书借阅情况。SELECT * FROM borrowinf WHERE 借期2007-1-1AND 还期 2007-12-31 AND 图书编号 IN (SELECT 图书编号 FROM books WHERE 作者=梁晓峰8.创建存储过程计算用户指定图书的价格,并将价格作为返回值。再执行调用该存储过程的命令。图书管理GoPRO
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1