mysql数据库实验查询_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的数据

50c7c7affff8a23bf2afcfa3aea93664.png

3.1.3通过where条件查询

bb9c64f8b2f9b6bba32335e3cd2fa11d.png

5924ca4c98bc033106e1128891585c13.png

3.1.4通过where多条件查询

aad5cb99f0f1d0f5baac1b3cdca3ad15.png

eafcfbbdbd34075cb74556b2fb353192.png

3.1.5聚合函数

93c1bfae4127e329b1a5460488ac506b.png

3.1.5.1统计所有行数

4a304264883054504915ee4ea1950e92.png

682e7466f29f7a5544f9c9a0224766a8.png

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

ac1059d190400f9213d2855c0c247f12.png

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

614f2e22243c95939c55db31a3df1d7d.png

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

90e2503b8c3fb9b701e64223e6c50544.png

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

2ac27f42a6a20b3eb2ee1ef6c7a88f3b.png

3.1.6分组统计查询

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

GROUP BY

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

3.1.6.1按照workYear分组查询

2bb46f9320ce2321f68769c84a312aab.png

GROUP BY单独使用 GROUP BY 关键字时,查询结果会只显示每个分组的第一条记录。

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

a958f11f5b8faf54f8eb755f8730098f.png

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

56c270cc8a723e52cf9bdc6f068501b5.png

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升序排序

d69f7f4ab0a96d8bcb4980539610075a.png

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

24df2649aa4af9a8dbdf818187ced5fa.png

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

9401ccbf4a16a9548335d96d426295a5.png

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

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

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

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

LIMIT 初始位置,记录数

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

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

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

8759558beadd167f2e7c4042dd462d82.png

从第3个位置开始显示5条数据

7e31755fb7f4bcb2b86f73ad0a97071a.png

从第3个位置开始显示5条数据

42e5ac7af494f75f4a949906edaafe36.png

3.2多表查询

3.2.1全连接查询 employee和department

13aae694a9b6164b37f7a7016c30a685.png

3.2.2全连接条件查询

5391fb01428f6f12ab6eb22b08426248.png

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

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

内连接的语法格式如下:

SELECT FROM INNER JOIN [ON子句]

语法说明如下。

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

:需要内连接的表名。

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

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

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

3.2.3.1使用 inner join

16b7e28f714f5c18f10fc64fe763bb6f.png

3.2.3.3使用inner join on 查询

adfaa297b87621bb336cf04b641936dd.png

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

c5f54640a466a5eca23561fae8d81d48.png

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

c033514d1a49e0defcdb8f4c96a3de48.png

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

4090c99ff68a9888cc1cffa1009d993e.png

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

b7f4cbccef8f110969eab3e7bfdc2d2f.png

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

2aaaa2b1f3653d5159adf398aa26fc8d.png

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

626bdeb1d2545ba225a20a9f6825372d.png

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

0d5c168dd0085f356b1c1f88987ae089.png

本文地址:https://blog.csdn.net/u011870022/article/details/110676274

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值