服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - 深入了解如何最大化利用 MySQL 函数(一)

深入了解如何最大化利用 MySQL 函数(一)

2023-06-14 11:56热爱编程的小K Mysql

本节将为大家带来MySQL字符串函数和数学函数的讲解,有需要的朋友可以参考下

前言

欢迎来到小K的MySQL专栏,本节将为大家带来MySQL字符串函数和数学函数的讲解

一、字符串函数

函数 作用
UPPER(列|字符串) 将字符串每个字符转为大写
LOWER(列|字符串) 将字符串每个字符转为小写
CONCAT(str1,str2,…) 将所有字符串连接成一个字符串
REPLACE(列|字符串,新字符串) 使用新字符串替换旧字符串
LENGTH(列|字符串) 求字符串长度
SUBSTR(列|字符串,开始点[,长度]) 字符串截取
LEFT(str,len) 获取字符串左边len个字符组成的字符串
RIGHT(str,len) 获取字符串右边len个字符组成的字符串
MID(str,pos,len) 获取字符串中从pos(第几个)位置开始,长度为len的字符串
ASCII(字符) 返回与指定字符对应的十进制整数
CHR(数字) 返回与整数对应的字符
RPAD(列|字符串,长度,填充字符)

LPAD(列|字符串,长度,填充字符)

用指定的字符在字符串右或左填充
LTRIM(字符串)、RTRIM(字符串) 去掉字符串左或右的空格
TRIM(列|字符串) 去掉字符串左右空格
INSTR(列|字符串,要查找的字符串,开始位置,出现位置) 查找一个子字符串是否在指定的位置上出现

字符串函数练习:

  • UPPER(列|字符串):将字符串每个字符转为大写LOWER(列\|字符串):将字符串每个字符转为小写,将员工姓名分别转为大写和小写

    SELECT UPPER(ename),LOWER(ename) FROM emp;
    
  • CONCAT(str1,str2,...):将所有字符串连接成一个字符串,将员工的姓名和该员工老板的编号连接在一起

    SELECT CONCAT(ename,mgr) FROM emp;
    
  • REPLACE:(列|字符串,新字符串) 使用新字符串替换旧字符串,将word替换为king

    SELECT REPLACE('hello word','word','king') "替换";
    
  • LENGTH(列|字符串):求字符串长度

    SELECT LENGTH(123466);
    
  • SUBSTR(列|字符串,开始点[,长度]): 字符串截取,截取ing

    SELECT SUBSTR('king word',2,3);
    
  • LEFT(str,len) : 获取字符串左边len个字符组成的字符串,RIGHT(str,len) :获取字符串右边len个字符组成的字符串,MID(str,pos,len) :获取字符串中从pos(第几个)位置开始.长度为len的字符串TRIM(列|字符串):去掉字符串左右空格

    SELECT LEFT('king',2),RIGHT('king',2),MID('king',2,3);
    
  • ASCII(字符) :返回与指定字符对应的十进制整数,CHR(数字) 返回与整数对应的字符

    SELECT ASCII('A'),CHAR(98);
    
  • RPAD:(列|字符串,长度,填充字符),LPAD:(列|字符串,长度,填充字符) 用指定的字符在字符串右或左填充拓展:两边填充

    SELECT RPAD('king',10,'*'),LPAD('king',10,'*');
    SELECT LPAD(RPAD('king',10,'*'),15,'*');
    
  • LTRIM(字符串)、RTRIM(字符串) :去掉字符串左或右的空格TRIM(列|字符串) 去掉字符串左右空格

    SELECT LTRIM('  king  '),RTRIM('  king  '),TRIM('  king  ');
    
  • INSTR:(列|字符串,要查找的字符串,开始位置,出现位置) 查找一个子字符串是否在指定的位置上出现

    SELECT INSTR("king",'ki');
    

字符串函数综合实践:

  1. 把员工姓名首字母大写
SELECT CONCAT(UPPER(LEFT(ename,1)),LOWER(SUBSTR(ename,2))) FROM emp;
  1. 查询出姓名长度是5的所有员工信息
SELECT *FROM emp WHERE LENGTH(ename)=5;
  1. 查询出员工姓名前三个字母是‘JAM’的员工
SELECT * FROM emp WHERE LEFT(ename,3)='JAM';
  1. 查询所有员工信息,但是不显示姓名的前三个字母
SELECT ename, SUBSTR(ename,4) FROM emp; 
# 只显示后三个字符
SELECT ename,SUBSTR(ename,-4) FROM emp;

效果展示:

深入了解如何最大化利用 MySQL 函数(一)

深入了解如何最大化利用 MySQL 函数(一)

深入了解如何最大化利用 MySQL 函数(一)

二、数学函数

函数 作用
ROUND(数字[,保留位数]) 根据指定的保留位数对小数进行四舍五入,如果不指定保留位数,则小数点之后的数字全部进行全部四舍五入
TRUNCATE(数字[,截取位数]) 保留指定位数的小数,如果不指定,则表示不保留
CEIL(数字),CEILING(数字) 对小数向上取整
FLOOR(数字) 对小数向下取整
RAND([n]) 随机返回0到1.0之间的小数,如果指定n每次产生的就都是重复的

数学函数练习:

  • ROUND(数字[,保留位数]) : 根据指定的保留位数对小数进行四舍五入,如果不指定保留位数,则小数点之后的数字全部进行全部四舍五入

    SELECT ROUND(3.66);
    SELECT ROUND(3.66,1);
    
  • TRUNCATE(数字[,截取位数]) : 保留指定位数的小数,如果不指定,则表示不保留

    SELECT TRUNCATE(3.889,1); #截断
    
  • CEIL(数字),CEILING(数字):对小数向上取整,FLOOR(数字) 对小数向下取整

    SELECT CEIL(3.66),CEILING(3.99);
    SELECT FLOOR(3.89);
    
  • RAND([n]):随机返回0到1.0之间的小数,如果指定n每次产生的就都是重复的

    SELECT RAND();
    

效果如下:

深入了解如何最大化利用 MySQL 函数(一)

深入了解如何最大化利用 MySQL 函数(一)

数学函数综合练习:

通过数据库的函数,生成一个六位数字的随机验证码。思路:先生成一个0~1之间的小数,然后乘以100万,然后截断,又因为是生成的0-1之间的小数,所以可能是0.0…这种情况,所以我们最进行填充,保证有六位

SELECT LPAD(TRUNCATE(RAND()*1000000,0),6,'0');

三、总结

~MySQL 函数会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。MySQL 包含了大量并且丰富的函数,咱们讲解几十个常用的,剩下的比较罕见的函数我们可以到「MySQL 参考手册」查询。

到此这篇关于深入了解如何最大化利用 MySQL 函数(一)的文章就介绍到这了,更多相关MySQL 函数请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/qq_72157449/article/details/131180678

延伸 · 阅读

精彩推荐
  • MysqlMysql四种分区方式以及组合分区落地实现详解

    Mysql四种分区方式以及组合分区落地实现详解

    对用户来说,分区表是一个独立的逻辑表,但是底层由多个物理子表组成,下面这篇文章主要给大家介绍了关于Mysql四种分区方式以及组合分区落地实现的相关...

    广海_小疯疯丶6462022-10-19
  • MysqlMySQL表类型 存储引擎 的选择

    MySQL表类型 存储引擎 的选择

    这篇文章主要介绍了MySQL表类型存储引擎的选择,文章围绕MySQL表类型存储引擎的选择的相关资料展开内容,需要的朋友可以参考一下,希望对你有所帮助...

    随风远去4912021-12-05
  • MysqlMySQL在线DDL gh-ost使用总结

    MySQL在线DDL gh-ost使用总结

    在本篇内容里小编给大家整理了关于MySQL在线DDL gh-ost使用方法和相关知识点,需要的朋友们学习下。...

    jyzhou5112019-06-05
  • MysqlMySQL用truncate命令快速清空一个数据库中的所有表

    MySQL用truncate命令快速清空一个数据库中的所有表

    这篇文章主要介绍了MySQL用truncate命令快速清空一个数据库中的所有表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值...

    iw12105512021-03-04
  • Mysqlmysql的sql语句特殊处理语句总结(必看)

    mysql的sql语句特殊处理语句总结(必看)

    下面小编就为大家带来一篇mysql的sql语句特殊处理语句总结(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    MYSQL教程网5712020-07-24
  • Mysqlmysql获取group by总记录行数的方法

    mysql获取group by总记录行数的方法

    这篇文章主要介绍了mysql获取group by总记录行数的方法,主要通过group by SQL_CALC_FOUND_ROWS语句来实现该功能,具有一定的实用价值,需要的朋友可以参考下 ...

    shichen20145522020-04-21
  • MysqlMySQL 读写分离实例详解

    MySQL 读写分离实例详解

    这篇文章主要介绍了MySQL 读写分离实例详解的相关资料,这里对读写MySQL分离进行了简单介绍,并附实例代码,需要的朋友可以参考下 ...

    Taven4902020-07-01
  • MysqlMySQL的driverClassName与url使用方式

    MySQL的driverClassName与url使用方式

    这篇文章主要介绍了MySQL的driverClassName与url使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    ITKaven9212022-09-01