实验三:数据库的SQL基本操作

总共50题

(1) 查询全体学生的学号和姓名

SELECT sno, sname
FROM student

(2) 查询选修了课程名为’数据库原理’ 的学生的学号和姓名

SELECT student.sno, sname
FROM student, sc, course
WHERE student.sno = sc.sno and sc.cno = course.cno and cname = '数据库原理'

(3) 查询全体学生的姓名, 出生年份,和所在系, 并用小写字母表示所有系名,并给各列指定列名。

SELECT sname, 2021 - sage birth, Lower(sdept) sdept
FROM student

(4) 查询有多少名学生的数据库课程成绩不及格

SELECT COUNT(*) 不及格
FROM sc, course
WHERE sc.cno = course.cno and cname = '数据库原理' and grade < 60

(5) 查找所有姓’李’的学生的姓名, 学号和性别

SELECT sname, sno, ssex
FROM student
WHERE sname LIKE '李%'

(6) 求没有选修数学课程的学生学号

SELECT sno
FROM student
WHERE sno not in(
		SELECT sno
		FROM sc, course
		WHERE sc.cno = course.cno and cname = '数学'
)

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

SELECT DISTINCT sno
FROM sc

(8) 计算1号课程的学生的平均成绩, 最高分和最低分

SELECT AVG(grade) avggrade, MAX(grade) maxgrade, MIN(grade) mingrade
FROM sc
WHERE cno = '1'

(9) 查询数学系和信息系的学生的信息;

SELECT *
FROM student
WHERE sdept = 'CS' OR sdept = 'MA'

(10) 将年龄为19岁的学生的成绩置零

UPDATE sc
SET grade = 0
WHERE sno IN
				(SELECT sno
				FROM student
				WHERE sage = 19
			)

(11) 查询所有选修了1号课程的学生姓名

SELECT sname
FROM student, sc
WHERE student.sno = sc.sno and cno = '1'

(12) 对每一个性别,求学生的平均年龄,并把结果存入数据库先创建表,再插入数据

CREATE TABLE data
				(sex char(8),
				avgage int
				)
INSERT 
INTO data
SELECT ssex, AVG(sage)
FROM student
GROUP BY ssex

(13) 查询每个学生已获得的学分

SELECT sno, SUM(credit) getcredit
FROM sc, course
WHERE sc.cno = course.cno
GROUP BY sno

(14) 将所有女生的记录定义为一个视图

CREATE VIEW femal
AS
SELECT *
FROM student
WHERE ssex = '女'
(15) 查询没有选修了1号课程的学生姓名
SELECT sname
FROM student, sc
WHERE student.sno = sc.sno and student.sno NOT IN(
			SELECT sno
			FROM sc
			WHERE cno = '1'	)

(16) 将所有选修了数据库课程的学生的成绩加5分

UPDATE sc
SET grade = grade + 5
WHERE grade IN
			(SELECT grade 
			FROM sc, course
			WHERE sc.cno = course.cno and cname = '数据库原理'
		)

(17) 查询各系的男女生学生总数, 并按系升序排列, 女生排在前

SELECT sdept, ssex, COUNT(*) peoplenum
FROM student
GROUP BY sdept, ssex
ORDER BY sdept ASC, ssex DESC

(18) 查询’信息系’(IS)学生”数据结构”课程的平均成绩

SELECT AVG(grade)
FROM student, sc, course
WHERE student.sno = sc.sno and sc. cno = course.cno and sdept = 'IS' and cname = '数据结构'

(19) 创建一个反映学生出生年份的视图

CREATE VIEW birth(age, num)
AS
SELECT 2021 - sage, COUNT(*)
FROM student
GROUP BY sage

(20) 查询与’王田’在同一个系学习的学生的信息

SELECT *
FROM student
WHERE sname NOT LIKE '王田' and sdept IN(
			SELECT sdept
			FROM student
			WHERE sname = '王田'
		)

(21) 查询年龄在20岁以下的学生的姓名及其年龄

SELECT sname, sage
FROM student
WHERE sage < 20

(22) 查询当前至少选修数据库和信息系统其中一门课的学生的学号

SELECT sc.sno
FROM course, sc
WHERE sc.cno = course.cno and (cname = '数据库原理' OR cname = '信息系统')

(23) 查询每个学生的学号, 姓名, 选修的课程名和成绩:

SELECT sc.sno, sname, cname, grade
FROM course, sc, student
WHERE sc.cno = course.cno and sc.sno = student.sno

(24) 查找名字中包括“俊”的学生的姓名, 学号,选课课程和成绩

SELECT sname, sc.sno, cname, grade
FROM course, sc, student
WHERE sc.cno = course.cno and sc.sno = student.sno and sname LIKE '%俊%'

(25) 查询学分大于8的学生,输出学生的学号和学分

SELECT sno, SUM(credit) getcredit
FROM sc, course
WHERE sc.cno = course.cno
GROUP BY sno
HAVING SUM(credit) > 8

(26) 查询IS,CS,MA系的所有学生的姓名和性别

SELECT sname, ssex
FROM student
WHERE sdept = 'IS' or sdept = 'CS' or sdept = 'MA'

(27) 查询至少选修了2门课程的学生的平均成绩

SELECT sc.sno, AVG(grade) avggrade
FROM student, sc
WHERE student.sno = sc.sno
GROUP BY sc.sno
HAVING COUNT(*) > = 2

(28) 查询每个学生所选课程的平均成绩, 最高分, 最低分,和选课门数

SELECT sno, AVG(grade) avggrade, MAX(grade) maxgrade, MIN(grade) mingrade, COUNT(*) num
FROM sc
GROUP BY sno

(29) 删除年龄大于21岁所有学生的选课记录

DELETE 
FROM sc
WHERE sno IN(
		SELECT sno
		FROM student
		WHERE sage > 21
	)

(30) 查询没有先行课的课程的课程号cno和课程名cname

SELECT cno cname
FROM course
WHERE pcno is NULL

(31) 创建信息系学生信息的视图

CREATE VIEW IS_Student
AS
SELECT sno, sname, ssex, sage
FROM student
WHERE sdept = 'IS'

(32) 在信息系的学生视图中查询年龄小于20岁的学生

SELECT *
FROM IS_Student
WHERE sage < 20

(33) 删除马朝阳同学的所有选课记录

DELETE
FROM sc
WHERE sno IN(
	SELECT sno 
	FROM student
	WHERE sname = '马朝阳'
)

(34) 查询选修了3号课程的学生的学号和成绩, 并按分数降序排列

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

(35) 查询数据库课程成绩不及格的学生,输入其学号,姓名和成绩

SELECT sc.sno, sname, grade
FROM sc, student, course
WHERE course.cno = sc.cno and student.sno = sc.sno and cname = '数据库原理' and grade < 60

(36) 查询全体学生的情况,查询结果按所在系号升序排列, 同一系中的学生按年龄降序排列

SELECT *
FROM student
ORDER BY sdept ASC, sage DESC

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

SELECT student.sno, sname, cname
FROM student, sc, course
WHERE student.sno = sc.sno and sc. cno = course.cno 

(38) 查询每一门课程的间接先行课

SELECT A.cname 课程, C.cname 间接先修课
FROM course A, course B, course C
WHERE A.pcno = B.cno and B.pcno = C.cno

(39) 查询选修1号课程且成绩在85分以上的所有学生的学号、姓名

SELECT sc.sno, sname
FROM student, sc
WHERE student.sno = sc.sno and cno = '1' and grade > 85

(40) 查询全体学生的所有信息

SELECT student.*, cname, grade
FROM student, sc, course
WHERE student.sno = sc.sno and sc.cno = course.cno

(41) 查询选修了课程’1’和课程’2’的学生的学号

SELECT A.sno
FROM sc A, sc B
WHERE A.sno = B.sno and A.cno = '1' and B.cno = '2'

(42) 创建信息系选修了1号课程的学生的视图

CREATE VIEW SC_cno1
AS
SELECT student.*
FROM student, sc
WHERE student.sno = sc.sno and sdept = 'IS' and cno = '1'

(43) 建立信息系选修了1号课程且成绩在90分以上的学生的视图

CREATE VIEW SC_cno1_90
AS
SELECT student.*
FROM student, sc
WHERE student.sno = sc.sno and sdept = 'IS' and cno = '1' and grade > 90

(44) 查询修课总学分在10学分以下的学生姓名

SELECT sname
FROM student
WHERE sno IN(
		SELECT sc.sno
		FROM student, sc, course
		WHERE student.sno = sc.sno and sc.cno = course.cno 
		GROUP BY sc.sno
		HAVING SUM(credit)  < 10
		)

(45) 查询比’刘晨’年龄小的所有学生的信息

SELECT *
FROM student
WHERE sage <(
		SELECT sage
		FROM student
		WHERE sname = '刘晨'
	)

(46) 查询所有选修了2号课程的学生的姓名

SELECT sname
FROM student, SC
WHERE student.sno = sc.sno and cno = '2'

(47) 查询其他系中比信息系(IS)某一学生年龄小的学生姓名和年龄

SELECT sname, sage
FROM student
WHERE sdept not IN ('IS') and sage <(
		SELECT MAX(sage)
		FROM student
	)

(48) 查询学生2号课程的成绩,并按照成绩由高到低输出

SELECT sname, grade
FROM student, sc
WHERE student.sno = sc.sno and cno = '2'
ORDER BY grade DESC

(49) 查询考试成绩有不及格的学生的学号

SELECT sc.sno
FROM student, sc
WHERE student.sno = sc.sno and grade < 60

(50) 查询其他系中比信息系(IS)学生年龄都小的学生姓名和年龄

SELECT sname, sage
FROM student
WHERE sdept not IN ('IS') and sage <(
		SELECT MIN(sage)
		FROM student
	)
  • 11
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 实验三数据库系统开发 这是一门数据库系统课程中的实验课程,旨在帮助学生深入了解数据库系统的开发过程和相关技术。本次实验主要包括以下几个内容: 1. 实验准备:在开始实验前,需要先了解数据库系统的基本概念和相关开发工具。可以参考教材和课堂讲义进行学习。 2. 实验目标:本次实验的目标是设计和实现一个简单的数据库系统。学生需要自行选择数据库系统的主题和功能,并根据要求完成数据库的设计和开发工作。 3. 实验步骤:首先,学生需要进行数据库的概念设计,包括确定数据库的实体、属性和关系等。接着,学生需要使用相应的数据库管理系统(如MySQL、Oracle等)进行数据库的物理设计和实现。最后,学生需要编写相应的SQL语句,完成数据库查询、插入、更新和删除等操作。 4. 实验报告:实验结束后,学生需要根据实际实验情况撰写实验报告。报告内容应包括实验的目标、设计思路、实现过程、遇到的问题和解决方法等。学生可以利用博客等平台进行报告的发布。 本次实验对于学生进一步理解数据库系统的开发和应用具有重要意义。通过设计和实现一个简单的数据库系统,学生不仅加深了对数据库管理系统的理解,还提升了数据库设计和开发的能力。完成该实验后,学生可以进一步探索更复杂的数据库系统开发,为日后的学习和工作打下坚实基础。 ### 回答2: 实验三数据库系统开发的实验,这个实验是在hit数据库上进行的。我在zo0y的博客-csdn上找到了相关的资料。 这个实验的目的是通过使用数据库管理系统来开发一个数据库应用。在实验过程中,我们需要设计一个数据库系统,并且实现该系统的功能。 实验三主要包括以下几个部分: 1. 数据库设计:在这一部分,我们需要根据实验要求,设计一个满足需求的数据库模型。这个数据库模型可以包括多个表,每个表都有不同的字段和关系。 2. 数据库建立和初始化:在这一部分,我们需要根据数据库设计,使用SQL语言创建数据库和表,并且插入一些初始数据以供测试使用。 3. 数据库查询与更新:在这一部分,我们需要根据实验要求,设计一些查询和更新操作,并且通过编写SQL语句来实现这些功能。 4. 实验结果分析与总结:在这一部分,我们需要分析实验结果,并且总结实验过程中遇到的问题和解决方法。 通过完成这个实验,我们可以加深对数据库系统的理解,掌握数据库设计和开发的基本技能。这将对我们以后的学习和工作有很大的帮助。 以上就是关于hit/课程实验/数据库系统/实验三:数据库系统开发的回答。 ### 回答3: 实验三: 数据库系统开发 本次实验要求我们进行数据库系统的开发,具体要求如下: 1. 创建数据库:根据实验需求,我们需要创建一个数据库来存储相关数据。可以使用MySQL、Oracle或者其他数据库管理系统。 2. 设计数据表:根据实验需求,我们需要设计数据表,并确定各个字段的数据类型、长度等属性。 3. 建立关系:根据实验需求,我们需要确定数据表之间的关系,包括主外键关系等。 4. 插入数据:根据实验需求,我们需要向数据表中插入一些数据,可以手动插入或者通过脚本进行批量插入。 5. 查询数据:根据实验需求,我们需要编写查询语句,通过SQL语句从数据库中获取所需数据。 6. 实现功能:根据实验需求,我们需要实现一些功能,如数据的增删改查、数据的统计分析等。 7. 测试验证:根据实验需求,我们需要对开发的数据库系统进行测试验证,确保其功能正常。 在实验过程中,我们需要灵活运用数据库系统的知识和技能,熟练使用SQL语言,并且要注意数据库的性能和安全性。实验完成后,我们应该能够熟练掌握数据库系统的开发流程和方法,能够独立完成数据库系统的设计与开发工作。 总之,通过本次实验,我们将能够更加深入地理解和掌握数据库系统的开发过程,提高我们的实际操作能力,并为我们今后的数据库系统开发工作打下良好的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一只可爱的小猴子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值