SQLServer2005:使用SELECT语句统计书籍总价与预付款

需积分: 31 1 下载量 84 浏览量 更新于2024-08-15 收藏 766KB PPT 举报
本资源主要介绍了如何使用SQL SELECT语句来查询和统计数据库中的记录,特别是在SQL Server 2005环境下。主要内容包括了数据的检索、分组与汇总,以及涉及的一些性能问题和推荐的操作。 在SQL中,SELECT语句是用于从数据库中检索数据的基本工具。它允许你指定想要查询的列、过滤数据、设置结果集格式,并对数据进行分组和汇总。在提供的示例中,我们看到如何统计所有书籍的总价格和预付款项,以及按书籍类型分组后的这些总计。 1. 检索数据: - 使用SELECT语句:`SELECT [ALL|DISTINCT] [TOP n] <选择列表> FROM <表资源> [WHERE <搜索条件>]` - `SELECT`是必须的,`FROM`子句定义了数据来源,`WHERE`子句用于设定筛选条件。 - `ALL`表示选择所有行,`DISTINCT`则去除重复行,`TOP n`用于选取前n条记录。 2. 数据分组与汇总: - `GROUP BY`子句用于将数据分组,如:`GROUP BY <分组表达式>` - `COMPUTE`子句用于计算每个分组的汇总,例如:`COMPUTE SUM(price), SUM(advance)`。这会计算所有书籍的总价和预付款总额。 - 当使用`BY type`时,会按书籍类型进行分组并计算每种类别的总价和预付款总额。 3. 其他操作: - `ORDER BY`子句用于对结果集排序,如:`ORDER BY <字段名[ASC|DESC]>` - `HAVING`子句类似于`WHERE`,但用于`GROUP BY`后的条件筛选。 在SQLServer2005中,这些功能使得能够灵活地处理数据,比如在`titles`表中统计书籍的销售情况。通过`compute`子句,我们可以快速获取整个表或按特定类别(如类型`type`)的统计数据,这对于分析和报告非常有用。 性能优化方面,需要注意选择正确的索引、避免全表扫描、合理使用JOIN操作以及考虑查询的复杂性,以确保查询的效率。在实际应用中,理解并熟练运用这些概念和语法,可以帮助数据库管理员和开发人员更有效地管理和分析数据。

建立如下三个学生选课相关的表,并输入相应的记录行。 S(S#,SNAME,AGE,SEX,SDEPT) SC(S#,C#,GRADE) C(C#,CNAME,TEACHER,PC#) 其中,S 表示学生,它的各属性依次为学号、姓名、年龄、性别、系;SC 表示 成绩,它的各属性依次为学号、课程号和分数;C 表示课程,它的各属性依次为课 程号、课程名和任课教师。 2. 试用 SQL 语句完成下列查询: (1)查询学生选课表中的全部数据。 (2)查询计算机系学生的姓名,年龄。 (3)查询成绩在 70~80 分之间的学生的学号,课程号和成绩。 (4)查询计算机系年龄在 18~20 之间且性别为"男"的学生的姓名和年龄。 (5)查询课程号为"C01"的课程的最高分数。 (6)查询计算机系学生的最大年龄和最小年龄。 (7)统计每个系的学生人数。 (8)统计每门课程的选课人数和考试最高分。 (9)查询每个学生的选课门数和考试总成绩,并按选课门数的升序显示结果. (10)查询总成绩超过 200 分的学生,要求列出学号,总成绩。 (11)查询选修了"C02"的学生的姓名和所在系。 (12)查询成绩在 80 分以上的学生的姓名,课程号和成绩,并按成绩的降序排列。 (13)查询那些课程没有人选修.要求列出课程号和课程名。 1 (14)要求用子查询 (1) .查询选修了课程"C01"的学生的姓名和所在系。 (2) 查询数学系成绩在 80 分以上的学生的学号,姓名。 Select sno,sname where dept =’数学系’and sno in (select sno from sc where grade>80) (15)求数学系学生的学号和姓名。

2023-05-12 上传