实验2-数据查询的简单操作
实验2数据库的简单查询
一、实验目的
掌握单表查询中各个子句(Select、From、Where、Group、Having、Order)的用法,特别要掌握比较运算符和逻辑运算符的使用。
二、实验环境
Windows XP操作系统,SQL Server 2005软件。
三、实验课时
2课时。
四、实验内容
在已建立的数据库和数据表的基础上,用Select语句完成下列查询操作。
1、查询全体学生的学号和姓名。
SELECT sno,sname
FROM student;
2、查询全体学生的所有基本信息(仅针对Student表)。
SELECT*
FROM student;
3、对SC表查询全体学生的选课记录,在显示结果中为“Grade”列增加5分。SELECT sno,cno,grade=grade+5
FROM sc;
4、查询全体学生的学号和姓名,将原来的英文列名设置中文别名。
SELECT sno AS学号,sname AS姓名
FROM student;
5、显示所有选课学生的学号,去掉重复结果。
SELECT DISTINCT sno
FROM sc;
6、查询成绩在80分以上的学生选课记录。
SELECT*
FROM sc
WHERE grade>80;
7、查询经济系所有学生的学号和姓名。
SELECT sno,sname
FROM student
WHERE sdept='经济';
8、查询成绩在80~90分的学生选课记录。
SELECT*
FROM sc
WHERE grade BETWEEN 80 AND 90;
9、查询年龄不在22~25的学生记录。
SELECT*
FROM student
WHERE sage NOT BETWEEN 22 AND 25;
10、查询所有姓“刘”的学生记录。
SELECT*
FROM student
WHERE sname LIKE'刘%';
11、查询无考试成绩(成绩为空值)的学号、课程号。SELECT sno,cno
FROM sc
WHERE grade IS NULL;
12、查询考试成绩非空值的学号、课程号。
SELECT sno,cno
FROM sc
WHERE grade IS NOT NULL;
13、查询数学系年龄小于20岁的学生记录。
SELECT*
FROM student
WHERE sdept='数学'AND sage<20;
14、查询选修了“101”或“102”课程的选课记录。SELECT*
FROM sc
WHERE cno in('101','102');
15、查询学生总人数。
SELECT COUNT(DISTINCT sno)总人数
FROM student;
或者:
SELECT COUNT(*)总人数
FROM student;
16、查询选修了课程的学生人数。
SELECT COUNT(DISTINCT sno)人数
FROM sc;
17、查询选修了“101”课程的学生的平均成绩。
SELECT AVG(grade)avg
FROM sc
WHERE cno='101';
18、查询学号为“01003”的学生的考试总成绩。
SELECT SUM(grade)总成绩
FROM sc
WHERE sno='01003';
19、查询“101”课程的最高分和最低分。
SELECT MAX(grade)最高分,MIN(grade)最低分
FROM sc
WHERE cno='101';
20、查询每门课程的选课人数。
SELECT cno,COUNT(sno)人数
FROM sc
GROUP BY cno
21、查询每个学生的学号、选课数、平均成绩和总成绩。
SELECT sno,COUNT(cno)选课数,AVG(grade)avg,SUM(grade)SUM FROM sc
GROUP BY sno;
22、查询选课数超过2的学生学号及其选课数。
SELECT sno,COUNT(cno)选课数
FROM sc
GROUP BY sno
HAVING COUNT(*)>2;
23、查询所有学生信息,查询结果按年龄降序排列。(针对Student表操作)SELECT*
FROM student
ORDER BY sage DESC;
24、查询所有学生信息,查询结果按系名升序,同系学生按年龄降序排列。SELECT*
FROM student
ORDER BY sdept,sage DESC;
25、查询选课数超过2的学生学号及其选课数,查询结果按选课数降序排列。SELECT sno,COUNT(cno)选课数
FROM sc
GROUP BY sno
HAVING COUNT(*)>2
ORDER BY COUNT(cno)DESC;