掌握SQLServer查询:组合与统计查询实战

需积分: 41 9 下载量 185 浏览量 更新于2024-09-12 1 收藏 88KB DOC 举报
实验四:数据库的组合查询和统计查询是贵州大学计算机科学与技术学院网络工程专业121班的一门实践课程,旨在让学生通过实际操作熟练掌握SQLServer查询分析器的使用技巧,深入理解SQL语句,特别是数据查询中的关键概念,如分组、统计、计算和组合操作。本实验作为验证型,强调预习的重要性,要求学生在实验前自行准备SQL语句解决方案。 实验开始时,学生需在老师的指导下明确查询的具体要求和注意事项,然后独立完成实验任务。实验内容分为基本操作和提高操作两个部分。在基本操作中,学生需要完成一系列复杂的查询,例如找出定价高于平均定价两倍的图书类别、计算机械工业出版社各类图书的平均定价、筛选计算机类图书并统计其数量和总价等。这些练习旨在巩固基础查询技能,并学会如何灵活运用GROUP BY和JOIN等高级查询语句。 提高操作部分则鼓励学生将所学应用于自定义数据库项目中,通过分组查询实验,学习如何设定分组条件,选择合适的表达方法;同时,还会涉及到使用集函数查询,包括对统计函数的运用,这有助于提升学生的综合分析能力。在这个阶段,学生不仅要编写SQL查询,还要能理解和解释查询结果,从而深化对数据库管理系统的理解和应用。 整个实验过程不仅锻炼了学生的编程技能,还培养了解决实际问题的能力,以及对数据库理论知识的实战应用。通过这个实验,学生能够掌握SQLServer的使用,提升数据处理和分析能力,为未来在IT领域的工作打下坚实的基础。
2011-06-23 上传
2008数据库实验 1.SQL SEVER 2000的系统工具、使用交互方式建库、建表 2.T—SQL的简单查询、连接查询 3.子查询及组合 4.数据控制、数据导入/导出、数据备份和恢复 实验1 SQL SEVER 2000的系统工具、使用交互方式建库、建表实验 实验目的和要求:了解SQL SEVER 2000的功能及组成,熟练掌握利用SQL SEVER 2000企业管理器和查询分析器创建数据库、表、索引和修改表结构及向数据库输入数据、修改数据和删除数据的操作方法和步骤,掌握定义数据约束条件的操作。 实验内容和步骤: (1)熟悉SQL SEVER 2000的界面和操作。 (3)熟悉企业管理器和查询分析器的界面和操作。 (3)创建数据库和查看数据库属性。 (4)创建表、确定表的主码和约束条件。 (5)查看和修改表的结构。 (6)向数据库输入数据,观察违反列级约束时出现的情况。 (7)修改数据。 (8)删除数据,观察违反表级约束时出现的情况。 实验2 T—SQL的简单查询、连接查询 实验目的和要求:,了解SQL语句的数据定义与数据更新功能,了解SQL语句的查询功能,掌握SQL中的数据定义语句的用法,熟练掌握SQL中的插入、修改和删除语句的操作,熟练掌握使用SQL语句进行数据库的简单查询、连接查询。 实验内容和步骤: (1)在SQL SEVER 2000的查询分析器里,用SQL语句建库、建表并插入记录。 (2)修改表结构,包括修改属性列的数据类型,增加新的属性列,删除已有的属性列。 (3)使用单个元组和多元组插入。 (4)简单查询操作,包括投影、选择、数据排序、模糊匹配查询等。如果结果不正确,要进行修改,直至正确为止。 (5)连接查询操作,包括等值连接、自然连接、一般连接、自身连接、外连接。 实验3 子查询及组合 实验目的和要求:了解SQL语句的查询功能,理解视图的概念。熟练掌握使用SQL语句进行数据库的嵌套查询及组合查询的操作;掌握视图创建语句和视图的使用方法,加深对视图作用的理解。 实验内容和步骤: (1)在DBMS的交互式环境里,用SQL语句建库、建表并插入记录。 (2)使用In、比较符和Exists操作符进行嵌套查询操作。 (3)分组查询,包括分组条件表达、选择组条件表达的方法。 (4)集合查询。 (5)使用视图创建语句建视图,通过视图查询数据 (6)带子查询的修改和删除 (7)通过视图修改和删除数据 实验4 数据控制、数据的导入/导出、数据库备份和恢复 实验目的和要求:掌握数据控制(安全性)的方法,了解SQL SEVER 2000的数据备份和恢复机制,掌握SQL SEVER 2000中数据库备份和恢复的方法。 实验内容和步骤: (1)使用SQL对数据进行安全性控制,包括授权和权利收回。 (2)查看授权和权利收回后的结果 (3)SQL SEVER 2000工具对表中的数据导出到其它格式的文件。 (4)将其它格式的文件数据导入到数据库中。 (5)使用SQL SEVER 2000工具创建一个数据库的备份(海量备份、增量备份)。 (6)使用SQL SEVER 2000工具及所创建的数据库备份恢复这个数据库。
2021-12-02 上传
认识 DBMS...................................................................................1 实验 2 交互式 SQL(1)........................................................................ 6 实验 3 交互式 SQL(2)........................................................................ 8 实验 4 交互式 SQL(3)........................................................................ 9 ① 查询计算机系全体学生的信息 ② 查询姓“李”的学生的学号和姓名。 ③ 查询课程表中先行课为空的课程名。 ④ 查询考试成绩有不及格的学生的学号。 ⑤ 求选修了C1 课程或C2 课程的学生的学号及成绩。 ⑥ 查询全体计算机系学生的姓名及其年龄。 ⑦ 查询计算机系在1986-1987 年之间出生的学生的姓名。 ⑧ 查询姓“李”的前两个学生的学号和姓名。 ⑨ 查询选修了两门以上课程的学生学号与课程数。 ⑩ 查询选修课程数大于等于2 的学生的学号、平均成绩和选课门数,并按 平均成绩降序排列。(1) 查询选修了【数据库原理】的计算机系的学生学号和姓名。 (2) 查询每一门课的间接先行课(即先行课的先行课)。 (3) 查询学生的学号、姓名、选修课程的名称和成绩。 (4) 查询选修了课程的学生姓名。 (5) 查询所有学生的信息和所选修的课程。 (6) 查询已被选修的课程的情况和所有课程的名字。 (7) 列出学生所有可能的选修情况。 (8) 查找计算机系的学生选修课程数大于2 的学生的姓名、平均成绩和选课 门数,并按平均成绩降序排列。(1) 统计选修了【数据库原理】课程的学生人数。 (2) 查询没有选修【数据库原理】课程的学生信息。 (3) 查询其他系中比计算机系学生年龄都小的学生。 (4) 查询被0602001 学生或0602002 学生所选修的课程的课程号(用UNION 组合查询与IN 条件查询两种方法实现)。 (5) 查询0602001 学生和0602002 学生同时选修的课程的课程号(用 INTERSECT 组合查询与EXISTS 嵌套子查询两种方法实现)。 (6) 查询被0602001 学生选修,但没有被0602002 学生所选修的课程的课程 号(用EXCEPT 组合查询与NOT EXISTS 嵌套子查询两种方法实现)。(1) 新建查询窗口,选择StudentCourseYYXXXX 为当前数据库。 (2) 在已建立StudentCourseYYXXXX 数据库和StudentsYYXXXX、 CoursesYYXXXX、SCYYXXXX 3 个表的基础上,向StudentCourseYYXXXX数据库中 的表更新数据。 ① 向表StudentsYYXXXX 中插入(0601001,赵林, 男,1985-09-08,计算机) 的记录。② 向SCYYXXXX 表中添加一个学生的选课记录,学号为0601001,所选的课 程号为C2。 SC表中有Sno、Cno、Grade 这3 个列。这里只知道学号和课程号, 不知道成绩值。 ③ 向表StudentsYYXXXX 中插入(0601002,张修雨,default)记录,该记录 的数据中default 表示默认值‘男’,其他数据表示空值。 ④ 用CREATE 语句建立表StudentBAK1YYXXXX,包含(与Students 的Sno、 Sname、Sdept 相同)3 个字段, 然后用INSERT SELECT 语句实现向 StudentBAK1YYXXXX 添加StudentsYYXXXX 表中的计算机系学生的学号、姓名、 所在系的信息。 ⑤ 用 SELECT...INTO 语句实现把StudentsYYXXXX 表中1986 年后(包含 1986 年)出生的学生的学号、姓名存储到一个新表StudentBAK2YYXXXX。 ⑥ 将姓名为【赵林】的同学的所在系改为【机电系】,爱好改为【足球】。 ⑦ 将选修了课程名为【数据库原理】的学生成绩加5 分。 ⑧ 将StudentCourseYYXXXX 数据库的StudentBAK1YYXXXX 表中所有姓赵的 同学删除。 ⑨ 删除计算机系选修成绩不及格的学生选修记录。课程成绩优秀。