实验三 数据查询实验指导
(简单查询和复杂查询)
1.实验目的
(1)对实验一、实验二已建好的student 、course 、sc 表进行查询操作。
(2)充分体会SQL语言的结构化查询功能,让学生充分体会SQL语言的灵活多变,功能强大。
2.实验内容
(1)在实验一和实验二的基础上,进行数据库的查询,充分体会SQL语言的强大功能。简单查询:包含选择和投影的简单单表查询。、包含between、is null等条件的单表查询。包含分组和排序的单表查询、带连接条件的简单多表查询。
(2)嵌套查询 :使用In短语的嵌套查询、使用Exists短语的嵌套查询、使用集合运算的多表查询。
3.实验要求
(1)查询全体学生的学号和姓名。
SELECT sno,sname FROM student;
(2)查询全体学生的详细记录。
SELECT * FROM student;
(3)查询全体学生的姓名和出生年份。
SELECT sname,sage FROM student;
(4)查询选修了课程的学生的学号。
SELECT sno from sc;
(5)查询计算机系的学生的姓名。
SELECT sname from student where sdept='计科系';
(6)查询年龄在20岁以下的计算机系的学生的学号和年龄。
SELECT sno,sage from student where sdept='计科系' AND sage<20;
(7)查询年龄在20—22岁的学生的学号。
SELECT sno FROM student WHERE sage BETWEEN 20 AND 22;
(8)查询信息系、计算机系和外语系的学生的信息。
SELECT * FROM student WHERE sdept IN('计科系','电信系','外语系');
(9)查询姓“吴”的学生的信息。
SELECT * FROM student where sname LIKE '吴%';
(10)查询选修了3号课程的学生的学号及成绩,结果按分数的降序排列。
SELECT sno,grade FROM sc WHERE cno='3' ORDER BY grade DESC;
(11)查询学生总人数。
SELECT COUNT(*) FROM student;
(12)查询选修1号课程的学生的最高分。
SELECT MAX(grade) FROM sc where cno='1';
(13)查询选修了3门以上课程的学生的学号。
SELECT sno FROM sc HAVING COUNT(sno) > 3;
(14)查询每个学生及其选修课程的情况。
SELECT
student.sno,
sname,
course.cno,
course.cname,
grade
FROM
student,
course,
sc
WHERE
student.sno = sc.sno
AND sc.cno = course.cno;
(15)查询选修2号课程且分数在90分以上的所有学生。
SELECT
student.sno,
sname,
grade,
cno
FROM
student,
sc
WHERE
student.sno = sc.sno
AND cno='2'
AND grade>90;
(16)查询每个学生的学号、姓名、选课名及成绩。
SELECT
student.sno,
sname,
cno,
grade
FROM
student,
sc
WHERE
student.sno = sc.sno;
(17) 查询与“张三”在同一系的学生。
SELECT
sno,
sname,
sdept
FROM
student
WHERE
sdept = (
SELECT
sdept
FROM
student
WHERE
sname = '齐俊宝'
);
(18) 查询选修了课程名为“数据库”的学生学号和姓名。
SELECT
student.sno,
sname
FROM
student,
course,
sc
WHERE
student.sno = sc.sno
AND course.cno = sc.cno
AND course.cname = '数据库';
(19) 查询没有选修1号课程的学生的姓名。
SELECT
sname
FROM
student
WHERE
NOT EXISTS (
SELECT
*
FROM
sc
WHERE
student.sno = sc.sno
AND sc.cno = '1'
);
(20) 查询选修了所有课程的学生的姓名。
SELECT
sname
FROM
student
WHERE
NOT EXISTS (
SELECT
*
FROM
course
WHERE
NOT EXISTS (
SELECT
*
FROM
sc
WHERE
student.sno = sc.sno
AND sc.cno = course.cno
)
);
要求写出实验三的全部代码,
注意:
1.全部代码
2.代码的全角半角
3.格式规整,便于批阅