欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-01-06 20:42:04
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]] /*GR...

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的数据

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

3.1.3通过where条件查询

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

3.1.4通过where多条件查询

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

3.1.5聚合函数

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

3.1.5.1统计所有行数

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

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

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

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

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

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

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

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

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

3.1.6分组统计查询

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

GROUP BY  <字段名>

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

3.1.6.1按照workYear分组查询

MYSQL学习与数据库综合实验—数据查询实验
GROUP BY单独使用 GROUP BY 关键字时,查询结果会只显示每个分组的第一条记录。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LIMIT 初始位置,记录数

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

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

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

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

从第3个位置开始显示5条数据
MYSQL学习与数据库综合实验—数据查询实验
从第3个位置开始显示5条数据

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

3.2多表查询

3.2.1全连接查询 employee和department

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

3.2.2全连接条件查询

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

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

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

3.2.3.3使用inner join on 查询

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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