数据库基础02——MySQL常用数据类型

数据库基础02——MySQL常用数据类型

在这里声明一下 mysql 5.5.的文档,如果公司确定用mysql,直接看文档最详细

https://dev.mysql.com/doc/refman/5.5/en/

mysql主要的数据类型:

1、串数据类型

2、数值数据类型

3、日期和时间数据类型

4、二进制数据类型

1、串数据类型

mysql遵循了ANSI SQL标准,同样分为定长串变长串两种数据类型,存储字符串以及字节。

为什么要使用定长数据类型?答案:性能

MySQL处理定长列远比处理变长列快得多。此外, MySQL不允许对变长列(或一个列的可变部分)进行索引。这也会极大地影响性能 。但是不要乱用定长数据类型,只有长度确定的类型才用,不然浪费空间。 剩余的位数会用空格填充。

数据类型 说明
CHAR(size) 1~255个字符的定长串。它的长度必须在创建时指定,否则MySQL
假定为CHAR(1) (可包含字母、数字以及特殊字符)
ENUM(x,y,z,etc.) 接受最多64 K 个串组成的一个预定义集合的某个串。即:允许你输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值,则插入空值。注释:这些值是按照你输入的顺序存储的.可以按照此格式输入可能的值:ENUM(‘X’,‘Y’,‘Z’)
SET 接受最多64个串组成的一个预定义集合的零个或多个串
TEXT 最大长度为65535(16K)的变长字符串
TINYTEXT 与TEXT相同,但最大长度为255字节
LONGTEXT 同TEXT,存放最大长度为 4,294,967,295(约4GB) 个字符的字符串。
MEDIUMTEXT 同TEXT, 存放最大长度为 16,777,215 (约16K)个字符的字符串。
VARCHAR 长度可变,最多不超过255字节。如果在创建时指定为VARCHAR(n),
则可存储0到n个字符的变长串(其中n≤255) (可包含字母、数字以及特殊字符

2、数值数据类型

**有符号或无符号 ** :所有数值数据类型(除BIT和BOOLEAN外)都可以有符号或无符号。有符号数值列可以存储正或负的数值,无符号数值列只能存储正数。默认情况为有符号,但如果你知道自己不需要存储负值,可以使用UNSIGNED关键字,这样做将允许你存储两倍大小的值。

数据类型 说明
BIT 位字段, 1~64位。(在MySQL 5之前, BIT在功能上等价于
TINYINT
BIGINT 整数值,支持 -9223372036854775808~9223372036854775807
(如果是UNSIGNED,为0~18446744073709551615)的数
BOOLEAN(或BOOL) 布尔标志,或者为0或者为1,主要用于开/关(on/off)标志
DECIMAL(或DEC) 精度可变的浮点值
DOUBLE 双精度浮点值
FLOAT 单精度浮点值
INT(或INTEGER) 整数值,支持 -2147483648~2147483647(如果是UNSIGNED,
为0~4294967295)的数
MEDIUMINT 整数值,支持 -8388608~8388607(如果是UNSIGNED,为0~
16777215)的数
REAL 4字节的浮点值
SMALLINT 整数值,支持 -32768~32767(如果是UNSIGNED,为0~
65535)的数
TINYINT 整数值,支持 -128~127(如果为UNSIGNED,为0~255)的数

注意:MySql 没有专美存储货币的数据类型,一般情况下使用DECIMAL(8,2) 来表示

关于 FLOAT(size,d) 和DOUBLE(size,d):

MySQL对于单精度值使用四个字节,对于双精度值使用八个字节。

因为FLOAT,SQL标准允许FLOAT在括号中的关键字后面的位中选择性地指定精度(但不是指数的范围) 。MySQL还支持此可选的精度规范,但精度值仅用于确定存储大小。精度从0到23会产生一个4字节的单精度FLOAT 列。精度从24到53会产生一个8字节的双精度DOUBLE列。

3、日期和时间数据类型

数据类型 说明
DATE 表示1000-01-01~9999-12-31的日期,格式为
YYYY-MM-DD
DATETIME DATE和TIME的组合,即年月日时分秒
TIMESTAMP 功能和DATETIME相同(但范围较小)
TIME 格式为HH:MM:SS
YEAR 用2位数字表示,范围是70(1970年)~69(2069
年),用4位数字表示,范围是1901年~2155年

4、二进制数据类型(存字节)

数据类型 说明
BLOB Blob最大长度为64 KB
MEDIUMBLOB Blob最大长度为16 MB
LONGBLOB Blob最大长度为4 GB
TINYBLOB Blob最大长度为255字节

猜你喜欢

转载自blog.csdn.net/u011138190/article/details/84658252