常见的数据类型
-
数值型:
- 整型
- 小数:
- 定点数
- 浮点数
-
字符型:
- 较短的文本:char、varchar
- 较长的文本:text、blob(较长的二进制数据)
-
日期型:
date、time、year、datetime、timestamp -
原则:
所选择的类型越简单越好,能保存数值的类型越小越好
一、整型
- 分类:
tinyint、smallint、 mediumint、int/integer、bigint
| 整数类型 | 字节数 | 范围 |
|---|---|---|
| tinyint | 1 | -128~127 |
| smallint | 2 | 很大 |
| mediumint | 3 | 很大 |
| int/integer | 4 | 很大 |
| bigin | 8 | 很大 |
特点:
- 如果不设置无符号还是有符号,默认是有符号
- 添加unsigned关键字,设置无符号
- 如果插入的数值超出了整型的范围,会报out of range异常,并且插入临界值
- 如果不设置长度,会有默认的长度
长度代表了显示的最大宽度,如果不够会用0在左边填充,但必须搭配zerofill使用!
drop table if exists tab_int;
creat table tab_int
(
t1 INT(7) zerofill,
t2 INT(7) zerofill
);
insert into tab_int values(-123456);
insert into tab_int values(-123456,-123456);
insert into tab_int values(2147483648,4294967296);
insert into tab_int values(123,123);
二、小数
分类:
1. 浮点型
float(M,D)
double(M,D)
2. 定点型
dec(M,D)
decimal(M,D)
特点:
-
- M:整数位数 + 小数位数
- D:保留小数位数
如果超过范围,则插入临界值
-
- M和D都可以省略
- 从如果是decimal,则默认M为10,D为0
- 如果是float和double,则会根据插入的数值的精度来决定精度
-
定点型的精确度较高,如果要求插入数值的精度较高如货币运算等则考虑使用
| 浮点类型 | 字节数 |
|---|---|
| float(M,D) | 4 |
| double(M,D) | 8 |
| 定点类型 | 字节数 |
|---|---|
| dec(M,D) | M+2 |
| decimal(M,D) | M+2 |
drop table tab_float;
creat table tab_float
(
f1 float,
f2 double,
f3 decimal
);
insert into tab_float values(123.4523,123.4523,123.4523);
insert into tab_float values(123.456,123.456,123.456);
insert into tab_float values(123.4,123.4,123.4);
insert into tab_float values(1523.4,1523.4,1523.4);
三、字符型
-
较短的文本:
- char(M):固定长度的字符
- varchar(M):可变长度的字符。
-
较长的文本:
text
blob(较大的二进制)
其他:
binary和varbinary用于保存较短的二进制
enum用于保存枚举
set用于保存集合
| 字符串类型 | 字符数 |
|---|---|
| char(M) | M |
| varchar(M) | M |
特点:
| 写法 | M的意思 | M可否省略 | 特点 | 空间 | 效率 | |
|---|---|---|---|---|---|---|
| char | char(m) | 最大字符数 | 可以省略,默认值为1 | 固定长度字符 | 大 | 高 |
| varchar | varchar(m) | 最大字符数 | 不能省略 | 可变长度字符 | 小 | 低 |
四、日期型
-
分类:
date只保存日期
time 只保存时间
year只保存年datetime保存日期+时间
timestamp保存日期+时间 -
特点:
字节数 范围 时区影响 datetime 8 1000-9999 不受 timestamp 4 1970-2038 受
-
创建一个表
creat table tab_date
(
t1 datetime,
t2 timestamp
); -
插入两个如期值
insert into tab_date values(now(),now()); -
查看一下当前时区
show variables like 'time_zone'; -
修改时区
set time_zone='+9:00';
数据库中的常见数据类型详解
本文详细介绍了数据库中常见的数据类型,包括整型(tinyint、smallint等)、小数(浮点型、定点型)、字符型(char、varchar、text、blob)以及日期型(date、time等)。讨论了各类数据类型的字节数、范围、特点以及使用注意事项,如精度、存储效率和空间占用。此外,还提到了字符串类型中的二进制数据和枚举、集合类型。
5537

被折叠的 条评论
为什么被折叠?



