mysql中数据类型的分类

1.整数类型

TINYINT1-128~1270~255
SMALLINT2-32768~327670~65535
MEDIUMINT3-8388608~83886070~16777215
INT、INTEGER4-2147483648~21474836470~4294967295
BIGINT8-9223372036854775808~92233720368547758070~18446744073709551615

ZEROFILL :表示用数字0填满宽度,否则指定宽度无效
代码示例:

CREATE TABLE test1 
(a int(3) zerofill);

UNSIGNED:无符号类型,最小取值为0,int类型默认显示宽度为int(11),无符号int类型默认显示宽度为int(10)。
代码示例:

CREATE TABLE test2(
a INT UNSIGNED
);

int(n),必须和UNSIGNED ZEROFILL一起使用才有意义。

2.浮点数类型

FLOAT 表示单精度浮点数;
DOUBLE 表示双精度浮点数;
REAL默认就是 DOUBLE。若你将 SQL 设定为“ REAL_AS_FLOAT ”,那 么,MySQL 就认为REAL 是 FLOAT。(SET sql_mode = “REAL_AS_FLOAT”;)

代码示例:

CREATE TABLE test3(
a FLOAT,
b FLOAT(3,2),
c DOUBLE,
d DOUBLE(3,2)
);

FLOAT(M,N) 或 DOUBLE(M,N) 。这里,M称为 精度 ,N称为 标度 。(M,N)中 M=整数位+小数
位,N=小数位。 N<=M<=255,0<=N<=30。

3.定点数类型

DECIMAL(M,N)的最大取值范围与DOUBLE类型一样,但是有效的数据范围是由M和N决定的;DECIMAL默认为DECIMAL(10,0);

代码示例:

CREATE TABLE test5(
a DECIMAL,
b DECIMAL(3,2)
);

decimal比浮点数更为精准,推荐使用decimal。

4.时间类型

YEAR1YYYY或YY19012155
TIME时间3HH:MM:SS-838:59:59838:59:59
DATE日期3YYYY-MM-DD1000-01-019999-12-03
DATETIME日期
时间
8YYYY-MM-DD
HH:MM:SS
1000-01-01
00:00:00
9999-12-31
23:59:59
TIMESTAMP日期
时间
4YYYY-MM-DD
HH:MM:SS
1970-01-01
00:00:00 UTC
2038-01-19
03:14:07UTC

5.文本类型

CHAR(a)固定长度a0 <= a <= 255a个字节
VARCHAR(a)可变长度a0 <= a<= 65535(实际长度 + 1) 个字节
CHAR(a)固定长度浪费存储空间效率高存储不大,速度要求高
VARCHAR(a)可变长度节省存储空间效率低非CHAR的情况

6.ENNU和SET类型

使用ennu和set时,只能使用指定字段。

代码示例:

CREATE TABLE test7(
a SET ('A', 'B', 'C')
b ENNU('A', 'B', 'C')
);

两者的区别是:ENUM类型指定的只能从其中选取单个值就行添加,SET指定的可以同时选多个值进行添加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值