GVKun编程网logo

SQL Server Nvarchar和Java预准备语句(java sql预编译)

11

如果您对SQLServerNvarchar和Java预准备语句感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于SQLServerNvarchar和Java预准备语句的详细内容

如果您对SQL Server Nvarchar和Java预准备语句感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于SQL Server Nvarchar和Java预准备语句的详细内容,我们还将为您解答java sql预编译的相关问题,并且为您提供关于SQL Server char,nchar,varchar与Nvarchar的区别用法、SQL Server 中的 char、nchar、varchar 和 nvarchar 有什么区别?、SQL Server中nvarchar和varchar的区别、SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析的有价值信息。

本文目录一览:

SQL Server Nvarchar和Java预准备语句(java sql预编译)

SQL Server Nvarchar和Java预准备语句(java sql预编译)

我有一个关于将字符串插入SQL Server 2008 R2的问题。当我尝试插入带有一些国家字母的字符串时,会收到“?” 反而。

我知道N在字符串文字的开头添加将解决此问题,但是我正在使用JDBC准备的语句,如下所示:

INSERT INTO MyTable(col1,col2) VALUES (?,?);

我的问题是:如何添加此“ N”字母?我应该做这样的事情吗?

INSERT INTO MyTable(col1,col2) VALUES (N?,N?);

老实说,我不相信,因为这根本行不通。

SQL Server char,nchar,varchar与Nvarchar的区别用法

SQL Server char,nchar,varchar与Nvarchar的区别用法

感兴趣的小伙伴,下面一起跟随小编 jb51.cc的小编两巴掌来看看吧!

1. char类型

对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率极高,比如定义char(10),那么不论你存储的数据是否达  到了10个字节,都要占去10个字节的空间。因为是固定长度,所以速度效率高。比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。因为是固定长度,所以速度效率高。

2. VARCHAR存储变长数据

如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。
   Varchar类型:Varchar 的类型不以空格填满,而Char则会填充满为止,如varchar(100),但它的值只是qian,所以它在数据库中存的值就是qian,而char 不一样,如char(100),它的  值是qian,而实际上它在数据库中是qian (qian后共有96个空格,就是把它填满为100个字节)。
注:由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!
3. Nchar类型和Nvarchar类型是怎么一回事呢?

为了与其他多种字符的转换,如中文,音标等,对每个英文(ASCII)字符都占用2个字节,对一个汉字也占用两个字节,所有的字符都占用2个字节。

  varchar(n):变长型字符数据类型,存储最长长度为8,000 个字符
  nvarchar(n):可变长度 Unicode 数据,其最大长度为 4,000 字符.字节的存储大小是所输入字符个数的两倍,就是说它是双字节来存储数据的。如果存储数据如果存在单字节时,它也是以双字节来占用存储空间的。

  varchar一般适用于英文和数字,Nvarchar适用中文和其他字符,其中N表示Unicode常量,可以解决多语言字符集之间的转换问题。

以下是补充:
 

对于程序中的一般字符串类型的字段,sql Server中有char、varchar、nchar、nvarchar四种类型来对应,那么这四种类型有什么区别呢,这里做一下对比。

1.定长或变长

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

2.Unicode或非Unicode

数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。而前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。

3.几种数据类型的存储的最大容量

char,varchar 最多8000个英文,4000个汉字

nchar,nvarchar  最多可存储4000个字符,无论英文还是汉字

【图片暂缺】

SQL Server 中的 char、nchar、varchar 和 nvarchar 有什么区别?

SQL Server 中的 char、nchar、varchar 和 nvarchar 有什么区别?

是什么意思nvarchar

SQL Server 中的charncharvarchar和有什么区别?nvarchar

答案1

小编典典

只是为了澄清......或总结......

  • nchar 并且 nvarchar 可以存储 Unicode 字符。
  • char* 并且 不能存储 Unicode 字符。 varchar *
  • char 并且 nchar固定长度 的,即使您没有用完所有空间,也会为您指定的字符数 保留存储空间。
  • varchar 并且 nvarchar可变长度 的,只会用完您存储的字符的空格。它 不会像charnchar那样保留存储空间。

nchar并且nvarchar将占用两倍的存储空间,因此仅在需要 Unicode 支持时才使用它们可能是明智之举。

SQL Server中nvarchar和varchar的区别

SQL Server中nvarchar和varchar的区别

1、varchar(n)

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

2、nvarchar(n)

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

3、两种数据类型的区别

      首先,varchar和nvarchar都能存储汉字,区别在于:一个汉字占varchar(2),只占nvarchar(1),而字母只占varchar(1),那么在数据库字段求长度的时候,用varchar就不一定知道它确切有几个字符,如果用nvarchar,汉字也是nvarchar(1),字母也是nvarchar(1),那么很容易知道字段的长度了。

  其次,varchar的检索快于nvarchar,varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unicode来存储数据的,中文字符存储到SQL Server中会保存为两个字节(一般采用Unicode编码),英文字符保存到数据库中,如果字段的类型为varchar,则只会占用一个字节,而如果字段的类型为nvarchar,则会占用两个字节。正常情况下,我们使用varchar也可以存储中文字符,但是如果遇到操作系统是英文操作系统并且对中文字体的支持不全面时,在SQL Server存储中文字符为varchar就会出现乱码(显示为??),而且正常情况下,主机都会支持中文,所以如果使用varchar来存储数据,在开发阶段是发现不了问题的,多数情况下,在布署的时候也不会有问题,但是,如果布署的主机是英文操作系统,并且不支持中文,那问题就出来了,所有的varchar字段在存储中文的时候都会变成乱码(显示为??),而且一般情况下你不会知道这是因为你采用了错误的数据类型造成的,你会试着去装中文字体,试着去设置操作系统的语言环境,这些都不能解决问题,唯一能解决问题的方法是把数据库字段的类型改为nvarchar(或者nchar),对项目管理比较熟悉的朋友应该都知道,到布署阶段再来修改数据库是一件很恐怖的事情。

  最后,使用nvarchar的另一个好处就是在判断字符串的时候可以不需要考虑中英文两种字符的差别,当然,使用nvarchar存储英文字符会增大一倍的存储空间,但是在存储代价已经很低廉的情况下,优先考虑兼容性会给你带来更多好处,所以在设计的时候应该尽量使用nvarchar来存储数据,只有在你确保该字段不会存储中文的时候,再采用varchar来存储。

SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析

SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析

在SQL Server中,当我们设置字符型字段的时候,往往有很多个数据类型供我们选择,如:char nchar varchar nvarchar等,那么我们到底应该选择哪一个呢?下面就一一来描述其区别。

char:固定长度,非Unicode字符数据,长度为n个字节。n的取值范围为1至8,000,存储大小是n个字节。char的SQL2003同义词为character。

varchar:可变长度,非Unicode字符数据。n的取值范围为1至8,000。max指示最大存储大小是2^31-1个字节。存储大小是输入数据的实际长度加2个字节。所输入数据的长度可以为0个字符。SQL-2003中的varchar就是charvarying或charactervarying。

nchar:n个字符的固定长度的Unicode字符数据。n值必须在1到4,000之间(含)。存储大小为两倍n字节。nchar的SQL-2003同义词为nationalchar和nationalcharacter。

nvarchar:可变长度Unicode字符数据。n值在1到4,000之间(含)。max指示最大存储大小为2^31-1字节。存储大小是所输入字符个数的两倍+2个字节。所输入数据的长度可以为0个字符。nvarchar的SQL-2003同义词为nationalcharvarying和nationalcharactervarying。

char,varchar:最多8000个英文,4000个汉字

nchar,nvarchar:可存储4000个字符,无论英文还是汉字

char,nchar:定长,速度快,占空间大,需处理

varchar,nvarchar:变长,速度慢,占空间小,无需处理

定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度。

变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。

1、char。char存储定长数据很方便,char字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取的时候可能要多次用到Trim()。

2、varchar。存储变长数据,但存储效率没有char高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为varchar(10)是最合算的。varchar类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。

3、nchar、nvarchar、ntext。这三种从名字上看比前面三种多了个“n”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。

所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。

您可能感兴趣的文章:
  • SQL Server 中的数据类型隐式转换问题
  • SQL Server中T-SQL 数据类型转换详解
  • 详解SQL Server中的数据类型
  • SQL Server数据类型转换方法
  • SQL Server比较常见数据类型详解
  • SQL Server中实现二进制与字符类型之间的数据转换
  • sqlserver2005 TSql新功能学习总结(数据类型篇)
  • SQLserver查询数据类型为ntext是空或NULL值的方法
  • SQL SERVER 数据类型详解补充2
  • sql server 常用的几个数据类型
  • sqlserver 数据类型转换小实验
  • SQL SERVER的数据类型
  • Sql Server之数据类型详解

我们今天的关于SQL Server Nvarchar和Java预准备语句java sql预编译的分享就到这里,谢谢您的阅读,如果想了解更多关于SQL Server char,nchar,varchar与Nvarchar的区别用法、SQL Server 中的 char、nchar、varchar 和 nvarchar 有什么区别?、SQL Server中nvarchar和varchar的区别、SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析的相关信息,可以在本站进行搜索。

本文标签: