python mysql 布尔类型吗_2Python全栈之路系列之MysQl基本数据类型

Python全栈之路系列之MySQL基本数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。

MySQL支持多种类型,大致可以分为三类:

数字类型

日期和时间类型

字符串类型

数字类型

类型

大小

用途

BIT

-

二进制

TINYINT

1字节

小整数值

INT or INTEGER

4字节

大整数值

BIGINT

8字节

极大整数值

DECIMAL

对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2

小数值

FLOAT

4字节

单精度浮点数值

DOUBLE

8字节

双精度浮点数值

BOOL, BOOLEAN

-

布尔值

BIT[(M)]

二进制位(101001),m表示二进制位的长度(1-64),默认m=1

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

小整数,数据类型用于保存一些范围的整数数值范围:

范围(有符号)

范围(无符号)

-128 to 127

0 to 255

特别的: MySQL中无布尔值,使用tinyint(1)构造。

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

整数,数据类型用于保存一些范围的整数数值范围:

范围(有符号)

范围(无符号)

-2147483648 to 2147483647

0 to 4294967295

整数类型中的m仅用于显示,对存储范围无限制。例如: int(5),当插入数据2时,select时数据显示为:00002

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

大整数,数据类型用于保存一些范围的整数数值范围:

范围(有符号)

范围(无符号)

-9223372036854775808 to 9223372036854775807

0 to 18446744073709551615

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

准确的小数值,m是数字总个数(负号不算),d是小数点后个数。 m最大值为65,d最大值为30。

特别的:对于精确数值计算时需要用此类型decaimal能够存储精确值的原因在于其内部按照字符串存储。

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

单精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。

无符号:-3.402823466E+38 to -1.175494351E-38,01.175494351E-38 to 3.402823466E+38

有符号:01.175494351E-38 to 3.402823466E+38

数值越大,越不准确

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

双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。

无符号:-1.7976931348623157E+308 to -2.2250738585072014E-30802.2250738585072014E-308 to 1.7976931348623157E+308

有符号:02.2250738585072014E-308 to 1.7976931348623157E+308

数值越大,越不准确

BOOL, BOOLEAN

这些类型是TINYINT的同义词。零值被认为是假的。非零值被认为是正确的:

然而,真假的值仅仅是为了分别为1和0,别名,如下所示:

时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个”零”值,当指定不合法的MySQL不能表示的值时使用”零”值。

类型

大小(字节)

格式

用途

DATE

3

YYYY-MM-DD

日期值

DATETIME

8

YYYY-MM-DD HH

MM.pngSS

混合日期和时间值

TIMESTAMP

8

YYYYMMDD HHMMSS

混合日期和时间值,时间戳

TIME

3

HH

MM.pngSS

时间值或持续时间

YEAR

1

YYYY

年份值

类型

范围

DATE

'1000-01-01' to '9999-12-31'

DATETIME

'1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999'

TIMESTAMP

'1970-01-01 00:00:01.000000' UTC to '2038-01-19 03:14:07.999999'

TIME

'-838:59:59.000000' to '838:59:59.000000'

YEAR

1901 to 2155

字符串类型

类型

大小(字节)

用途

CHAR(M)

0 to 255

固定长度的字符串,即使数据小于M长度,也会占用M长度

VARCHAR(M)

0 to 65535

一个可变长度的字符串,M表示在字符的最大列长度

TEXT[(M)]

0 to 65535

长文本列

MEDIUMTEXT

0 to 16777215

中等长度文本列

LONGTEXT

4294967295 or 4GB

极大文本列

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

枚举类型

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

集合类型

VARCHAR(M)注

虽然VARCHAR(M)使用起来较为灵活,但是从整个系统的性能角度来说,CHAR(M)数据类型的处理速度更快,有时甚至可以超出VARCHAR(M)处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡

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

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

SET是一个字符串对象,它可以有0或更多个值,每个值均必须选自一个允许值列表中,该列表在表创建时被指定。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值