首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql之字符函数

mysql之字符函数

作者头像
兮动人
发布于 2021-06-11 11:18:57
发布于 2021-06-11 11:18:57
97100
代码可运行
举报
文章被收录于专栏:兮动人的博客兮动人的博客
运行总次数:0
代码可运行

文章目录

进阶4:常见函数之字符函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名
好处:1、隐藏了实现细节  2、提高代码的重用性
调用:select 函数名(实参列表) 【from 表】;
特点:
	①叫什么(函数名)
	②干什么(函数功能)

分类:
	1、单行函数 如 concat、length、ifnull等
	2、分组函数
	功能:做统计使用,又称为统计函数、聚合函数、组函数

常见函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
一、单行函数
	字符函数:
	length:获取字节个数(utf-8一个汉字代表3个字节,gbk为2个字节)
	concat
	substr
	instr
	trim
	upper
	lower
	lpad
	rpad
	replace
	
	数学函数:
	round
	ceil
	floor
	truncate
	mod
	
	日期函数:
	now
	curdate
	curtime
	year
	month
	monthname
	day
	hour
	minute
	second
	str_to_date
	date_format
	
	其他函数:
	version
	database
	user
	控制函数
	if
	case

一、字符函数

1. length 获取参数值的字节个数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT LENGTH('xdr630');
SELECT LENGTH('兮动人630');

这里客户端使用的字符集是utf-8,一个汉字等于三个字节,所以为12

注意:

  • 查看客户端使用的字符集,这里使用的是 utf-8一个汉字占三个字节,一个英文占一个字节。
  • 如果客户端使用的字符集是gbk那就是一个汉字占两个字节,一个英文占一个字节。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SHOW VARIABLES LIKE '%char%'

2. concat 拼接字符串

  • 姓名拼接,中间用下划线连接
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT CONCAT(last_name,'_',first_name) 姓名 FROM employees;

3. upper、lower

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT UPPER('xdr630');
SELECT LOWER('MIKE');

示例1:将姓变大写,名变小写,然后拼接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT CONCAT(UPPER(last_name),LOWER(first_name))  姓名 FROM employees;

4. substr、substring

注意索引从1开始

(1) 截取从指定索引处后面所有字符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT SUBSTR('李莫愁爱上了陆展元',7)  out_put;

(2) 截取从指定索引处指定字符长度的字符

  • 这里的第一个参数表示从第一个索引开始,第二个参数表示字符的长度
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT SUBSTR('李莫愁爱上了陆展元',1,3) out_put;

案例1:姓名中首字符大写,其他字符小写然后用_拼接,显示出来

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2)))  out_put
FROM employees;

SELECT LENGTH(TRIM(’ 张翠山 ')) AS out_put;

5. instr 返回子串第一次出现的索引,如果找不到返回0

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT INSTR('杨不殷六侠悔爱上了殷六侠','殷六侠') AS out_put;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT INSTR('杨不殷六侠悔爱上了殷六侠','殷八侠') AS out_put;

6. trim 去前后空格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT TRIM('    张翠山    ') AS out_put;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT LENGTH(TRIM('    张翠山    ')) AS out_put;
  • 去掉前后的a参数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT TRIM('a' FROM 'aaaaaaaaa张aaaaaaaaaaaa翠山aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')  AS out_put;
  • 两个a表示成双去掉,最后多余了一个a
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT TRIM('aa' FROM 'aaaaaaaaa张aaaaaaaaaaaa翠山aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')  AS out_put;

7. lpad 用指定的字符实现左填充指定长度

  • *填充左边字符为10个
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT LPAD('殷素素',10,'*') AS out_put;
  • 如果填充的长度小于字符的长度,返回原字符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT LPAD('殷素素',2,'*') AS out_put;

8. rpad 用指定的字符实现右填充指定长度

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT RPAD('殷素素',12,'ab') AS out_put;

9.replace 替换,可以多个替换参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT REPLACE('周芷若周芷若周芷若周芷若张无忌爱上了周芷若','周芷若','赵敏') AS out_put;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验