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
本文地址:https://blog.csdn.net/u011870022/article/details/110676274