mysql之字符函数

举报
兮动人 发表于 2021/09/18 10:32:55 2021/09/18
【摘要】 mysql之字符函数

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

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

分类:
	1、单行函数 如 concat、length、ifnull等
	2、分组函数
	功能:做统计使用,又称为统计函数、聚合函数、组函数
  • 以下如图数据库为例编写案例

在这里插入图片描述

常见函数:

一、单行函数
	字符函数:
	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 获取参数值的字节个数

SELECT LENGTH('xdr630');
SELECT LENGTH('兮动人630');

在这里插入图片描述
在这里插入图片描述
这里客户端使用的字符集是utf-8,一个汉字等于三个字节,所以为12

注意:

  • 查看客户端使用的字符集,这里使用的是 utf-8一个汉字占三个字节,一个英文占一个字节。
  • 如果客户端使用的字符集是gbk那就是一个汉字占两个字节,一个英文占一个字节。
SHOW VARIABLES LIKE '%char%'

在这里插入图片描述

2. concat 拼接字符串

  • 姓名拼接,中间用下划线连接
SELECT CONCAT(last_name,'_',first_name) 姓名 FROM employees;

在这里插入图片描述

3. upper、lower

SELECT UPPER('xdr630');
SELECT LOWER('MIKE');

在这里插入图片描述
在这里插入图片描述

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

SELECT CONCAT(UPPER(last_name),LOWER(first_name))  姓名 FROM employees;

在这里插入图片描述

4. substr、substring

注意索引从1开始

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

SELECT SUBSTR('李莫愁爱上了陆展元',7)  out_put;

在这里插入图片描述

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

  • 这里的第一个参数表示从第一个索引开始,第二个参数表示字符的长度
SELECT SUBSTR('李莫愁爱上了陆展元',1,3) out_put;

在这里插入图片描述

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

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

SELECT INSTR('杨不殷六侠悔爱上了殷六侠','殷六侠') AS out_put;

在这里插入图片描述

SELECT INSTR('杨不殷六侠悔爱上了殷六侠','殷八侠') AS out_put;

在这里插入图片描述

6. trim 去前后空格

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

在这里插入图片描述

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

在这里插入图片描述

  • 去掉前后的a参数
SELECT TRIM('a' FROM 'aaaaaaaaa张aaaaaaaaaaaa翠山aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')  AS out_put;

在这里插入图片描述

  • 两个a表示成双去掉,最后多余了一个a
SELECT TRIM('aa' FROM 'aaaaaaaaa张aaaaaaaaaaaa翠山aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')  AS out_put;

在这里插入图片描述

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

  • *填充左边字符为10个
SELECT LPAD('殷素素',10,'*') AS out_put;

在这里插入图片描述

  • 如果填充的长度小于字符的长度,返回原字符
SELECT LPAD('殷素素',2,'*') AS out_put;

在这里插入图片描述

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

SELECT RPAD('殷素素',12,'ab') AS out_put;

在这里插入图片描述

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

SELECT REPLACE('周芷若周芷若周芷若周芷若张无忌爱上了周芷若','周芷若','赵敏') AS out_put;

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。