【sql语句基础】——查(select)(单表查询顺序补充)

简介: 【sql语句基础】——查(select)(单表查询顺序补充)

单表查询语句顺序

单表查询包含 分组(group by)过滤(having)排序(order by)以及 分页(limit),在较复杂的多表查询中,我们通常会用到以上多个甚至所有,在MySQL语句中, 场景不同,顺序不同,查询结果也将不同甚至报错

查询格式

select column1,column2,column3... from table
    group by  -- 分组
    having    -- 过滤
    order by  -- 排序
    limit    -- 分页

例题代码示例

要求查询: 平均工资 最高两个部门部门号和平均工资。若平均工资 低于1000则不显示

分析:

  1. 平均工资:使用AVG();
  2. 按部门查询:GROUP BY 字段;
  3. 平均工资需要超过1000:HAVING 平均工资>1000;【用到了第一步和第二部的结果】
  4. 平均工资最高:ORDER BY 字段 DESC;【平均工资排序,用到了第三步的结果】
  5. 两个部门:分页LIMIT 0,2; 【取平均工资最高且大于1000的两个哥部门,需要用到第四部排序后的结果】

代码演示

SELECT AVG(sal)AS avg_sal,deptno
    FROM emp  --查询emp表
    GROUP BY deptno  --按部门号分组
    HAVING avg_sal>1000  --赛选平均工资大于1000
    ORDER BY avg_sal DESC  --降序排列
    LIMIT 0,2;  --0表示从第一行开始,2表示查询两行,即查询第一行和第二行

由此可见,单表查询的顺序都是严格按照逻辑要求的!!

相关文章
|
1月前
|
SQL 数据挖掘 大数据
如何在 SQL Server 中使用 `SELECT TOP`
【8月更文挑战第10天】
76 7
如何在 SQL Server 中使用 `SELECT TOP`
|
20天前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
26 1
|
1月前
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
24 5
|
20天前
|
SQL 数据挖掘 关系型数据库
|
26天前
|
SQL
访问者模式问题之构造一个包含 select、from 和 where 子句的 SQL 节点树,如何解决
访问者模式问题之构造一个包含 select、from 和 where 子句的 SQL 节点树,如何解决
|
2月前
|
SQL Oracle 关系型数据库
SQL SELECT TOP 子句
【7月更文挑战第12天】SQL SELECT TOP 子句。
36 14
|
2月前
|
SQL Oracle 关系型数据库
SQL SELECT TOP 子句
【7月更文挑战第13天】SQL SELECT TOP 子句。
23 5
|
2月前
|
SQL 存储 数据库
SQL SELECT 语句
【7月更文挑战第10天】SQL SELECT 语句。
30 9
|
2月前
|
SQL 数据库
SQL SELECT DISTINCT 语句
【7月更文挑战第10天】SQL SELECT DISTINCT 语句。
36 6
|
2月前
|
SQL 数据处理 数据库
SQL SELECT语句的高级应用与技巧
SQL SELECT语句的高级应用与技巧