mysql 不省略0_mysql数据类型和运算符

这篇博客详细介绍了MySQL中的数据类型,包括数值类型、日期/时间类型和字符串类型,特别强调了数值类型中的浮点数和定点数,以及日期/时间类型的年、时间、日期、datetime和timestamp。此外,还涵盖了字符串类型中的char、varchar、text、enum和set。最后,文章讨论了运算符,如算术运算符、比较运算符、逻辑运算符和位运算符,为数据库操作提供了深入理解。
摘要由CSDN通过智能技术生成

MySQL数据类型介绍

一、数据类型简介

数据表由多列字段构成,每一个字段指定了不同的数据类型,指定了数据类型之后,也就决定了向字段

插入的数据内容

不同的数据类型也决定了 MySQL 在存储它们的时候使用的方式,以及在使用它们的时候选择什么运算符

号进行运算

数值数据类型:TINYINT 、SMALINT 、MEDIUMINT 、INT 、BIGINT 、FLOAT 、DOUBLE 、DECIMAL

日期/时间类型:YEAR 、TIME 、DATE 、DATETIME 、TIMESTAMP

字符串类型:CHAR 、VARCHAR 、BINARY 、VARBINARY 、BLOB 、TEXT 、ENUM 、SET

二、数值类型简介

数值类型主要用来存储数字,不同的数值类型提供不同的取值范围,可以存储的值范围越大,所需要的

存储空间也越大

数值类型分为:①整数类型 ②浮点数类型 ③定点数类型

1、整数类型

396a4cd435c364de5298a80e08af614c.png

2、浮点数类型和定点数类型

MySQL 中使用浮点数和定点数来表示小数,浮点数有两种类型:单精度浮点数(FLOAT)和双精度浮点

数(DOUBLE),定点数只有 DECIMAL

浮点数和定点数都可以用 (M,N) 来表示,其中 M 是精度,表示总共的位数,N 是标度,表示小数的位

DECIMAL 实际是以字符串形式存放的,在对精度要求比较高的时候(如货币、科学数据等)使用

DECIMAL 类型会比较好

浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的数据范围,它的缺点是会引起精度问题

232a1e0671829a924f5c1f55c7c9af7a.png

MySQL 日期/时间类型

MySQL 有多种表示日期的数据类型,比如,当只记录年信息的时候,可以使用 YEAR 类型,而没有必要使用 DATE 类型

每一个类型都有合法的取值范围,当指定确实不合法的值时系统将 "零" 值插入到数据库中

2fcaaa088f722585ff9a7526a72cb961.png

1、YEAR

格式:以4位字符串格式表示的 YEAR ,范围为 '1901' ~ '2155'

格式:以4位数字格式表示的 YEAR ,范围为 1901 ~ 2155

格式:以2位字符串格式表示的 YEAR ,范围为 '00' ~ '99' ,其中,'00' ~ '69' 被转换为 2000 ~ 2069,'70' ~ '99' 被转换为 1970 ~ 1999

格式:以2位数字格式表示的 YEAR ,范围为 1 ~ 99 ,其中,1 ~ 69 被转换为 2001 ~ 2069 ,70 ~ 99 被转换为 1970 ~ 1999

2、TIME

TIME 类型的格式为 HH:MM:SS ,HH 表示小时,MM 表示分钟,SS 表示秒

格式:以 'HHMMSS' 格式表示的 TIME ,例如 '101112' 被理解为 10:11:12 ,但如果插入不合法的时间,如 '109712' ,则被存储为 00:00:00

格式:以 'D HH:MM:SS' 字符串格式表示的 TIME ,其中 D 表示日,可以取 0 ~ 34 之间的值,在插入数据库的时候 D 会被转换成小时,如 '2 10:10' 在数据库中表示为 58:10:00 ,即 2x24+10 = 58

3、DATE

DATE 类型的格式为 YYYY-MM-DD ,其中,YYYY 表示年,MM 表示月,DD 表示日

格式:'YYYY-MM-DD' 或 'YYYYMMDD' ,取值范围为 '1000-01-01' ~ '9999-12-3'

格式:'YY-MM-DD' 或 'YYMMDD' ,这里 YY 表示两位的年值,范围为 '00' ~ '99' ,其中,'00' ~ '69' 被转换为 2000 ~ 2069 ,'70' ~ '99' 被转换为 1970 ~ 1999

格式:YY-MM-DD 或 YYMMDD ,数字格式表示的日期,其中 YY 范围为 00 ~ 99 ,其中,00 ~ 69 被转换为 2000 ~ 2069 ,70 ~ 99 被转换为 1970 ~ 1999

4、DATETIME

DATETIME 类型的格式为 YYYY-MM-DD HH:MM:SS ,其中,YYYY 表示年,MM 表示月,DD 表示日,HH 表示小时,MM 表示分钟,SS 表示秒

格式:'YYYY-MM-DD HH:MM:SS' 或 'YYYYMMDDHHMMSS' ,字符串格式,取值范围为 '1000-01-0100:00:00' ~ '9999-12-31 23:59:59'

格式:'YY-MM-DD HH:MM:SS' 或 'YYMMDDHHMMSS' ,字符串格式,其中 YY 范围为 '00' ~ '99' ,其中,'00' ~ '69' 被转换为 2000 ~ 2069 ,'70' ~ '99' 被转换为 1970 ~ 1999

格式:YYYYMMDDHHMMSS 或 YYMMDDHHMMSS ,数字格式,取值范围同上

5、TIMESTAMP

TIMESTAMP 类型的格式为 YYYY-MM-DD HH:MM:SS,显示宽度固定在19个字符

TIMESTAMP 与 DATETIME 的区别在于,TIMESTAMP 的取值范围小于 DATETIME 的取值范围

TIMESTAMP 的取值范围为 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC ,其中 UTC 是世界标准时间,存储时会对当前时区进行转换,检索时再转换回当前时区

二、字符串类型

字符串类型用来存储字符串数据,还可以存储比如图片和声音的二进制数据

MySQL 支持两种字符串类型:文本字符串和二进制字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值