欢迎访问wabc.cc — 源码交易 · 软件定制 · 建站服务一站式平台
全部分类
首页 - 首页 - 解决方案 - 推荐文章 - Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习-MySQL数据库之数据类型都有那些你知道吗?

分类:推荐文章 · 发布:2025-12-20 · 浏览:2

小伙伴们

我们继续搞数据库

今天分享的是数据库的数据类型

首先来看一下图

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

MySQL数据库的数据类型主要是分为数值型,日期时间型以及字符串型这三个大类,看着很多觉得记不住很麻烦是不是,不用担心其实现在我们常用的就那么几个

整数型的 tinyint 和 bigint

小数型的 decimal

日期时间类型 datetime 和 timestamp

字符串型是 char 和 varchar

这样看起来是不是就没有那么多了呢?

数值型

整数型

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

是否有符号,可在定义时使用unsigned标识,

如果没有,不写就认为是有符号。

我们直接上手试验一下

先把建表的语句写好

create table tb1_int( a tinyint unsigned, b tinyint);insert into tb1_int values(255, 127);insert 
into tb1_int values(256, 128);insert into tb1_int values(0, 128);

创建一个表向表中插入数据

Java学习-MySQL数据库之数据类型都有那些你知道吗?

第一条语句插入成功

第二条语句

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

失败 :a列的值超出范围

第三条

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

失败:b列的值超出范围

整数型就验证这一个例子哈!

在这边给大家扩充一个小知识点!

zerofill

通过规定数据的显示宽度,达到统一显示的目的

语句:

alter table tb1_int add c tinyint(3) zerofill;insert into tb1_int values(0, 127, 1);insert into
 tb1_int values(0, 127, 5);insert into tb1_int values(0, 127, 7);

alter table tb1_int add c tinyint(3) zerofill;

类型(M), M表示显示的最小宽度

效果:

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

java中的 boolean 类型, 在数据库中可以用 bit, tinyint(1),来存储

0对应false 1 对应true

整数类型中最常用的是:

tinyint , int 对应 java 中的 int

bigint 对应 java 中的 long

小数类型

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

语句:

单精度

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

双精度

DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

利用 M,D 控制数值范围;支持无符号;可以zerofill;

其中 M 表示总的位数,D 表示小数位数。此 M,D 可以控制保存的范围。

例:Float(10,2) -99999999.99 到 99999999.99

如果省略 M,D 会根据计算机硬件进行处理。

单精度,M大约为7左右

而双精度,M大约为15左右

科学计数法

-3.402823466E+38 = -3.402823466 * 10^38

123.456 在磁盘上是如何存储的?

0.123456 * 10^3 实际上存储的是: 123456 3

这样存储会出现了精度的丢失。

我们来验证一下

create table num_1(a float,b double);insert into num_1 values(1234567890.0123456789, 
1234567890.0123456789);

效果:

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

Float 精度为6位左右。 Double的精度为16位左右。

因为 float 和 double 会出现精度的丢失,所以在精确度要求高的场所用 decimal。

Decimal 定点数型

定点数

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

其中M表示总的位数,D表示小数位数。此M,D可以控制保存的范围。

M,D省略,默认为10,0;

create table num_2( send_money decimal(6,2));insert into num_2 values(9999.99);

效果:

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

所以要是小伙伴们以后要存储一些涉及到钱的数据要记得 用Decimal

decimal 对应 java BigDecimal java.math.BigDecimal

日期时间类型

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

这边就不一一介绍了

Timestamp 时间戳:存储的时候是整型,显示的时候是日期类型

至于为什么时间戳的最大值是2038年小伙伴们自己去百度吧!蛮有意思的呢!

create table dt_1( a datetime, b timestamp);insert into dt_1 values('2017-11-04 19:20:00',
 now());

效果:

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

datetime 对应 Java Date

字符类型

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

blob 对应 java byte[]

enum 对应 java 里 Enum 枚举类型

set 对应 java里 set 类型

char varchar text : 对应 Java String

Char & varchar

CHAR 和 VARCHAR 类型声明的长度表示你想要保存的最大字符数。

Char(5) Varchar(5)

Char :

定长字符串,保存时如果字符串长度不够,则后边补足空字符串;但是在读取到数据是,会截取后边所有的字符串。

Varchar :

变长字符串。在保存字符串时,同时保存该字符串的长度,小于255采用一个字节保存,否则采用二个字节保存。

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

text 就是储存长文本类型

char、varchar 和 text 总结:

经常变化的字段用 varchar

知道固定长度的用 char

超过255字符的只能用 varchar 或者 text

能用 varchar 的地方不用 text

我们再来看一下枚举类型 里面实际上存储的就是整形,例如我们规定存储 boy和 girl 里面实际存储的是1和2

create table s_8( gender enum('boy', 'girl'));insert into s_8 values('girl');insert into s_8 
values('boy');insert into s_8 values('other');

效果:

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

在枚举类型中我们只能插入写好的内容

set是一个集合类型!

create table s_6( hobby set('A', 'B', 'C'));insert into s_6 values('A');insert into s_6 
values('B,C');

效果:

Java学习-MySQL数据库之数据类型都有那些你知道吗?

Java学习交流群495273252

在 set 类型我们可以多选

blob 是存储的是二进制类型,图片 文件 视频 音频都可以用这个存储,但在实际应用中我们一般会把这些东西存在文件服务器中,所以用的很少,我们知道有这个就可以了!

设计数据类型要考量:

1.使用最精确的类型,占用最少的空间。

(现在考虑的少了因为磁盘便宜了)

2 还应该考虑到相关语言处理方便性。

像我们用得是 Java 语言,要考虑使用在Java中有对应类的类型

3 考虑移值的兼容性。

我们现在用 MySQL 来存储数据,万一要把数据移到 oracle 数据库呢!

上次留言说想知道 decimal的伙伴

现在知道了吗?

今天就到这儿了

再见了


上一篇:遍地都是互联网+,传统工业靠谁“挑大梁”!
下一篇:家居摆放讲究多,貔貅这样放准没错!

相关文章

源码分类

热门源码

最新资讯

联系我们