SQL Server 贰零零柒数据类型char,varchar,text ,nchar,nvarchar,ntext 等求学拾遗

SQL Server 贰零零柒数据类型char,varchar,text ,nchar,nvarchar,ntext 等求学拾遗

3、整型bigint、int、smallint、tinyint的区别

bigint

从 -2^63 (-9223372036854775808) 到 2^63-1(9223372036854775807)
的整型数据

(全部数字)。存款和储蓄大小为 8 个字节。

 

int

从 -2^31 (-2,147,483,648) 到 2^31 – 1(2,147,483,647)
的整型数据(全数数字)。

仓储大小为 4 个字节。int 的 SQL-92 同义字为 integer。

 

smallint

从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存款和储蓄大小为 2
个字节。

 

tinyint

从 0 到 255 的整型数据。存款和储蓄大小为 1 字节。

定长正是长度固定的,当输入的数额长度未有达到规定的标准钦赐的尺寸时将活动以韩语空格在其背后填充,使长度达到相应的长度。

 

1、varchar(n) 长度为 n 个字节的可变长度且非 Unicode 的字符数据。n
必须是一个在于 1 和 8,000
之间的数值。存款和储蓄大小为输入数据的字节的实在尺寸,并不是 n 个字节。
2、nvarchar(n) 饱含 n 个字符的可变长度 Unicode 字符数量。n
的值必需介于 1 与 4,000 之间。字节的积存大小是所输入字符个数的两倍。
比如:两字段分别有字段值:小编和coffee
,那么varchar字段占2×2+6=12个字节的囤积空间,而nvarchar字段占8×2=十五个字节的仓库储存空间。
如字段值只是英文可挑选varchar,而字段值存在相当多的双字节(粤语、英语等)字符时用nvarchar

1.电话字段设置23个Byte竟然缺乏,好呢设置为50的长度。

alter table <表名> alter column <字段名> 新类型名(长度)

举例:
alter table T_CustomerFile alter MobilePhoneNumber nvarchar(50)

1、char。char存款和储蓄定长数据很便利,char字段上的目录功用级高,举个例子定义char(10),那么不论是你存储的数额是不是到达了十一个字节,都要占去12个字节的半空中,不足的机动用空格填充,所以在读取的时候可能要每每采纳Trim()。

当多个有着区别数据类型、排序法规、精度、小数位数或长度的表达式通过运算符举行理并了结适时:

第多个建议:

 4、varchar、nvarchar、char、nchar

varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必得是多少个留意 1 和
8,000 之间的数值。存款和储蓄大小为输入数据的字节的实际上尺寸,实际不是 n
个字节。

nvarchar(n)
满含 n 个字符的可变长度 Unicode 字符数量。n 的值必需介于 1 与 4,000
之间。字节的蕴藏大小是所输入字符个数的两倍。

 如字段值只是罗马尼亚(罗曼ia)语可挑选varchar,而字段值存在很多的双字节(汉语等)字符时用nvarchar

 

char的长短是不可变的,而varchar的长度是可变的。char的存取数度比varchar要快得多,因为其长度固定,方便程序的存储与追寻;char为此付出的是空间的代价,因为其长度固定,所以难免会有剩余的空格占位符侵夺空间,可谓是以空间换取时间效能,而varchar是以空间功用为第4位的

 

nchar的长短是不可变的,Unicode字符数据。

 

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

TEXT

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

ntext
可变长度 Unicode 数据的最大尺寸为 2^30 – 1 (1,073,741,823)
个字符。存款和储蓄大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-9第22中学的同义词是 national text。

 

只要数据量比非常的大,又能百分之百规定长度且保存只是ansi字符,那么使用char
能鲜明长度又不自然是ansi字符大概,那么使用nchar
对此超大数据,如小说内容,使用nText 
任何的通用nvarchar

在SQL
Server中,当大家设置字符型字段的时候,往往有众多少个数据类型供大家挑选,如:char
nchar varchar
nvarchar等,那么我们终归应该选用哪贰个吧?上边就相继来描述其分别。

可以定义客商定义的数据类型,其是系统提供的数据类型的别名。有关顾客定义的数据类型的更加的多信息,请参见
sp_addtype 和创立客户定义的数据类型。

 

PowerDesigner  和 astah professional 

事情相比较轻便的数据库设计,使用PowerDesigner就够了。

 

点击新建新模型->Categories->Infomation->Physical
Data,就能够开启数据库表结构划虚拟计之旅。

设计好的数据库表结构,双击在“Table
Properties”标签页下,有多个“Preview”的标签,展开,就可以知到相应数据库表设计的SQL语句。直接复制到MSSQLServer、Oracle或任何数据库的实行窗口,施行就能够成立。

 

一旦职业绝对复杂,能够运用astah
professional版本来实行业务和数据库设计,在astah的主分界面包车型客车tools->E景逸SUVDiagram->Export Sql… 能够导出对应的SQL语句。

图片 1

 

参考

3、nchar、nvarchar、ntext。那二种从名字上看比前面三种多了个“n”。它代表存款和储蓄的是Unicode数据类型的字符。大家驾驭字符中,乌克兰语字符只必要八个字节存款和储蓄就足足了,但汉字众多,须要七个字节存款和储蓄,克罗地亚语与汉字相同的时间设有的时候便于导致零乱,Unicode字符集正是为着消除字符集这种不宽容的难点而发出的,它兼具的字符都用五个字节表示,即乌Crane语字符也是用七个字节表示。nchar、nvarchar的尺寸是在1到陆仟之间。和char、varchar相比起来,nchar、nvarchar则最多存款和储蓄五千个字符,不论是保加里士满语照旧汉字;而char、varchar最多能存款和储蓄八千个德文,五千个汉字。能够看来使用nchar、nvarchar数据类型时不要忧虑输入的字符是意大利语依旧汉字,较为便利,但在蕴藏克罗地亚共和国(Republic of Croatia)语时数量上稍稍损失。

datetime 和 smalldatetime

datetime

从 1753 年 1 月 1 日到 9999 年 12 月 13日的日子和岁月数额,准确到百分之三秒(或 3.33 皮秒)。

smalldatetime

从 1904 年 1 月 1 日到 2079 年 6 月 6 日的日期和岁月数额,正确到秒钟。

 

 2.剔除三个表,整个表在数据库中消失

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[T_ABC]') AND type in (N'U'))

DROP TABLE [dbo].[T_ABC]

nvarchar:可变长度Unicode字符数据。n值在1到4,000以内(含)。max提醒最大存款和储蓄大小为2^31-1字节。存款和储蓄大小是所输入字符个数的两倍+2个字节。所输入数据的长短可认为0个字符。nvarchar的SQL-二〇〇四同义词为nationalcharvarying和nationalcharactervarying。

decimal 和 numeric

decimal

从 -10^38 +1 到 10^38 –1 的一贯精度和小数位的数字数据。

numeric

功效上等同于 decimal

接下来大家能够详细看一下:

 5、DECIMAL``(P,D)

代表列能够储存D位小数的P位数。十进制列的实际范围决定于精度和刻度。

剩余数字
0 0
1–2 1
3–4 2
5–6 3
7-9 4

例如:DECIMAL(19,9)对此小数部分持有9位数字,对于整数部分持有19位-9位
10位数字,小数部分要求4个字节。
整数有个别对于前9位数字须求4个字节,1个剩余字节必要1个字节。DECIMAL(19,9)列共计要求9个字节。

 

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

整数

bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807)
的整型数据(全部数字)。

int

从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647)
的整型数据(全体数字)。

smallint

从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的寸头数据。

tinyint

从 0 到 255 的整数数据。

 

varchar,nvarchar:变长,速度慢,占空间小,没有供给管理

二进制字符串

binary

一向长度的二进制数据,其最大尺寸为 8,000 个字节。

varbinary

可变长度的二进制数据,其最大尺寸为 8,000 个字节。

image

可变长度的二进制数据,其最大尺寸为 2^31 – 1 (2,147,483,647) 个字节。

  s (小数位数)

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

准确数字

 

故而日常的话,若是带有汉语字符,用nchar/nvarchar,如若纯罗马尼亚(罗曼ia)语和数字,用char/varchar。

正文转自:

 

变长字符数据则不会以空格填充,相比较分化的是,text存款和储蓄的也是可变长。

其他数据类型

cursor

游标的引用。

sql_variant

一种存款和储蓄 SQL Server
帮忙的种种数据类型(textntexttimestamp
sql_variant 除了这一个之外)值的数据类型。

table

一种极度的数据类型,存款和储蓄供以往管理的结果集。

timestamp

数据库范围的无可比拟数字,每一趟换代行时也拓宽翻新。

uniqueidentifier

大局独一标志符 (GUID)。

易混淆的数据类型
(1)char、varchar、text和nchar、nvarchar、ntext        
char和varchar的长短都在1到九千中间,它们的差异在于char是定长字符数据,而varchar是变长字符数据。所谓定长正是长度固定的,当输入的数量长度未有达到规定的标准钦定的长度时将活动以克罗地亚共和国(Republika Hrvatska)语空格在其背后填充,使长度到达相应的长短;而变长字符数据则不会以空格填充。
text存款和储蓄可变长度的非Unicode数据,最大尺寸为2^31-1(2,147,483,647)个字符。
       
前边两种数据类型和前边的相比,从名称上看只是多了个假名”n”,它意味着存款和储蓄的是Unicode数据类型的字符。写进程序的相爱的人对Unicode应该很精通。字符中,英语字符只须求三个字节存款和储蓄就够用了,但汉字众多,须求八个字节存款和储蓄,斯洛伐克共和国(The Slovak Republic)语与汉字同期设一时轻巧导致零乱,Unicode字符集正是为着消除字符集这种不相称的标题而发生的,它富有的字符都用五个字节表示,即乌克兰语字符也是用八个字节表示。nchar、nvarchar的长度是在1到陆仟里头。和char、varchar比较:nchar、nvarchar则最多存款和储蓄五千个字符,不论是克罗地亚(Croatia)语还是汉字;而char、varchar最多能存款和储蓄八千个马耳他语,陆仟个汉字。能够见见使用nchar、nvarchar数据类型时毫不担忧输入的字符是英语依然汉字,较为低价,但在仓库储存乌克兰(Ukraine)语时数量上有个别损失。
(2)datetime和smalldatetime      
datetime:从1753年11月1日到9999年三月二日的日子和岁月数额,正确到百分之三秒。
     
smalldatetime:从一九零八年七月1日到2079年七月6日的日子和岁月数额,准确到分钟。
(3)bitint、int、smallint、tinyint和bit    
bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据。
    int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。     
smallint:从-2^15(-32,768)到2^15-1(32,767)的卡尺头数据。     
tinyint:从0到255的整数数据。
     bit:1或0的整数数据。 (4)decimal和numeric       
那二种数据类型是大同小异的。皆有八个参数:p(精度)和s(小数位数)。p内定小数点左边和侧边能够积存的十进制数字的最大个数,p必得是从
1到3第88中学间的值。s钦定小数点右边能够储存的十进制数字的最大个数,s必需是从0到p之间的值,暗中认可小数位数是0。

2、varchar。积累变长数据,但存款和储蓄效用未有char高。若是三个字段恐怕的值是不牢固长度的,我们只知道它不容许超过十个字符,把它定义为varchar(10)是最经济的。varchar类型的骨子里尺寸是它的值的骨子里尺寸+1。为何“+1”呢?这三个字节用于保存实际使用了多大的长度。从空中上思考,用varchar合适;从功用上思念,用char合适,关键是基于实际处境找到权衡点。

SQL Server 为 SQL-92
宽容性提供了数据类型同义词。有关越多音讯,请参见数据类型同义词。

①char 和varchar之间的出入和nchar及nvarchar之间的差别同样,char 和
nchar是定长的,而varchar和nvarchar是可变长的;不带n的积累非unicode字符,相当于塞尔维亚(Република Србија)语字符占二个字节,汉语字符占多少个字节,一样容积,普通话字符个数独有日文字符个数的百分之五十,带n
的存款和储蓄unicode字符,不管中文匈牙利(Magyarország)语统统2个字节存款和储蓄二个字符。

varchar:可变长度,非Unicode字符数据。n的取值范围为1至8,000。max提醒最大存款和储蓄大小是2^31-1个字节。存款和储蓄大小是输入数据的实际尺寸加2个字节。所输入数据的长度可认为0个字符。SQL-二零零四中的varchar正是charvarying或charactervarying。

在 Microsoft® SQL Server™
中,种种列、局地变量、表明式和参数都有贰个连锁的数据类型,那是点名对象可具有的数据类型(整型、字符、money
等等)的表征。SQL Server 提供系统数据类型集,定义了可与 SQL Server
一齐行使的富有数据类型。下边列出体系提供的数据类型集。

         微软大概会再三再四的SQL
Server版本中移除text类型,所以从现行反革命就应有用varchar(max) 来代替text、
用nvarchar(max)代替ntext,用binary(max)取代image.
为XML数据选用xml类型。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图