Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
MySQL之排序与单行处理函数怎么使用_创想鸟

MySQL之排序与单行处理函数怎么使用

1.排序

mysql支持数据排序操作,例如,现在我们按照工资从小到大进行排序操作:

mysql> select ename,sal from emp order by sal;+--------+---------+| ename  | sal     |+--------+---------+| SMITH  |  800.00 || JAMES  |  950.00 || ADAMS  | 1100.00 || WARD   | 1250.00 || MARTIN | 1250.00 || MILLER | 1300.00 || TURNER | 1500.00 || ALLEN  | 1600.00 || CLARK  | 2450.00 || BLAKE  | 2850.00 || JONES  | 2975.00 || SCOTT  | 3000.00 || FORD   | 3000.00 || KING   | 5000.00 |+--------+---------+14 rows in set (0.00 sec)

如果需要降序排序的话,需要指定desc:(默认为升序排序,如果您进行指定的话,指定为asc即可)

mysql> select ename,sal from emp order by sal desc;+--------+---------+| ename  | sal     |+--------+---------+| KING   | 5000.00 || SCOTT  | 3000.00 || FORD   | 3000.00 || JONES  | 2975.00 || BLAKE  | 2850.00 || CLARK  | 2450.00 || ALLEN  | 1600.00 || TURNER | 1500.00 || MILLER | 1300.00 || WARD   | 1250.00 || MARTIN | 1250.00 || ADAMS  | 1100.00 || JAMES  |  950.00 || SMITH  |  800.00 |+--------+---------+14 rows in set (0.00 sec)

更复杂的情况,为多字段排序:

比如我们想按照薪资升序排列,薪资一样的情况下,按照名字降序排序:

mysql> select ename,sal from emp order by sal,ename desc;+--------+---------+| ename  | sal     |+--------+---------+| SMITH  |  800.00 || JAMES  |  950.00 || ADAMS  | 1100.00 || WARD   | 1250.00 || MARTIN | 1250.00 || MILLER | 1300.00 || TURNER | 1500.00 || ALLEN  | 1600.00 || CLARK  | 2450.00 || BLAKE  | 2850.00 || JONES  | 2975.00 || SCOTT  | 3000.00 || FORD   | 3000.00 || KING   | 5000.00 |+--------+---------+14 rows in set (0.00 sec)

排序结合条件进行查找:

要求找出薪资在1250到3500之间,按照薪资降序排序:

mysql> select ename,sal from emp where sal between 1250 and 3500 order by sal desc;+--------+---------+| ename  | sal     |+--------+---------+| SCOTT  | 3000.00 || FORD   | 3000.00 || JONES  | 2975.00 || BLAKE  | 2850.00 || CLARK  | 2450.00 || ALLEN  | 1600.00 || TURNER | 1500.00 || MILLER | 1300.00 || WARD   | 1250.00 || MARTIN | 1250.00 |+--------+---------+10 rows in set (0.00 sec)

2.单行处理函数

处理完一行再处理下一行:(一个输入对应一个输出)

内容转小写

mysql> select lower(ename) from emp;+--------------+| lower(ename) |+--------------+| smith        || allen        || ward         || jones        || martin       || blake        || clark        || scott        || king         || turner       || adams        || james        || ford         || miller       |+--------------+14 rows in set (0.00 sec)

内容转大写

mysql> select upper(ename) from emp;+--------------+| upper(ename) |+--------------+| SMITH        || ALLEN        || WARD         || JONES        || MARTIN       || BLAKE        || CLARK        || SCOTT        || KING         || TURNER       || ADAMS        || JAMES        || FORD         || MILLER       |+--------------+14 rows in set (0.00 sec)

取子串

例如:我们想要取到每个名字的第一个字母:

mysql> select substr(ename,1,1) from emp;+-------------------+| substr(ename,1,1) |+-------------------+| S                 || A                 || W                 || J                 || M                 || B                 || C                 || S                 || K                 || T                 || A                 || J                 || F                 || M                 |+-------------------+14 rows in set (0.00 sec)

字符串拼接

拼接每个人的empno和ename:

阿里云-虚拟数字人 阿里云-虚拟数字人

阿里云-虚拟数字人是什么? …

阿里云-虚拟数字人 2 查看详情 阿里云-虚拟数字人

mysql> select concat(empno,ename) from emp;+---------------------+| concat(empno,ename) |+---------------------+| 7369SMITH           || 7499ALLEN           || 7521WARD            || 7566JONES           || 7654MARTIN          || 7698BLAKE           || 7782CLARK           || 7788SCOTT           || 7839KING            || 7844TURNER          || 7876ADAMS           || 7900JAMES           || 7902FORD            || 7934MILLER          |+---------------------+14 rows in set (0.00 sec)

求长度

取出每个人名字的字符数:

mysql> select length(ename) from emp;+---------------+| length(ename) |+---------------+|             5 ||             5 ||             4 ||             5 ||             6 ||             5 ||             5 ||             5 ||             4 ||             6 ||             5 ||             5 ||             4 ||             6 |+---------------+14 rows in set (0.00 sec)

去除前后空白

查询名字为KING的详细信息,不包含前后空白:

mysql> select * from emp where ename = trim('KING ');+-------+-------+-----------+------+------------+---------+------+--------+| EMPNO | ENAME | JOB       | MGR  | HIREDATE   | SAL     | COMM | DEPTNO |+-------+-------+-----------+------+------------+---------+------+--------+|  7839 | KING  | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL |     10 |+-------+-------+-----------+------+------------+---------+------+--------+1 row in set (0.00 sec)

四舍五入

对123.456保留0位小数

mysql> select round(123.456,0) from emp;+------------------+| round(123.456,0) |+------------------+|              123 ||              123 ||              123 ||              123 ||              123 ||              123 ||              123 ||              123 ||              123 ||              123 ||              123 ||              123 ||              123 ||              123 |+------------------+14 rows in set (0.00 sec)

生成随机数

生成0到1的随机小数:

mysql> select rand() from emp;+---------------------+| rand()              |+---------------------+| 0.06316715857309024 ||  0.5963954959031152 ||  0.7924760345299505 || 0.17319371567405176 || 0.48854050551405226 ||   0.923121411281751 ||  0.1499855706002429 ||  0.9805636498896066 ||  0.4528615683809496 ||  0.3226169229695731 || 0.25449994043866164 ||   0.304648964018234 ||    0.75974502950883 ||  0.8847782862230933 |+---------------------+14 rows in set (0.00 sec)

空转换

数据库中对于NULL进行运算结果一定为NULL 于是就有了NULL处理函数

例如:计算每个员工的年收入(月薪+月奖金):

mysql> select ename,job,sal,    -> (case job when 'MANAGER' then sal*1.1 when 'SALESMAN' then sal*1.5 else sal*1.2 end) as newsal    -> from emp;+--------+-----------+---------+---------+| ename  | job       | sal     | newsal  |+--------+-----------+---------+---------+| SMITH  | CLERK     |  800.00 |  960.00 || ALLEN  | SALESMAN  | 1600.00 | 2400.00 || WARD   | SALESMAN  | 1250.00 | 1875.00 || JONES  | MANAGER   | 2975.00 | 3272.50 || MARTIN | SALESMAN  | 1250.00 | 1875.00 || BLAKE  | MANAGER   | 2850.00 | 3135.00 || CLARK  | MANAGER   | 2450.00 | 2695.00 || SCOTT  | ANALYST   | 3000.00 | 3600.00 || KING   | PRESIDENT | 5000.00 | 6000.00 || TURNER | SALESMAN  | 1500.00 | 2250.00 || ADAMS  | CLERK     | 1100.00 | 1320.00 || JAMES  | CLERK     |  950.00 | 1140.00 || FORD   | ANALYST   | 3000.00 | 3600.00 || MILLER | CLERK     | 1300.00 | 1560.00 |+--------+-----------+---------+---------+14 rows in set (0.00 sec)

以上就是MySQL之排序与单行处理函数怎么使用的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/263759.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
一加6关闭系统自动更新的简单步骤
上一篇 2025年11月4日 09:53:33
PHP正则表达式入门
下一篇 2025年11月4日 09:53:38

相关推荐

  • mysql是什么类型的数据库?

    mysql是什么类型的数据库?mysql是什么类型的数据库?mysql是什么类型的数据库?mysql是什么类型的数据库?

    MySQL是一种开源、跨平台的关系型数据库管理系统,以其速度、可靠性、易用性、高性能、可扩展性和兼容性而著称。它广泛应用于Web开发、数据仓库、电子商务、金融服务、医疗保健等领域。 MySQL:关系型数据库管理系统 MySQL 是一种关系型数据库管理系统(RDBMS),用于创建、管理和查询数据库。它…

    2026年9月24日 • 用户投稿
    800
  • mysql是什么结构的数据库

    mysql是什么结构的数据库mysql是什么结构的数据库mysql是什么结构的数据库mysql是什么结构的数据库

    MySQL数据结构基于关系模型,由表组成,其中行代表记录,列代表字段。表由主键唯一标识,外键连接不同表中的数据。MySQL支持多种数据类型,索引提高查询性能。外键在表之间建立关系,创建复杂的数据结构。 MySQL 数据库结构 MySQL 是一种关系型数据库管理系统 (RDBMS),其数据结构基于关系…

    2026年9月24日 • 用户投稿
    900
  • mysql用的什么数据结构

    mysql用的什么数据结构mysql用的什么数据结构mysql用的什么数据结构mysql用的什么数据结构

    MySQL 使用行和列的数据结构来组织数据,并提供存储引擎(如 InnoDB,使用 B+ 树索引)来高效地查找数据。B+ 树索引、散列索引、位图索引和全文索引等索引结构根据数据类型和查询类型进行优化,以提高数据检索速度。 MySQL 使用的数据结构 MySQL 是一种关系型数据库管理系统,它使用以下…

    2026年9月24日 • 用户投稿
    200
  • mysql命令行工具是什么

    mysql命令行工具是什么mysql命令行工具是什么mysql命令行工具是什么mysql命令行工具是什么

    MySQL命令行工具是一款命令解释器,用于管理MySQL数据库服务器。其功能包括连接到服务器、创建/删除数据库、表和数据,以及查询、管理用户和监控性能。使用方法:打开命令提示符,输入”mysql”命令,再输入用户名和密码即可连接。常用的命令有:创建数据库(CREATE DAT…

    2026年9月24日 • 用户投稿
    000
  • mysql数据恢复主要采用什么命令执行

    mysql数据恢复主要采用什么命令执行mysql数据恢复主要采用什么命令执行mysql数据恢复主要采用什么命令执行mysql数据恢复主要采用什么命令执行

    MySQL 数据恢复命令主要有:mysqldump:导出数据库备份。mysql:导入 SQL 备份文件。pt-table-checksum:验证并修复表完整性。MyISAMchk:修复 MyISAM 表。InnoDB 技术:自动恢复已提交事务,或手动通过 innobackupex 工具恢复。 MyS…

    2026年9月24日 • 用户投稿
    100
  • mysql数据库使用什么语言

    mysql数据库使用什么语言mysql数据库使用什么语言mysql数据库使用什么语言mysql数据库使用什么语言

    MySQL 数据库使用 Structured Query Language (SQL),一种用于与关系型数据库交互的编程语言。SQL 由四种类型的语句组成:数据定义语言 (DDL):创建/修改数据库结构数据操纵语言 (DML):插入/更新/删除/检索数据数据控制语言 (DCL):授予/撤销访问权限事…

    2026年9月24日 • 用户投稿
    000
  • mysql怎么读取数据

    mysql怎么读取数据mysql怎么读取数据mysql怎么读取数据mysql怎么读取数据

    如何从 MySQL 中读取数据?MySQL 提供了多种方法来读取数据,最常用的方法是使用 SELECT 语句。其他方法还包括游标、存储过程和触发器。 如何从 MySQL 中读取数据 MySQL 提供了多种方法来读取数据,最常用的方法是使用 SELECT 语句。 SELECT 语句 语法: SELEC…

    2026年9月24日 • 用户投稿
    200
  • mysql数据库中的自增列如何使用

    自增列是MySQL中用于自动产生唯一数值的整数列,通常作为主键使用。通过AUTO_INCREMENT属性,插入数据时若未指定值,系统会自动分配比当前最大值大1的数值,确保每条记录拥有唯一标识,简化插入操作。创建表时可定义自增列,如:CREATE TABLE users (id INT AUTO_IN…

    2026年9月24日
    100
  • mysql和sql server区别大吗

    mysql和sql server区别大吗mysql和sql server区别大吗mysql和sql server区别大吗mysql和sql server区别大吗

    MySQL和SQL Server的区别在于:1.许可证:MySQL开源免费,SQL Server需要付费许可证;2.平台:MySQL跨平台,SQL Server主要针对Windows;3.数据类型:MySQL提供多种数据类型,SQL Server提供更全面的数据类型;4.查询引擎:MySQL使用In…

    2026年9月24日 • 用户投稿
    100
  • mysql和sql server一样吗

    mysql和sql server一样吗mysql和sql server一样吗mysql和sql server一样吗mysql和sql server一样吗

    否,MySQL 和 SQL Server 并非相同。它们是两种不同的关系型数据库管理系统(RDBMS),尽管共享 SQL 兼容性和关系数据模型,但存在以下关键差异:所有权:MySQL 为开源,SQL Server 为专有。许可:MySQL 为免费,SQL Server 为商业许可。架构:MySQL …

    2026年9月24日 • 用户投稿
    200
  • mysql和sql server差别大吗

    mysql和sql server差别大吗mysql和sql server差别大吗mysql和sql server差别大吗mysql和sql server差别大吗

    是的,MySQL 和 SQL Server 之间存在显著差异。功能差异包括存储过程、触发器和全文搜索能力。特性差异包括高可用性、可扩展性、并发性。许可差异在于 MySQL 是开源和免费的,而 SQL Server 是专有软件。支持差异体现在 SQL Server 提供更全面的技术支持,而 MySQL…

    2026年9月24日 • 用户投稿
    100
  • 如何断开mysql数据库连接

    如何断开mysql数据库连接如何断开mysql数据库连接如何断开mysql数据库连接如何断开mysql数据库连接

    为了断开 MySQL 数据库连接,需要按以下步骤进行:创建连接对象获取连接游标关闭游标关闭连接 如何断开 MySQL 数据库连接 要断开 MySQL 数据库连接,可以使用以下步骤: 1. 创建连接对象 首先,使用 connect() 函数创建到数据库的连接对象,该函数需要一个数据库连接参数字符串作为…

    2026年9月24日 • 用户投稿
    200
  • mysql的索引有哪些类型

    mysql的索引有哪些类型mysql的索引有哪些类型mysql的索引有哪些类型mysql的索引有哪些类型

    MySQL索引可快速查找数据,通过在键值对中存储列值和数据指针实现。常见的索引类型有:B-Tree索引:支持范围查询,数据量大时性能佳。哈希索引:完全匹配查询快,但更新数据开销大。全文索引:索引文本数据,支持全文搜索。空间索引:索引地理空间数据,支持空间查询。并发B-Tree索引:高并发环境下性能更…

    2026年9月24日 • 用户投稿
    100
  • mysql下载初始化数据库失败怎么办

    mysql下载初始化数据库失败怎么办mysql下载初始化数据库失败怎么办mysql下载初始化数据库失败怎么办mysql下载初始化数据库失败怎么办

    初始化 MySQL 数据库失败可能是由于以下原因:服务未启动权限不足数据库已存在配置问题磁盘空间不足数据库引擎错误其他未知原因(可查看日志文件) MySQL 下载初始化数据库失败的解决方案 初始化 MySQL 数据库时遇到失败的情况,可能是以下几个原因导致的: 1. MySQL 服务未启动 确保 M…

    2026年9月24日 • 用户投稿
    200
  • mysql下载初始化数据库失败怎么回事

    mysql下载初始化数据库失败怎么回事mysql下载初始化数据库失败怎么回事mysql下载初始化数据库失败怎么回事mysql下载初始化数据库失败怎么回事

    MySQL 初始化数据库失败的原因包括:1. 系统权限不足;2. 安装文件损坏;3. 防火墙或安全软件阻止连接;4. 数据库端口冲突;5. 磁盘空间不足;6. 操作系统版本不兼容;7. 环境变量问题;8. 损坏的配置文件;9. 之前的 MySQL 安装残留;10. 其他错误。请检查这些原因并采取相应…

    2026年9月24日 • 用户投稿
    100
  • 袋鼠数据库工具 8.90.1 版已上线

    袋鼠数据库工具 8.90.1 版已上线袋鼠数据库工具 8.90.1 版已上线袋鼠数据库工具 8.90.1 版已上线袋鼠数据库工具 8.90.1 版已上线

    袋鼠数据库工具 是一款由 ai 驱动的主流数据库系统客户端,支持多种数据库类型,包括 mariadb、mongodb、mysql、oracle、postgresql、redis、sqlite、sqlserver 等,具备建表、数据查询、模型设计、结构同步、数据导入导出等丰富功能。兼容 windows…

    2026年9月24日 • 用户投稿
    100
  • Java程序Ubuntu上如何备份

    在ubuntu上备份java程序,你可以遵循以下步骤: 确定备份位置:首先,你需要确定一个安全的位置来存储备份文件。这可以是一个外部硬盘、网络驱动器或其他任何可靠的存储设备。 打包Java项目:你可以使用tar命令将整个Java项目打包成一个压缩文件。例如,如果你的项目位于/home/usernam…

    2026年9月24日
    100
  • mysql下载初始化数据库失败怎么解决

    mysql下载初始化数据库失败怎么解决mysql下载初始化数据库失败怎么解决mysql下载初始化数据库失败怎么解决mysql下载初始化数据库失败怎么解决

    MySQL 初始化数据库失败可通过以下步骤解决:1. 检查安装程序版本;2. 确保管理员权限;3. 关闭其他应用程序;4. 重新配置 MySQL 配置文件(取消注释 innodb_flush_log_at_trx_commit 并设置 innodb_file_per_table、innodb_log…

    2026年9月24日 • 用户投稿
    100
  • mysql数据库怎么实现

    mysql数据库怎么实现mysql数据库怎么实现mysql数据库怎么实现mysql数据库怎么实现

    MySQL数据库实现步骤:安装MySQL服务器;创建数据库;创建用户并授予权限;连接到数据库;创建表;插入数据;查询数据;修改数据;删除数据;备份数据库。 MySQL数据库实现 如何实现MySQL数据库? 实现MySQL数据库涉及以下步骤: 1. 安装MySQL服务器 从MySQL官方网站下载并安装…

    2026年9月24日 • 用户投稿
    000
  • mysql数据库的完整步骤有哪些

    mysql数据库的完整步骤有哪些mysql数据库的完整步骤有哪些mysql数据库的完整步骤有哪些mysql数据库的完整步骤有哪些

    创建 MySQL 数据库步骤:安装 MySQL、创建数据库、创建表、插入数据、检索数据、更新数据、删除数据,维护数据库。具体步骤:安装 MySQL使用语法 CREATE DATABASE 创建数据库使用语法 CREATE TABLE 创建表使用语法 INSERT INTO 插入数据使用语法 SELE…

    2026年9月24日 • 用户投稿
    200

发表回复

登录后才能评论
关注微信