实验目的:

  1. 掌握 SQL 数据库的基本操作。
  2. 掌握 SQL 数据查询的语法和方法。
  3. 熟悉 SQL 的分组查询。

实验环境:

MySQL 数据库

实验过程:

  1. 创建数据库和表格

首先,创建一个名为'students'的数据库,并在其中创建名为'student'的表格,包含如下字段:

  • 学生编号(id)
  • 学生姓名(name)
  • 所在班级(class)
  • 年龄(age)
  • 性别(gender)
  • 成绩(score)
CREATE DATABASE students;
USE students;
CREATE TABLE student (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL,
  class VARCHAR(20) NOT NULL,
  age INT(11) NOT NULL,
  gender VARCHAR(10) NOT NULL,
  score INT(11) NOT NULL,
  PRIMARY KEY (id)
);
  1. 插入数据
INSERT INTO student (name, class, age, gender, score) VALUES
('张三', '一班', 20, '男', 80),
('李四', '二班', 21, '女', 85),
('王五', '一班', 19, '男', 90),
('赵六', '三班', 20, '男', 95),
('钱七', '二班', 22, '女', 88),
('孙八', '一班', 20, '女', 92),
('周九', '三班', 21, '男', 87),
('吴十', '二班', 19, '女', 91);
  1. 查询数据

(1) 查询所有数据

SELECT * FROM student;

(2) 查询学生的姓名、年龄和成绩

SELECT name, age, score FROM student;

(3) 查询班级为'一班'的学生信息

SELECT * FROM student WHERE class='一班';

(4) 查询成绩在 90 分及以上的学生信息

SELECT * FROM student WHERE score>=90;

(5) 查询性别为'女'的学生信息

SELECT * FROM student WHERE gender='女';
  1. 分组查询

(1) 查询各个班级的平均分

SELECT class, AVG(score) AS avg_score FROM student GROUP BY class;

(2) 查询年龄在 20 岁及以上的男女生的平均分

SELECT gender, AVG(score) AS avg_score FROM student WHERE age>=20 GROUP BY gender;

实验结果:

实验结果如下所示:

查询所有数据:

| id | name | class | age | gender | score | |---|---|---|---|---|---| | 1 | 张三 | 一班 | 20 | 男 | 80 | | 2 | 李四 | 二班 | 21 | 女 | 85 | | 3 | 王五 | 一班 | 19 | 男 | 90 | | 4 | 赵六 | 三班 | 20 | 男 | 95 | | 5 | 钱七 | 二班 | 22 | 女 | 88 | | 6 | 孙八 | 一班 | 20 | 女 | 92 | | 7 | 周九 | 三班 | 21 | 男 | 87 | | 8 | 吴十 | 二班 | 19 | 女 | 91 |

查询学生的姓名、年龄和成绩:

| name | age | score | |---|---|---| | 张三 | 20 | 80 | | 李四 | 21 | 85 | | 王五 | 19 | 90 | | 赵六 | 20 | 95 | | 钱七 | 22 | 88 | | 孙八 | 20 | 92 | | 周九 | 21 | 87 | | 吴十 | 19 | 91 |

查询班级为'一班'的学生信息:

| id | name | class | age | gender | score | |---|---|---|---|---|---| | 1 | 张三 | 一班 | 20 | 男 | 80 | | 3 | 王五 | 一班 | 19 | 男 | 90 | | 6 | 孙八 | 一班 | 20 | 女 | 92 |

查询成绩在 90 分及以上的学生信息:

| id | name | class | age | gender | score | |---|---|---|---|---|---| | 3 | 王五 | 一班 | 19 | 男 | 90 | | 4 | 赵六 | 三班 | 20 | 男 | 95 | | 6 | 孙八 | 一班 | 20 | 女 | 92 |

查询性别为'女'的学生信息:

| id | name | class | age | gender | score | |---|---|---|---|---|---| | 2 | 李四 | 二班 | 21 | 女 | 85 | | 5 | 钱七 | 二班 | 22 | 女 | 88 | | 6 | 孙八 | 一班 | 20 | 女 | 92 | | 8 | 吴十 | 二班 | 19 | 女 | 91 |

查询各个班级的平均分:

| class | avg_score | |---|---| | 一班 | 87.3333 | | 三班 | 91.0000 | | 二班 | 88.0000 |

查询年龄在 20 岁及以上的男女生的平均分:

| gender | avg_score | |---|---| | 女 | 90.3333 | | 男 | 87.3333 |

实验结论:

通过本次实验,我掌握了 SQL 数据库的基本操作和数据查询的语法和方法,了解了 SQL 的分组查询,并成功地实现了分组查询的功能。同时,我还发现在实际工作中,数据查询和分组查询是经常用到的功能,掌握这些技能对于提高工作效率和准确性具有重要意义。

SQL 数据库数据查询与分组查询实验报告

原文地址: https://www.cveoy.top/t/topic/ocDh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录