常用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