MySQL数据类型--------字符串类型实战
1. 背景
* MySQL支持的字符串类型有CHAR、VARCHAR、二进制、var二进制、BLOB、文本等等。
2. 字符串类型所需的存储和值范围
类型 |
说明 | N的含义 | 是否有字符集 | 最大长度 |
CHAR(N) | 定义字符 | 字符 | 是 | 255 |
VARCHAR(N) | 变长字符 | 字符 | 是 | 16384 |
BINARY(N) | 定长二进制字节 | 字节 | 否 | 255 |
VARBINARY(N) | 变长二进制字节 | 字节 | 否 | 16384 |
TINYBLOB | 二进制大对象 | 字节 | 否 | 256 |
BLOB | 二进制大对象 | 字节 | 否 | 16K |
MEDIUMBLOB | 二进制大对象 | 字节 | 否 |
16M |
LONGBLOB | 二进制大对象 | 字节 | 否 | 4G |
TINYTEXT | 大对象 | 字节 | 是 | 256 |
TEXT | 大对象 | 字节 | 是 | 16K |
MEDUIMBLOB | 大对象 | 字节 | 是 | 16M |
LONGTEXT | 大对象 | 字节 | 是 | 4G |
3. 定义与变长区别 (CHAR VS VARCHAR)
值 | CHAR(4) | 占用空间 | VARHCAR(4) | 占用空间 |
'' | ' ' | 4 bytes | '' | 1 bytes |
'ab' | 'ab ' | 4 bytes | 'ab' | 3 bytes |
'abcd' | 'abcd' | 4 bytes | 'abcd' | 5 bytes |
'abcdefgh' | 'abcd' | 4 bytes | 'abcd' | 5 bytes |
4. 字符串类型相关注意事项
* 在BLOB和TEXT列上创建索引时,必须制定索引前缀的长度
* VARCHAR和VARBINARY必须长度是可选的
* BLOB和TEXT列不能有默认值
* BLOB和TEXT列排序时只使用该列的前max_sort_length个字节
1
2
3
4
5
6
7
|
mysql> show variables like 'max_sort_length' ;
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_sort_length | 1024 |
+-----------------+-------+
1 row in set (0.01 sec)
|
5. 字符串类型与排序规则
* 查看字符串相关信息 [ Default collation: 默认排序规则 ]
1
2
3
4
5
6
7
|
mysql> show character set like 'utf8mb4' ;
+---------+---------------+--------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+---------------+--------------------+--------+
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
+---------+---------------+--------------------+--------+
1 row in set (0.01 sec)
|
* 查看utfmb4所有排序规则
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
mysql> show collation like 'utf8mb4%' ;
+------------------------+---------+-----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+------------------------+---------+-----+---------+----------+---------+
| utf8mb4_general_ci | utf8mb4 | 45 | Yes | Yes | 1 |
| utf8mb4_bin | utf8mb4 | 46 | | Yes | 1 |
| utf8mb4_unicode_ci | utf8mb4 | 224 | | Yes | 8 |
| utf8mb4_icelandic_ci | utf8mb4 | 225 | | Yes | 8 |
| utf8mb4_latvian_ci | utf8mb4 | 226 | | Yes | 8 |
| utf8mb4_romanian_ci | utf8mb4 | 227 | | Yes | 8 |
| utf8mb4_slovenian_ci | utf8mb4 | 228 | | Yes | 8 |
| utf8mb4_polish_ci | utf8mb4 | 229 | | Yes | 8 |
| utf8mb4_estonian_ci | utf8mb4 | 230 | | Yes | 8 |
| utf8mb4_spanish_ci | utf8mb4 | 231 | | Yes | 8 |
| utf8mb4_swedish_ci | utf8mb4 | 232 | | Yes | 8 |
| utf8mb4_turkish_ci | utf8mb4 | 233 | | Yes | 8 |
| utf8mb4_czech_ci | utf8mb4 | 234 | | Yes | 8 |
| utf8mb4_danish_ci | utf8mb4 | 235 | | Yes | 8 |
| utf8mb4_lithuanian_ci | utf8mb4 | 236 | | Yes | 8 |
| utf8mb4_slovak_ci | utf8mb4 | 237 | | Yes | 8 |
| utf8mb4_spanish2_ci | utf8mb4 | 238 | | Yes | 8 |
| utf8mb4_roman_ci | utf8mb4 | 239 | | Yes | 8 |
| utf8mb4_persian_ci | utf8mb4 | 240 | | Yes | 8 |
| utf8mb4_esperanto_ci | utf8mb4 | 241 | | Yes | 8 |
| utf8mb4_hungarian_ci | utf8mb4 | 242 | | Yes | 8 |
| utf8mb4_sinhala_ci | utf8mb4 | 243 | | Yes | 8 |
| utf8mb4_german2_ci | utf8mb4 | 244 | | Yes | 8 |
| utf8mb4_croatian_ci | utf8mb4 | 245 | | Yes | 8 |
| utf8mb4_unicode_520_ci | utf8mb4 | 246 | | Yes | 8 |
| utf8mb4_vietnamese_ci | utf8mb4 | 247 | | Yes | 8 |
+------------------------+---------+-----+---------+----------+---------+
26 rows in set (0.00 sec)
|
* 修改默认排序规则
1
2
3
4
5
6
7
8
9
10
|
mysql> set names utf8mb4 collate utf8mb4_bin;
Query OK, 0 rows affected (0.00 sec)
mysql> show character set like 'utf8mb4' ;
+---------+---------------+--------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+---------------+--------------------+--------+
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
+---------+---------------+--------------------+--------+
1 row in set (0.00 sec)
|
6. 总结
以需求驱动技术,技术本身没有优略之分,只有业务之分。
本文转自asd1123509133 51CTO博客,原文链接:http://blog.51cto.com/lisea/1943246,如需转载请自行联系原作者
MySQL数据类型--------字符串类型实战相关推荐
- MySQL数据类型--------浮点类型实战
1. 背景 * MySQL支持的浮点类型中有单精度类型(float), 双精度类型(double),和高精度类型(decimal),在数字货币类型中推荐使用高精度类型(decimal)来进行应用. * ...
- ( 4 )MySQL中的数据类型(字符串类型)
MySQL中的数据类型(字符串类型) 字符长类型 六中数据库中的数据类型 char , varchar , text ,blob,enum,set char和varchar char定长:磁盘空间比较 ...
- 数据库开发——MySQL——数据类型——数值类型
MySQL中定义数据字段的类型对数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为四类:数值.日期/时间.字符串(字符)类型.枚举类型与集合类型. 一.数值类型 MySQL支持所有标准S ...
- P5 MySQL数据类型和类型选择
目录 一.数值类型 优化建议 二.日期和时间类型 优化建议 三.字符串类型 优化建议 四.扩:INT显示宽度 官方文档:https://dev.mysql.com/doc/refman/5.7/e ...
- MySQL数据类型-整数类型
MySQL提供了多种数据类型,包括整数类型.浮点数类型.定点数类型.日期和时间类型.字符串类型.二进制数据类型: 不同的数据类型有各自的的类型,使用范围也各不相同,而且存储方式也不相同 有两种类型的数 ...
- mediumtext和string转换_数据类型 - 字符串类型 - 《TiDB v3.0 用户文档》 - 书栈网 · BookStack...
字符串类型 TiDB 支持 MySQL 所有的字符串类型,包括 CHAR.VARCHAR.BINARY.VARBINARY.BLOB.TEXT.ENUM 以及 SET,完整信息参考这篇文档. 类型定义 ...
- Redis数据类型--字符串类型
夫陶公清风千古,余又何人,敢称庶几 文章目录 介绍 一.基本命令 1. 赋值与取值 2. 递增数字 二.命令进阶 1. 增加指定的整数 2. 减少指定的整数 3. 增加指定浮点数 4. 向尾部追加值 ...
- 【Flutter】Dart 数据类型 字符串类型 ( 字符串定义 | 字符串拼接 | 字符串 API 调用 )
文章目录 I . 字符串定义 I . 字符串拼接 III . 字符串 API 调用 IV . 字符串 Demo 示例 I . 字符串定义 使用单引号 ' ' 和 双引号 " " 都 ...
- python isnumber_Python正课18 —— 基本数据类型 - 字符串类型
一:定义 msg = 'hello' #本质:name = str('任意形式内容') 二.类型转换 数据类型转换:str()可以将任意数据类型转换成字符串类型,例如 # msg = 'hello' ...
最新文章
- 在Redhat安装部署Apache+MySQL+PHP(LAMP)
- C/C++中的段错误(Segmentation fault)[转]
- Codeforces Round #736 (Div. 2)E. The Three Little Pigs-长除法求多项式系数
- 系统架构师学习笔记-基于构件的开发
- CSS中box-sizing: border-box;的作用
- PyTorch 1.0 中文文档:torch.utils.dlpack
- 自学前端1年,靠着这份面试题和答案,我找到了20K工作
- Nagios 监控 SNMP 温度计
- Makefile-filter和filter-out
- 从XKCD网站下载自动所有漫画图片---python实现
- Eclipse @override报错解决
- java毕业设计网上租贸系统mybatis+源码+调试部署+系统+数据库+lw
- 信道容量迭代算法验证
- Spring基于XMLMysql | 注解Mysql的简单IOC案例
- Java 版植物大战僵尸思路和源码分享!
- Xiaojie雷达之路---毫米波雷达基础知识---速度估计
- python需要电脑多大内存合适_编程用surface怎么样发(学python要多大内存)
- 数据结构学习笔记 哈希表(一) 哈希表基础与哈希函数
- Messaging——Solace PubSub+
- RGB颜色空间与Lab颜色空间区别与联系(附转换代码)
热门文章
- 【摄像头】低照度和光圈
- 修改mysql数据库默认编码为utf8
- 坚果 android 系统升级,坚果手机的系统是什么?坚果手机能升级安卓5.0吗?
- python爬取疫情信息html.xpath p标签_python xpath 如何过滤div中的script和style标签
- 用python客户画像代码_客户画像与标签体系-Python数据科学技术详解与商业项目实战精讲 - Python学习网...
- python栈溢出_Python栈溢出【新手必学】
- Java项目:精品养老院管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
- 关于SQL的基础知识点
- CSS之布局(盒子模型--内边距)
- linux如何查看指定目录下文件内容,Linux 系统下通过关键词查找指定目录下的文件内容...