西南科技大学数据库实验四(SELECT查询操作—简单查询)
学生表Student,由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno。课程表Course,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记作:Course(Cno,Cname,Cpno,Ccr
一、实验目的
了解查询的概念和方法
掌握select语句在单表查询中的应用
掌握select语句在多表查询中的应用
掌握select语句在复杂查询中的实验方法
二、实验任务
输入指令 showvariableslike ‘%char%’ ; 展示字符默认设置
将Variable_name中client、connection、results的value设置为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 子句的作用
使用比较运算符(=、<、>、<=、>=、<>)
使用逻辑运算符(AND、OR、NOT)
排序数据
使用 ORDER BY 对结果进行排序
2. 使用聚合函数
聚合函数允许我们对一组数据执行计算并返回单一的结果。常见的聚合函数有 COUNT、SUM、AVG、MAX、MIN 等。
常用的聚合函数
COUNT:计算行数
SUM:计算总和
AVG:计算平均值
MAX:计算最大值
MIN:计算最小值
3. GROUP BY 和 HAVING 子句
GROUP BY 语句用于将结果分组,而 HAVING 子句允许对分组后的结果进行筛选。
GROUP BY 子句
将数据分组
与聚合函数一起使用
HAVING 子句
筛选分组后的数据
四、实验数据及结果分析
show variables like '%char%';
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 子句可以筛选总收入大于某个特定值的产品分组。
更多推荐





所有评论(0)