MySQL数据类型

  • 数字类型

  • 整数: tinyint、smallint、mediumint、int、bigint

  • 浮点数: float、double、real、decimal

  • 日期和时间: date、time、datetime、timestamp、year

  • 字符串类型

  • 字符串: char、varchar

  • 文本: tinytext、text、mediumtext、longtext

  • 二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

数字类型

整型

type

Storage

Minumun Value

Maximum Value

(Bytes)

(Signed/Unsigned)

(Signed/Unsigned)

TINYINT

1

-128

127

0

255

SMALLINT

2

-32768

32767

0

65535

MEDIUMINT

3

-8388608

8388607

0

16777215

INT

4

-2147483648

2147483647

0

4294967295

BIGINT

8

-9223372036854775808

9223372036854775807

0

18446744073709551615

浮点型

属性

存储空间

精度

精确性

说明

FLOAT(M, D)

4 bytes

单精度

非精确

单精度浮点型,m总个数,d小数位

DOUBLE(M, D)

8 bytes

双精度

比Float精度高

双精度浮点型,m总个数,d小数位

  • FLOAT容易造成精度丢失

定点数DECIMAL

  • 高精度的数据类型,常用来存储交易相关的数据

  • DECIMAL(M,N).M代表总精度,N代表小数点右侧的位数(标度)

  • 1 < M < 254, 0 < N < 60;

  • 存储空间变长

时间类型

类型

字节

精确性

DATE

三字节

2015-05-01

精确到年月日

TIME

三字节

11:12:00

精确到时分秒

DATETIME

八字节

2015-05-01 11::12:00

精确到年月日时分秒

TIMESTAMP

2015-05-01 11::12:00

精确到年月日时分秒

  • MySQL在5.6.4版本之后,TIMESTAMPDATETIME支持到微秒。

  • TIMESTAMP会根据系统时区进行转换,DATETIME则不会

  • 存储范围的区别

  • TIMESTAMP存储范围:1970-01-01 00::00:01 to 2038-01-19 03:14:07

  • DATETIME的存储范围:1000-01-01 00:00:00 to 9999-12-31 23:59:59

  • 一般使用TIMESTAMP国际化

  • 如存时间戳使用数字类型BIGINT

字符串类型

类型

单位

最大

特性

CHAR

字符

最大为255字符

存储定长,容易造成空间的浪费

VARCHAR

字符

可以超过255个字符

存储变长,节省存储空间

TEXT

字节

总大小为65535字节,约为64KB

-

  • TEXT在MySQL内部大多存储格式为溢出页,效率不如CHAR

  • Mysql默认为utf-8,那么在英文模式下1个字符=1个字节,在中文模式下1个字符=3个字节。

以上内容转载自:https://github.com/jaywcjlove/handbook/edit/master/MySQL/MySQL数据类型.md

JAVA数据类型在MySql中的对应

java类

mysql数据库

java.lang.Byte

byte

TINYINT

java.lang.Short

short

SMALLINT

java.lang.Integer

integer

INGEGER

java.lang.Long

long

BIGINT

java.lang.Float

float

FLOAT

java.lang.Double

double

DOUBLE

java.lang.BigDecimal

big_decimal

NUMERIC

java.lang.Boolean

boolean

BIT

java.lang.String

string

VARCHAR

java.lang.Boolean

yes_no

CHAR(1)(‘Y’或’N’)

java.lang.Boolean

true_false

CHAR(1)(‘Y’或’N’)

java.uitl.Date / java.sql.Date

date

DATE

java.sql.Time

time

TIME

java.sql.Timestamp

timestamp

TIMESTAMP

java.uitl.Calendar

celendar

TIMESTAMP

java.uitl.Calendar

calendar

TIMESTAMP

java.io.Serializable

serializable

VARBINARY/BLOB

java.sql.Clob

clob

CLOB

java.sql.Blob

blob

BLOB

java.lang.Class

class

VARCHAR

java.uitl.Locale

locale

VARCHAR

java.uitl.TimeZone

timezone

VARCHAR

java.uitl.Currency

currency

VARCHAR

原文链接:https://blog.csdn.net/weixin_39746740/article/details/82053908

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐