实验三 数据查询实验指导

(简单查询和复杂查询)

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,2022-sage from student

(4)查询选修了课程的学生的学号。

SELECT sno FROM sc;   //会产生相同数据

SELECT DISTINCT sno FROM sc;  //DISTINCT作用去掉重复行;

(5)查询健身系的学生的姓名。

SELECT sname FROM student WHERE sdept='健身系'

(6)查询年龄在20岁以下的健身系的学生的学号和年龄。

SELECT sno,sage FROM student WHERE sdept='健身系' and sage <20

SELECT sname FROM student WHERE sdept='健身系';

(7)查询年龄在20—22岁的学生的学号。

SELECT sno FROM student WHERE sage<=22 AND sage>=20

或者

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)查询选修了1号课程的学生的学号及成绩,结果按分数的降序排列。

SELECT sno,grade FROM sc WHERE cno='1' ORDER BY  grade DESC

(11)查询学生总人数。

SELECT count(*) FROM student

(12)查询选修1号课程的学生的最高分。

SELECT Max(grade) FROM sc WHERE cno='1'

(13)查询选修了2门及以上课程的学生的学号。

SELECT sno FROM view1 GROUP BY sno   HAVING count(cno)>=2

(14)查询每个学生及其选修课程的情况。

SELECT student.*,sc.* FROM student,sc WHERE student.sno=sc.sno;

(15)查询选修2号课程且分数在90分以上的所有学生。

SELECT student.*
FROM student,sc 
WHERE student.sno=sc.sno AND sc.cno='2'and sc.grade>90

(16)查询每个学生的学号、姓名、选课名及成绩。

SELECT student.sno,sname,grade,cname
FROM student LEFT OUTER JOIN sc ON(student.sno=sc.sno)

(17) 查询与“代小毅”在同一系的学生。

SELECT s1.sname
FROM student s1,student s2
WHERE s1.sdept=s2.sdept AND s2.sname='代小毅'

/*
第二种*/
SELECT sname FROM student
WHERE sdept IN(SELECT sdept from student
WHERE sname='代小毅');

(18) 查询选修了课程名为“数据库”的学生学号和姓名。

SELECT sno,sname
FROM student
WHERE sno IN (SELECT sno
FROM sc WHERE cno IN(SELECT cno
FROM course WHERE cname='水之呼吸'));

(19) 查询没有选修1号课程的学生的姓名。

SELECT sname FROM student WHERE NOT EXISTS
(SELECT * FROM sc WHERE sno=student.sno AND cno='1');

(20) 查询选修了所有课程的学生的姓名。

INSERT INTO sc VALUES('0014','3','雷之呼吸',75);
INSERT INTO sc VALUES('0014','4','花之呼吸',88);




SELECT sname
FROM student
WHERE NOT EXISTS
(select *
         FROM course
         WHERE NOT EXISTS
                          (select *
                          FROM sc
                          WHERE sno=student.sno
                          AND cno=course.cno));



4.实验器材

(1)安装关系数据库系统环境的微机。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不是你的奥奥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值