MySQL笔记之数据类型详解

 更新时间:2013年05月03日 16:45:33   作者:  
本篇文章对mysql数据类型进行了详细的介绍,需要的朋友参考下

字符型数据

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

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

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

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

tinytext                     255字节

text                          65535字节

mediumtext             16777215字节

longtext                   4294967295字节

以上三种在进行分组排序或者比较的时候只采用前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个

数值型数据

整数型数据

浮点型数据

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

 

时间数据

相关文章

  • MySQL系统库之performance_schema的实现

    MySQL系统库之performance_schema的实现

    performance_schema用于收集和存储关于数据库性能和资源利用情况的信息,本文主要介绍了MySQL系统库之performance_schema的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • mysql免安装版的实际配置方法

    mysql免安装版的实际配置方法

    本文主要向大家讲述的是MySQL 免安装版的实际配置方法,以及对其的相关的下载网址也有详细介绍,望你会有所收获。
    2010-08-08
  • MySQL中常见的八种SQL错误用法示例

    MySQL中常见的八种SQL错误用法示例

    这篇文章主要给大家介绍了关于MySQL中常见的八种SQL错误用法示例的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • centos6.4下mysql5.7.18安装配置方法图文教程

    centos6.4下mysql5.7.18安装配置方法图文教程

    这篇文章主要为大家详细介绍了centos6.4下mysql5.7.18安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • MYSQL慢查询和日志实例讲解

    MYSQL慢查询和日志实例讲解

    这篇文章主要介绍了MYSQL慢查询和日志实例讲解,有对这方面感兴趣的同学可以研究学习下
    2021-02-02
  • MySQL优化之使用连接(join)代替子查询

    MySQL优化之使用连接(join)代替子查询

    有些时候,子查询可以被更有效的连接替代,方法仅供参考,需要的朋友可以了解下。
    2017-10-10
  • mysql alter table命令修改表结构实例

    mysql alter table命令修改表结构实例

    这篇文章主要介绍了mysql alter table命令修改表结构实例的相关资料,需要的朋友可以参考下
    2016-10-10
  • 详解Mysql5.7自带的压力测试命令mysqlslap及使用语法

    详解Mysql5.7自带的压力测试命令mysqlslap及使用语法

    mysqlslap是一个诊断程序,旨在模拟MySQL服务器的客户端负载并报告每个阶段的时间。这篇文章主要介绍了Mysql5.7自带的压力测试命令mysqlslap的相关知识,需要的朋友可以参考下
    2019-10-10
  • 详解MySQL日期 字符串 时间戳互转

    详解MySQL日期 字符串 时间戳互转

    本篇文章主要介绍了详解MySQL日期 字符串 时间戳互转,详解date转字符串、date转时间戳、字符串转date、字符串转时间戳、时间戳转date,时间戳转字符串,有兴趣的可以了解一下。
    2017-01-01
  • Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法

    Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(usi

    这篇文章主要给大家介绍了关于Linux连接mysql数据库报错:Access denied for user ’root‘@’localhost‘(using password: YES)的解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-01-01

最新评论