欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL varchar保存汉字和字母长度

程序员文章站 2022-05-26 21:12:38
...
MySQL 5.0以上的版本: 
 
1.一个汉字占多少长度与编码有关: 
UTF-8:一个汉字=3个字节 
GBK:一个汉字=2个字节 
 
 
2.varchar(n)表示n个字符,无论汉字和英文,Mysql都能存入n个字符,但是实际字节长度有所区别 
 
3.MySQL检查长度,可用SQL语言: 
select LENGTH(fieldname) from tablename 来查看。


最近发现 Oracle 和 MySQL 的字段长度的计算不一样(都是UTF8编码),比如:

在Oracle下定义: name varchar2(10) , name字段能存放: 10个字符或3个汉字

在MySQL下定义: name varchar(10),  name字段能存放: 10个字符或10个汉字。

经查:MySQL5 以后 varchar 的单位是 字符了, 而 oracle 的varchar2 是字节。


length:   是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符

CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符。

 

一个多字节字符算作一个单字符。对于一个包含五个二字节字符集,

LENGTH()返回值为 10,而CHAR_LENGTH()的返回值为5。

 

CHARACTER_LENGTH(str) CHARACTER_LENGTH()是CHAR_LENGTH()的同义词。

BIT_LENGTH(str) 返回2进制长度.