SQL查询语句实践:从基础到多表连接

需积分: 3 1 下载量 148 浏览量 更新于2024-09-11 收藏 40KB DOC 举报
"SQL查询语句的学习与应用" SQL(Structured Query Language)是用于管理关系数据库的标准语言,包括数据查询、数据操纵、数据定义和数据控制等功能。本文档着重讲解SQL查询语句的使用,旨在帮助学习者熟练掌握对基本表的查询操作。 一、实验目的与实验属性 实验的主要目的是通过实际操作来熟练掌握SQL查询语句,包括使用SQL查询分析器和企业管理器。实验属性被设定为验证性,即通过实践来验证理论知识的理解和应用能力。实验要求学习者了解并掌握SQL工具的使用,以及定义、删除和修改基本表的操作。 二、实验环境与设备 实验需要在安装有Windows操作系统的计算机上进行,同时需要Oracle 11g或SQL Server数据库管理系统,以及Visual Studio .NET、Java编译器(如Eclipse或NetBeans)等开发环境。实验还要求计算机接入网络,以便进行数据库编程。 三、预习与实验要求 在实验前,学习者需熟悉SQL语句,特别是预习教材中的第三章内容。此外,还需要熟悉.NET、Java、PowerBuilder和Delphi等开发环境,并能在此环境下进行数据库编程。实验重点包括单表查询、有条件查询、排序与分组,以及多表连接、嵌套和集合查询等。 四、实验原理 SQL语言的应用是实验的核心,它提供了从数据库中检索、添加、更新和删除数据的能力。通过SQL,可以执行复杂的查询,例如联接多个表,筛选特定记录,对结果进行排序和分组,以及计算聚合函数,如COUNT()、AVG()等。 五、实验步骤 实验步骤包括启动SQL工具,如Oracle的SQL Developer或SQLPlus,或SQL Server查询分析器,并进行登录或建立连接。以下提供两个具体查询示例: 1. 查询李大鹏同学所学课程门数及平均成绩: 这个查询使用了COUNT(*)函数来计算课程门数,AVG(grade)来计算平均成绩,通过WHERE子句过滤条件,GROUP BY子句按学生姓名分组。 ```sql SELECT COUNT(*), AVG(grade) FROM system.student, system.sc WHERE student.sno = sc.sno AND sname = '李大鹏' GROUP BY sname; ``` 2. 查询平均成绩大于李大鹏的同学的学号、姓名和平均成绩: 这个查询使用了嵌套查询和HAVING子句,首先找出李大鹏的平均成绩,然后查询所有平均成绩高于这个值的学生信息。 ```sql SELECT student.sno, sname, AVG(grade) FROM system.sc, system.student WHERE student.sno = sc.sno GROUP BY student.sno, sname HAVING AVG(grade) > ( SELECT AVG(grade) FROM system.sc, system.student WHERE student.sno = sc.sno AND sname = '李大鹏' ); ``` 通过这样的实践,学习者可以深入理解SQL查询语句的结构和功能,为进一步的数据库管理和开发奠定坚实的基础。