首页 > 数据库 > MySQL > 正文

MySQL笔记之数据类型详解

2024-07-24 13:00:50
字体:
来源:转载
供稿:网友

字符型数据

字符型数据可以使用定长或变长的字符串来实现,其不同点在于固定长度的字符串使用空格向右填充,以保证占用同样的字节数;变长字符串不需要向右填充,并且所有字节数可变。

char定长型,字节长度固定,最大长度为255字节,可以使用char(20)这种方式限定长度,查询速度快,但不灵活

varchar变长型,字节长度随数据量变化,最多可存储65535字节,varchar(20)可以限定长度,查询速度不及char,但使用灵活

如果需要存储文本或者文档,需要使用text类型数据,包括四种

tinytext255字节

text65535字节

mediumtext16777215字节

longtext4294967295字节

以上三种在进行分组排序或者比较的时候只采用前1024字节进行比较

字符集

对于拉丁语系,比如英语,其中每个字母只需要1个字节来存储;而其他一些语言,比如中文,包含了大量字符,每个字符的存储需要多个字节,因此这类字符集被称为多字符集

mysql中,可以使用SHOW CAHRACTER SET语句查看字符集

复制代码 代码如下:


mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset | Description| Default collation | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5| Big5 Traditional Chinese | big5_chinese_ci|2 |
| dec8| DEC West European| dec8_swedish_ci|1 |
| cp850 | DOS West European| cp850_general_ci |1 |
| hp8| HP West European| hp8_english_ci|1 |
| koi8r | KOI8-R Relcom Russian| koi8r_general_ci |1 |
| latin1 | cp1252 West European| latin1_swedish_ci |1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci |1 |
| swe7| 7bit Swedish| swe7_swedish_ci|1 |
| ascii | US ASCII| ascii_general_ci |1 |
| ujis| EUC-JP Japanese| ujis_japanese_ci |3 |
| sjis| Shift-JIS Japanese| sjis_japanese_ci |2 |
| hebrew | ISO 8859-8 Hebrew| hebrew_general_ci |1 |
| tis620 | TIS620 Thai| tis620_thai_ci|1 |
| euckr | EUC-KR Korean| euckr_korean_ci|2 |
| koi8u | KOI8-U Ukrainian| koi8u_general_ci |1 |
| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci |2 |
| greek | ISO 8859-7 Greek| greek_general_ci |1 |
| cp1250 | Windows Central European | cp1250_general_ci |1 |
| gbk| GBK Simplified Chinese| gbk_chinese_ci|2 |
| latin5 | ISO 8859-9 Turkish| latin5_turkish_ci |1 |
| armscii8 | ARMSCII-8 Armenian| armscii8_general_ci |1 |
| utf8| UTF-8 Unicode| utf8_general_ci|3 |
| ucs2| UCS-2 Unicode| ucs2_general_ci|2 |
| cp866 | DOS Russian| cp866_general_ci |1 |
| keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci |1 |
| macce | Mac Central European| macce_general_ci |1 |
| macroman | Mac West European| macroman_general_ci |1 |
| cp852 | DOS Central European| cp852_general_ci |1 |
| latin7 | ISO 8859-13 Baltic| latin7_general_ci |1 |
| utf8mb4 | UTF-8 Unicode| utf8mb4_general_ci |4 |
| cp1251 | Windows Cyrillic| cp1251_general_ci |1 |
| utf16 | UTF-16 Unicode| utf16_general_ci |4 |
| cp1256 | Windows Arabic| cp1256_general_ci |1 |
| cp1257 | Windows Baltic| cp1257_general_ci |1 |
| utf32 | UTF-32 Unicode| utf32_general_ci |4 |
| binary | Binary pseudo charset| binary|1 |
| geostd8 | GEOSTD8 Georgian| geostd8_general_ci |1 |
| cp932 | SJIS for Windows Japanese | cp932_japanese_ci |2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci |3 |
+----------+-----------------------------+---------------------+--------+
rows in set (0.00 sec)


其中Maxlen列大于1则代表此行为多字符集,比如gb2312,存储一个汉字最多需要2个字节,utf8最多则需要3个

数值型数据

整数型数据

MySQL笔记之数据类型详解

浮点型数据

MySQL笔记之数据类型详解

数值型数据可以定义为unsigned,对整数而已可以改变其范围,对浮点数而言可以限定其不能为负数

时间数据

MySQL笔记之数据类型详解

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表