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

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

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

Create table Student

(

Sno varchar(7) primary key,

Sname varchar(10) not null,

Ssex char (2) check(Ssex= '男'or Ssex='女'),

Sage int check(Sage between 15 and 45),

Sdept varchar(20) default( '计算机系')

)

Create table course

(

Cno varchar(10) primary key, Cname varchar(20) not null, Ccredit int check(Sctedit>0),

Semester int check(Semester>0),

Period int check(Period>0)

)

Create table SC

(

Sno varchar(7) foreig n key referen ces stude nt(S no), Cno varchar(10) foreig n key references course(C no), Grade int check(Grade between 0 and 100), Primary key (Sn o,C no)

)

1.查询学生选课表中的全部数据。

SELECT *

FROM SC

go

2.查询计算机系学生的姓名、年龄。

Select Sn ame,Sage

From Stude nt

Where Sdept='计算机系’

3.查询成绩在70〜80分之间的学生的学号、课程号和成绩。

Select Sno,Cno ,Grade

From Course,Sc

Where course.c no=sc.C no and sc.Grade betwee n 70 and 80

4.查询计算机系年龄在18〜20之间且性别为“男”的学生的

姓名和年龄。

Select Sn ame,Sage

From Stude nt

Where Sage betwee n 18 and 20 and Ssex= '男'and Sdept='计算机系'

go

5.查询课程号为“ C01”的课程的最高分数。

Select top 1 Grade select max(Grade) as 最高分

From Sc from Sc

Where Cno=' C01' where Cno= ' C01'

Order by Grade desc order by Grade desc

6.查询计算机系学生的最大年龄和最小年龄。

Select max(Sage) as 年龄最大,min( Sage) as 年龄最小

From Stude nt

Where Sdept='计算机系’

7.统计每个系的学生人数。

Select coun t(Sdept) as 学生人数,Sdept

From Stude nt

Group by Sdept

8.统计每门课程的选课人数和考试最高分。

Select coun t(S no) as 选课人数,c.S no,max(Grade) as 最高分

From Course c left join Sc s on o=s.C no

Group by c.C no

9.统计每个学生的选课门数和考试平均成绩,并按学号的升序显示结果。

Select sno ,avg(grade) as '平均成绩’,co un t (c no) as '选课门数’

From sc

Group by sno

Order by sno

10.查询总成绩超过200分的学生,要求列出学号、总成绩。

Select sno ,sum(grade)

From sc

Group by sno

Having sum(grade)>200

11.查询选修了课程“ C02的学生的姓名和所在系。

Select sn ame,sdept

From stude nt s1,sc s2

Where s1.sno=s2.sno and o= ' c02'

12 .查询成绩在80分以上的学生的姓名、课程号和成绩,并按

成绩的降序排列结果。

Select sl.s name,s2.c no ,s2.grade From stude nt s1,sc s2

Where sl.s no=s2.s no and grade >80 Order by grade desc

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

Select o ,c.c name

From course c left join sc s on c.c no=s.c no Group by c.c no ,c.c name Havi ng coun t(s.s no)=0

14. 用子查询实现如下查询:

(1)

查询选修了课程“ Select sn ame,sdept ,s no

From stude nt Where sno in (

Select sno From sc Where cno= )

(2)

查询信息系成绩在

Select sno,sn ame

From stude nt

Where sdept='外语系’ and sno in(

Select sno From sc Where grade>80

)

(3) 查询计算机系考试成绩最高的学生的姓名

Select s1.s name from stude nts Where sdept='计算机系’ and sno in

(select sno from sc Where grade in

C01”的学生的姓名和所在系

c01 '

80分以上的学生的学号、姓名

相关文档
最新文档