Java数据类型和SQL Serverl数据类型对应表

本文详细介绍了SQLServer中的各种数据类型与Java语言类型的映射关系,并解释了char、nchar、varchar和nvarchar的区别。

 

SQL Server 类型

JDBC 类型 (java.sql.Types)

Java 语言类型

bigint

BIGINT

long

timestamp

binary

BINARY

byte[]

bit

BIT

boolean

char

CHAR

String

decimal

money

smallmoney

DECIMAL

java.math.BigDecimal

float

DOUBLE

double

int

INTEGER

int

image

varbinary(max)

LONGVARBINARY

byte[]

varchar(max)

text

LONGVARCHAR

String

nchar

CHAR

NCHAR (Java SE 6.0)

String

nvarchar

VARCHAR

NVARCHAR (Java SE 6.0)

String

nvarchar(max)

ntext

LONGVARCHAR

LONGNVARCHAR (Java SE 6.0)

String

numeric

NUMERIC

java.math.BigDecimal

real

REAL

float

smallint

SMALLINT

short

datetime

smalldatetime

TIMESTAMP

java.sql.Timestamp

varbinary

udt

VARBINARY

byte[]

varchar

VARCHAR

String

tinyint

TINYINT

short

uniqueidentifier

CHAR

String

xml

LONGVARCHAR

SQLXML (Java SE 6.0)

String

SQLXML

注:

  1. char、nchar、varchar 和 nvarchar 区别

     定长或变长

          所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;有var前缀的,表示是实际存储空间是变长的,比如varchar,nvarchar变长字符数据则不会以空格填充。

          Unicode或非Unicode

          前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。

          char(n)

          长度为 n 个字节的不可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 8,000 之间的数值。存储大小为是 n 个字节。

          nchar(n)

          长度为 n 个字节的不可变长度且 Unicode 的字符数据。n 必须是一个介于 1 4,000 之间的数值。存储大小为是 2n 个字节。

          varchar(n)

          长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

          nvarchar(n)

          包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 4,000 之间字节的存储大小是所输入字符个数的两倍。

          如:上面是一个总结介绍,通过上面的介绍,可以知道。

                char、varchar(4) 可以输入4个字线,也可以输入两个汉字

                nchar、nvarchar(4) 可以输四个汉字,也可以输4个字母,但最多四个

          一般一个中文字符占两个字符,从上面的分析可知,字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar。而长度可确定的可选用charnchar 

      2. text

          text存储可变长度的非 Unicode 数据,最大长度为2^31-1(2,147,483,647)个字符


转载于:https://www.cnblogs.com/litterbean-chen/p/3981361.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值