MySQL 常见数据类型

本文深入探讨了数据库中的数值型、字符型和日期型数据类型,包括它们的特点、使用场景和最佳实践。例如,整形的大小设定、无符号与有符号的区别,小数的定点与浮点类型及其精度,以及字符型中的char与varchar效率对比。同时,还介绍了日期型如datetime与timestamp在时区处理上的差异。理解这些基础知识对于优化数据库设计至关重要。
摘要由CSDN通过智能技术生成

数值型:
	整形 tinyint | smallint | mediumint | int、integer | bigint
	小数
		定点型 dec(m,d) | decinal(m,d)
		浮点型 float(m,d) | double(m,d)
字符型
	较短的文本 :char | varchar
	较长的文本 : text | blob (较长的二进制数据)		
日期型
	date | datetime | timestamp | time | year

一、整形

整形 tinyint | smallint | mediumint | int、integer | bigint

特点
1、如果不设置无符号还是有符号,默认是有符号,如果向设置无符号,需要添加unsigned关键字
2、如果插入的数值超数了整形的范围,会包 out od range 异常,并插入临界值
3、如果不设置长度,会有默认长度(显示结果的长度,如果输入的数据不够,会自动用0填充,
一般不显示出来,需要我们加上 zerofill关键字,且加上此关键字后,自动变为无符号)
1、如何设置有符号和无符号(unsigned)
CREATE TABLE tab_int(
	t1 INT,
	t2 INT UNSIGNED
);

CREATE TABLE tab_int(
	t1 INT(7),
	t2 INT(7) ZEROFILL
);

小数

分类:
定点型 dec(m,d) | decinal(m,d)
浮点型 float(m,d) | double(m,d)
特点:
1、M 整数部分+ 小数部分的长度
   D 小数部分的长度
   如果超过范围,则插入临界值
   
2、M和D都可以省略  
如果是decimal,(M,D)默认为(10,0)
如果是float和double,会根据插入的数值的精度来决定精度

3、定点型的精度较高,如果要求插入数值的精确度较高和货币运算等则考虑使用
   
   
原则:所选择的类型越简单越好,能保存数值的类型越小越好

cerate tab_float(
	f1 FLOAT(5,2),
	f2 DOUBLE(5,2),
	d3 DECIMAL(5,2)
);

三、字符型

分类:
较短的文本 :char(M) | varchar(M) | binary | varbinary | enum | set
较长的文本 : text | blob (较长的二进制数据)

特点:【面试题】
1、M:最多存放的字符数
   char 的 M 可以省略,默认为1
   varchar 的 M 不可以省略
2、char是静态的,固定长度的字符,效率高,耗费空间
   varchar是动态的,可变长度的字符,效率低,节省空间

四、日期型

特点
1、datetime 不受时区影响
   timestamp 受时区影响 

CREATE TABLE tab_date(
	t1 DATETIME,
	t2 TIMESTAMP
);

INSERT INTO tab_date VALUES(NOW(),NOW());
SELECT * FROM tab_date;
SHOW VARIABLES LIKE 'time_zone';
SET time_zone = '+9.00'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值