掌握SQL查询基础:实战数据操作与分析

5星 · 超过95%的资源 0 下载量 66 浏览量 更新于2024-08-29 1 收藏 252KB PDF 举报
本篇文档是关于数据库上机实践课程的一部分,主要目标是让学生掌握SQL语言的基本操作,特别是数据查询技能。实验内容涵盖了多种查询场景,旨在提升对SQL语法的理解和应用能力。 首先,实验要求学生执行单表查询,如查询SC表中的所有字段(`select * from SC`),这有助于熟悉表结构和数据提取。接下来,通过`select Sname, Sage from Student where Sdept = '计算机系'`,学习如何根据特定条件(如学生所在系)筛选数据,这里关注的是计算机系学生的姓名和年龄。 进一步的查询涉及范围查询,如`select Sno, Cno, Grade from SC where Grade between 70 and 80`,演示如何使用`BETWEEN`关键字查找成绩在70到80分之间的学生信息。同时,也介绍了等价的`>= 70 and Grade <= 80`方法,强调查询表达式的灵活性。 对于更复杂的查询,如查询计算机系18至20岁男性学生的姓名和年龄,学生需要使用`AND`逻辑来组合多个条件(`Ssex='男' and Sage>=18 and Sage<=20`)。此外,还有对单列函数的运用,如找出C001课程的最高分(`select max(Grade) as Grade from SC where Cno='C001'`),以及计算每个系的学生数量(`select Sdept, count(Distinct Sno) from Student Group by Sdept`)。 统计方面,涉及到每门课程的选课人数和最高成绩(`select Cno, MAX(Grade), COUNT(Sno) from SC Group by Cno`),以及每个学生的选择课程数量和总成绩(`select Sno, COUNT(Cno), SUM(Grade) from SC Group by Sno order by COUNT(Cno)`),其中`ORDER BY`语句用于排序结果。 最后,通过`HAVING`子句,学生需筛选出总成绩超过200分的学生(`select Sno, SUM(Grade) from SC group by Sno having SUM(Grade) > 200`)。查询选课关联操作也很关键,如找出选修C002课程的学生姓名和所属系(`select Sname, Sdept from Student, SC where Cno='C002' and SC.Sno=Student.Sno`),这展示了多表联接查询的基本用法。 通过这些练习,学生不仅能掌握基础的SQL查询技能,还能理解如何利用SQL进行数据分析和汇总,从而更好地理解和使用数据库系统。
684 浏览量
实验二 基本数据查询 一、实验目的 1.熟悉大型数据库实验环境,以MS SQL SERVER为例。 2.掌握MS SQL SERVER的查询分析器的用法。 3.能够完成对单表的查询操作。 4.能够完成对多表的联合查询操作。 5.能够完成带数据聚合函数的查询。 二、实验内容 (1)以实验一中创建的数据库abc作为查询对象,完成如下查询要求: 1.查询2001年12月31日之后的销售情况,要求列出销售人员姓名、销售的产品名以及销售日期。 2.查询销售电冰箱的销售人员的最大年龄。 3.统计每个产品的销售总数量,要求只列出销售数量前3名的产品号和销售总数量。 4.查询销售人员的销售情况,包括有销售记录的销售人员和没有销售记录的销售人员,要求列出销售人员姓名、销售的产品号、销售数量和销售日期。 5.列出2000年1月1日以后销售总量第一的产品的名称和生产厂家。 (2)以MS SQL SERVER的例子数据库pubs为查询对象,完成如下查询: 6.Pubs数据库:没有写过business或者popular_comp类型书籍的作者编号和姓名 7.Pubs数据库:查询出版物价格在20元以上的作者编号和姓名 8.Pub数据库:版税大于80%且state=ks的作者信息 9.Pub数据库:查询作者数量小于5的州 10.Pub数据库:查询价格最高的书的作者,和他写的所有书的名称 11.Pub数据库:查询销量较少的10本书的作者编写的所有书的书名 12.Pubs数据库:查询写了价格PRICE高于平均价的书,而且所在的州STATE=CA的作者名称,图书名称,价格。 注意:如果数据库服务器中的pubs例子数据库被破坏,请用SQL Server 2000 Sample Databases.rar中的instpubs.sql还原