数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中)

上机练习2

1、              启动SQL Server 2008中的 SQL Server Management Studio。

2、              针对下面三张基本表进行操作:

学生信息表(Student):

列名

数据类型

长度

是否可空

备注

学号

char

4

N

PRIMARY  KEY

姓名

varchar

8

N

性别

char

2

Y

男/女

出生日期

date

Y

家庭地址

varchar

50

Y

身高

decimal(3,2)

Y

备注

text

Y

课程表(Course):

列名

数据类型

长度

是否可空

备注

课程编号

Char

4

N

主键

课程名称

varchar

50

N

学分

int

Y

成绩表(Score):

列名

数据类型

长度

是否可空

备注

学号

Char

4

N

主键

课程编号

char

4

N

主键

分数

Decimal(3,1)

Y

3、              将下列数据输入各个表中

学号

姓名

性别

出生日期

家庭地址

身高

备注

0001

刘一平

1990-10-1

温州市环城西路201号

1.78

0002

张得民

1990-12-2

杭州市下沙路22号

1.65

0003

马东

1990-7-4

宁波市中山北道20号

1.71

0004

肖海燕

1990-3-15

温州市越秀北路43号

1.65

0005

张民华

1991-5-13

宁波市艮山路7号

1.63

课程编号

课程名称

学分

0001

计算机基础

2

0002

管理学原理

3

0003

数据库技术

3

0004

项目管理

2

0005

毕业论文

10

学号

课程编号

分数

0001

0001

80.0

0001

0002

90.0

0001

0003

70.0

0001

0004

85.0

0002

0001

78.0

0002

0002

NULL

0002

0003

77.0

0002

0004

67.0

0003

0001

66.0

0003

0002

76.0

0003

0003

NULL

0003

0004

73.0

4、    为Student表添加“系名”字段,存储数据如:“信息系”,“数学系”,“计算机系”等,具体数据可自行添加到Student表中;
ALTER TABLE Student ADD  xi_name char(10);
5、    统计各个课程号及相应的选课人数;
SELECT Cno,COUNT(Sno) FROM Score GROUP BY Cno;
6、    统计没有参加考试的学生学号和姓名;
SELECT Sno,Sname FROM Student WHERE Sno NOT IN(SELECT Sno FROM Score);
7、    查询选修了3门课以上的学生姓名;
SELECT Sname FROM Student WHERE Sno IN (SELECT Sno FROM Score GROUP BY Sno HAVING COUNT(*)>3);
8、    统计选修人数在3人以上的课程号和课程名;
SELECT Cno,Cname FROM Course WHERE Cno IN (SELECT Cno FROM Score GROUP BY Cno HAVING COUNT(*)>3);
9、    查询每个学生的学号、姓名、选修的课程名及成绩;
10、    查询选修了课程号为“0003”的学生姓名和住址;
11、    查询与“刘一平”来自同一个系的学生姓名;
12、    查询其它系中课程‘0002’比信息系所有学生分数高的学生学号和姓名;
13、    查询其它系中比信息系所有学生年龄大的学生姓名和性别;
14、    查询每门课程中低于该课程平均成绩的学生学号和姓名;
15、    查询“信息系”中选课最多的学生学号;
16、    查询有两门及以上课程不及格的学生学号和姓名;
17、    查询比“0002”号课程平均分高的其它课程信息;
18、    查询选修了所有课程的学生学号和姓名。

猜你喜欢

转载自www.cnblogs.com/caiyishuai/p/10523254.html