SQL Server 200伍数据类型char,varchar,text ,nchar,nvarchar,ntext 等求学十遗

SQL Server 200伍数据类型char,varchar,text ,nchar,nvarchar,ntext 等求学十遗

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

bigint

从 -贰^陆3 (-9223372036854775808) 到 二^6叁-一(9223372036854775807)
的整型数据

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

 

int

从 -二^3一 (-2,14七,4八三,64八) 到 二^3一 – 一(贰,147,4八3,6四柒)
的整型数据(全体数字)。

积攒大小为 肆 个字节。int 的 SQL-玖二 同义字为 integer。

 

smallint

从 -二^1伍 (-3二,76八) 到 二^一五 – 一 (3二,7陆七) 的整型数据。存储大小为 3个字节。

 

tinyint

从 0 到 25伍 的整型数据。存款和储蓄大小为 一 字节。

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

optimize SQLSEOdysseyVE奥迪Q伍 三数据类型的设想

分类:SQLSERVER

l  decimal和numeric中尽量选拔decimal,numeric只是为了向后卓殊。

l  bigint,int,smallint,tinyint中

率先int,空间攻克合适,运算速度快;(21四七,…,…三个多亿)

假如不行在意空间的话,思虑tinyint

超大应用场面,考虑bigint

l money,smallmoney

尽心尽力考虑用decimal代替,原因:质量稍稍好一些;相对其余数据库包容性好。

money的好处是能够用到一点货币运算函数。

float类型尽量少用,质量不佳,精度不高,一般只用于科学总结。

l  char,varchar,nchar/nvarchar

char品质好;varchar节省空间;选取格局:十一个字节以上的用varchar

n类型的据有空间大,质量低,要是不盘算存中文或中亚文字则尽量幸免使用。

尤为向类似工号的字段更不用采取n类型,首先它不会存入中文,其次它或然作为目录,此时对质量的震慑就更加大。

l  text/image  考虑到维护方便、功效以及程序支付的方便性,最棒不用,即不将其存入数据库中;选拔varchar指向其对应的仓库储存路线。

1)char、varchar、text和nchar、nvarchar、ntext 

  char和varchar的长度都在一到七千里面,它们的不相同在于char是定长字符数据,而varchar是变长字符数据。所谓定长正是长度固定的,当输入的数量长度未有达到规定的标准钦点的尺寸时将活动以英文空格在其背后填充,使长度到达相应的长度;而变长字符数据则不会以空格填充。text存款和储蓄可变长度的非Unicode数据,最大尺寸为二^3一-壹(②,147,4捌三,647)个字符。   

  前面二种数据类型和日前的对待,从名称上看只是多了个假名”n”,它代表存款和储蓄的是Unicode数据类型的字符。写过程序的情侣对Unicode应该很驾驭。字符中,英文字符只需求二个字节存款和储蓄就丰硕了,但汉字众多,需求多少个字节存款和储蓄,英文与汉字同时存在时轻巧导致杂乱,Unicode字符集正是为了消除字符集那种不包容的主题素材而暴发的,它具备的字符都用八个字节表示,即英文字符也是用几个字节表示。nchar、nvarchar的长度是在1到陆仟之间。和char、varchar比较:nchar、nvarchar则最多存款和储蓄四千个字符,不论是英文依然汉字;而char、varchar最多能存款和储蓄七千个英文,六千个汉字。能够见到使用nchar、nvarchar数据类型时绝不操心输入的字符是英文依旧汉字,较为便宜,但在蕴藏英文时数量上稍加损失。  

  (2)datetime和smalldatetime 

  datetime:从175三年7月二十二日到999九年3月2十二日的日期和时间数额,准确到百分之三秒。 

  smalldatetime:从19零贰年5月二日到207玖年八月15日的日期和时间数额,准确到分钟。   

  (3)bitint、int、smallint、tinyint和bit 

  bigint:从-2^6三(-922337203685477580捌)到二^陆三-一(922337203685477580柒)的整型数据。 

  int:从-二^3壹(-贰,1四柒,4八三,64捌)到二^3一-一(贰,1四7,48叁,6肆七)的整型数据。 

  smallint:从-二^一5(-3二,768)到二^1五-1(3二,76柒)的整数数据。 

  tinyint:从0到25五的整数数据。 

  bit:壹或0的整数数据。   

  (4)decimal和numeric 

  那三种数据类型是千篇一律的。都有三个参数:p(精度)和s(小数位数)。p钦定小数点左侧和右边能够积累的10进制数字的最大个数,p必须是从 壹到3捌里头的值。s钦命小数点左侧能够积存的10进制数字的最大个数,s必须是从0到p之间的值,默许小数位数是0。   

  (5)float和real 

  float:从-1.7九^30捌到一.7玖^30捌之间的浮点数字数据。 

  real:从-叁.40^3八到三.40^38以内的浮点数字数据。在SQL Server中,real的同义词为float(贰肆)。

                                     char          varchar          
text         nchar          nvarchar          ntext

PowerDesigner  和 astah professional 

业务相比轻巧的数据库设计,使用PowerDesigner就够了。

 

点击新建新模型->Categories->Infomation->Physical
Data,就可以张开数据库表结构设计之旅。

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

 

假若职业相对复杂,能够接纳astah
professional版本来实行作业和数据库设计,在astah的主界面包车型大巴tools->EEscortDiagram->Export Sql… 能够导出对应的SQL语句。

图片 1

 

参考

您或然感兴趣的小说:

  • 详解SQL Server中的数据类型
  • 详解MySQL数据类型int(M)中M的意思
  • mysql存储引擎和数据类型(二)
  • Java数据类型与MySql数据类型对照表
  • SQL Server数据类型调换方法
  • SQL
    Server比较常见数据类型详解
  • SQLite教程(七):数据类型详解
  • sql使用cast进行数据类型调换示例
  • SQL2006中char nchar varchar
    nvarchar数据类型的区别和利用情形讲授
  • SQL的常用数据类型列表详解
  1. 由此将数据类型的优先顺序规则应用到输入表明式的数据类型来规定所得值的数据类型。有关更加多新闻,请参见数据类型的先期顺序。

  2. 借使结果数据类型为
    charvarchartextncharnvarchar
    ntext,则结果值的排序规则由排序规则的先行顺序规则决定。有关越来越多消息,请参见排序规则的优先顺序。

  3. 结果的精度、小数位数及长度取决于输入表达式的精度、小数位数及长度。有关更加多音信,请参见精度、小数位数和长度。

         微软大概会继续的SQL
Server版本中移除text类型,所以在此以前天就应当用varchar(max) 来代表text、
用nvarchar(max)代替ntext,用binary(max)替代image.
为XML数据选拔xml类型。

 二.刨除1个表,整个表在数据库中付之壹炬

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]

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

正文转自:

 

 5、DECIMAL``(P,D)

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

剩余数字
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个字节。

 

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

就像数字

float

从 -一.7玖E + 30八 到 一.7九E + 30八 的浮点精度数字。

real

从 -三.40E + 3八 到 叁.40E + 38 的浮点精度数字。

最大存款和储蓄量(byte):       8000          7000            2E3一-一   
7000           捌仟               2E31-一

壹.对讲机字段设置二多少个Byte竟然不够,好啊设置为50的尺寸。

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

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

nchar:n个字符的定势长度的Unicode字符数据。n值必须在一到4,000时期(含)。存储大小为两倍n字节。nchar的SQL-200叁同义词为nationalchar和nationalcharacter。

datetime 和 smalldatetime

datetime

从 175叁 年 一 月 1 日到 999九 年 1二 月 一十二日的日子和时间数额,准确到百分之三秒(或 三.3三 飞秒)。

smalldatetime

从 一9零二 年 壹 月 壹 日到 207九 年 陆 月 6 日的日期和岁月数额,正确到分钟。

看过那篇文章,首倘使给大家给五个提议:

 4、varchar、nvarchar、char、nchar

varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是二个在乎 1 和
八,000 之间的数值。存款和储蓄大小为输入数据的字节的莫过于尺寸,而不是 n
个字节。

nvarchar(n)
带有 n 个字符的可变长度 Unicode 字符数量。n 的值必须介于 一 与 4,000
之间。字节的仓库储存大小是所输入字符个数的两倍。

 如字段值只是英文可选用varchar,而字段值存在较多的双字节(汉语等)字符时用nvarchar

 

char的长度是不可变的,而varchar的尺寸是可变的。char的存取数度比varchar要快得多,因为其尺寸固定,方便程序的积攒与找出;char为此付出的是空中的代价,因为其尺寸固定,所以难免会有剩余的空格占位符占领空间,可谓是以空间换取时间效能,而varchar是以空间功能为第3个人的

 

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

 

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

TEXT

text存储可变长度的非Unicode数据,最大尺寸为二^3一-一(二,1四7,4八三,6四柒)个字符。

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

 

倘诺数据量非常大,又能百分百规定长度且保存只是ansi字符,那么使用char
能明确长度又不自然是ansi字符也许,那么使用nchar
对此超大数据,如文章内容,使用nText 
别的的通用nvarchar

2、varchar。存款和储蓄变长数据,但存款和储蓄成效未有char高。如若叁个字段恐怕的值是不牢固长度的,大家只晓得它不容许超越十三个字符,把它定义为varchar(10)是最经济的。varchar类型的实际上尺寸是它的值的骨子里尺寸+①。为啥“+一”呢?这三个字节用于保存实际行使了多大的长度。从空中上思量,用varchar合适;从作用上思索,用char合适,关键是基于实际情状找到权衡点。

整数

bigint

从 -二^陆叁 (-922337203685477580八) 到 2^六叁-一 (922337203685477580七)
的整型数据(全数数字)。

int

从 -二^3一 (-二,147,4八3,648) 到 贰^3壹 – 壹 (贰,1四柒,4八3,6四七)
的整型数据(全数数字)。

smallint

从 -二^壹伍 (-3贰,768) 到 贰^一伍 – 一 (3二,7陆柒) 的整数数据。

tinyint

从 0 到 25伍 的平头数据。

  例:

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

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

           
在字段为字符串并且比较多小的时候,假若字符串全部是汉字,提议采用Nvachar,要是既有字母又有汉字并且字母偏多的话,提出使用Char可能Varchar。

据此一般的话,如若带有粤语字符,用nchar/nvarchar,假诺纯英文和数字,用char/varchar。

标准数字

  固定有效位数和小数位数的数字。当使用最大有效位数时,有效值是从 –
10^3八 +一 到 10^3八 – 1。decimal 的 SQL-九二 同义字是 dec 和 dec(p,
s)。numeric 的功能万分於 decimal。

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

能够定义用户定义的数据类型,其是系统提供的数据类型的小名。有关用户定义的数据类型的越来越多音讯,请参见
sp_addtype 和开创用户定义的数据类型。

编码:                         非unicode   非unicode  非unicode 
unicode     unicode          unicode

nvarchar:可变长度Unicode字符数据。n值在一到4,000里面(含)。max提示最大存储大小为贰^31-一字节。存款和储蓄大小是所输入字符个数的两倍+一个字节。所输入数据的尺寸可以为0个字符。nvarchar的SQL-200三同义词为nationalcharvarying和nationalcharactervarying。

decimal 和 numeric

decimal

从 -十^3八 +一 到 拾^3八 –壹 的确定地点精度和小数位的数字数据。

numeric

成效上等同于 decimal

 

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

money 和 smallmoney

money

通货数据值介于 -二^6三 (-92二,337,20三,6八5,477.5808) 与 2^陆三 – 1(+92二,3三7,20叁,6八5,477.5807) 之间,精确到货币单位的千分之10。

smallmoney

通货数据值介于 -214,74八.364八 与 +21四,748.3647之间,准确到货币单位的千分之10。

接下来我们能够详细看一下:

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

2进制字符串

binary

固化长度的二进制数据,其最大尺寸为 八,000 个字节。

varbinary

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

image

可变长度的二进制数据,其最大尺寸为 二^3壹 – 1 (贰,147,483,6四7) 个字节。

      
varchar的最大尺寸为8000,可是varchar(max)则能够累积多达2G的数量,因而其遵循也正是SQL
3000中的text。不过微软可能会接二连三的SQL
Server版本中移除text类型,从现行反革命就相应用varchar(max) 来顶替text。
用nvarchar(max)替代ntext,用binary(max)替代image.
为XML数据选取xml类型。在SQL Server
二零零七中,为XML数据增多了相应的数据类型,由此存款和储蓄XML数据的列不须要用
varchar(max)或nvarchar(max),而应当用xml数据类型,以应用T-SQL中特地针对xml数据列的新命令,以及针对性xml列的目录。

发表评论

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

网站地图xml地图