mysql字符类型_MYSQL字符类型大全

=============

MySQL数据类型

=============

整数类型

========

整数类型 字节数 无符号范围 有符号的范围

TINYINT 1 0~255 -128~127

SMALLLINT 2 0~65535 -32768~32767

MEDIUMINT 3 0~16777215 -8388608~8388607

INT 4 0~4294967295 -2147483648~2147483647

BIGINT 8 0~18446744073709551615 -9223372036854775808~9223372036854775808

MySQL支持数据类型的后面指定该类型的显示宽度。其基本形式如下:

数据类型(显示宽度)

默认显示宽度:可以理解为,一个数据类型的默认显示宽度正好是能显示该数据类型的所有值的宽度。

TINYINT 4

SMALLINT 6

MEDIUMINT 9

INT 11 无符号则10

BIGINT 20

在整数类型使用时,可以搭配zerofill参数,zerofill参数表示数字不足的显示空间由0来填充。

注意:使用zerofill时,MySQL会自动加上UNSIGNED属性。那么,该整数类型只能表示无符号数,其显示宽度比默认显示宽度小1。

在设置了显示宽度时,如果插入的数据宽度大小设置的显示宽度时,数据依然可以插入,且能够显示。该设置的宽度失效。

注意:数据的宽度不能大于默认宽度。如果大于默认宽度,那该数据已经超过了该类型的最大值。因为最大值的宽度必须是小于等于默认宽度。如果一个值大于最大值,将不可能插入。

整数类型还有一个AUTO_INCREMENT属性。自增。

浮点数和定点数

==============

MySQL中使用浮点数和定点数来表示小数。

浮点数:单精度浮点数(FLOAT)和双精度浮点数(DOUBLE)。

定义数:DECIMAL

浮点类型 字节数 负数的取值范围 非负数的取值范围

FLOAT 4 -3.402823466E+38~-1.175494351E-38 0和-1.175494351E-38~3.402823466E+38

DOUBLE 8 -1.79769313486223157E+308~-2.2250738585072014E-308 0和-2.2250738585072014E-308~1.79769313486223157E+308

DECIMAL M+2 同DOUBLE 同DOUBLE

定点数的存储空间是根据其精度来决定的。

MySQL中可以指定浮点数的精度: 数据类型(M,D)

M-精度,是数据的总长度,小数点占位置 1000.01

D-标度,小数点后的长度

如果插入的值的精度高于实际定义的精度,系统会自动进行四舍五入处理。float double不会报错,decimal会报一个警告

在存储小数时,建议使用decimal类型,定点数以字符串形式储存。因此,精度要比浮点数要高。而且,浮点数会出现误差,这是浮点数一直存在的缺陷。如果对数据的精度要求比较高,还是选择定点数(DECIMAL)比较安全。

日期与时间类型

==============

数据类型 字节数 取值范围 零值

YEAR 1 1901~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~9999-12-31 23:59:59 0000-00-00 00:00:00

TIMESTAMP 4 19700101080001~20380119111417 00000000000000

YEAR:

超出范围就会插入0000

使用2位字符串表示,'00'~'69'转换为2000~2069,'70'~'99'转换为1970~1999

使用2位数字表示,00~69转换为2000~2069,70~99转换为1970~1999。

注意两位的数字和两位的字符串是不一样的:0-0000 '0''00'-2000

DATE:

4个字节来表示日期。以YYYY-MM-DD的形式来显示DATE类型的值。

1)'YYYY-MM-DD'或'YYYYMMDD'格式的字符串表示。

2)MySQL中还支持一些不严格的语法格式:'YYYYMMDD' 'YYYY@MM@DD' 'YYYY.MM.DD'

3)'YY-MM-DD'或'YYMMDD'格式的字符串表示。

4)YY取值同YEAR类型中的两位字符串的表示一致。

5)YYYYMMDD或YYMMDD格式的数字表示。YY取值同上。

虽然MySQL支持DATE类型的一些不严格的语法格式。但是,实际运用中,最好还是选择标准形式。日期中使用-做分隔符,时间用:做分隔符。如果有特殊需要也可以使用@、* 等特殊字符做分隔符。

使用CURRENT_DATE和NOW()转换为当前系统日期。

字符串类型

==========

字符串类型是MySQL中用来存储字符串的数据类型。字符串类型包括CHAR VARCHAR BLOB TEXT ENUM SET。

CHAR和VARCHAR类型

=================

字符串类型(M) M-该字符串的最大长度为M

CHAR 定长字符类型 0~255

VARCHAR 可变长字符类型 5.0版本以前0~255 5.0版本以后0~65535

CHAR(5)和VARCHAR(5)的区别

插入值 CHAR占用字节数 VARCHAR占用字节数

'' 5 1

'1' 5 2

'123' 5 4

'1234' 5 5

'12345' 5 6

如果插入值的长度大于M,则插入失败。

TEXT类型

========

类型 范围 占用空间

TINYTEXT 0~255 长度+2个字节

TEXT 0~65535 长度+2个字节

MEDIUMTEXT 0~167772150 长度+3个字节

LONGTEXT 0~4294967295 长度+4个字节

ENUM类型

========

又称枚举类型。

ENUM('值1','值2',...,'值n')

n-代表参数列表中的第n个值,这些值末尾的空格会被系统直接删除。

ENUM类型的值只能取列表中的一个元素。

取值列表中最多能有65535成员。

列表中的每一个值都有一个顺序排列的编号,MySQL存入的是这个编号,而不是值。

SET类型

=======

在创建表时,SET类型的取值范围就以列表的形式指定了。

SET('值1','值2',...,'值n')

SET类型的值最多只以是有64个元素构成的组合。取值可以是其中的一个或多个。其它特性,与ENUM类似。

二进制类型

==========

二进制类型是在数据库中存储二进制数据的数据类型。

类型 取值范围

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

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

BIT(M) M位二进制数,M最大值为64

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

BLOB 可变长二进制数据,最多2e16-1个字节

MEDIUMBLOB 可变长二进制数据,最多2e24-1个字节

LONGBLOB 可变长二进制数据,最多2e32-1个字节

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值