MYSQL学习与数据库综合实验(三)——数据查询实验

3 数据查询实验

3.1单表查询

3.1.1Select 语句,SQL核心,语法格式如下:
SELECT [ALL | DISTINCT | DISTINCTROW ][HIGH_PRIORITY]… 
列名表达式 …
[FROM  table_reference ... ]	    /*FROM子句*/
[WHERE 条件]				   /*WHERE子句*/
[GROUP BY {列名| 表达式 | position} [ASC | DESC], ... [WITH ROLLUP]]	     /*GROUP BY子句*/    [HAVING 条件]		         /*HAVING 子句*/
[ORDER BY {列名 | 表达式 | position} [ASC | DESC] , ...]		/*ORDER BY子句*/
[LIMIT {[offset,] row_count|row_count OFFSET offset}]; /*LIMIT子句*/

SQL关键字的执行顺序:

from xx join xx on ------where ------ 定义别名- ------ group by(group by 中不能用聚合函数) ------having(having 可以使用聚合函数 & 别名) ------select distinct-----order by --limit

3.1.2查询所有employee的数据

在这里插入图片描述

3.1.3通过where条件查询

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

3.1.4通过where多条件查询

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

3.1.5聚合函数

在这里插入图片描述

3.1.5.1统计所有行数

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

3.1.5.2查找所有员工中工作时间最长的年数:

在这里插入图片描述

3.1.5.3查找所有员工中工作时间最短的年数:

在这里插入图片描述

3.1.5.4统计所有员工工作年长总和

在这里插入图片描述

1.3.1.5.5统计员工的平均工作年长

在这里插入图片描述

3.1.6分组统计查询

使用 GROUP BY 关键字的语法格式如下:

GROUP BY  <字段名>

其中,“字段名”表示需要分组的字段名称,多个字段时用逗号隔开。

3.1.6.1按照workYear分组查询

在这里插入图片描述
GROUP BY单独使用 GROUP BY 关键字时,查询结果会只显示每个分组的第一条记录。

3.1.6.2按照workYear分组并统计每组的记录数

在这里插入图片描述

3.1.6.3GROUP BY 关键字可以和 GROUP_CONCAT() 函数一起使用。GROUP_CONCAT() 函数会把每个分组的字段值都显示出来。

在这里插入图片描述

3.1.7ORDER BY 关键字主要用来将查询结果中的数据按照一定的顺序进行排序。

*其语法格式如下:*

ORDER BY <字段名> [ASC|DESC]
语法说明如下。

字段名:表示需要排序的字段名称,多个字段时用逗号隔开。

ASC|DESC:ASC表示字段按升序排序;DESC表示字段按降序排序。其中ASC为默认值。

使用 ORDER BY 关键字应该注意以下几个方面:

ORDER BY 关键字后可以跟子查询。

当排序的字段中存在空值时,ORDER BY 会将该空值作为最小值来对待。

ORDER BY 指定多个字段进行排序时,MySQL 会按照字段的顺序从左到右依次进行排序。

3.1.7.1单个字段通过workYear升序排序

在这里插入图片描述

3.1.7.2单个字段通过workYear降序排序

在这里插入图片描述

3.1.7.3首先通过workYear升序排序,然后通过departmentID升序

在这里插入图片描述

3.1.7.4LIMIT 是 MySQL 中的一个特殊关键字,用于指定查询结果从哪条记录开始显示,一共显示多少条记录。

LIMIT 关键字有 3 种使用方式,即指定初始位置、不指定初始位置以及与 OFFSET 组合使用。

LIMIT 关键字可以指定查询结果从哪条记录开始显示,显示多少条记录。

LIMIT 指定初始位置的基本语法格式如下:

LIMIT 初始位置,记录数

其中,“初始位置”表示从哪条记录开始显示;“记录数”表示显示记录的条数。第一条记录的位置是 0,第二条记录的位置是 1。后面的记录依次类推。

注意:LIMIT 后的两个参数必须都是正整数。

显示查询数据中的前5条数据

在这里插入图片描述

从第3个位置开始显示5条数据
在这里插入图片描述
从第3个位置开始显示5条数据

在这里插入图片描述

3.2多表查询

3.2.1全连接查询 employee和department

在这里插入图片描述

3.2.2全连接条件查询

在这里插入图片描述

3.2.3内连接使用 INNER JOIN 关键字连接两张表,并使用 ON 子句来设置连接条件。

如果没有连接条件,INNER JOIN 和 CROSS JOIN 在语法上是等同的,两者可以互换。

内连接的语法格式如下:

SELECT <字段名> FROM <表1> INNER JOIN <表2> [ON子句]

语法说明如下。

字段名:需要查询的字段名称。

<表1><表2>:需要内连接的表名。

INNER JOIN :内连接中可以省略 INNER 关键字,只用关键字 JOIN。

ON 子句:用来设置内连接的连接条件。

INNER JOIN 也可以使用 WHERE 子句指定连接条件,但是 INNER JOIN … ON 语法是官方的标准写法,而且 WHERE 子句在某些时候会影响查询的性能。多个表内连接时,在 FROM 后连续使用 INNER JOIN 或 JOIN 即可。内连接可以查询两个或两个以上的表。

3.2.3.1使用 inner join

在这里插入图片描述

3.2.3.3使用inner join on 查询

在这里插入图片描述

3.2.4查询每个雇员的情况及其薪水情况

在这里插入图片描述

3.2.5使用内连接查询名字为“刘明”的员工所在部门

在这里插入图片描述

3.2.6查找财务部收入在2000元以上的雇员姓名和薪水详情

在这里插入图片描述

3.2.7查询财务部雇员的最高和最低实际收入

在这里插入图片描述

3.2.8查询employee中男性和女性的人数

在这里插入图片描述

3.2.9查找员工数超过2人的部门名称和员工数量

在这里插入图片描述

3.2.10将employee表中的员工号码由大到小排列

在这里插入图片描述

3.3详细的实验资料以及指导PPT请访问笔者GitHub地址:https://github.com/LJF2402901363/database_experiment.git

3.4本博文已经同步到个人博客,如有需要请自行移步:http://moyisuiying.com/index.php/experiment/mysqlexperiment/368.html

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌意随影

您的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值