1 / 21

2.1 系统数据类型

当我们定义数据表的字段、声明程序中的变量时,都需要为它们设置一个数据类型,目的是指定该字段或变量所存放的数据是整数、字符串、货币、或是其他类型的数据,以及会用多少空间来存储数据。为列选择合适的数据类型非常重要,因为其影响着系统的空间利用、性能、可靠性和是否易于管理等特性。因此,在开发一个数据库系统之前,最好能够真正理解各种数据类型的存储特征。 SQL Server 中的数据类型可分为系统内置数据类型和用户自定义数据类型两种。. 2.1 系统数据类型. 在绝大多数编程环境中,数据类型由系统定义,这类数据类型通常称之为系统数据类型。.

klaus
Download Presentation

2.1 系统数据类型

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 当我们定义数据表的字段、声明程序中的变量时,都需要为它们设置一个数据类型,目的是指定该字段或变量所存放的数据是整数、字符串、货币、或是其他类型的数据,以及会用多少空间来存储数据。为列选择合适的数据类型非常重要,因为其影响着系统的空间利用、性能、可靠性和是否易于管理等特性。因此,在开发一个数据库系统之前,最好能够真正理解各种数据类型的存储特征。SQL Server中的数据类型可分为系统内置数据类型和用户自定义数据类型两种。 SQL Server 2000 实用教程

  2. 2.1 系统数据类型 在绝大多数编程环境中,数据类型由系统定义,这类数据类型通常称之为系统数据类型。 SQL Server 2000 实用教程

  3. 2.1 系统数据类型 2.1.1字符数据类型 字符数据的类型包括Char,Varchar和Text。字符数据是由任何字母、符号和数字任意组合而成的数据。 Char是定长字符数据类型,其长度最多为8KB,默认为1 Varchar是变长字符数据类型,其长度不超过8KB 超过8KB的ASCII数据可以使用Text数据类型存储。 SQL Server 2000 实用教程

  4. 2.1 系统数据类型 • 2.1.2 数值型数据类型 • 数值数据只包含数字,例如正数和负数、小数(浮点数)和整数。包括:bigint,int,smallint,tinyint,decimal,numeric,float和real。 SQL Server 2000 实用教程

  5. 2.1 系统数据类型 • 2.1.2 数值型数据类型 • 整数由正整数和负整数组成,例如18、25、-3和28813。在MicrsoftSQLServer中,整数存储的数据类型是bigint,int,smallint和tinyint。bigint为大整数,该数据类型存储数据的范围大于int,int为整型,该数据类型存储数据的范围大于smallint数据类型存储数据的范围,而smallint为短整型,该数据类型存储数据的范围大于tinyint数据类型存储数据的范围,tinyint为微短整型。使用bigint数据类型存储数据的长度为8个字节,数据范围为-263~263-1,即-9223372036854775808~9223372036854775807(每一个值要求8各字节存储空间)。int数据类型存储数据的范围为-231~231-1,即-2147483648~2147483647(每一个值要求4个字节存储空间)。使用smallint数据类型时,存储数据的范围为-215~215-1,即-32768~32767(每一个值要求2个字节存储空间)。使用Tinyint数据类型时,存储数据的范围是从0到255(每一个值要求1个字节存储空间)。 SQL Server 2000 实用教程

  6. 2.1 系统数据类型 • 2.1.2 数值型数据类型 • 精确数值型数据由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数。在SQLServer中精确数值型是decimal和numeric,两者唯一的区别在于decinal不能用于带有identity关键字的列。这种数据类型的存储范围取决于一个确定的数字表达法,而不是一个固定的数值。表达方式:decimal(p,s),其中p:指定精度或对象能够控制的数字个数;s:指定可放到小数点右边的小数位数或数字个数,p可指定的范围为1~38,s可指定的范围最少为0,最多不可超过p。 • 例如,如果定义decimal(8,6),那么该类型的取值范围是-99.999999~99.999999。 SQL Server 2000 实用教程

  7. 2.1 系统数据类型 • 2.1.2 数值型数据类型 • 在SQLServer中,近似小数数据的数据类型是float和real。例如,三分之一这个分数记作.3333333,当使用近似数据类型时不能准确表示 SQL Server 2000 实用教程

  8. 2.1 系统数据类型 • 2.1.3货币型数据类型 • 货币数据表示正的或者负的货币数量。 • 在MicrosoftSQLServer中,货币数据的数据类型是Money和Smallmoney,Money数据类型要求8个存储字节,Smallmoney数据类型要求4个存储字节。 SQL Server 2000 实用教程

  9. 2.1 系统数据类型 • 2.1.4 时间/日期数据类型 • 日期和时间数据类型用于存储日期和时间信息,包括Datetime和Smalldatetime两种类型。 • 日期和时间数据类型由有效的日期和时间组成,不存在只存储时间数据类型或日期数据类型。 SQL Server 2000 实用教程

  10. 2.1 系统数据类型 • 日期的格式可以设定。设置日期格式的命令如下: • SetDateFormat{format|@format_var} • 其中,format|@format_var是日期的顺序。有效的参数包括:MDY、DMY、YMD、YDM、MYD和DYM。在默认情况下,日期格式为MDY。 • 例如,当执行SetDateFormatYMD之后,日期的格式为年月日形式;当执行SetDateFormatDMY之后,日期的格式为日月年形式。 • 注:该设置仅用在将字符串转换为日期值时的解释中。它对日期的显示没有影响 SQL Server 2000 实用教程

  11. 2.1 系统数据类型 • SQL Server中常用的日期和时间表示格式如下: • 分隔符可用’/’、’-’或’.’,例如:’4/15/2005’、’4-15-05’或’4.15.2005’ • 字母日期格式:’April 15,2005’ • 不用分隔符:’20050501’ • 时:分:秒:毫秒:08:05:25:28 • 时:分 AM|PM :05:08AM、08:05PM SQL Server 2000 实用教程

  12. 2.1 系统数据类型 • 2.1.5 二进制数据类型 • 二进制数据类型表示的是位数据流,包括Binary(固定长度)和Varbinary(可变长度)两种,可用来输入和显示前缀为0x的十六进制值。 SQL Server 2000 实用教程

  13. 2.1 系统数据类型 • 2.1.6 其他数据类型 • Image数据类型中存储的数据是以位字符串存储的,不是由SQLServer解释的,必须由应用程序来解释。 • Timestamp是时间戳数据类型 • Uniqueidentifier由16字节的十六进制数字组成,表示一个全局唯一的标识符 • Bit数据类型由1或者0组成 • Unicode数据类型包括Nchar,Nvarchar和Ntext。Unicode是“统一字符编码标准”,用于支持国际上非英语种的字符数据的存储和处理 SQL Server 2000 实用教程

  14. 2.1 系统数据类型 • 以上介绍了大部分的系统数据类型,建立数据表时,我们会设置各个字段名称以及数据类型,在输入数据时,SQL Server会根据数据类型来检查输入的值是否符合要求,如果不符,便会出现错误信息提醒操作者。有时由于数据表中的部分字段没有数据可填入(例如员工表中有的员工没有电话)而发生错误,要想避免此类错误,我们可以利用NULL值来解决。 SQL Server 2000 实用教程

  15. 2.1 系统数据类型 • NULL值不是0也不是空格,更不是填入字符串“NULL”,而是表示“不知道”、“不确定”或“暂时没有数据”的意思。比如在员工表中,可以使用NULL值来代替部分员工的电话号码,表示该员工的电话号码暂时不知道。 • 当某一字段可以接受NULL值时,表示该字断的值可以不要输入。如果某个字段的值一定要输入才又意义时,则可以设置为NOT NULL。 SQL Server 2000 实用教程

  16. 2.2 用户自定义数据类型 • 用户定义的数据类型基于在MicrosoftSQLServer中提供的数据类型。当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。例如,可定义一种称为postal_code的数据类型,用于限定邮政编码的数据类型,它基于Char数据类型。 • 当创建用户自定义的数据类型时,必须提供三个参数:数据类型的名称、所基于的系统数据类型和数据类型是否允许空值。 SQL Server 2000 实用教程

  17. 2.2 用户自定义数据类型 • 创建用户定义的数据类型可以使用Transact-SQL语句。系统存储过程sp_addtype可以来创建用户定义的数据类型。其语法格式如下: sp_addtype{新数据类型名},[,系统数据类型][,'null_type'] SQL Server 2000 实用教程

  18. 2.2 用户自定义数据类型 • 【例2.1】创建一个uname用户定义数据类型, 其基于的系统数据类型是变长为8的字符,不允许空。 • Use Northwind • Execsp_addtypeuname,'Varchar(8)', 'NotNull ' SQL Server 2000 实用教程

  19. 2.2 用户自定义数据类型 • 2.删除用户定义的数据类型 • 当用户定义的数据类型不需要时,可删除。删除用户定义的数据类型的命令是 sp_droptype{'数据类型名'} • 【例2.4】删除用户定义数据类型uname UseNorthwind Execsp_droptype'uname ' SQL Server 2000 实用教程

  20. 本章小结 本章重点介绍了SQL Server 2000数据类型的分类、使用方法和使用时的注意事项。表2.1列出了SQL Server常见的数据类型。 SQL Server 2000 实用教程

  21. 本章小结 SQL Server 2000 实用教程

More Related