js mysql字段类型_MySQL和ORACLE数据库数据类型与java数据类型默认对应

文章详细介绍了MySQL和Oracle数据库中不同类型的数据,如整数、浮点、时间、文本等,并讨论了它们与Java数据类型的对应关系。在MySQL中,讨论了int、float、decimal和varchar等的特性,而Oracle则涵盖了NUMBER、VARCHAR2、DATE等类型。文章还提到了数据类型的存储空间和精度,并给出了MySQL和Oracle数据类型与Java的常见映射表。
摘要由CSDN通过智能技术生成

一、MySQL数据类型与Java数据类型

MySQL 中常见的数据类型:

1、整数类型:tinyint,int,bigint

2、浮点类型:float,double,decimal

3、时间类型:date,dateTime,time,timestamp

4、文本类型:char,varchar,text,tinytext,longtext,json

int 整数型

· tinyint 占用1个字节,取值范围-128到127,tinyint(1)用来表示boolean类型,0代表false,非0代表true

· int占用4个字节,取值范围232,在java中会映射成Integer类型

· bigint占用8个字节,取值范围264,在java中会映射成Long 类型

· MySQL中我们在声明类型时,不管是int(9),bigint(9)后面带的位数9不会限制他们的存值的大小,int(1)它的存执返回也在232 之间,bigint(1)存值范围在264之间;

浮点类型

· float(m,d) 单精度,M是总位数,D是小数点后面的位数。单精度浮点数精确到大约7位小数。

· double(m,d) 双精度,双精度浮点数精确到大约15位小数。

· decimal(m,d) 最大位数(M)为 DECIMAL65.最大支持小数数(D)为30.如果D省略,则默认值为0.如果M省略,则默认值为10。

· float 与decimal 的区别就是float 不精准,可能会丢失小数位值;所以float,double 是非标准数据类型,decimal是标准类型;

varchar存储汉字规则:

4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)

5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节

Mysql4.x中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。

字符类型

· char 占用固定大小空间,长度范围0到255之间的任何值;

· varchar 根据具体的字符大小占用空间,长度可以指定为0到65,535之间的值;

· text 使用的是文本类型,存储的内容比varchar 更大;

· char 与varchar的区别

char(4) 不管存的是'a'还是'abcd' 都占四个字节;存'a '当不满四个字节是会以空格填充;

varchar(4) 存的是'a' 只占一个字节,'abcd'占用四个字节,存的是'abcde'因为长度超过4,会报超过长度的错误;

日期与时间类型

· timestamp 时间戳,占用4个字节 范围是'1970-01-01 00:00:01.000000'UTC到'2038-01-19 03:14:07.999999'UTC。 timestamp不能存储'1970-01-01 00:00:00'这个时间值,需要从01秒开始;如果在做insert或者update时,没有指定明确值,可以通过default current_timestamp 指定为当前时间,on update current_timestamp;UTC 是世界标准时间,也就是存储的时间是按时间标准时间存储的;

· datetime 占用8个字节,时间的取值范围'1000-01-01 00:00:00.000000'到 '9999-12-31 23:59:59.999999'。范围要比timestamp广。

· timestamp 与datetime的区别?

timestamp 占用的空间小,时间范围也小,存储的时间以世界标准时间存储的;datetime存储的是客户端时间;

如:timestamp 字段存了'2019-06-05 19:36:38',datetime 存了'2019-06-05 19:36:38',如果通过set time_zone='+0:00'修改MySQL的时区,以timestamp类型存储的时间会变成'2019-06-05 11:36:38',datetime类型保存的时间不会变,与中国的时区相差8小时;

show variables like '%time_zone%'; 查看时区

精确类型

· SQL标准要求,NUMERIC(M,D)的精度必须准确为M位数字。对于DECIMAL(M,D),标准要求的精度至少为M位数字,但允许更多。在MySQL中,DECIMAL(M,D)和NUMERIC(M,D)是相同的,两者的精度均准确为M位数字。

MySQL数据类型与Java数据类型常用映射如下:

c743a0c8eca4b567e92c3710955bd3c2.png

以上就是我们开发中常用的数据类型,如果还有不满足我们业务需要的类型,查看官网https://dev.mysql.com/doc/refman/8.0/en/set.html

​二、Oracle 数据类型与Java数据类型

ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW& RAW类型、ROWID & UROWID类型 。

字符类型

字符串数据类型还可以依据存储空间分为固定长度类型(CHAR) 和可变长度类型 VARCHAR2/NVARCHAR2)两种。

· 1CHAR 类型

CHAR 类型,定长字符串,会用空格填充来达到其最大长度。非NULL 的CHAR(12)总是包含12 字节信息。CHAR 字段最多可以存储2,000 字节的信息。如果创建表时,不 指定CHAR 长度,则默认为1。

· VARCHAR2 类型

可以存储4,000 字节的信息。类型不同,它不会使用空格填充至最大长度。VARCHAR2 最多以存储4,000字节的信息。

· NVARCHAR2 类型

这是一个包含UNICODE 格式数据的变长字符串。NVARCHAR2 最多可以存储4,000字节的信息。

数字类型

· NUMBER 类型

NUMBER(P,S)是最常见的数字类型。

P 是Precision 的英文缩写,即精度缩写,表示有效数字的位数,最多不能超过38 个有效数字。S 是Scale 的英文缩写,表示小数点数字的位数。

· INTEGER 类型

INTEGER 是NUMBER 的子类型,它等同于NUMBER(38,0),用来存储整数。若插入、更新的数值有小数,则会被四舍五入。

浮点数

· BINARY_FLOAT 类型

BINARY_FLOAT 是32 位、单精度浮点数字数据类型。可以支持至少6 位精度,每个BINARY_FLOAT 的值需要5 个字节,包括长度字节。

· BINARY_DOUBLE

BINARY_DOUBLE 是为64 位,双精度浮点数字数据类型。每个BINARY_DOUBLE的值需要9 个字节,包括长度字节。

日期类型

· DATE 类型

DATE 是最常用的数据类型,日期数据类型存储日期和时间信息。虽然可以用字符或数字类型表示日期和时间信息,但是日期数据类型具有特殊关联的属性。为每个日期值,Oracle存储以下信息: 世纪、年、月、日期、小时、分钟和秒。一般占用7 个字节的存储空间。

· TIMESTAMP 类型

这是一个7 字节或12 字节的定宽日期/时间数据类型。它与DATE 数据类型不同,因TIMESTAMP 可以包含小数秒,带小数秒的TIMESTAMP 在小数点右边最多可以保留9 位。

· TIMESTAMP WITH TIME ZONE 类型

这是TIMESTAMP 类型的变种,它包含了时区偏移量的值。

· TIMESTAMP WITH LOCAL TIME ZONE 类型

将时间数据以数据库时区进行规范化后进行存储

LOB 类型

· CLOB 类型(Character Large Object)

二进制数据,存储单字节和多字节字符数据。最大长度4G。大对象很少使用:如果存在大对象,一般的解决方案: 存入文件地址(地址为程序所在应用服务器的相对路径)。

· BLOB 类型(Binary Large Object)

它存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一是图像、声音、视频等文件。最大长度4G。

CLOB:最大长度4G -->

· NCLOB 数据类型

存储UNICODE 类型的数据,最大长度4G。

LONG & RAW & LONG RAW 类型

· LONG 类型

它存储变长字符串(超长字符串),最多达2G 的字符数据(2GB 是指2 千兆字节, 而不是2 千兆字符)。

· LONG RAW 类型

能存储2GB 的原始二进制数据,可存放多媒体图像声音等。

· RAW 类型

用于存储二进制或字符类型数据,必须制定长度。这种数据类型存储的数据不会发生字符集转换。可存放多媒体图像声音等。

数据库对象:

0825cc23b137ce55b17bd442dad003bc.png

数据库对象的命名规则:

• 必须以字母开头

• 可包括数字和三个特殊字符(# _ $)

• 不要使用oracle的保留字

• 同一用户下的对象不能同名

Oracle数据类型与Java数据类型常用映射如下:

a7e7151b128e212a4f1cc9931141000e.png

以上就是我们开发中常用的数据类型,如果还有不满足我们业务需要的类型,查看官网 : http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/java.102/B19275-03/datacc.htm#BHCJBJCC

————————————————

版权声明:本文为【PythonJsGo】博主的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

博主主页:https://my.oschina.net/u/3375733

本篇文章同步在个人公众号:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值