1. 首页 > 笙耀百科 >

mysqlnumber类型_mysql中数字类型

MySQL数据库中salary列的类型在数据库中是number(8,2)时候怎么填呢?分别代表什么意思呢

1.常规Hibernate 映射

mysqlnumber类型_mysql中数字类型mysqlnumber类型_mysql中数字类型


integer 或者 int

int 或者 ja.lang.Integer

INTEGER

4 字节

long

long Long

BIGINT

8 字节

short

short Short

SMALLINT

2 字节

byte

byte Byte

TINYINT

1 字节

float

float Float

FLOAT

4 字节

double

double Double

DOUBLE

8 字节

big_decimal

ja.math.BigDecimal

NUMERIC

NUMERIC(8,2)8 位

character

char Character String

CHAR(1)

定长字符

string

String

VARCHAR

变长字符串

boolean

boolean Boolean

BIT

布尔类型

yes_no

boolean Boolean

CHAR(1) (Y-N)

布尔类型

true_false

boolean Boolean

CHAR(1) (T-F)

布尔类型

2 、 Ja 时间和日期类型的 Hibernate 映射

映射类型

Ja 类型

标准 SQL 类型

描述

date

util.Date 或者 sql.Date

DATE

YYYY-MM-DD

time

Date Time

TIME

HH:MM:SS

timestamp

Date Timestamp

TIMESTAMP

YYYYMMDDHHMMSS

calendar

calendar

TIMESTAMP

YYYYMMDDHHMMSS

calendar_date

calendar

DATE

YYYY-MM-DD

3 、 Ja 大对象类型的 Hibernate 映射类型

映射类型

Ja 类型

标准 SQL 类型

MySQL 类型

Oracle 类型

binary

byte[]

VARBINARY( 或 BLOB)

BLOB

BLOB

text

String

CLOB

TEXT

CLOB

serializable

Serializable 接口任意实现类

VARBINARY( 或 BLOB)

BLOB

BLOB

clob

ja.sql.Clob

CLOB

TEXT

CLOB

blob

ja.sql.Blob

BLOB

BLOB

BLOB

在程序中通过 Hibernate 来保存 ja.sql.Clob 或者 ja.sql.Blob 实例时,必须包含两个步骤:

1.在一个数据库事务中先保存一个空的 Blob 或 Clob 实例。

2.接着锁定这条记录,更新上面保存的 Blob 或 Clob 实例,把二进制数据或文本数据写到 Blob 或 Clob 实例中

oracle中的number类型对应mysql里面什么类型啊

Number在Oracle中是数值型的统称,可以表示Oracle中的所有数值。而MySQL没有数值的统称,只有分别的数据类型,例如 INT、FLOAT、DOUBLE等。

MySQL的数值类型有如下几种 :

扩展资料

ORACLE的数据类型

CHAR 固定长度字符串,长度2000 bytes;

VARCHAR2 可变长度的字符串 长度4000 bytes 可做索引的长度749;

NCHAR 根据字符集而定的固定长度字符串 长度2000 bytes;

NVARCHAR2 根据字符集而定的可变长度字符串 长度4000 bytes;

DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS);

LONG 数据类型中存储的是可变长字符串,长度限制是2GB;

RAW 固定长度的二进制数据 长度2000 bytes 可存放多媒体图象声音等;

LONG RAW 可变长度的二进制数据 长度2G 可存放多媒体图象声音等;

BLOB 二进制数据 长度4G;

CLOB 字符数据 长度4G;

CLOB 根据字符集而定的字符数据 长度4G ;

BFILE 存放在数据库外的二进制数据 长度4G ;

ROWID 数据表中记录的行号 10 bytes ..格式,为0或1;

NROWID 二进制数据表中记录的行号 长度4000 bytes;

NUMBER(P,S) 数字类型 P为总位数,S为小数位数;

DECIMAL(P,S) 数字类型 P为总位数,S为小数位数;

INTEGER 整数类型 小的整数;

FLOAT 浮点数类型 NUMBER(38),双精度;

REAL 实数类型 NUMBER(63),精度更高。

MySQL的数据类型

整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT;

浮点数类型:FLOAT、DOUBLE、DECIMAL;

字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB;

日期类型:Date、DateTime、TimeStamp、Time、Year;

其他数据类型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection。

参考资料来源:

参考资料来源:

mysql建索致insert失败

我们知道,mysql 如果设置了主键或者约束,再插入相同的值会报错。

假设表中设置name字段为索引,在存在 name = '张三' 的情况下,再插入"张三",

insert into sc (name,class,score) values ('张三','三年二班',90);

报错信息如下:> 1062 - Duplicate entry '张三' for key 'name'

那么,对于这种存在键冲突时,如何避免呢?下面,介绍三种方式:

1. insert ignore

insert ignore会忽略数据库中已经存在的数据(根据主键或者索引判断),如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据.

insert ignore into sc (name,class,score) values ('张三','三年二班',90)

执行上面的语句,会发现并没有报错,但是主键还是自动增长了。

2. replace into

replace into 首先尝试插入数据到表中。如果发现表中已经有此行数据(根据主键或者索引判断)则先删除此行数据,然后插入新的数据,否则,直接插入新数据。

使用replace into,你必须具有delete和insert权限

replace into sc (name,class,score) values ('张三','三年二班',90);

此时会发现吕布的班级跟年龄都改变了,但是id也变成的了,所以不是更新,是删除再新增.

3. insert on duplicate key update

如果在insert into 语句末尾指定了on duplicate key update,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致重复的问题,则插入新行,跟普通的insert into一样。

使用insert into,你必须具有insert和update权限

如果有新记录入,则受影响行的值显示1;如果原有的记录被更新,则受影响行的值显示2;如果记录被更新前后值是一样的,则受影响行数的值显示0

insert into sc (name,class,score) values ('张三','三年二班',90) on duplicate key update score=100;

旧数据中张三是三年二班,90分,现在插入,发现只有分数变成了100,班级并没有改变。

id没有发生变化,数据只更新,但是auto_increment还是增长1了。

结论:

这三种方法都能避免主键或者索引重复导致的插入失败问题。

insert ignore 能忽略重复数据,只插入不重复的数据。

replace into 和 insert … on duplicate key update,都是替换原有的重复数据,区别在于replace into是删除原有的行后,再插入新行,如有自增id,这个会造成自增id的改变;insert … on duplicate key update在遇到重复行时,会直接更新原有的行,具体更新哪些字段怎么更新,取决于update后的语句。

oracle的number 19插入到mysql的int 19报错

可能的原因是你为int型增加了精度或者是你的oracle版本过低造成的。

因为在oracle中int型与integer型都是number类型的子类型(int是integer的简写),是为了兼容ANSI/ISO和IBM的数据类型而定义的,它的存储精度是38位,在创表时不要用int型,用int会浪费存储空间,int型列可以定义为number(数字)。

如果是oracle版本过低造成的,您可以尝试安装版本。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息