mysql数据类型学习笔记
字符串类型
char定长
varchar变长
set集合:可以有零或多个值,其值来自表创建时规定的允许的一列值
enum枚举
CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符,varchar的最大长度和当前行剩余长度,及自身的编码有关,比如,只有一个字段,编码类型为utf8,那最多是65532/3
UTF8字符集(转换Unicode表示)是存储Unicode数据的一种可选方法。它根据 RFC 3629执行。UTF8字符集的思想是不同Unicode字符采用变长字节序列编码:
· 基本拉丁字母、数字和标点符号使用一个字节。
· 大多数的欧洲和中东手写字母适合两个字节序列:扩展的拉丁字母(包括发音符号、长音符号、重音符号、低音符号和其它音符)、西里尔字母、希腊语、亚美尼亚语、希伯
来语、阿拉伯语、叙利亚语和其它语言。
Chapter 10. Character Set Support
file:///D:/download/refman-5.1-zh.html-chapter/refman-5.1-zh.html-chapter/charset.html[2010/2/24 5:22:21]
· 韩语、中文和日本象形文字使用三个字节序列。
RFC 3629说明了采用一到四个字节的编码序列。当前,MySQLUTF8不支持四个字节。(UTF8编码的旧标准是由RFC 2279给出,它描述了从一到六个字节的UTF8编码序列。RFC
3629补充了作废的RFC 2279;因此,不再使用5个字节和6个字节的编码序列。)
提示:使用UTF8时为了节省空间,使用VARCHAR而不要用CHAR。否则,MySQL必须为一个CHAR(10) CHARACTER SET utf8列预备30个字节,因为这是可能的最大长度。
int最大值只能表示4294967295,
php中,strlen() returns the number of bytes rather than the number of characters in a string.
mb_strlen()返回具有 encoding
编码的 字符串 str
包含的字符数。 多字节的字符被计为 1。