2.1 系统数据类型

21
2022年5年6年 年年年 SQL Server 2000 年年年年 第 2 第 SQL Server 2000 第第第第 第第第第第第第第第第第 第第第第第第第第第第 第第第第 、, 第第第第 第第第第第第 第第第第第第第第第第第第第第第第第第第第第 第 一,、 第第 第第第 第第第第第第第第第第 第第第第第第第第第第第第第第 第第 、、,。 第第第第第第第第第第第第第 第第第第第第第第 第第第第第第 第第第 第 ,、、 第第第第第第第第第第第第 第第第 第第第第 第第第第第第 第第第 第第 。,一, 第第第第第第第第第第第第第第第第第SQL Server 第第第第第 第第第第第第 第第第第第第第第第第第第第第第第第第

Upload: klaus

Post on 04-Feb-2016

207 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

第 2 章 SQL Server 2000 数据类型

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

Page 2: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 在绝大多数编程环境中,数据类型由系

统定义,这类数据类型通常称之为系统数据类型。

Page 3: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 2.1.1 字符数据类型 字符数据的类型包括 Char , Varchar

和 Text 。字符数据是由任何字母、符号和数字任意组合而成的数据。

Char 是定长字符数据类型,其长度最多为 8KB ,默认为 1

Varchar 是变长字符数据类型,其长度不超过 8KB

超过 8KB 的 ASCII 数据可以使用 Text数据类型存储。

Page 4: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 2.1.2 数值型数据类型 数值数据只包含数字,例如正数和负数、

小数(浮点数)和整数。包括:bigint , int , smallint , tinyint , decimal , numeric , float 和 real 。

Page 5: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 2.1.2 数值型数据类型 整数由正整数和负整数组成,例如 18 、 25 、 -3 和 28813 。

在 Micrsoft SQL Server  中,整数存储的数据类型是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 个字节存储空间)。

Page 6: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 2.1.2 数值型数据类型 精确数值型数据由整数部分和小数部分构成,其所有的数

字都是有效位,能够以完整的精度存储十进制数。在SQL Server 中精确数值型是 decimal 和 numeric ,两者唯一的区别在于 decinal 不能用于带有 identity 关键字的列。这种数据类型的存储范围取决于一个确定的数字表达法,而不是一个固定的数值。表达方式: decimal( p,s ),其中 p :指定精度或对象能够控制的数字个数;s :指定可放到小数点右边的小数位数或数字个数, p 可指定的范围为 1 ~ 38 , s 可指定的范围最少为 0 ,最多不可超过 p 。

例如,如果定义 decimal ( 8,6 ),那么该类型的取值范围是 -99.999999 ~ 99.999999 。

Page 7: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 2.1.2 数值型数据类型 在 SQL Server  中,近似小数数据的数据

类型是 float 和 real 。例如,三分之一这个分数记作 .3333333 ,当使用近似数据类型时不能准确表示

Page 8: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 2.1.3 货币型数据类型 货币数据表示正的或者负的货币数量。 在 Microsoft SQL Server 中,货币数据

的数据类型是 Money 和Smallmoney , Money 数据类型要求 8个存储字节, Smallmoney 数据类型要求4 个存储字节。

Page 9: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 2.1.4 时间/日期数据类型 日期和时间数据类型用于存储日期和时间

信息,包括 Datetime  和 Smalldatetime 两种类型。

日期和时间数据类型由有效的日期和时间组成,不存在只存储时间数据类型或日期数据类型。

Page 10: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 日期的格式可以设定。设置日期格式的命令如下: Set DateFormat {format | @format _var} 其中, format | @format_var  是日期的顺序。

有效的参数包括: MDY 、 DMY 、 YMD 、 YDM 、MYD  和 DYM 。在默认情况下,日期格式为MDY 。

例如,当执行 Set DateFormat YMD  之后,日期的格式为年月日形式;当执行Set DateFormat DMY 之后,日期的格式为日月年形式。

注:该设置仅用在将字符串转换为日期值时的解释中。它对日期的显示没有影响

Page 11: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

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

Page 12: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 2.1.5 二进制数据类型 二进制数据类型表示的是位数据流,包

括 Binary (固定长度)和 Varbinary (可变长度)两种,可用来输入和显示前缀为 0x 的十六进制值。

Page 13: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 2.1.6 其他数据类型 Image  数据类型中存储的数据是以位字符串存

储的,不是由 SQL Server 解释的,必须由应用程序来解释。

Timestamp 是时间戳数据类型 Uniqueidentifier  由 16  字节的十六进制数字

组成,表示一个全局唯一的标识符 Bit 数据类型由 1 或者 0 组成 Unicode 数据类型包括 Nchar , Nvarchar 和

Ntext 。 Unicode 是“统一字符编码标准”,用于支持国际上非英语种的字符数据的存储和处理

Page 14: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 以上介绍了大部分的系统数据类型,建立

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

Page 15: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.1 系统数据类型 NULL 值不是 0 也不是空格,更不是填入

字符串“ NULL” ,而是表示“不知道”、“不确定”或“暂时没有数据”的意思。比如在员工表中,可以使用 NULL 值来代替部分员工的电话号码,表示该员工的电话号码暂时不知道。

当某一字段可以接受 NULL 值时,表示该字断的值可以不要输入。如果某个字段的值一定要输入才又意义时,则可以设置为NOT NULL 。

Page 16: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.2 用户自定义数据类型 用户定义的数据类型基于

在 Microsoft SQL Server  中提供的数据类型。当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。例如,可定义一种称为 postal_code  的数据类型,用于限定邮政编码的数据类型,它基于 Char 数据类型。

当创建用户自定义的数据类型时,必须提供三个参数:数据类型的名称、所基于的系统数据类型和数据类型是否允许空值。

Page 17: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.2 用户自定义数据类型 创建用户定义的数据类型可以使用

Transact-SQL语句。系统存储过程sp_addtype 可以来创建用户定义的数据类型。其语法格式如下:

sp_addtype {新数据类型名 },[, 系统数据类型 ][,'null_type']

Page 18: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.2 用户自定义数据类型 【例 2.1】创建一个 uname 用户定义数

据类型 , 其基于的系统数据类型是变长为8 的字符,不允许空。

Use Northwind Exec sp_addtype uname,'Varchar(8)',

'Not Null '

Page 19: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

2.2 用户自定义数据类型 2.删除用户定义的数据类型 当用户定义的数据类型不需要时,可删除。删除用户定义的数据类型的命令是

sp_droptype {' 数据类型名 '} 【例 2.4】删除用户定义数据类型 uname Use Northwind Exec sp_droptype 'uname '

Page 20: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

本章小结

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

Page 21: 2.1  系统数据类型

2023年4月22日 星期六SQL Server 2000 实用教程

本章小结 类型 数据类型 长度

字符数据类型 CharVarcharText

1 ~ 8000个字符, 1 个字符占 1 个字节1 ~ 8000个字符, 1 个字符占 1 个字节1 ~ 231-1个字符, 1 个字符占 1 个字节

整型 BigintIntSmallintTinyintBit

8 字节, -263 ~ 263-14 字节, -231 ~ 231-12 字节, -215 ~ 215-11 字节, 0 ~ 2550 , 1 ,或 NULL

精确数值类型 DecimalNumeric

2 ~ 17字节,视精确度而定2 ~ 17字节,视精确度而定

近似数值类型 FloatReal

8 字节4 字节

货币型数据类型 MoneySmallmoney

8 字节4 字节

时间/日期数据类型 DatetimeSmalldatetime

8 字节4 字节

类型 数据类型 长度

二进制数据类型 BinaryVarbinary

1 ~ 8000个字节,存储时需另外增加 4 字节1 ~ 8000个字节,存储时需另外增加 4 字节

图像型 Image 0 ~ 2×109字节

标记型 TimestampUniqueidentifier

8 字节16字节

Unicode字符型 NcharNvarcharNtext

1 ~ 4000个字符, 1 个字符 2 个字节1 ~ 4000个字符, 1 个字符 2 个字节1 ~ 230-1个字符, 1 个字符 2 个字节