小练习
查询数学系全体学生的信息。
use school1
go
SELECT * FROM student WHERE Sdept='数学';
查询数学系的全体学生的学号和姓名
use school1
go
SELECT Sno,Sname FROM student WHERE Sdept='数学';
use school1
go
SELECT * FROM SC WHERE Grade>=60 and Cno=' C01 ' ;
范围查询
use school1
go
SELECT Sname,Sdept,Sage From Student where
Sage between 20 and 23;
SELECT * From Student where Sdept ='计算机' or Sdept='自动化 ';
SELECT sno, cno, grade FROM SC WHERE cno ='C01' or cno ='C05' or cno =' C03 ';
use datatest3
go
SELECT studentName, native, classNo FROM Student
WHERE native NOT IN ('南昌', '上海')
在课程Course表中查询有先修课程的课程信息
SELECT *
FROM Course
WHERE priorCourse IS NOT NULL
字符匹配查询
use school1
go
SELECT Sno,Sname,Sage FROM Student WHERE Sname LIKE '%王__'
排序查询
use school1
go
select * from Student order by sage,sno desc
实验二
使用数据库school,完成以下查询。
- 查询学生所在系并去掉重复值。
use school1
go
SELECT sdept,Sname FROM student
- 查询所有课程的全部信息。
SELECT * FROM Course
- 查询所有班级的学号、学生姓名、年龄,要求用中文显示列名。
SELECT Sno 学号,Sname 学生姓名,Sage 年龄 FROM Student
- 查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
SELECT Sname,'Birth:' Title, year(getdate())-Sage BirthYear, Lower(Sno) Lsno From Student;
- 查询选修C01课程的学生人数。
select cno,count(Sno) 选课人数 from SC group by Cno having cno ='C01'
- 查询有课程记录的学生人数
select count(distinct Sno) from SC;
- 计算C01号课程的学生平均成绩
select avg(Grade) from SC where Cno='C01';
- 查询每门课程的平均成绩和选课人数
select cno,avg(Grade) 平均成绩,count(Sno) 选课人数 from SC group by Cno
- 查询C01号和C02号两门课程的平均成绩和选课人数
select AVG(Grade) as '平均成绩',count(*) as '选课人数' from SC where Cno='C01' or Cno='C02'
- 查询选课人数大于等于三人的课程的平均分、最高分和最低分
SELECT Sno, AVG(Grade) 平均成绩, MAX(Grade) 最高分,MIN(Grade) 最低分
FROM SC
GROUP BY Sno
having count(*) > 2
11. 查询年龄在20至23岁学生的基本情况(用两种方法表达查询条件)
SELECT *
FROM Student
where Sage >= 20
and Sage<=23
- 查询选修C01号课程成绩在60分以上的学生学号和成绩
SELECT Sno,Grade
FROM SC
where Cno='C01' and grade>60
- 查询计算机和自动化两系学生的基本情况(用两种方法表达查询条件)
SELECT * From Student where Sdept in ('计算机','自动化')
SELECT Sname,Ssex From Student where Sdept in ('计算机','自动化')
- 查询不是计算机和自动化两系学生的基本情况
SELECT * From Student where Sdept not in ('计算机','自动化')
- 查询还没有录入考试成绩的学生学号及其课程号
SELECT Sno,Cno From SC where Grade is null
- 查询所有姓黄同学的信息
SELECT * FROM Student WHERE Sname LIKE '黄%'
- 查询数学系中年龄为18岁的同学学号、姓名、性别
SELECT Sno,Sname ,Ssex FROM Student WHERE Sdept='数学' and Sage=18
- 查询同时选修了“C01”和“C02”课程的同学的选课信息
select distinct sc.Sno ,sc.Cno
from student,sc
where student.sno = sc.sno
and student.sno in
(select sno from sc
where cno = 'c01'
and sno in
( select sno from sc
where cno = 'c02'
)
) ;