MySQL数据库(10):数据类型-字符串类型

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL数据库(10):数据类型-字符串类型

字符串类型

char 和 varchar

1、char 定长字符


char(L) L 代表字符数(0-255)


2、varchar 变长字符


varchar(L) L 代表字符数(0-65535)


每个 varchar 数据,都会增加 1-2 个字节来保存数据所占用的空间长度


数据本身小于 127 个字符,额外开销 1 个字节

数据本身大于 127 个字符,额外开销 2 个字节

char 和 varchar 对比, utf8,一个字符都会占用 3 个字节

image.png


image.png

char 和 varchar 区别


char 一定会使用指定的空间,varchar 根据数据来定空间

char 的数据查询效率比 varchar 高,varchar 需要通过后面的记录数来计算

char 和 varchar 选择


如果确定数据的长度,使用 char

不确定数据的长度,使用 varchar

如果数据长度超过 255 个字符,一般使用 text

text 文本类型

text 存储普通的字符文本

blob 存储二进制文件(图片,文件),一般不使用,通常使用一个连接来指向对应的文件


image.png

image.png

注意:


1、不用刻意选择 text 类型,系统会自动根据存储的数据长度来选择合适的文本类型


2、如果数据超过 255 个字符,一定选择 text


MySQL记录长度

MySQL规定:记录长度(record == 行row), 总长度不能超过65535个字节


varchar 能够存储的理论值65535个字符,字符在不同的字符集下可能占用多个字节


varchar处理存储数据本身要占用空间,还需要额外的空间来保存记录长度


证明:varchar在MySQL中能够达到的理论值


utf8 65535 / 3 = 21845,需要2个字节保存长度
gbk 65535 / 2 = 32767...1,需要2个字节保存长度
create table my_utf8(
  name varchar(21844)
) charset utf8;
create table my_gbk(
  name varchar(32766)
) charset gbk;

————————————————

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
12天前
|
SQL 数据库 开发者
达梦数据库 【-6111: 字符串转换出错】问题处理
在更新数据库某个值属性时,遇到了“字符串转换出错”的错误。经过分析,发现是由于 `id` 字段实际上是字符串类型而非数值类型导致的。最终通过将 `id` 的值改为字符串类型解决了问题。此问题提醒我们在处理数据库时要仔细检查表结构,不要凭经验臆断字段类型。
|
13天前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
36 8
|
1月前
|
关系型数据库 MySQL
用dbeaver创建一个enum类型,并讲述一部分,mysql的enum类型的知识
这篇文章介绍了如何在DBeaver中创建MySQL表的枚举(ENUM)字段,并探讨了MySQL中ENUM类型的一些行为特点,例如ENUM值的默认排序和在插入重复值时的表现。
46 1
用dbeaver创建一个enum类型,并讲述一部分,mysql的enum类型的知识
|
1月前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
48 15
|
1月前
|
关系型数据库 MySQL 数据库
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
34 5
|
1月前
|
存储 移动开发 数据库
HTML5 Web IndexedDB 数据库常用数据存储类型
IndexedDB 支持多种数据存储类型,满足复杂数据结构的存储需求。它包括基本数据类型(如 Number、String、Boolean、Date)、对象(简单和嵌套对象)、数组、Blob(用于二进制数据如图像和视频)、ArrayBuffer 和 Typed Arrays(处理二进制数据)、结构化克隆(支持 Map 和 Set 等复杂对象),以及 JSON 数据。尽管不直接支持非序列化数据(如函数和 DOM 节点),但可以通过转换实现存储。开发者应根据具体需求选择合适的数据类型,以优化性能和使用体验。
|
23天前
|
关系型数据库 MySQL Java
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
24 0
|
1月前
|
存储 关系型数据库 MySQL
什么是mysql的数据类型?
什么是mysql的数据类型?
47 2
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据类型
MySQL数据类型
52 2
|
11天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
26 1
下一篇
无影云桌面