数据库实验三:数据查询

实验三 数据查询实验指导

(简单查询和复杂查询)

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.格式规整,便于批阅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LEO-max

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

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

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

打赏作者

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

抵扣说明:

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

余额充值