MySQL数据库实验:任务三 数据库的单表查询设计

任务三 数据库的单表查询设计



【实训目的与要求】

1、 掌握简单查询,会使用SELECT语句查询所有字段和指定的字段;
2、 掌握条件查询,会使用运算符以及不同的关键字进行查询;
3、 掌握高级查询,会使用聚合函数查询、分组查询等;
4、 学会为表和字段起别名。


【实训原理】

MySQL单表查询。


【实训步骤】

参考任务二中提供的表数据内容,利用SELECT命令查询数据库表中的数据。参考教材《数据库系统概论》P89-115的例题,以及《MySQL数据库入门》第4章内容。

一、简单查询

(选择表中若干列,给表或字段起别名)
操作student表
在这里插入图片描述
(1)功能:指定查询学号和姓名列
命令:

select SNo,SName from student;

截图:
在这里插入图片描述

(2)功能:给SNo、SName、SBir起别名为id、Name和Birthday
命令:

select SNo id,SName Name,SBir Birthday
from student;

截图:
在这里插入图片描述


二、按条件查询

1.比较大小查询

(1)功能:查询student表中id为16044905的学生姓名
命令:

select SNo,SName
from student
where SNo="16044905";

截图:
在这里插入图片描述

(2)功能:查询Scredits学分大于等于10的学号SNo和姓名SName
命令:

select SNo,SName,Scredits
from student
where Scredits>=10;

截图:
在这里插入图片描述

2.带in关键字的查询(确定集合)

(1)功能:查询student表中学号为16041101,16041102,16041103的一些信息
命令:

select SNo,SName,SSex,Scredits
from student
where SNo IN("16041101","16041102","16041103");

截图:
在这里插入图片描述

(2)功能:查询sc表中CNo为00001,00008,00009的信息
命令:

select *
from sc
where CNo IN("00001","00008","00009");

截图:
在这里插入图片描述

3.带BETWEEN AND关键字的查询(确定范围)

(1)功能:查询course表中CTerm值在1~3之间的课程名和课程号信息
命令:

select CNo,CName
from course
where CTerm BETWEEN 1 AND 3;

截图:
在这里插入图片描述

(2)功能:查询sc表中成绩在80.0到100.0之间的信息
命令:

select *
from sc
where Score BETWEEN 80.0 AND 100.0;

截图:
在这里插入图片描述

4.空值查询

(1)功能:查询student表中Scredits为空值的信息
命令:

SELECT *
FROM student
WHERE Scredits IS NULL;

截图:
在这里插入图片描述

(2)功能:查询sc表中成绩不为空的SNo和CNo
命令:

SELECT SNo,CNo
FROM sc
WHERE Score IS NOT NULL;

截图:
在这里插入图片描述

5.带LIKE关键字的查询(字符匹配)

(1)功能:查询student表中姓名字段值姓“洪”的学生的学号,姓名和学分信息
命令:

SELECT SNo,SName,Scredits
FROM student
WHERE SName LIKE "洪%";

截图:
在这里插入图片描述

(2)功能:查询student表中的女生信息
命令:

SELECT *
FROM student
WHERE SSex LIKE "女";

截图:
在这里插入图片描述

6.带AND关键字的查询(多重条件查询)

(1)功能:查询student表中性别为女且学分大于等于7的学号,姓名,性别以及学分
命令:

SELECT SNo,SName,SSex,Scredits
FROM student
WHERE SSex="女" AND Scredits<=7;

截图:
在这里插入图片描述

(2)功能:查询sc表中课程号为00005和00008以及分数在70分以上的学生信息
命令:

SELECT *
FROM sc
WHERE CNo IN("00005","00008") AND Score>70;

截图:
在这里插入图片描述

7.带OR关键字的查询(多重条件查询)

(1)功能:查询student表中姓名字段以“洪”开头或者性别为男生的学生信息
命令:

SELECT *
FROM student
WHERE SName LIKE "洪%" OR SSex="男";

截图:
在这里插入图片描述

(2)功能:查询course表中课时在54学时以上以及CTerm在2~5之间的学生学号,姓名,学时和学期
命令:

SELECT CNo,CName,CTime,CTerm
FROM course
WHERE CTime>54 OR CTerm>2 AND CTerm<5;

截图:
在这里插入图片描述


三、高级查询

1.聚集函数

(1)功能:查询sc表中Score字段的平均分数
命令:

SELECT AVG(Score)
FROM sc;

截图:
在这里插入图片描述

(2)功能:查询course表中课时数最多的数量
命令:

SELECT MAX(CTime)
FROM course;

截图:
在这里插入图片描述

2.分组查询

(1)功能:将student表按Scredits字段分组
命令:

SELECT *
FROM student
GROUP BY Scredits;

截图:
在这里插入图片描述

(2)功能:将course表按照CTime分组,查询出CCredits字段值之和小于100的分组
命令:

SELECT SUM(CCredits),CTerm
FROM course
GROUP BY CTime
HAVING SUM(CCredits)<100;

截图:
在这里插入图片描述

3.使用LIMIT限制查询结果的数量

(1)功能:查询sc表前四条记录
命令:

SELECT *
FROM sc LIMIT 4;

截图:
在这里插入图片描述

(2)功能:查询course表中CTerm字段从第3位到第5位的学生(从高到低)
命令:

SELECT *
FROM course
ORDER BY CTerm DESC LIMIT 2,3;

截图:
在这里插入图片描述

4.对查询结果排序

(1)功能:将course表中的CTerm按照降序排序
命令:

SELECT *
FROM course
ORDER BY CTerm DESC;

截图:
在这里插入图片描述

(2)功能:对sc表的Score进行升序排序
命令:

SELECT *
FROM sc
ORDER BY Score ASC;

截图:
在这里插入图片描述

【实训总结】

1.简单查询
2.按条件查询
在这里插入图片描述
3.高级查询
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39394264/article/details/89673659