MySQL 数据类型


字符串

字符串指用单引号(‘'’)或双引号(‘"’)引起来的字符序列

在字符串中,某些序列具有特殊含义。这些序列均用反斜线(‘\’)开始,即所谓的转义字符。MySQL识别下面的转义序列:

\0

ASCII 0(NUL)字符。

\'

单引号(‘'’)。

\"

双引号(‘"’)。

\b

退格符。

\n

换行符。

\r

回车符。

\t

tab字符。

\Z

ASCII 26(控制(Ctrl)-Z)。该字符可以编码为‘\Z’,以允许你解决在Windows中ASCII 26代表文件结尾这一问题。(如果你试图使用mysql db_name < file_name,ASCII 26会带来问题)。

\\

反斜线(‘\’)字符。

\%

‘%’字符。参见表后面的注解。

\_

‘_’字符。参见表后面的注解。

这些序列对大小写敏感。例如,‘\b’解释为退格,但‘\B’解释为‘B’。


NULL值

NULL值表示“没有数据”。NULL可以写成大写或小写。

请注意NULL值不同于数字类型的0或字符串类型的空字符串。

整数类型

M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关,

如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性。

SERIAL是BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE的一个别名。

类型

字节

最小值

最大值

格式

 

 

(带符号的/无符号的)

(带符号的/无符号的)

 

TINYINT

 

1

 

-128

127

TINYINT[(M)] [UNSIGNED] [ZEROFILL]

0

255

SMALLINT

 

2

 

-32768

32767

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

0

65535

MEDIUMINT

 

3

 

-8388608

8388607

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

0

16777215

INT(INTEGER)

 

4

 

-2147483648

2147483647

INT[(M)] [UNSIGNED] [ZEROFILL]

INTEGER[(M)] [UNSIGNED] [ZEROFILL]

0

4294967295

BIGINT

 

8

 

-9223372036854775808

9223372036854775807

  BIGINT[(M)] [UNSIGNED] [ZEROFILL]

0

18446744073709551615

 

浮点型和定点型

M 表示:数据的总长度(不包括小数点); D 表示:小数位;按四舍五入计算

类型

字节

带符号无符号格式

FLOAT

 

4

 

-3.402823466E+38~-1.175494351E-38, 0, 1.175494351E-38~ 3.402823466E+380,1.175494351E-38~3.402823466E+38FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

DOUBLE

 

2

 

-1.7976931348623157E+308~-
2.2250738585072014E-308,
0,2.2250738585072014E-308
~1.7976931348623157E+308
0,2.2250738585072014E-308~1.7976931348623157E+308DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

DECIMAL

 

如果M>D
为M+2
否则为D+2

 

  

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

DEC[(M[,D])] [UNSIGNED] [ZEROFILL],

NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]

FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]


日期与时间类型

 

类型

字节数

取值范围

零值

YEAR (2)

1

70~69 表示1970~206900

YEAR (4)默认

1910~2155

0000

DATE

4

1000-01-01~9999-12-31

'0000-00-00 '

TIME

3

-838:59:59~838:59:59

'00:00:00 '

DATETIME

 

8

 

1000-01-01

00:00:00

'0000-00-00 00:00:00 '

 

~9999-12-31

23:59:59

TIMESTAMP

4

19700101080001~20380119111407

00000000000000

 

 

 

 



String类型

许多字符串数据类型的列定义可以包括指定字符集的CHARACTER SET属性,也可能包括校对规则。

CREATE TABLE t(
·                    c1 CHAR(20) CHARACTER SET utf8,
·                    c2 CHAR(20) CHARACTER SET latin1 COLLATE latin1_bin);

该表定义创建了一个名为c1的列,具有一个utf8字符集和该字符集的默认 校对规则,和一个名为c2的列以及latin1字符集和该字符集的二元 校对规则。二元校对规则对大小写不敏感。

 

类型

占用空间字符个数格式

说明

CHAR

M个字节,0 <= M <= 255

0~255[NATIONAL] CHAR(M) [BINARY| ASCII | UNICODE]

固定长度字符串

BINARY属性是指定列字符集的二元 校对规则的简写。排序和比较基于数值字符值。

列类型CHAR BYTE是CHAR BINARY的一个别名。这是为了保证兼容性。

可以为CHAR指定ASCII属性。它分配latin1字符集。

可以为CHAR指定UNICODE属性。它分配ucs2字符集。

 

VARCHAR

L+1个字节,其中L <= M 且0 <= M <= 65535

0-65535[NATIONAL] VARCHAR(M) [BINARY]

可变长度字符串

TINYTEXT

L+1个字节,其中L < 28

0~255  

TEXT

L+2个字节,其中L < 216

0~65535  TEXT[(M)]

大文本(,TEXT,,)

MEDIUMTEXTL+3个字节,其中L < 2240~16777215  
LONGTEXTL+4个字节,其中L < 2320~4,294,967,295  

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

1或2个字节,取决于枚举值的个数

65,535个 

枚举类型(只能取一个元素)

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

1、2、3、4或者8个字节,取决于set成员的数目

64个成员 

集合类型(能取多个元素)

 

 

二进制类型

类型

占用空间字节个数 

说明

BINARY(M)

M个字节,0 <= M <= 255

0~255 

字节数为 M,允许长度为 0~M 的定长二进制字符串

VARBINARY(M)

L+1个字节,其中L <= M 且0 <= M <= 255

0~65535 

允许长度为 0~M 的变长二进制字符串,字节数为值的长度加 1

BIT(M)

大约(M+7)/8个字节

255

BIT[(M)]

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

TINYBLOB

L+1个字节,其中L < 28

0~255 

可变长二进制数据,最多 255 个字节

BLOB

L+2个字节,其中L < 216

0~65535  BLOB[(M)]

可变长二进制数据,最多(216-1)个字节

MEDIUMBLOB

L+3个字节,其中L < 224

0~16777215 

可变长二进制数据,最多(224-1)个字节

LONGBLOB

L+4个字节,其中L < 2320~4,294,967,295 

可变长二进制数据,最多(232-1)个字节

 

特殊的NULL类型

NULL 不是假,也不是真,而是"空"
任何运算符,判断符碰到NULL,都得NULL
NULL的判断只能用is null,is not null
NULL 影响查询速度,一般避免使值为NULL


使用来自其他数据库引擎的列类型

为了使用由其它卖方编写的SQL执行代码,MySQL按照下表所示对列类型进行映射。通过这些映射,可以很容易地从其它数据库引擎将表定义导入到MySQL中:

其它卖方类型

MySQL类型

BOOL,

TINYINT

BOOLEAN

TINYINT

CHAR VARYING(M)

VARCHAR(M)

DEC

DECIMAL

FIXED

DECIMAL

FLOAT4

FLOAT

FLOAT8

DOUBLE

INT1

TINYINT

INT2

SMALLINT

INT3

MEDIUMINT

INT4

INT

INT8

BIGINT

LONG VARBINARY

MEDIUMBLOB

LONG VARCHAR

MEDIUMTEXT

LONG

MEDIUMTEXT

MIDDLEINT

MEDIUMINT

NUMERIC

DECIMAL








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值