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

2026/4/29 4:19:07

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

Student表结构

列名 Sno Sname Ssex Sage Sdept Create table Student ( )

Course表结构

列名 Cno Cname Ccredit Semester Period Create table course ( )

SC表结构

列名 Sno 说明 学号 数据类型 字符串,长度为7 约束 主码,引用Student的外码 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)

说明 课程号 课程名 学分 学期 学时 数据类型 字符串,长度为10 字符串,长度为20 整数 整数 整数 约束 主码 非空 取值大于0 取值大于0 取值大于0 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(‘计算机系’)

说明 学号 姓名 性别 年龄 所在院系 数据类型 字符串,长度为7 字符串,长度为10 字符串,长度为2 整数 字符串,长度为20 约束 主码 非空 取‘男’或‘女’ 取值15~45 默认为‘计算机系’ Cno Grade 课程号 成绩 字符串,长度为10 整数 主码,引用Course的外码 取值0~100 Create table SC ( )

Sno varchar(7) foreign key references student(Sno), Cno varchar(10) foreign key references course(Cno), Grade int check(Grade between 0 and 100), Primary key (Sno,Cno)

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

SELECT * FROM SC go

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

Select Sname,Sage From Student

Where Sdept=’计算机系’

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

Select Sno,Cno,Grade From Course,Sc

Where course.cno=sc.Cno and sc.Grade between 70 and 80

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

姓名和年龄。

Select Sname,Sage From Student

Where Sage between 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 Student

Where Sdept=’计算机系’

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

Select count(Sdept) as 学生人数,Sdept From Student Group by Sdept

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

Select count(Sno) as选课人数,c.Sno,max(Grade) as最高分 From Course c left join Sc s on c.cno=s.Cno Group by c.Cno

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

Select sno,avg(grade) as ’平均成绩’,count (cno) 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 sname,sdept From student s1,sc s2

Where s1.sno=s2.sno and s2.cno=’c02’

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

成绩的降序排列结果。

Select s1.sname,s2.cno,s2.grade From student s1,sc s2

Where s1.sno=s2.sno and grade >80 Order by grade desc

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

Select c.cno,c.cname

From course c left join sc s on c.cno=s.cno Group by c.cno,c.cname Having count(s.sno)=0

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

(1)查询选修了课程“C01”的学生的姓名和所在系。

Select sname,sdept ,sno From student Where sno in ( Select sno )

From sc

Where cno=’c01’

(2)查询信息系成绩在80分以上的学生的学号、姓名。

Select sno,sname From student

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

Select sno From sc

Where grade>80

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

Select s1.sname from students Where sdept=’计算机系’ and sno in (select sno from sc Where grade in


SQL语句创建学生信息数据库表的示例-学生信息数据库表.doc 将本文的Word文档下载到电脑
搜索更多关于: SQL语句创建学生信息数据库表的示例-学生信息数据库表 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219