精华内容
下载资源
问答
  • 数据库数据类型 - char() 填坑

    千次阅读 2019-06-25 17:13:55
    此博客记录一次数据库数据类型 - char(10)造成的查询记录数目不匹配的问题,仅作相关参考。 问题描述: 在java中使用如下查询语句获得某个记录在数据库TB_A表中匹配次数。 select count(*) as NUM from TB_A ...

    此博客记录一次数据库数据类型 - char(10)造成的查询记录数目不匹配的问题,仅作相关参考。

    问题描述:

    在java中使用如下查询语句获得某个记录在数据库TB_A表中匹配次数。

    select count(*) as NUM from TB_A where data_no = ?

    然后使用ResultSet获得NUM的值(中间setParameter之类的细节省略),然而得到的count值无论如何都是0,但是某些记录确实在TB_A表中有匹配。

    ResultSet rs = preparedStatement(SQL);
    rs.next();
    int count = rs.getInt("NUM");

    范例:

    此时有一个记录data_no 是 '1001',也确实在数据库中真实存在。

    使用

    select count(*) as NUM from TB_A where data_no = '1001'

     在SQLDeveloper中执行得到NUM的值为1,但是JAVA程序执行后得到的却是0。

    经过不断的排查,发现数据库中TB_A的 data_no字段的数据类型为 char(10)

    char(10)和varchar2(10)有什么区别?

    char类型的字段长度是固定的,而varchar2类型的字段长度是不固定的。

    拿本例来说:data_no 是 ‘1001’

    如果data_no的数据类型是char(10),那么该字段的实际存储为1001再补上6个空格。

    而如果data_no的数据类型是varchar2(10),那么该字段的实际存储为1001。

    char会预先分配存储空间,而varchar不会预先分配存储空间。

    解决方案:

    将java中的sql语句修改为:

    select count(*) as NUM from TB_A where trim(data_no) = ?

    总结:

    当数据库表的某个字段类型为char()时,应当注意其自动填充空格补齐位数的特性。

     

     

    展开全文
  • java数据类型,hibernate数据类型,标准sql数据类型之间的对应表Java数据类型Hibernate数据类型标准SQL数据类型(PS:对于不同的DB可能有所差异)byte、java.lang.BytebyteTINYINTshort、java.lang....
    java数据类型,hibernate数据类型,标准sql数据类型之间的对应表

    Java数据类型
    Hibernate数据类型
    标准SQL数据类型
    (PS:对于不同的DB可能有所差异)
    byte、java.lang.Byte
    byte
    TINYINT
    short、java.lang.Short
    short
    SMALLINT
    int、java.lang.Integer
    integer
    INGEGER
    long、java.lang.Long
    long
    BIGINT
    float、java.lang.Float
    float
    FLOAT
    double、java.lang.Double
    double
    DOUBLE
    java.math.BigDecimal
    big_decimal
    NUMERIC
    char、java.lang.Character
    character
    CHAR(1)
    boolean、java.lang.Boolean
    boolean
    BIT
    java.lang.String
    string
    VARCHAR
    boolean、java.lang.Boolean
    yes_no
    CHAR(1)('Y'或'N')
    boolean、java.lang.Boolean
    true_false
    CHAR(1)('Y'或'N')
    java.util.Date、java.sql.Date
    date
    DATE
    java.util.Date、java.sql.Time
    time
    TIME
    java.util.Date、java.sql.Timestamp
    timestamp
    TIMESTAMP
    java.util.Calendar
    calendar
    TIMESTAMP
    java.util.Calendar
    calendar_date
    DATE
    byte[]
    binary
    VARBINARY、BLOB
    java.lang.String
    text
    CLOB
    java.io.Serializable
    serializable
    VARBINARY、BLOB
    java.sql.Clob
    clob
    CLOB
    java.sql.Blob
    blob
    BLOB
    java.lang.Class
    class
    VARCHAR
    java.util.Locale
    locale
    VARCHAR
    java.util.TimeZone
    timezone
    VARCHAR
    java.util.Currency
    currency
    VARCHAR

    展开全文
  • MySQL_数据库数据类型(data type)介绍

    千次阅读 2015-04-01 16:34:46
    MySQL_数据库数据类型(data type)介绍 mysql数据库的数据类型(data type)分以下几种:数值类型,字符串类型  一、数值类型 MySQL 的数值类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子...

    转载链接:http://www.360sdn.com/mysql/2013/0511/78.html


    MySQL_数据库数据类型(data type)介绍 mysql数据库的数据类型(data type)分以下几种:数值类型,字符串类型

     一、数值类型

    MySQL 的数值类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补。

    下表列出了各种数值类型以及它们的允许范围和占用的内存空间。

    类型 字节大小 范围(有符号) 范围(无符号) 用途
    TINYINT 1 字节 最小:-128
    最大:127
    最小:0
    最大:255
    小整数值
    SMALLINT 2 字节 最小:-32768
    最大:32767
    最小:0
    最大:65535
    短整数值
    MEDIUMINT 3 字节 最小:-8388608
    最大:8388607
    最小:0
    最大:16777215
    大整数值
    INT或INTEGER 4 字节 最小:-2147483648
    最大:2147483647
    最小:0
    最大:4294967295
    大整数值
    BIGINT 8 字节 最小:-9233372036854775808
    最大:9223372036854775807
    最小:0
    最大:18446744073709551615
    极大整数值
    FLOAT 4 字节     单精度
    浮点数值
    DOUBLE 8 字节     双精度
    浮点数值
    DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

    INT类型

    在 MySQL 中支持的 5 个主要整数类型是 TINYINT,SMALLINT,MEDIUMINT,INT 和 BIGINT。这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。

    MySQL 以一个可选的显示宽度指示器的形式对 SQL 标准进行扩展,这样当从数据库检索一个值时,可以把这个值加长到指定的长度。例如,指定一个字段的类型为 INT(6),就可以保证所包含数字少于 6 个的值从数据库中检索出来时能够自动地用空格填充。需要注意的是,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围。

    万一我们需要对一个字段存储一个超出许可范围的数字,MySQL 会根据允许范围最接近它的一端截短后再进行存储。还有一个比较特别的地方是,MySQL 会在不合规定的值插入表前自动修改为 0。

    UNSIGNED 修饰符规定字段只保存正值。因为不需要保存数字的正、负符号,可以在储时节约一个“位”的空间。从而增大这个字段可以存储的值的范围。

    ZEROFILL 修饰符规定 0(不是空格)可以用来真补输出的值。使用这个修饰符可以阻止 MySQL 数据库存储负值。

    FLOAT、DOUBLE 和 DECIMAL 类型

    MySQL 支持的三个浮点类型是 FLOAT、DOUBLE 和 DECIMAL 类型。FLOAT 数值类型用于表示单精度浮点数值,而 DOUBLE 数值类型用于表示双精度浮点数值。

    与整数一样,这些类型也带有附加参数:一个显示整个数据宽度和一个小数点后数据位数。比如语句 FLOAT(7,3) 规定显示的值不会超过 7 位数字,小数点后面带有 3 位数字。

    对于小数点后面的位数超过允许范围的值,MySQL 会自动将它四舍五入为最接近它的值,再插入它。

    DECIMAL 数据类型用于精度要求非常高的计算中,这种类型允许指定数值的精度和计数方法作为选择参数。精度在这里指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的位数。比如语句 DECIMAL(7,3) 规定了存储的值不会超过 7 位数字,并且小数点后不超过 3 位。

    忽略 DECIMAL 数据类型的精度和计数方法修饰符将会使 MySQL 数据库把所有标识为这个数据类型的字段精度设置为 10,计算方法设置为 0。

    UNSIGNED 和 ZEROFILL 修饰符也可以被 FLOAT、DOUBLE 和 DECIMAL 数据类型使用。并且效果与 INT 数据类型相同。

    二、字符串类型

    MySQL 提供了 8 个基本的字符串类型,可以存储的范围从简单的一个字符到巨大的文本块或二进制字符串数据。

    类型 大小 用途
    CHAR 0-255字节 定长字符串
    VARCHAR 0-255字节 变长字符串
    TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串
    TINYTEXT 0-255字节 短文本字符串
    BLOB 0-65535字节 二进制形式的长文本数据
    TEXT 0-65535字节 长文本数据
    MEDIUMBLOB 0-16777215字节 二进制形式的中等长度文本数据
    MEDIUMTEXT 0-16777215字节 中等长度文本数据
    LOGNGBLOB 0-4294967295字节 二进制形式的极大文本数据
    LONGTEXT 0-4294967295字节 极大文本数据

    CHAR 和 VARCHAR 类型

    CHAR 类型用于定长字符串,并且必须在圆括号内用一个大小修饰符来定义。这个大小修饰符的范围从 0-255。比指定长度大的值将被截短,而比指定长度小的值将会用空格作填补。

    CHAR 类型可以使用 BINARY 修饰符。当用于比较运算时,这个修饰符使 CHAR 以二进制方式参于运算,而不是以传统的区分大小写的方式。

    CHAR 类型的一个变体是 VARCHAR 类型。它是一种可变长度的字符串类型,并且也必须带有一个范围在 0-255 之间的指示器。CHAR 和 VARCHGAR 不同之处在于 MuSQL 数据库处理这个指示器的方式:CHAR 把这个大小视为值的大小,不长度不足的情况下就用空格补足。而 VARCHAR 类型把它视为最大值并且只使用存储字符串实际需要的长度(增加一个额外字节来存储字符串本身的长度)来存储值。所以短于指示器长度的 VARCHAR 类型不会被空格填补,但长于指示器的值仍然会被截短。

    因为 VARCHAR 类型可以根据实际内容动态改变存储值的长度,所以在不能确定字段需要多少字符时使用 VARCHAR 类型可以大大地节约磁盘空间、提高存储效率。

    VARCHAR 类型在使用 BINARY 修饰符时与 CHAR 类型完全相同。

    下面的表显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别:

    CHAR(4) 存储需求 VARCHAR(4) 存储需求
    '' ' ' 4个字节 '' 1个字节
    'ab ' 'ab ' 4个字节 'ab ' 3个字节
    'abcd' 'abcd' 4个字节 'abcd' 4个字节
    'abcdefgh' 'abcd' 4个字节 'abcd' 4个字节

    请注意上表中最后一行的值只适用不使用严格模式时,如果MySQL运行在严格模式,超过列长度不的值不保存,并且会出现错误。

    错误信息如下:

    ATE TABLE vc (v VARCHAR(4), c CHAR(4));
    INSERT INTO vc VALUES ('abcde', 'abcdef');
    1406 - Data too long for column 'v' at row 1
    TEXT 和 BLOB 类型

    对于字段长度要求超过 255 个的情况下,MySQL 提供了 TEXT 和 BLOB 两种类型。根据存储数据的大小,它们都有不同的子类型。这些大型的数据用于存储文本块或图像、声音文件等二进制数据类型。

    TEXT 和 BLOB 类型在分类和比较上存在区别。BLOB 类型区分大小写,而 TEXT 不区分大小写。大小修饰符不用于各种 BLOB 和 TEXT 子类型。比指定类型支持的最大范围大的值将被自动截短。

    三、 日期和时间类型

    在处理日期和时间类型的值时,MySQL 带有 5 个不同的数据类型可供选择。它们可以被分成简单的日期、时间类型,和混合日期、时间类型。根据要求的精度,子类型在每个分类型中都可以使用,并且 MySQL 带有内置功能可以把多样化的输入格式变为一个标准格式。

    类型 大小
    (字节)
    范围 格式 用途
    DATE 3 1000-01-01到9999-12-31 YYYY-MM-DD 日期值
    TIME 3 -838:59:59到838:59:59 HH:MM:SS 时间值或持续时间
    YEAR 1 1901到2155 YYYY 年份值
    DATETIME 8 1000-01-01 00:00:00到9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
    TIMESTAMP 8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

    DATE、TIME 和 TEAR 类型

    MySQL 用 DATE 和 TEAR 类型存储简单的日期值,使用 TIME 类型存储时间值。这些类型可以描述为字符串或不带分隔符的整数序列。如果描述为字符串,DATE 类型的值应该使用连字号作为分隔符分开,而 TIME 类型的值应该使用冒号作为分隔符分开。
    需要注意的是,没有冒号分隔符的 TIME 类型值,将会被 MySQL 理解为持续的时间,而不是时间戳。

    MySQL 还对日期的年份中的两个数字的值,或是 SQL 语句中为 TEAR 类型输入的两个数字进行最大限度的通译。因为所有 TEAR 类型的值必须用 4 个数字存储。MySQL 试图将 2 个数字的年份转换为 4 个数字的值。把在 00-69 范围内的值转换到 2000-2069 范围内。把 70-99 范围内的值转换到 1970-1979 之内。如果 MySQL 自动转换后的值并不符合我们的需要,请输入 4 个数字表示的年份。

    DATEYIME 和 TIMESTAMP 类型

    除了日期和时间数据类型,MySQL 还支持 DATEYIME 和 TIMESTAMP 这两种混合类型。它们可以把日期和时间作为单个的值进行存储。这两种类型通常用于自动存储包含当前日期和时间的时间戳,并可在需要执行大量数据库事务和需要建立一个调试和审查用途的审计跟踪的应用程序中发挥良好作用。
    如果我们对 TIMESTAMP 类型的字段没有明确赋值,或是被赋与了 null 值。MySQL 会自动使用系统当前的日期和时间来填充它。

    四、复合类型

    MySQL 还支持两种复合数据类型 ENUM 和 SET,它们扩展了 SQL 规范。虽然这些类型在技术上是字符串类型,但是可以被视为不同的数据类型。一个 ENUM 类型只允许从一个集合中取得一个值;而 SET 类型允许从一个集合中取得任意多个值。

    ENUM 类型

    ENUM 类型在系统内部可以存储为数字,并且从 1 开始用数字做索引。一个 ENUM 类型最多可以包含 65536 个元素,其中一个元素被 MySQL 保留,用来存储错误信息,这个错误值用索引 0 或者一个空字符串表示。
    MySQL 认为 ENUM 类型集合中出现的值是合法输入,除此之外其它任何输入都将失败。这说明通过搜索包含空字符串或对应数字索引为 0 的行就可以很容易地找到错误记录的位置。

     

    SET 类型

    一个 SET 类型最多可以包含 64 项元素。在 SET 元素中值被存储为一个分离的“位”序列,这些“位”表示与它相对应的元素。“位”是创建有序元素集合的一种简单而有效的方式。并且它还去除了重复的元素,所以 SET 类型中不可能包含两个相同的元素。
    希望从 SET 类型字段中找出非法的记录只需查找包含空字符串或二进制值为 0 的行。

     

    展开全文
  • 数据库数据类型的作用

    千次阅读 2011-07-18 16:57:57
    数据类型除了可以对插入数据进行规范之外,数据类型还有下面的作用:1.提高效率:对不同的数据赋予不同的类型,能够使得数据库更好的对数据进行存储和管理,从而减少空间占用并且提供数据的访问速度。比如,如果将...

    数据类型除了可以对插入数据进行规范之外,数据类型还有下面的作用:

    1.提高效率:对不同的数据赋予不同的类型,能够使得数据库更好的对数据进行存储和管理,

    从而减少空间占用并且提供数据的访问速度。比如,如果将数字123454321以文本类型存储

    的话将会占用9字节的存储空间,而以整数类型保存的话将只需占用4字节的存储空间。

    2.能够确定对数据进行操作所需的正确处理方式:比如如果是整数类型,那么123+

    234被解释为两个整数的加法运算,所以其结果为357;如果为文本类型,那么123+234则会被解释为两个

    字符串的相连操作,所以其结果为123234.

    展开全文
  • mysql数据库数据类型之整型

    千次阅读 2017-12-01 21:25:14
  • mysql数据库数据类型之浮点型

    千次阅读 2017-12-01 21:29:10
  • Java与数据库数据类型对应表

    万次阅读 2011-02-28 09:11:00
    Java中的数据类型和SQL中的数据类型有很多不一样,需要仔细区分,不然易在开发中造成莫名的错误。 Java数据类型 Hibernate数据类型 标准SQL数据类型 (PS:对于不同的DB可能有所差异) ...
  • 分类 模型属性类型 自增 AutoField int 布尔
  • 1.五种类型所表示的日期格式(为了显而易见,字段名即类型名) year 年 date 年-月-日 time 时:分:秒 datetime 年-月-日 时:分:秒 timestamp 年-月-日 时:分:秒 2. datetime 与timestamp 的区别  1....
  • 读写数据库Image类型数据

    千次阅读 2016-02-27 19:09:00
    读写数据库Image类型数据 读写数据库Image类型数据
  • SQL数据库字段数据类型说明

    千次阅读 2018-03-15 23:23:47
    SQL数据库常用字段数据类型说明这里先总结数据类型。MySQL中的数据类型大的方面来分,可以分为:日期和时间、数值,以及字符串。下面就分开来进行总结。日期和时间数据类型MySQL数据类型含义date3字节,日期,格式:...
  • 数据库|数据类型

    千次阅读 2019-05-13 19:36:00
    一、数据类型介绍 主要包括以下五大类: 整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT 浮点数类型:FLOAT、DOUBLE、DECIMAL 字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT...
  • 数据库中的数据类型

    万次阅读 2014-03-14 19:42:49
    数据库中的数据类型通常有很多种,也有不同的分类方法。例如最常见的数值型、字符型、日期时间型,也有不太常见的布尔型、枚举型、集合型等。要在DBMS中实现某种具体数据类型(例如最简单的INTEGER)的支持,我们...
  • Oracle 数据库 全部数据类型详解

    千次阅读 2018-11-14 13:22:06
    数据类型 描述 VARCHAR2(size) 可变长度的字符串,其最大长度为size个字节;size的最大值是4000,而最小值是1;你必须指定一个VARCHAR2的size;   NVARCHAR2(size) ...
  • 最近做的一个项目中,做数据库表与实体类映射时,在XML文件中编写代码时,发现Oracle等数据库中字段和Java等语言中数据类型应该是一一对应的,对应如下: SQL数据类型 JDBC类型代码 标准的Java类型 Oracle...
  • Oracle数据库常用的数据类型

    千次阅读 2016-10-16 16:28:02
    主要介绍一下oralce数据库中常用的数据类型,以后有时间可以再补充其他的数据类型,下面列举的是经常可以见到使用到的数据类型: (1)CHAR(length) 用来存储固定长度的字符串,length参数指定字符串的长度,如果...
  • 在我们写代码的时候,避免不了和数据库打交道,那么就经常会遇到JAVA类型数据库类型的映射关系。映射表如下:下面就举个例子来讲(JAVA插入MySql的datetime类型的简单的例子):看了映射表可知:我们可以以...
  • 达梦数据库支持的数据类型

    千次阅读 2020-04-23 22:40:50
    达梦数据库支持的数据类型 达梦数据库数据类型是很齐全的,oracle有的也基本有,达梦数据库为了跟oracle做兼容,特地设置了跟oracle一样的varchar2的类型。字符型:char、varchar数值类型:numberic、decimal、...
  • 批量修改数据库字段类型(ORACLE)

    千次阅读 2017-02-10 17:03:51
    批量修改数据库字段类型,批量修改数据库数据类型
  • Java数据类型对应的各数据库类型

    万次阅读 2018-09-25 11:49:58
    Java与Oracle、IBM Content Manager、Informix及SQL Server映射表: ...对于bolb,一般用于对图片的数据库存储,原理是把图片打成二进制,然后进行的一种存储方式,在java中对应byte[]数组。 ...
  • PostgreSQL 数据库数据类型和运算符

    千次阅读 2018-05-22 11:53:08
    数据库数据类型和运算符一、数据库的介绍1、整数类型创建一张表,三种不同的日期格式2、浮点数类型Postgresql也支持sql的标准表的语法,float和float(p)用于声明非精确的数值类型。3、任意精度类型4、日期与时间...
  • SQL 各数据库数据类型标准

    千次阅读 2018-04-01 10:18:48
  • 常见数据库数据类型及大小

    万次阅读 2016-03-17 17:17:32
    Microsoft Access 数据类型 数据类型 描述 存储 Text 用于文本或文本与数字的组合。最多 255 个字符。 Memo Memo 用于更大数量的文本。最多存储 65,536 个字符。 注释:...
  • 数据库类型与java数据类型的对应关系1. 从 JDBC 类型映射到 Java 类型JDBC 类型Java 类型CHARStringVARCHARStringLONGVARCHARStringNUMERICjava.math.BigDecimalDECIMALjava.math....
  • 不管何种数据库,常用数据类型无外乎数值型、字符型、日期时间型。 下文列出常见数据库的各种常用数据类型
  • H2数据库函数及数据类型概述

    万次阅读 2015-01-29 13:05:17
    H2数据库函数及数据类型概述作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs一、H2数据库常用数据类型INT类型:对应java.lang.IntegerREAL类型:对应java.lang.FloatDOUBLE类型:对应java.lang....
  • MySQL数据库浮点数据类型的坑

    千次阅读 2016-08-25 18:04:42
    场景:汇总报表,将查出的数据插入另外一张表中,查出来的数据是小数,转成另一张表对应的javabean也是小数,但是在插入数据库之后就成了整数了,说明小数被抹去了,我以为是框架的问题,就问负责框架的人,结果他...
  • Oracle数据库基本数据类型

    千次阅读 2018-07-23 09:09:58
    1.char(),定长字符串; 2.varchar2(),变长字符串; 3.number(),可表示整数也可表示小数,number(n):n表示的是有效数字;...7.blob,存储二进制数据,最多可以保存4G文字,可以保存文字和图片;很少用
  • MySQL数据库float数据类型

    万次阅读 2016-06-05 02:06:56
    怎么在mysql中使用float类型,特别是用到金钱时我们可能会用双精度来做,我们知道mysql的float类型是单精度浮点类型不小心就会导致数据误差 对于单精度浮点数Float: 当数据范围在±131072(65536×2)以内的时候...
  • 数据库SQL中的数据类型转换

    万次阅读 2017-09-28 09:01:38
    oracle有三种最基本的数据类型,即字符型、数值型、日期型。 (注意需要起别名的地方要起别名) oracle提供的单行函数中,针对不同的数据类型,提供大量实用的函数,同时提供一系列数据类型转换函数,如下:  sql....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,585,894
精华内容 634,357
关键字:

数据库数据类型