一、实验目的

了解查询的概念和方法

掌握select语句在单表查询中的应用

掌握select语句在多表查询中的应用

掌握select语句在复杂查询中的实验方法

二、实验任务

输入指令 showvariableslike ‘%char%’ ; 展示字符默认设置

Variable_nameclientconnectionresultsvalue设置为gbk(初始为utf8)

要使用包括如下三个表的“教学管理”数据库JXGL:

(1)学生表Student,由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno。

(2)课程表Course,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno。

(3)学生选课SC,由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记作:SC(Sno,Cno,Grade),其中主码为(SNO,CNO)。

并且在表中插入相关内容后进行下面的操作:

[1] 查询性别为男、课程成绩及格的学生信息及课程号、成绩。

[2] 查询学生及其课程、成绩等情况(不管是否选课,均需列出学生信息)。

[3] 查询与“钱横”在同一个系学习的学生信息。

[4] 查询选修了课程名为“数据库系统”的学生学号、姓名和所在系。

[5] 检索至少不学2和4两门课程的学生学号与姓名。

三、    预习内容

1. SELECT 查询语句

在数据库中,SELECT 语句是用于从数据库中检索数据的基本语句。它允许我们选择指定的列或计算出新的列,并从一个或多个表中检索数据。

基本的 SELECT 查询语法

SELECT 语句的结构和关键字

检索所有列或特定列

别名的使用

使用 WHERE 子句筛选数据

WHERE 子句的作用

使用比较运算符(=<><=>=<>

使用逻辑运算符(ANDORNOT

排序数据

使用 ORDER BY 对结果进行排序

2. 使用聚合函数

聚合函数允许我们对一组数据执行计算并返回单一的结果。常见的聚合函数有 COUNTSUMAVGMAXMIN 等。

常用的聚合函数

COUNT:计算行数

SUM:计算总和

AVG:计算平均值

MAX:计算最大值

MIN:计算最小值

3. GROUP BY HAVING 子句

GROUP BY 语句用于将结果分组,而 HAVING 子句允许对分组后的结果进行筛选。

GROUP BY 子句

将数据分组

与聚合函数一起使用

HAVING 子句

筛选分组后的数据

四、实验数据及结果分析
show variables like &apos;%char%&apos;;
set character_set_client="gbk";
set character_set_connection="gbk";
set character_set_results="gbk";

创建数据库

创建学生表Student

CREATE TABLE Student (

    Sno INT PRIMARY KEY,

    Sname VARCHAR(50),

    Ssex VARCHAR(10),

    Sage INT,

    Sdept VARCHAR(50)

);

创建课程表Course

CREATE TABLE Course (

    Cno INT PRIMARY KEY,

    Cname VARCHAR(50),

    Cpno INT,

    Ccredit INT

);

创建学生选课表SC

CREATE TABLE SC (

    Sno INT,

    Cno INT,

    Grade INT,

    PRIMARY KEY (Sno, Cno),

    FOREIGN KEY (Sno) REFERENCES Student(Sno),

    FOREIGN KEY (Cno) REFERENCES Course(Cno)

);

插入实验要求的数据

按照实验要求进行相关的查询:

[1]查询性别为男、课程成绩及格的学生信息及课程号、成绩:

[2] 查询学生及其课程、成绩等情况(不管是否选课,均需列出学生信息):

[3] 查询与“钱横”在同一个系学习的学生信息:

[4] 查询选修了课程名为“数据库系统”的学生学号、姓名和所在系。

[5] 检索至少不学2和4两门课程的学生学号与姓名。

五、问题讨论

1. SELECT 查询语句的作用是什么?它可以用于哪些操作?

SELECT 查询语句用于从数据库中检索数据。它可以用于:

选择特定列或所有列的数据。

通过 WHERE 子句筛选数据。

对结果进行排序(使用 ORDER BY)。

使用聚合函数对数据进行统计和计算。

使用 GROUP BY 将数据分组并进行聚合。

使用 HAVING 子句对分组后的数据进行筛选。

2. 什么是聚合函数?请列举一些常用的聚合函数及其作用。

聚合函数是对一组数据执行计算并返回单一结果的函数。常用的聚合函数包括:

COUNT:计算行数。

SUM:计算总和。

AVG:计算平均值。

MAX:计算最大值。

MIN:计算最小值。

3. GROUP BY 和 HAVING 子句的作用是什么?可以举例说明吗?

GROUP BY 子句用于将结果分组,通常与聚合函数一起使用,以对每个分组执行计算。

HAVING 子句用于对分组后的数据进行筛选,类似于 WHERE 子句,但作用于分组而不是行。

示例:

假设有一个表格 Sales 包含 Product 和 Revenue 列。我们可以使用 GROUP BY 对产品进行分组,然后使用 SUM 计算每种产品的总收入。使用 HAVING 子句可以筛选总收入大于某个特定值的产品分组。

Logo

一站式 AI 云服务平台

更多推荐