“数据库系统实验”实验报告(5)

Aurora ·
更新时间:2024-11-11
· 942 次阅读

文章目录实验目的实验内容实验步骤基本的select语句数学符号条件AND和ORIN和NOT IN通配符对结果排序SQL 内置函数和计算子查询连接查询课后习题 实验目的

SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELECT 语句的用法。

实验内容 SELECT 基本语法 数学符号条件 AND OR IN 通配符 排序 SQL 内置函数和计算 子查询与连接查询 实验步骤 基本的select语句 SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;

图片描述

数学符号条件

SELECT 语句常常会有 WHERE 限制条件,用于达到更加精确的查询。WHERE限制条件可以有数学符号 (=,,>=,<=) ,刚才我们查询了 name 和 age,现在稍作修改:

SELECT name,age FROM employee WHERE age>25;

图片描述

AND和OR

从这两个单词就能够理解它们的作用。WHERE 后面可以有不止一条限制,而根据条件之间的逻辑关系,可以用 [条件一 OR 条件二]] 和 [条件一 AND 条件二] 连接:

SELECT name,age FROM employee WHERE age30;

图片描述

#筛选出 age 大于 25,且 age 小于 30 SELECT name,age FROM employee WHERE age>25 AND age<30;

图片描述
可以用between来表示取值范围
图片描述

IN和NOT IN

关键词 IN 和 NOT IN 的作用和它们的名字一样明显,用于筛选“在”或“不在”某个范围内的结果,比如说我们要查询在 dpt3 或 dpt4 的人和不在dpt1和dpt3的人:
图片描述

通配符

关键字 LIKE 可用于实现模糊查询,常见于搜索功能中。

和 LIKE 联用的通常还有通配符,代表未知字符。SQL中的通配符是 _ 和 % 。其中 _ 代表一个未指定字符,% 代表不定个未指定字符

比如,要只记得电话号码前四位数为1101,而后两位忘记了,则可以用两个 _ 通配符代替:
图片描述
另一种情况,比如只记名字的首字母,又不知道名字长度,则用 % 通配符代替不定个字符:
图片描述

对结果排序

为了使查询结果看起来更顺眼,我们可能需要对结果按某一列来排序,这就要用到 ORDER BY 排序关键词。默认情况下,ORDER BY 的结果是升序排列,而使用关键词 ASC 和 DESC 可指定升序或降序排序。
图片描述

SQL 内置函数和计算

函数名: COUNT SUM AVG MAX MIN

作用: 计数 求和 求平均值 最大值 最小值
具体举例,比如计算出 salary 的最大、最小值,用这样的一条语句:
图片描述
有一个细节你或许注意到了,使用 AS 关键词可以给值重命名,比如最大值被命名为了 max_salary

子查询

上面讨论的 SELECT 语句都仅涉及一个表中的数据,然而有时必须处理多个表才能获得所需的信息。例如:想要知道名为 “Tom” 的员工所在部门做了几个工程。员工信息储存在 employee 表中,但工程信息储存在 project 表中。
图片描述

连接查询

在处理多个表时,子查询只有在结果来自一个表时才有用。但如果需要显示两个表或多个表中的数据,这时就必须使用连接 (join) 操作。 连接的基本思想是把两个或多个表当作一个新的表来操作
一种是使用join

SELECT id,name,people_num FROM employee,department WHERE employee.in_dpt = department.dpt_name ORDER BY id;

图片描述
另一个连接语句格式是使用 JOIN ON 语法,与刚才的语句等同

SELECT id,name,people_num FROM employee JOIN department ON employee.in_dpt = department.dpt_name ORDER BY id;

图片描述

课后习题

使用连接查询的方式,查询出各员工所在部门的人数与工程数,工程数命名为 count_project。(连接 3 个表,并使用 COUNT 内置函数)

SELECT name, people_num, COUNT(proj_name) AS count_project FROM employee, department, project WHERE in_dpt = dpt_name AND of_dpt = dpt_name GROUP BY name, people_num;

图片描述

Greyson: 原创文章 20获赞 22访问量 1768 关注 私信 展开阅读全文
作者:Greyson:



实验报告 数据 系统 数据库系统 数据库

需要 登录 后方可回复, 如果你还没有账号请 注册新账号