您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 关系数据库与SQL--课后答案(黄旭明-著)-高等教育出版社
SQLSQLSQLSQL语言课后习题1111、用SQLSQLSQLSQL语言创建一个数据库,命名为StudentStudentStudentStudent。CreateDatabaseStudent;2222、在StudentStudentStudentStudent数据库中,用SQLSQLSQLSQL语言建立以上各表。CreateTable学生表名:学生(学号Char(12),属性:学号(定长字符串,12)姓名Varchar(20)notnull,姓名(变长字符串,20,非空)出生日期Datetimenotnull,出生日期(日期时间,非空)是否党员Bit,是否党员(逻辑型)班委char(8),班委(定长字符串,8)Primarykey(学号));主键:学号CreateTable课程表名:课程(课程号Char(3),属性:课程号(定长字符串,3)课程名称Varchar(20),课程名称(定长字符串,20)先修课号Char(3),先修课号(定长字符串,3)Primarykey(课程号),主键:课程号Foreignkey(先修课号)References课程(课程号));外键:先修课号其值取自本表主键“课程号”的值CreateTable成绩表表名:成绩表(学号Char(12),属性:学号(定长字符串,12)课程号Char(3),课程号(定长字符串,3)成绩IntCheck(0成绩and成绩100),成绩(整数,3,取值,0~100)Primarykey(学号,课程号),主键:(学号,课程号)Foreignkey(学号)References学生(学号),外键:学号(取值自表学生主键之值)Foreignkey(课程号)References课程(课程号));课程号(取值自表课程主键之值)3333、在“成绩表”中创建关于“课程号”的索引。CreateIndex课程号索引On成绩表(课程号);4444、添加一条学生记录,学号:200301501001:200301501001:200301501001:200301501001、姓名::::黄树新。出生日期:1985-8-9、是否党员:0InsertInto学生(学号,姓名,出生日期,是否党员)Values('200301501001','黄树新','1985-8-9',0)4-24-24-24-2、修改上面该学生的记录,出生日期:1985-9-81985-9-81985-9-81985-9-8,是否党员:1111Update学生Set出生日期'1985-9-8',是否党员1Where学号'200301501001'5555、在表“学生”中增加数值类型的“德育分”“专业分”与“总积分”属性,总积分德育分++++专业分。AlterTable学生Add德育分Int,专业分Int,总积分Int;6666、从“课程”表中检索所有课程的“课程号”和“课程名称”Select课程号,课程名称From课程;7777、从“学生”表中检索记录的所有属性。Select*From学生;8888、从“学生”表中检索每一条记录“总积分”,说明总积分是德育分与专业分之和,并在属性类的清单中用字符串加以说明。Select学号,'德育分+专业分',总积分From学生;9999、从“成绩表”中检索某个学号的所有选修课程的成绩。Select*From成绩表Where学号'200301501017';10000、:从“成绩表”中检索所有不及格学生的记录。Select*From成绩表Where成绩60;11111111、用俩种不同的比较形式,从“课程”表中检索课程名称不是“数据库”的所有记录。Select*或Select*From课程From课程Where课程名称'数据库';Where课程名称!'数据库';12121212、从“学生”表中检索出所有年龄大于20202020岁的学生的“学号”“系别”。Select学号,系别From学生WhereDatediff(Year,出生日期,'2009-4-25')20;13131313、检索所有尚未填写成绩的学生学号。Select学号From成绩表Where成绩IsNull;14141414、从“课程”中检索出所有有“先修课号”的课程号与课程名称。Select课程号,课程名称From课程Where先修课号IsNotNull;15151515、按学生年龄大小,从“学生”表中检索“学号”“出生日期”。Select学号,出生日期From学生OrderBy出生日期;16666、将“成绩表”中的成绩记录,先按“课程号”从大到小排序,然后在按“成绩”从高到低排序。Select*From成绩表OrderBy课程号,成绩Desc;17171717、从“学生”表中检索“系别”为105105105105,且“积分”大于200200200200的“学号”。Select学号From学生Where系别'105'And总积分200;18181818、从“成绩表”中检索选修了“课程号”为201201201201或者301301301301课程的学生“学号”。Select学号From成绩表Where课程号'201'Or课程号'301';19191919、从“成绩表”中检索出哪些人有不及格的记录。Select学号,姓名From学生Where学号In(Select学号From成绩表Where成绩60);20202020、从“成绩表”中检索选修了“课程号”不为201201201201或者301301301301,且成绩大于95959595分的学生“学号”Select学号From成绩表WhereNot(课程号'201'Or课程号'301')And(成绩95);21212121、查询哪些既是班委又是党员的学生Select*From学生Where(班委IsNotNull)And(党员1);22222222、从“学生”表中检索“专业分”介于100100100100到120120120120之间的学生“学号”。Select学号From学生Where专业分Between100And120;23232323、从“学生”表中检索在1982198219821982年1111月1111日至9999月1111日出生的学生“学号”和“姓名”。Select学号,姓名From学生Where出生日期Between'1982-1-1'And'1982-9-1';24242424、从“学生”表中检索姓“陈”的学生“学号”和“姓名”。Select学号,姓名From学生Where姓名Like'陈%';25252525、查询已被学生选修的课程号,课程号不重复显示。SelectDistinct课程号From成绩表;26262626、计算选修课程号为201201201201的学生人数。SelectCount(*)From成绩表where课程号'201';27272727、计算学生总人数。SelectCount(*)From学生;28282828、计算系别为105105105105的学生的德育积分总和。SelectSum(德育分)From学生Where系别'105';29292929、求所有学生总积分的平均值。SelectAvg(总积分)From学生;29292929-2222、求学号为“200210501002200210501002200210501002200210501002”该学生所修课程的总成绩和平均成绩。SelectSum(成绩),Avg(成绩)From成绩表Where学号'200210501002';29292929-3333、求专业分大于德育分,且姓名以“林”开头的学生总人数。SelectCount(*)From学生Where专业分德育分And(姓名Like'林%');29292929-4444、求学生表中德育分的最高分和平均分,且分别以“最高分”和“平均分”作为显示的列名。SelectMax(德育分)As最高分,Avg(德育分)As平均分From学生;30303030、找出“成绩表”的最低与最高成绩。SelectMin(成绩),Max(成绩)From成绩表;31313131、计算某个学生的各课程平均成绩。SelectAvg(成绩)From成绩表Where学号'200210501001';32323232、计算各个学生选修的课程门数。Select学号,Count(*)From成绩表GroupBy学号;32323232-2222、查询所选修课程平均成绩大于75757575的所有学生。Select学号,Avg(成绩)From成绩表GroupBy学号HavingAvg(成绩)75;33333333、分组计算各门课的最高成绩与最低成绩。Select课程号,Max(成绩),Min(成绩)From成绩表GroupBy课程号;33333333-2222、查询输出:学号课程号课程名称成绩。Select学号,成绩表.课程号,课程名称,成绩From课程,成绩表Where课程.课程号成绩表.课程号;34343434、按课程名称、学号二重排序输出:课程名称学号姓名成绩。Select课程名称,学生.学号,姓名,成绩From学生,课程,成绩表Where课程.课程号成绩表.课程号And学生.学号成绩表.学号OrderBy课程名称,学生.学号;35353535、查询与“刘晨”在同一个年出生的学生Select*From学生WhereYear(出生日期)In(SelectYear(出生日期)From学生Where姓名'刘晨');35353535-2222、查询与“刘晨”在同一个系别的学生。Select*From学生Where系别In(Select系别From学生Where姓名'刘晨');36363636、查询选修了课程名为“信息系统”的学生学号和姓名。Select学号,姓名或者Select学生.学号,姓名From学生From学生,成绩表,课程Where学号In(Where学生.学号成绩表.学号AndSelect学号成绩表.课程号课程.课程号AndFrom成绩表课程名称'信息系统';Where课程号In(Select课程号From课程Where课程名称'信息系统'));37373737、查询其他系中比105105105105任一学生年龄都小的学生名单。Select姓名From学生Where系别'105'And出生日期All(Select出生日期From学生Where系别'105');38383838、查询所有选修了课程号以“1111”打头的学生姓名。Select姓名From学生Where学号In(Select学号From成绩表Where课程号Like'1%');38-238-238-238-2、查询选修课程名称不是“数据库”,而成绩大于85858585的学生学号和姓名。Select学号,姓名Select学生.学号,姓名From学生或者From学生,成绩表,课程Where学号in(Where学生....学号成绩表....学号And成绩表....Select学号课程号课程....课程号From成绩表And成绩85And课程名称'数据库';Where成绩85and课程号in(Select课程号From课程Where课程名称'数据库'));39393939、查询选修了全部课程的学生姓名。Select姓名From学生Where学号In(Select学号From成绩表GroupBy学号HavingCount(Distinct课程号)In(SelectCount(Distinct课程号)From课程));40404040、查询105105105105系的学生中年龄不大于19191919岁的学生。Select*或者Select*From学生From学生STWhere系别'105'AndWhere19Any(DateDiff(Year,出生日期,'2009-5-31')19;SelectDateDiff(Year,出生日期,'2009-5-31')Fr
本文标题:关系数据库与SQL--课后答案(黄旭明-著)-高等教育出版社
链接地址:https://www.777doc.com/doc-6521886 .html