- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精品文档
精品文档
PAGE
PAGE8
精品文档
PAGE
.
用SQL语句创建如下三个基本表:学生表
(Student)、课程
表(Course)、学生选课表(SC),构造如下所示
Student
表构造
列名
说明
数据种类
拘束
Sno
学号
字符串,长度为
7
主码
Sname
姓名
字符串,长度为
10
非空
Ssex
性别
字符串,长度为
2
取‘男’或‘女’
Sage
年纪
整数
取值15~45
Sdept
所在院系
字符串,长度为
20
默认为‘计算机系’
CreatetableStudent
(
Snovarchar(7)primarykey,
Snamevarchar(10)notnull,
Ssexchar(2)check(Ssex=
‘男’orSsex=’女’),
Sageintcheck(Sagebetween15and45),
Sdeptvarchar(20)default(
‘计算机系’)
)
Course
表构造
列名
说明
数据种类
拘束
Cno
课程号
字符串,长度为
10
主码
Cname
课程名
字符串,长度为
20
非空
Ccredit
学分
整数
取值大于0
Semester
学期
整数
取值大于0
Period
学时
整数
取值大于0
Createtablecourse
(
Cnovarchar(10)primarykey,
Cnamevarchar(20)notnull,
Ccreditintcheck(Sctedit>0),
Semesterintcheck(Semester>0),
Periodintcheck(Period>0)
)
SC表构造
列名 说明 数据种类 拘束
Sno 学号 字符串,长度为 7 主码,引用 Student 的外码
.
.
Cno 课程号 字符串,长度为 10 主码,引用 Course的外码
Grade 成绩 整数 取值0~100
CreatetableSC
(
Snovarchar(7)foreignkeyreferencesstudent(Sno),Cnovarchar(10)foreignkeyreferencescourse(Cno),
Gradeintcheck(Gradebetween0and100),
Primarykey(Sno,Cno)
)
1.查问学生选课表中的全部数据。
SELECT*
FROMSC
go
2.查问计算机系学生的姓名、年纪。
SelectSname,Sage
FromStudent
WhereSdept=’计算机系’
3.查问成绩在 70~80分之间的学生的学号、课程号和成绩。
SelectSno,Cno,Grade
FromCourse,Sc
Wherecourse.cno=sc.Cnoandsc.Gradebetween70and80
4.查问计算机系年纪在 18~20之间且性别为“男”的学生的
姓名和年纪。
SelectSname,Sage
FromStudent
WhereSagebetween18and20andSsex= ’男’andSdept=’计算机系’
go
5.查问课程号为“ C01”的课程的最高分数。
Selecttop1Grade selectmax(Grade)as 最高分
FromSc fromSc
.
.
WhereCno=’C01’ whereCno= ’C01’
OrderbyGradedesc orderbyGradedesc
6.查问计算机系学生的最大年纪和最小年纪。
Selectmax(Sage)as 年纪最大,min(Sage)as 年纪最小
FromStudent
WhereSdept=’计算机系’
7.统计每个系的学生人数。
Selectcount(Sdept)as 学生人数,Sdept
FromStudent
GroupbySdept
8.统计每门课程的选课人数和考试最高分。
Selectcount(Sno)as 选课人数,c.Sno,max(Grade)as 最高分
FromCoursecleftjoinScsonc.cno=s.Cno
Groupbyc.Cno
9.统计每个学生的选课门数和考试平均成绩, 并按学号的升序
显示结果。
Selectsno,avg(grade)as ’平均成绩’ ,count(cno)as ’选课门数’
Fromsc
Groupbysno
Orderbysno
10.查问总成绩超过 200分的学生,要求列出学号、总成绩。
Selectsno,sum(grade)
Fromsc
Groupbysno
Havingsum(grade)>200
11.查问选修了课程“ C02”的学生的姓名和所在系。
Selectsname,sdept
文档评论(0)