mysql dcn_Mysql varchar(max)
设计数据库时,不禁有这样的疑问,varchar()最大可以设置多大呢?与什么有关呢?
字符集
为什么要有字符集?
简单讲,数据在网络上传输与硬盘中储存,都是以二进制的形式存在的。我们熟知的文字、图片以及视频想要存储与传输,必然需要一套规则,使其成为可以被储存和传输的二进制数据,而字符集则是文字编解码的规则。
详情可参考字符编码的历史演变。
在数据的储存上,mysql提供了不同的字符集支持。
查看mysql支持的字符集:
mysql> show character set;
+----------+---------------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+---------------------------------+---------------------+--------+
| armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 |
| ascii | US ASCII | ascii_general_ci | 1 |
...
| gb18030 | China National Standard GB18030 | gb18030_chinese_ci | 4 |
| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 |
| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |
| utf16 | UTF-16 Unicode | utf16_general_ci | 4 |
| utf16le | UTF-16LE Unicode | utf16le_general_ci | 4 |
| utf32 | UTF-32 Unicode | utf32_general_ci | 4 |
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_0900_ai_ci | 4 |
+----------+---------------------------------+---------------------+--------+
41 rows in set (0.01 sec)
Mysql 提供了server、database、table、column级字符集设置。
字符集规则是可以继承的,也就是说:
column 没有设置则继承 table 的字符集设置。
table 没有设置则继承 database 的字符集设置。
database 没有设置则继承 server 的字符集设置。
查看全局字符集设置:
mysql> show global variables like'%character_set%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.01 sec)
note:字符集设置不当会出现汉字乱码。
char与varchar
char:固定长度类型,char(n)则表示只能储存n字节数据,不足n则在末尾填充空格,最大存储255字符。占用储存空间n × 字符集最大占用字节。
varchar:可变长度类型,varchar(n)则表示可存储char_length(n)长度的字符,储存空间占用(字符集最大占用 × n + 1 or 2长度字节),字节数 > 255 时用2字节表示长度。
length() 与 char_length()
char_length():返回字符长度,与空间占用大小无关
mysql> select char_length('a'),char_length('1'),char_length('hello world'),char_length('你好');
+------------------+------------------+----------------------------+-----------------------+
| char_length('a') | char_length('1') | char_length('hello world') | char_length('你好') |
+------------------+------------------+----------------------------+-----------------------+
| 1 | 1 | 11 | 2 |
+------------------+------------------+----------------------------+-----------------------+
1 row in set (0.00 sec)
length(): 返回占用字节数
mysql> select length('a'),length('1'),length('hello world'),length('我'),length("你好"),length('
mysql dcn_Mysql varchar(max)相关推荐
- MySQL中varchar最大长度是多少
一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符, ...
- MySQL 数据库 varchar 到底可以存多少个汉字,多少个英文呢?我们来搞搞清楚
MySQL 数据库 varchar 到底可以存多少个汉字,多少个英文呢?我们来搞搞清楚 一.关于UTF-8 UTF-8 Unicode Transformation Format-8bit.是用以解决 ...
- mysql varchar类型实例_Mysql实例MySQL数据类型varchar详解
<Mysql实例MySQL数据类型varchar详解>要点: 本文介绍了Mysql实例MySQL数据类型varchar详解,希望对您有用.如果有疑问,可以联系我们.1.varchar(N) ...
- varchar(n)跟varchar(max)的区别
varchar n跟varchar max的区别与CLOB与BLOB的区别 varchar(n)跟varchar(max)的区别 CLOB与BLOB的区别 CLOB 定义 BLOB的含义 CLOB和B ...
- 关于varchar(max), nvarchar(max)和varbinary(max)
在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max).nvarchar(max).varbinary(max) ).大值数据类型最多可以存储2^30-1个字节的数据. 这几 ...
- mysql 的 VARCHAR VARCHAR2
mysql 的 VARCHAR VARCHAR2 mysql 里面竟然没有 VARCHAR2 ?? posted on 2015-08-19 17:37 CanntBelieve 阅读(...) 评论 ...
- mysql中int最大多少,int(11)最大長度是多少,MySQL中varchar最大長度是多少(轉)
int(11)最大長度是多少,MySQL中varchar最大長度是多少? int(11)最大長度是多少? 在SQL語句中int代表你要創建字段的類型,int代表整型,11代表字段的長度. 這個11代表 ...
- Mysql UTF8 varchar与Oracle ZHS16GBK varchar2同长度下存汉字的差异
目录 1简介... 1 2 准备... 1 2.1 环境说明... 1 3 安装... 2 4 配置... 2 5 使用... 3 5.1 验证实验... 3 5.2 问题分析... 5 6 延展.. ...
- SQL Server 2005 的nvarchar(max),varchar(max)来救火
今天处理组织架构部分的代码出错了,还好数据库迁移到了SQL Server 2005,原来系统使用的是SQL Server 2000,随着公司规模的扩大,公司人员的急速增长,系统不断的发生了问题,经常在 ...
最新文章
- 零起点学算法03——超简单模仿算术题
- 五年级上册计算机课如何拉表格,川教版小学信息技术五年级上册第八课 调整表格...
- nessus安全工具主要用途_发电技术 | 发电厂DCS 网络安全评估与防护
- python读取.edf文件
- Redis 性能优化的 13 条军规!史上最全
- sqlite3用python家外键_Django/Sqlite3为带有外键的模型添加一行
- win10 iot core java_Windows 10 IoT Core开发环境
- oracle把列数据串成一个字符串,一组数据,如何根据一个字段值分组后,把另一字段的字符串累加连接起来?...
- centos7查看当前系统时间、_CentOS 7修改系统时间及硬件时间
- JavaScript 高级程序设计 笔记
- MyBatis源码阅读指南
- linuxcan之kvaser使用笔记
- 单元格里的字怎样居中_word表格中文字如何设置左右和上下居中(水平和垂直居中)...
- # DZY Love Math 系列
- html鼠标经过图片放大
- 《卓有成效的管理者》——学习心得(八)
- EZ-USB FX2单片机原理、编程及应用 读书笔记
- (转)JPVideoPlayer 基于avplayer的音视频列表播放
- 如何获取所有股票代码
- 7-1 求e的近似值 (15 分)
热门文章
- 如何在 ASP.NET MVC 中集成 AngularJS(2)
- .NET Core VS Code 环境配置
- 框架实现修改功能的原理_JAVA集合框架的特点及实现原理简介
- ArcGIS实验教程——实验十八:叠置分析(Overlay Analysis)
- C语言试题七十六之请编写函实现百钱买百鸡
- IOS之学习笔记十五(协议和委托的使用)
- (三)python3 只需3小时带你轻松入门—— 变量的简单运算
- 【C语言简单说】十九:二维数组循环嵌套(1)
- mysql如何快速插入一千万条数据_如何快速安全的插入千万条数据?
- 球体表面积原来还可以这么求!