SQL语句创建学生信息数据库表的示例

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S Q L语句创建学生信息数

据库表的示例

Prepared on 24 November 2020

用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示

Student表结构

Createtable S tudent

(

Snovarchar(7)primarykey,

Snamevarchar(10)notnull,

Ssexchar(2)check(Ssex=‘男’orSsex=’女’),

Sageintcheck(Sagebetween15and45),

Sdeptvarchar(20)default(‘计算机系’)

)

Course表结构

Createtablecourse

(

Cnovarchar(10)primarykey,

Cnamevarchar(20)notnull,

Ccreditintcheck(Sctedit>0),

Semesterintcheck(Semester>0),

Periodintcheck(Period>0)

)

SC表结构

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

=查询计算机系年龄在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选课人数,,max(Grade)as最高分

=

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

=02’查询成绩在80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。

,,

Fromstudents1,scs2

=>80

Orderbygradedesc

13.查询哪些课程没有人选修、要求列出课程号和课程名。

,

=

,

Havingcount=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)查询计算机系考试成绩最高的学生的姓名。

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

相关文档
最新文档