【sql】sql中常见的数据类型

本文介绍了SQL中的常见数据类型,包括数值型(整型、小数)、字符型(较短文本如char、varchar,较长文本如text、blob)以及日期型(datetime与timestamp的区别)。强调了数据类型的选用原则,如尽可能选择简单和节省空间的类型,并提供了各种类型的特性和应用场景。


在这里插入图片描述

一、数值型

1.整型

整数类型字节范围
Tinyint1有符号:-128~127;无符号:0 ~255
Smallint2有符号:-32768~ 32767;无符号:0~1677215
Mediumint3有符号:-8388608~8388607;无符号:0 ~1677215
Int、Interger4非常大
Bigint5更加的大

特点:
①数值设定时,默认有符号
②如果插入的数值超出了整型的范围,会报out of range异常,一切插入临界值
③如果不设置长度,会有默认的长度
长度代表了显示的最大宽度,如果不够会用0在左边填充,但必须搭配zerofill使用。且使用了zerofill后该整型就为无符号型的

DROP TABLE IF EXISTS tab(
	t1 INT,
	t2 INT(7) UNSIGNED
	t2 INT(7) ZEROFILL 
)

2.小数

浮点数类型floatdouble
字节数48
定点数类型DEC / DECIMA
字节数M+2

特点:
①M和D
M:整数部位+小数部位的总长度
D:小数部位的长度
②M和D都可以省略
如果是DECIMAL,则M默认为10,D默认为0
如果是FLOAT和DOUBLE,则会根据插入的数值的精度来决定精度
③定点型的精确度较高,如果要求插入数值的精度较高,如货币运算等则考虑使用
原则:所选择的类型越简单越好,能保存数值的类型越小越好

二、字符型

1.较短文本

char和varchar类型
说明:用来保存MySQl中较短的字符串

字符串类型最大字符数描述及存储需求特点空间耗费效率
char(M)MM为0~255之间的数固定字符的长度比较耗费
varchar(M)MM为0~65536之间的数可变字符的长度比较节省

binaru和varbinary类型
说明:类似于char和varchar,不同的是他们包含二进制字符串二不包含非二进制字符串

enum类型
说明:又称为枚举类型,要求插入的值必须属于列表中指定的值之一

CREATE TABLE tab(
	s1 ENUM('a','b','c')
)

INSERT INTO tab VALUES('a')
INSERT INTO tab VALUES('b')
INSERT INTO tab VALUES('c')
INSERT INTO tab VALUES('A')//会插入a
INSERT INTO tab VALUES('m')//会插入null,无值显示,但会有一行留出

set类型
说明:和enum类型相似,里面可以保存0~64给成员。和enum类型最大的区别是:set类型一次可以选取多个成员,而enum只能选一个

CREATE TABLE tab(
	s1 ENUM('a','b','c','d')
)

INSERT INTO tab VALUES('a','b','c','d')

2.较长文本

text和blob类型

三、日期型

日期和时间类型字节最小值最大值
date41000-01-019999-12-31
datetime81000-01-01 00:00:009999-12-31 23:59:59
timestamp419700101080012038年的某个时刻
time3-838:59:59838:59:59
year119012155

datetime和timestamp的区别
1.timestamp支持的时间范围较小
2.timestamp和实际时区有关,更能反映实际的日期,而datetime则只能反映出插入时的当地时区
3.timestamp的属性受Mysql版本和SQLMode的影响很大

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值