欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySQL中的数据类型

程序员文章站 2022-06-10 13:15:40
...

1、数类型 数据类型 说明 整数数据列 BIT[( M )] M 表示每个的位数,范围为从1到64。如果 M 被省略, 默认为1 TINYINT 小的整数。带符号的范围是-128到127。无符号的范围是0到255 SMALLINT 小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535 M

1、 数值类型

数据类型

说明

整数数据列

BIT[(M)]

M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1

TINYINT

小的整数。带符号的范围是-128到127。无符号的范围是0到255

SMALLINT

小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535

MEDIUMINT

中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215

INT

普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

BIGINT

大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615

浮点型数据列类型

FLOAT

小(单精度)浮点数。允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38

DOUBLE

普通大小(双精度)浮点数。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308

DECIMAL[(M[,D])]

压缩的“严格”定点数。M是小数位数(精度)的总数,D是小数点(标度)后面的位数

数值类数据列的属性

NO

属性

说明

1

ZEROFILL

属性适用于所有数值类数据列类型,作用是,如果数值的宽度小于定义的显示宽度,则在数值前填充0

2

UNSIGNED

属性不允许数据列出现负数

3

AUTO_INCREMENT

属性可生成独一无二的数字序列。只对整数类的数据列有效

4

NULL/NOT NULL

属性设置数据列是否可为空。

5

DEFAULT

属性可为数据列指定默认值

2、 日期和时间类型

NO

类型

说明

DATE D DATE

日期。支持的范围为'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式显示DATE值

DATETIME

日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值

TIMESTAMP[(M)]

时间戳。范围是'1970-01-01 00:00:00'到2037年

TIMESTAMP

19700101000000~2037年的某个时刻 4字节 00000000000000

TIME

时间。范围是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式显示TIME值

YEAR[(2|4)]

两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是1901到2155和0000。在两位格式中,允许的值是70到69,表示从1970年到2069年。MySQL以YYYY 格式显示YEAR值

说明:

MySQL总是把日期和日期里的年份放在最前面,按年月日的顺序显示。
DATE、TIME和DATATIME类型分别存放日期值、时间值、日期和时间值的组合。它们的格式分别是“CCYY-MM-DD”、“hh:mm:ss”、“CCYY-MM-DD hh:mm:ss”。数据列,这样,该TIMESTAMP数据列就不会再变化。

3、 字符串类型

字符串可以用来表示任何一种值,所以它是最基本的类型之一。我们可以用字符串类型来存储图象或声音之类的二进制数据,也可存储用gzip压缩的数据。

NO

类型

1

CHAR[(M)]

M字节 M字节

2

VARCHAR[(M)]

M字节 L+1字节

3

TINYBLOD/TINYTEXT

2^8-1字节 L+1字节

4

BLOB/TEXT

2^16-1字节 L+2

5

MEDIUMBLOB/MEDIUMTEXT

2^24-1字节 L+3

6

LONGBLOB/LONGTEXT

2^32-1字节 L+4

7

ENUM('value1','value2',...)

65535个成员 1或2字节

8

SET('value1','value2',...)

64个成员 1,2,3,4或8字节

说明:
如果把超出字符串最大长度的数据放到字符类数据列中,MySQL会自动进行截短处理。