资源描述:
《sql数据定义及查询习题课(给学生)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、SQL数据定义及查询习题课教案一、数据定义的练习:用SQL语句创建数据库:STCreateDataBaseST;用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示Student表结构列名说明数据类型约束Sno学号字符串,长度为9主码Sname姓名字符串,长度为20非空Ssex性别字符串,长度为2取‘男’或‘女’Sage年龄整数取值15~45Sdept所在院系字符串,长度为20默认为‘CS’CreatetableStudent(Snovarchar(9)primarykey,Snamevarchar(20)n
2、otnull,Ssexchar(2)check(Ssex=‘男’orSsex=’女’),Sagesmallintcheck(Sagebetween15and45),Sdeptvarchar(20)default(‘CS’))Course表结构列名说明数据类型约束Cno课程号字符串,长度为4主码Cname课程名字符串,长度为40非空Ccredit学分整数取值大于0Semester学期整数取值1到8Period学时整数取值大于0Createtablecourse(Cnovarchar(4)primarykey,Cnamevarchar(40)notnull,Ccredits
3、mallintcheck(Ccredit>0),Semestersmallintcheck(Semesterbetween1and8),Periodsmallintcheck(Period>0))SC表结构列名说明数据类型约束Sno学号字符串,长度为9主码,引用Student.Sno的外码Cno课程号字符串,长度为10主码,引用Course.Cno的外码Grade成绩整数取值0~100CreatetableSC(Snovarchar(9)foreignkeyreferencesstudent(Sno),Cnovarchar(4)foreignkeyreferencesc
4、ourse(Cno),Gradesmallintcheck(Gradebetween0and100),Primarykey(Sno,Cno))二、输入数据以上三表具体数据参考教材P82,COURSE表的Semester、Period数据在允许范围自行确定,SC表应根据后面各种查询情况适当增加学生选课记录。输入数据时,可以从管理平台可视化录入,也可以用INSERT命令插入。三、数据查询的练习1.查询学生选课表中的全部数据。SELECT*FROMSC2.查询计算机系学生的姓名、年龄。SelectSname,SageFromStudentWhereSdept='CS'3.查询
5、成绩在70~80分之间的学生的学号、课程名和成绩。SelectSno,Cname,GradeFromCourse,ScWherecourse.cno=sc.Cnoandsc.Gradebetween70and804.查询计算机系年龄在18~20之间且性别为“男”的学生的姓名和年龄。SelectSname,SageFromStudentWhereSagebetween18and20andSsex=’男’andSdept=’CS’5.查询课程号为“1”的课程的最高分数。Selecttop1GradeFromScWhereCno='1'OrderbyGradedesc或sel
6、ectmax(Grade)as最高分fromScwhereCno='1'6.查询计算机系学生的最大年龄和最小年龄。Select'cs'系,max(Sage)as年龄最大,min(Sage)as年龄最小FromStudentWhereSdept='CS'7.统计每个系的学生人数。SelectSdept,count(Sdept)as学生人数FromStudentGroupbySdept8.统计每门课程的选课人数和考试最高分。Selectc.cno,count(s.Sno)as选课人数,max(Grade)as最高分FromCoursecleftjoinScsonc.cno=
7、s.CnoGroupbyc.Cno9.统计每个学生的选课门数和考试平均成绩,并按学号的升序显示结果。Selectsno,avg(grade)as’平均成绩’,count(cno)as’选课门数’FromscGroupbysnoOrderbysno10.查询总成绩超过200分的学生,要求列出学号、总成绩。Selectsno,sum(grade)FromscGroupbysnoHavingsum(grade)>20011.查询选修了“2”号课程的学生的姓名和所在系。Selectsname,sdeptFromstudents1,scs2Wher