mysql新闻类型数据库_MySQL数据库之数据类型

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

MySQL支持多种类型,大致可分为数值、日期/时间和字符串(字符)类型。

数值:

1.整数(TINYINT SMALLINT MEDIUMINT INT BIGINT)

tinyint[(m)] [unsigned] [zerofill](小整数,用于保存一定范围内的整数)

有符号:-127~128

无符号:0~255

int[(m)][unsigned][zerofill](整数,用于保存一定范围内的整数)

有符号:-2147483648 ~ 2147483647

无符号:0 ~ 4294967295

bigint[(m)][unsigned][zerofill](大整数,用于保存一定范围内的整数)

有符号:(-9233372036854775808,9223372036854775807)

2.小数类型

340e7855bc5ca3737311666329802e19.png

日期:(DATETIME、DATE、TIMESTAMP、TIME和YEAR)

1bcd386af1ae221927842a3b72beed7b.png

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

在实际应用的很多场景中,MySQL的这两种日期类型都能够满足我们的需要,存储精度都为秒,但在某些情况下,会展现出他们各自的优劣。下面就来总结一下两种日期类型的区别。1.DATETIME的日期范围是1001——9999年,TIMESTAMP的时间范围是1970——2038年。2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也依赖于时区。在mysql服务器,操作系统以及客户端连接都有时区的设置。3.DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。4.DATETIME的默认值为null;TIMESTAMP的字段默认不为空(notnull),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。

datetime与timestamp的区别

字符串

207436142124e87a4ed5fa456d6f1946.png

注意:

1. 单独插入时间时,需要以字符串的形式,按照对应的格式插入2. 插入年份时,尽量使用4位值3. 插入两位年份时,<=69,以20开头,比如50, 结果2050>=70,以19开头,比如71,结果1971

MariaDB [db1]>create table t12(y year);

MariaDB [db1]>insert into t12 values-> (50),-> (71);

MariaDB [db1]> select * fromt12;+------+

| y |

+------+

| 2050 |

| 1971 |

+------+

枚举类型与集合类型

字段的值只能在给定范围中选择,如单选框,多选框

enum 单选只能在给定的范围内选一个值,如性别 sex 男male/女female

set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...)

#枚举类型

CREATE TABLE shirts (

name VARCHAR(40),

size ENUM('x-small', 'small', 'medium', 'large', 'x-large')

);

INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small');#集合类型

CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));

INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值