MySQL常用数据类型小结

在 MySQL 中,有三种主要的类型:字符串、数字和日期/时间类型。

目录

 [隐藏

字符串类型

  • CHAR 0-255字节 定长字符串
  • VARCHAR(size) 保存可变长度的字符串。在括号中指定字符串的最大长度。最多 255 个字符。
  • TINYTEXT 存放最大长度为 255 个字符的字符串
  • TEXT 存放最大长度为 65,535 个字符的字符串。
  • MEDIUMTEXT 存放最大长度为 16,777,215 个字符的字符串。
  • LONGTEXT 存放最大长度为 4,294,967,295 个字符的字符串。
  • BLOB 用于 BLOBs (Binary Large OBjects) 二进制形式的长文本数据。最多存放 65,535 字节的数据。
  • MEDIUMBLOB 用于 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字节的数据。
  • LONGBLOB 用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。
  • ENUM(x,y,z,etc.) 允许你输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。

注:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值:ENUM('X','Y','Z')

  • SET 与 ENUM 类似,SET 最多只能包含 64 个列表项。

CHAR(30)占用30个字符。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。

VARCHAR 类型可以根据实际内容动态改变存储值的长度,所以在不能确定字段需要多少字符时使用 VARCHAR 类型可以大大地节约磁盘空间、提高存储效率。

数值类型

  • TINYINT(size) -128 到 127。0 到 255 无符号。在括号中规定最大位数。
  • SMALLINT(size) -32768 到 32767。0 到 65535 无符号。
  • MEDIUMINT(size) -8388608 到 8388607 。0 to 16777215 无符号。
  • INT(size) -2147483648 到 2147483647 。0 到 4294967295 (42亿,10bit)无符号。
  • BIGINT(size) -9223372036854775808 到 9223372036854775807 。0 到 18446744073709551615 (20位)无符号。
  • FLOAT(size,d) 在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
  • DOUBLE(size,d) 在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
  • DECIMAL(size,d) 作为字符串存储的 DOUBLE 类型,允许固定的小数点。

int后面括号中的数字,不表示长度,表示的是显示宽度,这点与 varchar、char 后面的数字含义是不同的。

也就是说不管 int 后面的数字是多少,它存储的范围始终是 -2^31 到 2^31 - 1。整型的数据类型括号内的数字不管是多少,所占的存储空间都是一样。

日期和时间类型

  • DATE() 日期。格式:YYYY-MM-DD
  • DATETIME() 日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS。从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'

使用建议

在指定数据类型的时候一般采用从小原则,比如能用TINY INT的最好就不用INT,能用FLOAT类型的就不用DOUBLE类型,这样会对MYSQL在运行效率上提高很大,尤其是大数据量测试条件下。

艺搜参考

http://www.w3school.com.cn/sql/sql_datatypes.asp

http://www.w3cschool.cc/mysql/mysql-data-types.html

http://www.metsky.com/archives/84.html

http://blog.csdn.net/jiemushe1814/article/details/4716069

http://dev.mysql.com/doc/refman/5.1/zh/column-types.html

原文地址:https://www.cnblogs.com/elesos/p/6018256.html