【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表示查询两行,即查询第一行和第二行

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

相关文章
|
5月前
|
SQL
SQL中搜索中文无效或Select中文变乱码
SQL中搜索中文无效或Select中文变乱码
|
11月前
|
SQL Java 数据库连接
如何在 Java 代码中使用 JSqlParser 解析复杂的 SQL 语句?
大家好,我是 V 哥。JSqlParser 是一个用于解析 SQL 语句的 Java 库,可将 SQL 解析为 Java 对象树,支持多种 SQL 类型(如 `SELECT`、`INSERT` 等)。它适用于 SQL 分析、修改、生成和验证等场景。通过 Maven 或 Gradle 安装后,可以方便地在 Java 代码中使用。
3459 11
|
SQL 数据挖掘 大数据
如何在 SQL Server 中使用 `SELECT TOP`
【8月更文挑战第10天】
739 7
如何在 SQL Server 中使用 `SELECT TOP`
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
254 1
|
SQL 数据库
SQl查询之单表查询,连接与嵌套查询
SQl查询之单表查询,连接与嵌套查询
188 0
|
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的语法写
179 5
|
SQL Oracle 关系型数据库
SQL SELECT TOP 子句
【7月更文挑战第12天】SQL SELECT TOP 子句。
124 14
|
SQL Oracle 关系型数据库
SQL SELECT TOP 子句
【7月更文挑战第13天】SQL SELECT TOP 子句。
136 5
|
SQL 数据库
SQL SELECT DISTINCT 语句
【7月更文挑战第10天】SQL SELECT DISTINCT 语句。
316 6
|
SQL 数据挖掘 关系型数据库