tag 标签: 数据类型

相关博文
  • 热度 17
    2014-10-22 21:53
    933 次阅读|
    0 个评论
    问题描述:GPS接收解包程序实现不太完善。出现不定时死机现象。原因经讨论分析可能是对串口接收到的非GPS正常数据没有正常处理。经过一天的检查也没有发现可能导致故障的地方,不过在晚上加班时发现了一个问题。 大致是这样的: 定义一个short 类型的变量 x, 函数y中引用了x。在函数y中使用*(unsigned int *)x做减法处理。就会出现一个很大的值。比如 x = 0x30; 可能(unsigned int )x = 0x00010030。如果再拿这个结果做其他的事情,就会出现一个很严重的问题。暂时找到这么一个问题,希望明天不要出问题。 同事B君说应该去寺庙请一个佛像到办公桌旁,每天对佛祖祈祷不要出BUG。
  • 热度 23
    2012-10-27 21:30
    2059 次阅读|
    0 个评论
      数据类型 字长( bit ) 最小值( MIN ) 最大值( MAX ) signed char 16 -32768 32767 char, unsigned char 16 0 65535 short, signed short 16 -32768 32767 unsigned short 16 0 65535 int, signed int 16 -32768 32767 unsigned int 16 0 65535 long, signed long 32 -2147483648 2147483647 unsigned long 32 0 4294967295 float 32 1.175494e-38 3.40282346e+38 double 32 1.175494e-38 3.40282346e+38   注意 2812 中数据类型的字长,如 char 型,是 16 位的,这是因为 2812 是 16 位的 DSP ,注意与 51 等其他类型单片机或微控制器的区别。
  • 热度 16
    2012-10-18 14:15
    4249 次阅读|
    0 个评论
    C语言的基本数据类型有以下几个: int 整型 char 字符型 float 单精度浮点型 double 双精度浮点型 另外,在基本数据类型基础上附加一些限定词, 得到扩充的数据类型。short,long可以应用到整型, unsigned可以应用到整型和字符型: short int(或short) 短整型 long int(或long) 长整型 unsigned int 无符号整型 unsigned short 无符号短整型 unsigned long 无符号长整型 unsigned char 无符号字符型 整型     C标准没有规定各类数据所占内存字节数,通常一个int型数据所占内存与计算机字长大小相同,为16位或32位,short型数据通常占16位,long型数据是32位。每种编译器可以为硬件选择适合的长度,仅受一些限制,如short 和int 型数据至少占16位,long型至少占32位, short型数据不能超过int型数据的字节数,而int型不长于long 型。     无符号的数总是正数或零,服从数学式子2n,其中n是这种类型的二进制位数。例如,int型是16位,它的数据取值范围在-32768-32767之间,而unsigned int型数据取值范围在0-65535之间。下表列出了不同机器上整型数据的取值范围。    16位机器 32位机器 数据类型 所占位数 取值范围 所占位数 取值范围 int 16 -32768~32767 32 -21亿~21亿 short 16 -32768~32767 16 -32768~32767 long 32 -21亿~21亿 32 -21亿~21亿 unsigned int 16 0~65535 32 0~42亿 unsigned short 16 0~65535 16 0~65535 unsigned long 32 0~42亿 32 0~42亿 字符型     字符型数据存储时占用8位,它实际存储的是字符对应ASCII码(美国标准信息交换码American Standard Code for Information Interchange)。如一个char型数据'A',其ASCII码为65,故实际存储的内容是65。unsigued char型数据取值范围为0-255,char型数据取值范围为-128-127。字符有符号或无符号是依赖于机器的,但是可打印的字符总是正的。     由于在内存中字符型数据是以ASCII码形式存放,其形式与整型类似,因而在C语言中,字符型数据与整型数据可以通用,字符型数据所有的性质与一字节整型量相同。
  • 热度 25
    2012-6-5 09:51
    1352 次阅读|
    0 个评论
    大家好,前面我们为大家分享了WIZnet员工的SQL Server 2008 培训笔记的前四篇,今天继续为大家分享第五篇。 WIZnet员工SQL Server 2008培训笔记(四)请参考: http://forum.eet-cn.com/BLOG_ARTICLE_12414.HTM     SQL Server 2008 数据类型 在创建表时,必须为表中的每列指派一种数据类型。本节将介绍SQL Server中最常用的一些数据类型。即使创建自定义数据类型,它也必须基于一种标准的SQL Server数据类型。例如,可以使用如下语法创建一种自定义数据类型(Address),但要注意,它基于SQL Server标准的varchar数据类型。 1.  CREATE TYPE Address   2.  FROM varchar(35) NOT NULL  如果在SQL Server Management Studio的表设计界面中更改一个大型表中某列的数据类型,那么该操作可能需要很长时间。可以通过在Management Studio界面中脚本化这种改变来观察其原因。Management Studio再创建一个临时表,采用像tmpTableName这样的名称,然后将数据复制到该表中。最后,界面删除旧表并用新的数据类型重命名新表。当然,此过程中还涉及其他一些用于处理表中索引和其他任何关系的步骤。 如果有一个包含数百万条记录的大型表,则该过程可能需要花费十分钟,有时可能是数小时。为避免这种情况,可在查询窗口中使用简单的单行T-SQL语句来更改该列的数据类型。例如,要将Employees表中JobTitle列的数据类型改为varchar(70),可以使用如下语法。 1.  ALTER TABLE HumanResources.Employee ALTER COLUMN JobTitle Varchar(70)  说明: 在转换为与当前数据不兼容的数据类型时,可能丢失重要数据。例如,如果要将包含一些数据(如15.415)的numeric数据类型转换为integer数据类型,那么15.415这个数据将四舍五入为整数。 您可能想对SQL Server表编写一个报表,显示表中每列的数据类型。完成这项任务的方法有很多种,但最常见的一种方法是连接sys.objects表和sys.columns表。在下面的代码中,有两个函数可能不太为您所熟悉。函数TYPE_NAME()将数据类型id转换为适当的名称。要进行反向操作,可使用TYPE_ID()函数。需要注意的另一个函数是SCHEMA_ID(),它用于返回架构的标识值。在需要编写有关SQL Server元数据的报表时,这是特别有用的。 1.  SELECT o.name AS ObjectName,   2.  c.name AS ColumnName,   3.  TYPE_NAME(c.user_type_id) as DataType   4.  FROM    sys.objects o JOIN sys.columns c   5.  ON      o.object_id = c.object_id   6.  WHERE   o.name ='Department'  7.  and             o.Schema_ID = SCHEMA_ID('HumanResources')  该代码返回如下结果(注意,Name是一种用户定义的数据类型)。 1.  ObjectName                ColumnName                    DataType   2.  ---------------------------------------------------   3.  Department                DepartmentID          smallint   4.  Department                Name                         Name   5.  Department                GroupName                         Name   6.  Department                ModifiedDate         datetime  1. 字符数据类型 字符数据类型包括varchar、char、nvarchar、nchar、text以及ntext。这些数据类型用于存储字符数据。varchar和char类型的主要区别是数据填充。如果有一表列名为FirstName且数据类型为varchar(20),同时将值Brian存储到该列中,则物理上只存储5个字节。但如果在数据类型为char(20)的列中存储相同的值,将使用全部20个字节。SQL将插入拖尾空格来填满20个字符。 如果要节省空间,那么为什么还使用char数据类型呢?使用varchar数据类型会稍增加一些系统开销。例如,如果要存储两字母形式的州名缩写,则最好使用char(2)列。尽管有些DBA认为应最大可能地节省空间,但一般来说,好的做法是在组织中找到一个合适的阈值,并指定低于该值的采用char数据类型,反之则采用varchar数据类型。通常的原则是,任何小于或等于5个字节的列应存储为char数据类型,而不是varchar数据类型。如果超过这个长度,使用varchar数据类型的好处将超过其额外开销。 nvarchar数据类型和nchar数据类型的工作方式与对等的varchar数据类型和char数据类型相同,但这两种数据类型可以处理国际性的Unicode字符。它们需要一些额外开销。以Unicode形式存储的数据为一个字符占两个字节。如果要将值Brian存储到nvarchar列,它将使用10个字节;而如果将它存储为nchar(20),则需要使用40字节。由于这些额外开销和增加的空间,应该避免使用Unicode列,除非确实有需要使用它们的业务或语言需求。 接下来要提的数据类型是text和ntext。text数据类型用于在数据页内外存储大型字符数据。应尽可能少地使用这两种数据类型,因为可能影响性能但可在单行的列中存储多达2GB的数据。与text数据类型相比,更好的选择是使用varchar(max)类型,因为将获得更好的性能。另外,text和ntext数据类型在SQL Server的一些未来版本中将不可用,因此现在开始还是最好使用varchar(max)和nvarchar(max)而不是text和ntext数据类型。 表1-1列出了这些类型,对其作了简单描述,并说明了要求的存储空间。 表1-1   数 据 类 型 描    述 存 储 空 间 Char(n) N为1~8000字符之间 n字节 Nchar(n) N为1~4000 Unicode字符之间 (2n字节)+2字 节额外开销 Ntext 最多为2 30 –1 (1 073 741 823)Unicode字符 每字符2字节 Nvarchar(max) 最多为2 30 –1 (1 073 741 823)Unicode字符 2×字符数+2字 节额外开销 Text 最多为2 31 –1 (2 147 483 647)字符 每字符1字节 Varchar(n) N为1~8000字符之间 每字符1字节+2 字节额外开销 Varchar(max) 最多为2 31 –1(2 147 483 647)字符 每字符1字节+2 字节额外开销   2. 精确数值数据类型 数值数据类型包括bit、tinyint、smallint、int、bigint、numeric、decimal、money、float以及real。这些数据类型都用于存储不同类型的数字值。第一种数据类型bit只存储0或1,在大多数应用程序中被转换为true或false。bit数据类型非常适合用于开关标记,且它只占据一个字节空间。其他常见的数值数据类型如表1-2所示。 表1-2   数 据 类 型 描    述 存 储 空 间 bit 0、1或Null 1字节(8位) tinyint 0~255之间的整数 1字节 smallint –32 768~32 767之间的整数 2字节 int –2 147 483 648~ 2 147 483 647之间的整数 4字节 bigint –9 223 372 036 854 775 808~ 9 223 372 036 854 775 807 之间的整数 8字节   (续表)   数 据 类 型 描    述 存 储 空 间 numeric(p,s)或 decimal(p,s) –1 038+1~1 038–1之间的数值 最多17字节 money –922 337 203 685 477.580 8~ 922 337 203 685 477.580 7 8字节 smallmoney –214 748.3648~2 14 748.3647 4字节           SQL Server 2008 数据类型(2 ) 如decimal和numeric等数值数据类型可存储小数点右边或左边的变长位数。Scale是小数点右边的位数。精度(Precision)定义了总位数,包括小数点右边的位数。例如,由于14.88531可为numeric(7,5)或decimal(7,5)。如果将14.25插入到numeric(5,1)列中,它将被舍入为14.3。 3. 近似数值数据类型 这个分类中包括数据类型float和real。它们用于表示浮点数据。但是,由于它们是近似的,因此不能精确地表示所有值。 float(n)中的n是用于存储该数尾数(mantissa)的位数。SQL Server对此只使用两个值。如果指定位于1~24之间,SQL就使用24。如果指定25~53之间,SQL就使用53。当指定float()时(括号中为空),默认为53。 表1-3列出了近似数值数据类型,对其进行简单描述,并说明了要求的存储空间。 表1-3   数 据 类 型 描    述 存 储 空 间 float –1.79E+308~–2.23E– 308,0,2.23E–308~1.79E+308 N =24-4字节 N 24-8字节 real() –3.40E+38~–1.18E– 38,0,1.18E–38~3.40E+38 4字节   注意: real的同义词为float(24)。 4. 二进制数据类型 如varbinary、binary、varbinary(max)或image等二进制数据类型用于存储二进制数据,如图形文件、Word文档或MP3文件。其值为十六进制的0x0~0xf。image数据类型可在数据页外部存储最多2GB的文件。image数据类型的首选替代数据类型是varbinary(max),可保存最多8KB的二进制数据,其性能通常比image数据类型好。SQL Server 2008的新功能是可以在操作系统文件中通过FileStream存储选项存储varbinary(max)对象。这个选项将数据存储为文件,同时不受varbinary(max)的2GB大小的限制。 表1-4列出了二进制数据类型,对其作了简单描述,并说明了要求的存储空间。 表1-4   数 据 类 型 描    述 存 储 空 间 Binary(n) N为1~8000十六进制数字之间 n字节 Image 最多为2 31 –1 (2 147 483 647)十六进制数位 每字符1字节 Varbinary(n) N为1~8000十六进制数字之间 每字符1字节 +2字节额外开销 Varbinary(max) 最多为2 31 –1 (2 147 483 647)十六进制数字 每字符1字节 +2字节额外开销   5. 日期和时间数据类型 datetime和smalldatetime数据类型用于存储日期和时间数据。smalldatetime为4字节,存储1900年1月1日~2079年6月6日之间的时间,且只精确到最近的分钟。datetime数据类型为8字节,存储1753年1月1日~9999年12月31日之间的时间,且精确到最近的3.33毫秒。 SQL Server 2008有4种与日期相关的新数据类型:datetime2、dateoffset、date和time。通过SQL Server联机丛书可找到使用这些数据类型的示例。 datetime2数据类型是datetime数据类型的扩展,有着更广的日期范围。时间总是用时、分钟、秒形式来存储。可以定义末尾带有可变参数的datetime2数据类型--如datetime2(3)。这个表达式中的3表示存储时秒的小数精度为3位,或0.999。有效值为0~9之间,默认值为3。 datetimeoffset数据类型和datetime2数据类型一样,带有时区偏移量。该时区偏移量最大为+/-14小时,包含了UTC偏移量,因此可以合理化不同时区捕捉的时间。 date数据类型只存储日期,这是一直需要的一个功能。而time数据类型只存储时间。它也支持time(n)声明,因此可以控制小数秒的粒度。与datetime2和datetimeoffset一样,n可为0~7之间。 表1-5列出了日期/时间数据类型,对其进行简单描述,并说明了要求的存储空间。 表1-5   数 据 类 型 描    述 存 储 空 间 Date 9999年1月1日~12月31日 3字节 Datetime 1753年1月1日~9999年12月31日, 精确到最近的3.33毫秒 8字节 Datetime2(n) 9999年1月1日~12月31日 0~7之间的N指定小数秒 6~8字节 Datetimeoffset(n) 9999年1月1日~12月31日 0~7之间的N指定小数秒+/–偏移量 8~10字节 SmalldateTime 1900年1月1日~2079年 6月6日,精确到1分钟 4字节 Time(n) 小时:分钟:秒.9999999 0~7之间的N指定小数秒 3~5字节   6. 其他系统数据类型 还有一些之前未见过的数据类型。表1-6列出了这些数据类型。 表1-6   数 据 类 型 描    述 存 储 空 间 Cursor 包含一个对光标的引用和 可以只用作变量或存储过程参数 不适用 Hierarchyid 包含一个对层次结构中位置的引用 1~892字节+2 字节的额外开销 SQL_Variant 可能包含任何系统数据类 型的值,除了text、ntext、 image、timestamp、xml、 varchar(max)、nvarchar(max)、 varbinary (max)、sql_variant以 及用户定义的数据类型。最大尺 寸为8000字节数据+16字节 (或元数据) 8016字节 Table 用于存储用于进一步处理的数 据集。定义类似于Create Table。 主要用于返回表值函数的结果集, 它们也可用于存储过程和批处理中 取决于表定 义和存储的行数 Timestamp or Rowversion 对于每个表来说是唯一的、自 动存储的值。通常用于版本戳, 该值在插入和每次更新时自动改变 8字节 Uniqueidentifier 可以包含全局唯一标识符 (Globally Unique Identifier, GUID)。guid值可以从Newid() 函数获得。这个函数返回的值对 所有计算机来说是唯一的。 尽管存储为16位的二进制值, 但它显示为char(36) 16字节 XML 可以以Unicode或非Unicode形式存储 最多2GB   注意: cursor数据类型可能不用于Create Table语句中。 hierarchyid列是SQL Server 2008中新出现的。您可能希望将这种数据类型的列添加到这样的表中--其表行中的数据可用层次结构表示,就像组织层次结构或经理/雇员层次结构一样。存储在该列中的值是行在层次结构中的路径。层次结构中的级别显示为斜杠。斜杠间的值是这个成员在行中的数字级别,如/1/3。可以运用一些与这种数据类型一起使用的特殊函数。 XML数据存储XML文档或片段。根据文档中使用UTF-16或是UTF-8,它在尺寸上像text或ntext一样存储。XML数据类型使用特殊构造体进行搜索和索引。第15章将更详细地介绍这些内容。 7. CLR 集成 在SQL Server 2008中,还可使用公共语言运行库(Common Language Runtime,CLR)创建自己的数据类型和存储过程。这让用户可以使用Visual Basic或C#编写更复杂的数据类型,以满足业务需求。这些类型被定义为基本的CLR语言中的类结构。第8章将更详细地介绍其管理部分的内容。   详细内容请参考: http://www.cnblogs.com/zhangwei595806165/archive/2012/02/23/2364746.html  
  • 热度 9
    2012-6-5 09:30
    1003 次阅读|
    0 个评论
    大家好,前面我们为大家分享了WIZnet员工的SQL Server 2008 培训笔记的前四篇,今天继续为大家分享第五篇。 WIZnet员工SQL Server 2008培训笔记(四)请参考: http://bbs.ednchina.com/BLOG_ARTICLE_3004236.HTM     SQL Server 2008 数据类型 在创建表时,必须为表中的每列指派一种数据类型。本节将介绍SQL Server中最常用的一些数据类型。即使创建自定义数据类型,它也必须基于一种标准的SQL Server数据类型。例如,可以使用如下语法创建一种自定义数据类型(Address),但要注意,它基于SQL Server标准的varchar数据类型。 1.  CREATE TYPE Address   2.  FROM varchar(35) NOT NULL  如果在SQL Server Management Studio的表设计界面中更改一个大型表中某列的数据类型,那么该操作可能需要很长时间。可以通过在Management Studio界面中脚本化这种改变来观察其原因。Management Studio再创建一个临时表,采用像tmpTableName这样的名称,然后将数据复制到该表中。最后,界面删除旧表并用新的数据类型重命名新表。当然,此过程中还涉及其他一些用于处理表中索引和其他任何关系的步骤。 如果有一个包含数百万条记录的大型表,则该过程可能需要花费十分钟,有时可能是数小时。为避免这种情况,可在查询窗口中使用简单的单行T-SQL语句来更改该列的数据类型。例如,要将Employees表中JobTitle列的数据类型改为varchar(70),可以使用如下语法。 1.  ALTER TABLE HumanResources.Employee ALTER COLUMN JobTitle Varchar(70)  说明: 在转换为与当前数据不兼容的数据类型时,可能丢失重要数据。例如,如果要将包含一些数据(如15.415)的numeric数据类型转换为integer数据类型,那么15.415这个数据将四舍五入为整数。 您可能想对SQL Server表编写一个报表,显示表中每列的数据类型。完成这项任务的方法有很多种,但最常见的一种方法是连接sys.objects表和sys.columns表。在下面的代码中,有两个函数可能不太为您所熟悉。函数TYPE_NAME()将数据类型id转换为适当的名称。要进行反向操作,可使用TYPE_ID()函数。需要注意的另一个函数是SCHEMA_ID(),它用于返回架构的标识值。在需要编写有关SQL Server元数据的报表时,这是特别有用的。 1.  SELECT o.name AS ObjectName,   2.  c.name AS ColumnName,   3.  TYPE_NAME(c.user_type_id) as DataType   4.  FROM    sys.objects o JOIN sys.columns c   5.  ON      o.object_id = c.object_id   6.  WHERE   o.name ='Department'  7.  and             o.Schema_ID = SCHEMA_ID('HumanResources')  该代码返回如下结果(注意,Name是一种用户定义的数据类型)。 1.  ObjectName                ColumnName                    DataType   2.  ---------------------------------------------------   3.  Department                DepartmentID          smallint   4.  Department                Name                         Name   5.  Department                GroupName                         Name   6.  Department                ModifiedDate         datetime  1. 字符数据类型 字符数据类型包括varchar、char、nvarchar、nchar、text以及ntext。这些数据类型用于存储字符数据。varchar和char类型的主要区别是数据填充。如果有一表列名为FirstName且数据类型为varchar(20),同时将值Brian存储到该列中,则物理上只存储5个字节。但如果在数据类型为char(20)的列中存储相同的值,将使用全部20个字节。SQL将插入拖尾空格来填满20个字符。 如果要节省空间,那么为什么还使用char数据类型呢?使用varchar数据类型会稍增加一些系统开销。例如,如果要存储两字母形式的州名缩写,则最好使用char(2)列。尽管有些DBA认为应最大可能地节省空间,但一般来说,好的做法是在组织中找到一个合适的阈值,并指定低于该值的采用char数据类型,反之则采用varchar数据类型。通常的原则是,任何小于或等于5个字节的列应存储为char数据类型,而不是varchar数据类型。如果超过这个长度,使用varchar数据类型的好处将超过其额外开销。 nvarchar数据类型和nchar数据类型的工作方式与对等的varchar数据类型和char数据类型相同,但这两种数据类型可以处理国际性的Unicode字符。它们需要一些额外开销。以Unicode形式存储的数据为一个字符占两个字节。如果要将值Brian存储到nvarchar列,它将使用10个字节;而如果将它存储为nchar(20),则需要使用40字节。由于这些额外开销和增加的空间,应该避免使用Unicode列,除非确实有需要使用它们的业务或语言需求。 接下来要提的数据类型是text和ntext。text数据类型用于在数据页内外存储大型字符数据。应尽可能少地使用这两种数据类型,因为可能影响性能但可在单行的列中存储多达2GB的数据。与text数据类型相比,更好的选择是使用varchar(max)类型,因为将获得更好的性能。另外,text和ntext数据类型在SQL Server的一些未来版本中将不可用,因此现在开始还是最好使用varchar(max)和nvarchar(max)而不是text和ntext数据类型。 表1-1列出了这些类型,对其作了简单描述,并说明了要求的存储空间。 表1-1 数 据 类 型 描    述 存 储 空 间 Char(n) N为1~8000字符之间 n字节 Nchar(n) N为1~4000 Unicode字符之间 (2n字节)+2字 节额外开销 Ntext 最多为2 30 –1 (1 073 741 823)Unicode字符 每字符2字节 Nvarchar(max) 最多为2 30 –1 (1 073 741 823)Unicode字符 2×字符数+2字 节额外开销 Text 最多为2 31 –1 (2 147 483 647)字符 每字符1字节 Varchar(n) N为1~8000字符之间 每字符1字节+2 字节额外开销 Varchar(max) 最多为2 31 –1(2 147 483 647)字符 每字符1字节+2 字节额外开销   2. 精确数值数据类型 数值数据类型包括bit、tinyint、smallint、int、bigint、numeric、decimal、money、float以及real。这些数据类型都用于存储不同类型的数字值。第一种数据类型bit只存储0或1,在大多数应用程序中被转换为true或false。bit数据类型非常适合用于开关标记,且它只占据一个字节空间。其他常见的数值数据类型如表1-2所示。 表1-2 数 据 类 型 描    述 存 储 空 间 bit 0、1或Null 1字节(8位) tinyint 0~255之间的整数 1字节 smallint –32 768~32 767之间的整数 2字节 int –2 147 483 648~ 2 147 483 647之间的整数 4字节 bigint –9 223 372 036 854 775 808~ 9 223 372 036 854 775 807 之间的整数 8字节   (续表) 数 据 类 型 描    述 存 储 空 间 numeric(p,s)或 decimal(p,s) –1 038+1~1 038–1之间的数值 最多17字节 money –922 337 203 685 477.580 8~ 922 337 203 685 477.580 7 8字节 smallmoney –214 748.3648~2 14 748.3647 4字节           SQL Server 2008 数据类型(2 ) 如decimal和numeric等数值数据类型可存储小数点右边或左边的变长位数。Scale是小数点右边的位数。精度(Precision)定义了总位数,包括小数点右边的位数。例如,由于14.88531可为numeric(7,5)或decimal(7,5)。如果将14.25插入到numeric(5,1)列中,它将被舍入为14.3。 3. 近似数值数据类型 这个分类中包括数据类型float和real。它们用于表示浮点数据。但是,由于它们是近似的,因此不能精确地表示所有值。 float(n)中的n是用于存储该数尾数(mantissa)的位数。SQL Server对此只使用两个值。如果指定位于1~24之间,SQL就使用24。如果指定25~53之间,SQL就使用53。当指定float()时(括号中为空),默认为53。 表1-3列出了近似数值数据类型,对其进行简单描述,并说明了要求的存储空间。 表1-3 数 据 类 型 描    述 存 储 空 间 float –1.79E+308~–2.23E– 308,0,2.23E–308~1.79E+308 N =24-4字节 N 24-8字节 real() –3.40E+38~–1.18E– 38,0,1.18E–38~3.40E+38 4字节   注意: real的同义词为float(24)。 4. 二进制数据类型 如varbinary、binary、varbinary(max)或image等二进制数据类型用于存储二进制数据,如图形文件、Word文档或MP3文件。其值为十六进制的0x0~0xf。image数据类型可在数据页外部存储最多2GB的文件。image数据类型的首选替代数据类型是varbinary(max),可保存最多8KB的二进制数据,其性能通常比image数据类型好。SQL Server 2008的新功能是可以在操作系统文件中通过FileStream存储选项存储varbinary(max)对象。这个选项将数据存储为文件,同时不受varbinary(max)的2GB大小的限制。 表1-4列出了二进制数据类型,对其作了简单描述,并说明了要求的存储空间。 表1-4 数 据 类 型 描    述 存 储 空 间 Binary(n) N为1~8000十六进制数字之间 n字节 Image 最多为2 31 –1 (2 147 483 647)十六进制数位 每字符1字节 Varbinary(n) N为1~8000十六进制数字之间 每字符1字节 +2字节额外开销 Varbinary(max) 最多为2 31 –1 (2 147 483 647)十六进制数字 每字符1字节 +2字节额外开销   5. 日期和时间数据类型 datetime和smalldatetime数据类型用于存储日期和时间数据。smalldatetime为4字节,存储1900年1月1日~2079年6月6日之间的时间,且只精确到最近的分钟。datetime数据类型为8字节,存储1753年1月1日~9999年12月31日之间的时间,且精确到最近的3.33毫秒。 SQL Server 2008有4种与日期相关的新数据类型:datetime2、dateoffset、date和time。通过SQL Server联机丛书可找到使用这些数据类型的示例。 datetime2数据类型是datetime数据类型的扩展,有着更广的日期范围。时间总是用时、分钟、秒形式来存储。可以定义末尾带有可变参数的datetime2数据类型--如datetime2(3)。这个表达式中的3表示存储时秒的小数精度为3位,或0.999。有效值为0~9之间,默认值为3。 datetimeoffset数据类型和datetime2数据类型一样,带有时区偏移量。该时区偏移量最大为+/-14小时,包含了UTC偏移量,因此可以合理化不同时区捕捉的时间。 date数据类型只存储日期,这是一直需要的一个功能。而time数据类型只存储时间。它也支持time(n)声明,因此可以控制小数秒的粒度。与datetime2和datetimeoffset一样,n可为0~7之间。 表1-5列出了日期/时间数据类型,对其进行简单描述,并说明了要求的存储空间。 表1-5 数 据 类 型 描    述 存 储 空 间 Date 9999年1月1日~12月31日 3字节 Datetime 1753年1月1日~9999年12月31日, 精确到最近的3.33毫秒 8字节 Datetime2(n) 9999年1月1日~12月31日 0~7之间的N指定小数秒 6~8字节 Datetimeoffset(n) 9999年1月1日~12月31日 0~7之间的N指定小数秒+/–偏移量 8~10字节 SmalldateTime 1900年1月1日~2079年 6月6日,精确到1分钟 4字节 Time(n) 小时:分钟:秒.9999999 0~7之间的N指定小数秒 3~5字节   6. 其他系统数据类型 还有一些之前未见过的数据类型。表1-6列出了这些数据类型。 表1-6 数 据 类 型 描    述 存 储 空 间 Cursor 包含一个对光标的引用和 可以只用作变量或存储过程参数 不适用 Hierarchyid 包含一个对层次结构中位置的引用 1~892字节+2 字节的额外开销 SQL_Variant 可能包含任何系统数据类 型的值,除了text、ntext、 image、timestamp、xml、 varchar(max)、nvarchar(max)、 varbinary (max)、sql_variant以 及用户定义的数据类型。最大尺 寸为8000字节数据+16字节 (或元数据) 8016字节 Table 用于存储用于进一步处理的数 据集。定义类似于Create Table。 主要用于返回表值函数的结果集, 它们也可用于存储过程和批处理中 取决于表定 义和存储的行数 Timestamp or Rowversion 对于每个表来说是唯一的、自 动存储的值。通常用于版本戳, 该值在插入和每次更新时自动改变 8字节 Uniqueidentifier 可以包含全局唯一标识符 (Globally Unique Identifier, GUID)。guid值可以从Newid() 函数获得。这个函数返回的值对 所有计算机来说是唯一的。 尽管存储为16位的二进制值, 但它显示为char(36) 16字节 XML 可以以Unicode或非Unicode形式存储 最多2GB   注意: cursor数据类型可能不用于Create Table语句中。 hierarchyid列是SQL Server 2008中新出现的。您可能希望将这种数据类型的列添加到这样的表中--其表行中的数据可用层次结构表示,就像组织层次结构或经理/雇员层次结构一样。存储在该列中的值是行在层次结构中的路径。层次结构中的级别显示为斜杠。斜杠间的值是这个成员在行中的数字级别,如/1/3。可以运用一些与这种数据类型一起使用的特殊函数。 XML数据存储XML文档或片段。根据文档中使用UTF-16或是UTF-8,它在尺寸上像text或ntext一样存储。XML数据类型使用特殊构造体进行搜索和索引。第15章将更详细地介绍这些内容。 7. CLR 集成 在SQL Server 2008中,还可使用公共语言运行库(Common Language Runtime,CLR)创建自己的数据类型和存储过程。这让用户可以使用Visual Basic或C#编写更复杂的数据类型,以满足业务需求。这些类型被定义为基本的CLR语言中的类结构。第8章将更详细地介绍其管理部分的内容。   详细内容请参考: http://www.cnblogs.com/zhangwei595806165/archive/2012/02/23/2364746.html  
相关资源
  • 所需E币: 4
    时间: 2019-12-25 21:05
    大小: 246.85KB
    上传者: givh79_163.com
    1Comments-注释2ReservedKeywords-关键字3Identifiers-标识符4DataTypes-数据类型5Constants-常量6Variables-变量7SpecifyingtheSRAMStorageAddressforGlobalVariables-指定全局变量在SRAM的地址8BitVariables-位变量9AllocationofVariablestoRegisters-给变量分配寄存器10Structures-结构体……
  • 所需E币: 5
    时间: 2019-12-28 21:45
    大小: 403.18KB
    上传者: 二不过三
    单片机c语言基础……
  • 所需E币: 3
    时间: 2019-12-25 16:22
    大小: 2.27MB
    上传者: 16245458_qq.com
    嵌入式c语言设计……
  • 所需E币: 4
    时间: 2019-12-25 16:17
    大小: 1.32MB
    上传者: 2iot
    C#完全手册……
  • 所需E币: 4
    时间: 2019-12-25 12:18
    大小: 110.72KB
    上传者: 16245458_qq.com
    .C语言进阶-第二讲C语言复习……
  • 所需E币: 3
    时间: 2019-12-25 12:16
    大小: 109KB
    上传者: rdg1993
    从µCOS升级到µCOSII从µC/OS升级到µC/OS-II本章描述如何从µC/OS升级到µC/OS-II。如果已经将µC/OS移植到了某类微处理器上,移植µC/OS-II所要做的工作应当非常有限。在多数情况下,用户能够在1个小时之内完成这项工作。如果用户熟悉µC/OS的移植,可隔过本章前一部分直接参阅10.05节。1目录和文件用户首先会注意到的是目录的结构,主目录不再叫\SOFTWARE\uCOS。而是叫\SOFTWARE\uCOS-II。所有的µC/OS-II文件都应放在用户硬盘的SOFTWARE\uCOS-II目录下。面向不同的微处理器或微处理器的源代码一定是在以下两个或三个文件中:OS_CPU.H,OS_CPU_C.C,或许还有OS_CPU_A.ASM.。汇编语言文件是可有可无的,因为有些C编译程序允许使用在线汇编代码,用户可以将这些汇编代码直接写在OS_CPU_C.C.中。与微处理器有关的特殊代码,即与移植有关的代码,在µC/OS中是放在用微处理器名字命名的文件中的,例如,Intel80x86的实模式(RealMode),在大模式下编译(LargeModle)时,文件名为Ix86L.H,Ix86L_C.C,和Ix86L_A.ASM.。|表L10.1在µC/OS-II中重新命名的文件.||\SOFTWARE\uCOS\Ix86L|\SOFTWARE\uCOS-II\Ix86L||Ix86L.H|OS_C……
  • 所需E币: 3
    时间: 2019-12-25 12:05
    大小: 486KB
    上传者: 238112554_qq
    数组、簇和波形3.数据类型:数组、簇和波形3.1概述数组是同类型元素的集合。一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。可以通过数组索引访问其中的每个元素。索引的范围是0到n–1,其中n是数组中元素的个数。图3-1所显示的是由数值构成的一维数组。注意第一个元素的索引号为0,第二个是1,依此类推。数组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。[pic]图3-1数组示意图簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。它类似于C语言中的stuct。使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。减少子VI的连接端子的数量。波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。3.2数组的创建及自动索引3.2.1创建数组一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(数或字符串等)。如果需要用一个数组作为程序的数据源,可以选择Functions»Array»ArrayConstant,将它放置在流程图中。然后再在数组框中放置数值常量、布尔数还是字符串常量。下图显示了在数组框放入字符串常量数组的例子。左边是一个数组壳,中间的图上已经置入了字符串元素,右边的图反映了数组的第0个元素为:”ABC”,后两个元素均为空。[pic]……