mysql 字符串类型 字符串函数

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: mysql 字符串类型 字符串函数

字符串类型

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。a17.png

注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。


  CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。


  BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。


  BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。


  有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。


字符串函数

ASCII

查看第一个字符的ASCII值

select ascii('Aa'),ascii('BC');

18.png

length() CHAR_LENGTH()

length 返回字符串的长度 字符个数

注意 若为null时,如果不加单引号,则返回null,若加单引号,则返回字符的长度.

select length('abcd1234'),CHAR_LENGTH('abcd123224');

19.png

CONCAT(s1,s2…sn)

合并字符串函数,返回结果为连接参数产生的字符串,参数可以使一个或多个

参数

若有任何一个参数为 NULL,则返回值为 NULL。若所有参数均为非二进制字符串,则结果为非二进制字符串。若自变量中含有任一二进制字符串,则结果为一个二进制字符串。

SELECT CONCAT('ssss','111',2222);

20.png

FIND_IN_SET(s1,s2)

返回在字符串s2中与s1匹配的字符串的位置

select FIND_IN_SET("c","a,b,c,d,e,f,g");

21.png

FORMAT(x,n)

函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入

格式化数字 “#,###.##” 形式:

select FORMAT(19999999999.5678,2);

22.png

INSERT(s1,x,len,s2)

字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串

若 x 超过字符串长度,则返回值为原始字符串。假如 len 的长度大于其他字符串的长度,则从位置 x 开始替换。若任何一个参数为 NULL,则返回值为 NULL。

select INSERT("www.baidu.com",5,5,"sinax") ;

23.png

LOCATE(s1,s)

从字符串 s 中获取 s1 的开始位置

select LOCATE("a","abcdefg");

24.png

POSITION(s1 IN s)

从字符串 s 中获取 s1 的开始位置

select POSITION("123" in "abcdefg1235");

25.png

LCASE(s)/LOWER(s)

字符串转换为小写

select lcase('ABCedfgDDDddd'),LOWER('ABCedfgDDDddd');

26.png

UCASE(s)/UPPER(s)

字符串转换为大写

select UCASE('ABCedfgDDDddd'),UPPER('ABCedfgDDDddd') ;

27.png

TRIM(s)

去掉字符串 s 开始和结尾处的空格

select TRIM(' abc def ');

28.png

LTRIM(s)

去掉字符串 s 开始空格

select LTRIM(' abc def ')

29.png

RTRIM(s)

去掉字符串 s 结尾处的空格

select RTRIM(' abc def ');

000.png

SUBSTR(s, start, length)

SUBSTRING 从字符串 s 的 start 位置截取长度为 length 的子字符串

select substr("abcdefg1234566",4,5) ;

30.png

REPEAT(s,n)

将字符串 s 重复 n 次

select REPEAT("hello-",5);

31.png

REVERSE(s)

将字符串s的顺序反过来

select REVERSE("abcdefg") ;

32.png

STRCMP(s1,s2)

比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1

select STRCMP("abc","abc") ,STRCMP("a1","a2"),STRCMP("a2","a1") ;

33.png

left(s1,len)

从字符串左侧开始,截取字符串

当为负数时,返回空

select left('hello',4)

34.png

select left('hello',-1)

35.png

right(s1,len)

从字符串右侧开始,截取字符串

当为负数时,返回空

 select right('hello',1), right('hello',6),right('hello',-1);

36.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
SQL 自然语言处理 关系型数据库
MySQL的match匹配多个字符串的语法
【8月更文挑战第27天】MySQL的match匹配多个字符串的语法
205 67
|
4天前
|
关系型数据库 MySQL
MySQL中的字符串函数有哪些?
本文介绍了几个常用的字符串函数,包括计算字符串字符数的`CHAR_LENGTH`、计算字符串长度的`LENGTH`、合并字符串的`CONCAT`和`CONCAT_WS`、替换字符串的`INSERT`,以及字母大小写转换的`LOWER`、`LCASE`、`UPPER`和`UCASE`。每个函数都有详细的说明和示例。
MySQL中的字符串函数有哪些?
|
1月前
|
关系型数据库 MySQL
用dbeaver创建一个enum类型,并讲述一部分,mysql的enum类型的知识
这篇文章介绍了如何在DBeaver中创建MySQL表的枚举(ENUM)字段,并探讨了MySQL中ENUM类型的一些行为特点,例如ENUM值的默认排序和在插入重复值时的表现。
37 1
用dbeaver创建一个enum类型,并讲述一部分,mysql的enum类型的知识
|
6天前
|
关系型数据库 MySQL Java
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
17 0
|
2月前
|
关系型数据库 MySQL 数据库
Python MySQL查询返回字典类型数据的方法
通过使用 `mysql-connector-python`库并选择 `MySQLCursorDict`作为游标类型,您可以轻松地将MySQL查询结果以字典类型返回。这种方式提高了代码的可读性,使得数据操作更加直观和方便。上述步骤和示例代码展示了如何实现这一功能,希望对您的项目开发有所帮助。
113 4
|
2月前
|
自然语言处理 算法 Java
Java如何判断两句话的相似度类型MySQL的match
【9月更文挑战第1天】Java如何判断两句话的相似度类型MySQL的match
25 2
|
3月前
|
SQL 自然语言处理 关系型数据库
MySQL的match匹配多个字符串的语法
【8月更文挑战第29天】MySQL的match匹配多个字符串的语法
114 2
|
2月前
|
SQL 关系型数据库 MySQL
MySQL根据某个字段包含某个字符串或者字段的长度情况更新另一个字段的值,如何写sql
MySQL根据某个字段包含某个字符串或者字段的长度情况更新另一个字段的值,如何写sql
137 0
|
3月前
|
存储 关系型数据库 MySQL
MySQL bit类型增加索引后查询结果不正确案例浅析
【8月更文挑战第17天】在MySQL中,`BIT`类型字段在添加索引后可能出现查询结果异常。表现为查询结果与预期不符,如返回错误记录或遗漏部分数据。原因包括索引使用不当、数据存储及比较问题,以及索引创建时未充分考虑`BIT`特性。解决方法涉及正确运用索引、理解`BIT`的存储和比较机制,以及合理创建索引以覆盖各种查询条件。通过`EXPLAIN`分析执行计划可帮助诊断和优化查询。
|
3月前
|
缓存 NoSQL Redis
一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。