文档库 最新最全的文档下载
当前位置:文档库 › SQL习题练习

SQL习题练习

SQL习题练习
SQL习题练习

常用sql server 语句 A

设有教学数据库的三个基本表:学生表Student (Sno,Sname,Sage,Ssex, Sdept),

课程表Course(Cno,Cname,Teacher), 选课表SC(Sno,Cno,Grade) , 用SQL语言实现下列功能:

A

1.建立学生表Student,其中姓名属性值是唯一的,性别属性不能为空。

CREATETABLE Student

(Sno CHAR(5) Primary key,

Sname CHAR(20) UNIQUE,Ssex CHAR(2) NOT NULL, Sage INT, Sdept CHAR(15));

2.查询所有年龄在22岁以上的女学生姓名及其年龄。

SELECT Sname, Sage from student

WHERE Sage >20 and Ssex=’女’

3.查询选修了C3号课程的学生的学号及其成绩,查询结果按分数的降序排列。

SELECT Sno, Grade FROM SC

WHERE Cno='C3' ORDER BY Grade DESC

4.查询学习1号课程的学生最高分数、最低分、平均成绩。

SELECT MAX(Grade), MIN(Grade),A VG(Grade)

FROM SC WHERE Cno='1'

5.查询与“张军”在同一个系学习的学生信息。

SELECT Sno, Sname, Sdept

FROM Student

WHERE Sdept IN

(SELECT Sdept FROM Student

WHERE Sname='张军')

6.将化学工程系全体学生的成绩提高5%。

UPDA TE SC

SET Grade= Grade*1.1

WHERE Sno in ( SELECT Sno FROM Student

WHERE Sdept = '化学工程系')

7.查询选修成绩大于60分的学生的学号及姓名。

SELECT Sno, Sname from student,sc

WHERE student.sno=sc.sno and grade>60

8.删除选修高等数学所有学生的成绩记录。

DELETE FROM SC

WHERE Cno in ( SELECT Cno FROM Course WHERE Cname = '高等数学')

9.求年龄大于男同学平均年龄的女学生姓名和年龄。

SELECT Sname , Sage from Student

Where Ssex=’女’ and Sage>(Select Avg(Sage) from Student Where Ssex=’男’)

10. 统计每门课程的选修人数大于20的课程,并输出课程号和选修人数。SELECT Cno,Count(Sno) from SC

Group by Cno

Having Count(*)>20

11.检索姓刘的所有学生的姓名和年龄。

SELECT Sname,Sage

FROM S

WHERE Sname LIKE '刘%'

12. 统计每个学生选修课程的情况,并输出学号和选修课程数目。

SELECT Sno,Count(Cno) from SC

Group by Sno

13. 把选修MA THS课不及格的成绩全改为空值。

update sc

set grade=null

where grade<60 and cno in (select cno from c where cname='maths')

14.删除王力选课记录。

DELETE FROM SC

WHERE sno in (SELETE sno FROM Student WHERE sname=‘王力’);

15. 在sc中,把英语课成绩提高10%

UPDATE SC

SET Grade=1.1*Grade

WHERE cno in (SELETE cno FROM course WHERE cname = ‘英语’);

常用sql server 语句 B

设有教学数据库的三个基本表:学生表Student (Sno,Sname,Sage,Ssex, Sdept),

课程表Course(Cno,Cname,Teacher), 选课表SC(Sno,Cno,Grade) , 用SQL语言实现下列功能:

1.建立课程表Course,其中课程名属性值是唯一的,教师属性不能为空。CREATETABLE Course

(Cno CHAR(5) Primary key,

Cname CHAR(20) UNIQUE,

Teacher CHAR(2) NOT NULL);

2.查询计算机科学系全体学生的名单。

SELECT Sname from student

WHERE Sdept=’计算机科学系’

3.查询选修了1号课程的学生的学号及其成绩,查询结果按分数的升序排列。

SELECT Sno, Grade FROM SC

WHERE Cno='1'

ORDER BY Grade

4.查询学习2号课程的学生最低分数、平均成绩。

SELECT MIN(Grade), A VG(Grade)

FROM SC

WHERE Cno='2'

5.查询选修成绩大于85分的学生的学号及姓名。

SELECT Sno, Sname

from student,sc

WHERE student.sno=sc.sno and grade>80

6.将选修王军老师所授课程所有学生的成绩提高5%

UPDA TE SC

SET Grade= Grade*1.05

WHERE Cno in ( SELECT Cno FROM Course

WHERE Cname = '王军')

7.检索学号比王小军同学小的学生姓名

SELECT Sname from Student

Where Sno<(Select sno from Student where Sname=’王小军’)

8.删除外语系所有学生的成绩记录。

DELETE FROM SC

WHERE Sno in ( SELECT Sno FROM Student WHERE Sdept = '外语系')

9.求年龄小于女同学平均年龄的男学生姓名和年龄。

SELECT Sname , Sage from Student

Where Ssex=’男’ and Sage<(Select Avg(Sage) from Student Where Ssex=’女’)

10. 统计每门课程的选修人数大于50的课程,并输出课程号和选修人数。

SELECT Cno,Count(Sno) from SC

Group by Cno

Having Count(*)>50

11.在sc中,把高等数学课成绩提高10%

UPDATE SC

SET Grade=1.1*Grade

WHERE cno in (SELETE cno FROM course WHERE cname = ‘高等数学’);

11.检索姓刘的所有学生的姓名和年龄。

SELECT Sname,Sage

FROM Student

WHERE Sname LIKE '刘%'

12. 统计每个学生选修课程的情况,并输出学号和选修课程数目。

SELECT Sno,Count(Cno)

from SC

Group by Sno

13. 把选修大学物理课不及格的成绩全改为空值。

update sc

set grade=null

where grade<60 and cno in (select cno from c where cname='大学物理课')

14.删除张红选课记录。

DELETE FROM SC

WHERE sno in (SELETE sno FROM Student WHERE sname=张红’);

15. 检索姓王的所有学生的姓名、年龄和选课成绩。

SELECT Sname,Sage,grade

FROM student, SC

WHERE Sname LIKE '王%' and student.sno=sc.sno

相关文档