实用文档之SQL语句创建学生信息数据库表的示例学生信息数据库表.docx
- 文档编号:28086624
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:10
- 大小:17.29KB
实用文档之SQL语句创建学生信息数据库表的示例学生信息数据库表.docx
《实用文档之SQL语句创建学生信息数据库表的示例学生信息数据库表.docx》由会员分享,可在线阅读,更多相关《实用文档之SQL语句创建学生信息数据库表的示例学生信息数据库表.docx(10页珍藏版)》请在冰豆网上搜索。
实用文档之SQL语句创建学生信息数据库表的示例学生信息数据库表
实用文档之"用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
Whereo=sc.Cnoandsc.Gradebetween70and80
4.查询计算机系年龄在18~20之间且性别为“男”的学生的姓名和年龄。
SelectSname,Sage
FromStudent
WhereSagebetween18and20andSsex=’男’andSdept=’计算机系’
go
5.查询课程号为“C01”的课程的最高分数。
Selecttop1Gradeselectmax(Grade)as最高分
FromScfromSc
WhereCno=’C01’whereCno=’C01’
OrderbyGradedescorderbyGradedesc
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最高分
FromCoursecleftjoinScsono=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
Fromstudents1,scs2
Wheres1.sno=s2.snoando=’c02’
12.查询成绩在80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。
Selects1.sname,o,s2.grade
Fromstudents1,scs2
Wheres1.sno=s2.snoandgrade>80
Orderbygradedesc
13.查询哪些课程没有人选修、要求列出课程号和课程名。
Selecto,ame
Fromcoursecleftjoinscsono=o
Groupbyo,ame
Havingcount(s.sno)=0
14.用子查询实现如下查询:
(1)查询选修了课程“C01”的学生的姓名和所在系。
Selectsname,sdept,sno
Fromstudent
Wheresnoin(
Selectsno
Fromsc
Wherecno=’c01’
)
(2)查询信息系成绩在80分以上的学生的学号、姓名。
Selectsno,sname
Fromstudent
Wheresdept=’外语系’andsnoin(
Selectsno
Fromsc
Wheregrade>80
)
(3)查询计算机系考试成绩最高的学生的姓名。
Selects1.snamefromstudents
Wheresdept=’计算机系’andsnoin
(selectsnofromsc
Wheregradein
(selectmax(Grade)fromsc)
)
15.删除选课成绩小于50分的学生的选课记录。
Deletefromsc
Wheregrade<70
Select*fromsc—验证
16.将所有选修了课程“C01”的学生的成绩加10分:
Updatesc
Setgrade=grade+10
Wherecno=’c01’
17.将计算机系所有选修了课程“计算机文化基础”课程的学生的成绩加10分。
Select*fromsc
Updatesc
Setgrade=grade+10
Wherecnoin
(selectcnofromcourse
Wherecname=’计算机文化基础’)
18.创建查询学生的学号、姓名、所在系、课程号、课程名、课程学分的视图。
Select*fromcourse
Select*fromstudents
Select*fromsc
Createview学生基本信息
As
Selectstudents.sno,sname,sdept,o,cname,ccredit
Fromcourse,sc,students
Whereo=o
Ando=students.sno
19.创建查询每个学生的平均成绩的视图,要求列出学生学号及平均成绩。
Createviews_avg
As
Selectsno,avg(Grade)as平均成绩fromsc
Groupbysno
20.创建查询每个学生的选课学分的视图,要求列出学生学号及总学分。
Createviews_sc
As
Selectstudents.sno,sum(ccredit)as总学分from
Students,sc,course
Wherestudents.sno=sc.sno
Ando=o
Groupbystudents.sno
21.用SQL语句创建一个名为f_1的函数,该函数能够求出3到100之间的所有素数之和。
Createfunctionf_1()
Returnsint
As
Begin
Declare@aint,@bint,@iint,@sumint
Set@i=3
Set@sum=0
While@i<101
Begin
Set@b=0
While@a<=@i/2
Begin
If@i%@a=0
Begin
Set@b=1
Break
End
Set@a=@a+1
End
If@b=0--@b为0说明之前没有比@i小的数字可以把@i整除
Begin
Set@sum=@sum+@i
End
Set@i=@i+1
End
Return@sum
End
Go
Selectdbo.f_1()
22.用SQL语句创建一个名为f_2的函数,该函数能够求出任意两个数的最大值。
Createfunctionf_2(@x1int,@x2int)returnsint
As
Begin
Declare@maxint
If@x1>@x2
Return@max
End
Selectdbo.f_2(2,6)
23.用SQL语句创建一个名为pro_get_stu_information的存储过程,该存储过程能够根据用户指定的Sno(学号)求出与该学号对应的学生姓名、课程名、成绩。
Createprocedurepro_get_stu_information@mchar(6)output
As
Selectsname,cname,gradefromstudents,sc,course
Wherestudents.sno=sc.snoando=oandsc.sno=@m
Execpro_get_stu_information’0603002’
24.为“学生”表创建一个依赖于“学号”的唯一的、非聚集的索引
Createuniquenonclusteredindexstu_intonstudents(sno)
25.通过游标逐行读取“学生”表的记录
Declarestu_curcursorfor
Select*fromstudentsforreadonly
Openstu_cur
Fetchstu_cur
Closestu_cur
Deallocatestu_cur
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用 文档 SQL 语句 创建 学生 信息 数据库 示例