第5章表的操作与管理 SQL SERVER2005入门与实例教程电子工业出版社2006
第5章 表的操作与管理
5.1数据类型 在 SQL Server2005中,每个列、局部变量、表达式和参数都有 其各自的数据类型。指定对象的数据类型相当于定义了该对象的 四个特性: 1)对象所含的数据类型,如字符、整数或二进制数 (2)所存储值的长度或它的大小。 (3)数字精度(仅用于数字数据类型) (4)小数位数(仅用于数字数据类型)。 · SQL Server提供系统数据类型集,定义了可与 SQL Server一起 使用的所有数据类型;另外用户还可以使用 Transact-SQL或NE 框架定义自己的数据类型,它是系统提供的数据类型的别名。每 个表可以定义至250个字段,除文本和图像数据类型外,每个 记录的最大长度限制为1962个字 SQL SERVER2005入门与实例教程电子工业出版社2006
5.1 数据类型 •在SQL Server2005 中,每个列、局部变量、表达式和参数都有 其各自的数据类型。指定对象的数据类型相当于定义了该对象的 四个特性: (1)对象所含的数据类型,如字符、整数或二进制数。 (2)所存储值的长度或它的大小。 (3)数字精度(仅用于数字数据类型)。 (4)小数位数(仅用于数字数据类型)。 • SQL Server提供系统数据类型集,定义了可与SQL Server一起 使用的所有数据类型;另外用户还可以使用Transact-SQL或.NET 框架定义自己的数据类型,它是系统提供的数据类型的别名。每 个表可以定义至多250个字段,除文本和图像数据类型外,每个 记录的最大长度限制为1962个字节
5.1.1系统数据类型 1、精确数字类型; 2、近似数字类型; 3、日期和时间类型 4、字符数据类型 5、 Unicode字符数据类型 6、二进制字符数据类型 7、其它数据类型。 SQL SERVER2005入门与实例教程电子工业出版社2006
5.1.1 系统数据类型 1、精确数字类型; 2、近似数字类型; 3、日期和时间类型; 4、字符数据类型; 5、Unicode 字符数据类型; 6、二进制字符数据类型; 7、其它数据类型
5.1.1系统数据类型 1、精确数字类型 (1)精确数字类型包括: 整数类型; Bit(位类型); Decimal和 Numeric(数值类型); Money和 SmallMoney(货币类型)。 SQL SERVER2005入门与实例教程电子工业出版社2006
5.1.1 系统数据类型 1、精确数字类型 (1)精确数字类型包括: •整数类型; •Bit(位类型); •Decimal和Numeric(数值类型); •Money和SmallMoney(货币类型)
5.1.1系统数据类型 1、精确数字类型 (2)整数类型 若数送量需果觜数转换麦契苍类以直接进 Bigint: Bigint数据类型可以存储从(-9223372036854775808)到 9223372036854775807)范围之间的所有整型数据。每个 Bigint数据类 型值存储在8个字节中。 2)Int( Integer):nt(或 integer)数据类型可以存储从(- 2147483648)到(2147483647)范围之间的所有正负整数。每个nt数 据类型值存储在4个字节中 3) Smallint:可以存储从(-32768)到32767范围之间的所有正负整 数。每个 smallint类型的数据占用2个字节的存储空间 (4) Tinyint:可以存储从0~255范围之间的所有正整数。每个 tinyint类 型的数据占用1个字节的存储空间 SQL SERVER2005入门与实例教程电子工业出版社2006
5.1.1 系统数据类型 1、精确数字类型 (2)整数类型: 整数类型是最常用的数据类型之一,它主要用来存储数值,可以直接进 行数据运算,而不必使用函数转换。整数类型包括以下四类: (1)Bigint:Bigint数据类型可以存储从(-9223372036854775808) 到 (9223372036854775807) 范围之间的所有整型数据。每个Bigint数据类 型值存储在8个字节中。 (2)Int(Integer):Int(或integer)数据类型可以存储从(- 2147483648)到(2147483647)范围之间的所有正负整数。每个Int数 据类型值存储在4个字节中。 (3)Smallint:可以存储从(-32768)到32767范围之间的所有正负整 数。每个smallint类型的数据占用2个字节的存储空间。 (4)Tinyint:可以存储从0~255范围之间的所有正整数。每个tinyint类 型的数据占用1个字节的存储空间
5.1.1系统数据类型 1、精确数字类型 (3)位数据类型 ˉBit称为位数据类型,其数据有两种取值:0和1,长度为1字节。在输入 0以外的其他值时,系统均把它们当1看待。这种数据类型常作为逻辑变 量使用,用来表示真、假或是、否等二值选择 (4) Decimal数据类型和 Numeric数据类型 Decimal数据类型和 Numeric数据类型完全相同,它们可以提供小数所需 要的实际存储空间,但也 的限制,可以用2~17个字节来存储 1038+1到1038-1之间的固定精度和小数位的数字。也可以将其 Decima|(p,s)的形式,p和s确定了精确的总位数和小数 其中p表 示可供存储的值的总位数,默认设置为18:S表示小数点后的位数,默认 设置为0。例如: decimal 10,5),表示共有10位数,其中整数5位 小数5位。 SQL SERVER2005入门与实例教程电子工业出版社2006
5.1.1 系统数据类型 1、精确数字类型 (3)位数据类型 •Bit称为位数据类型,其数据有两种取值:0和1,长度为1字节。在输入 0以外的其他值时,系统均把它们当1看待。这种数据类型常作为逻辑变 量使用,用来表示真、假或是、否等二值选择。 (4)Decimal数据类型和Numeric数据类型 Decimal数据类型和Numeric数据类型完全相同,它们可以提供小数所需 要的实际存储空间,但也有一定的限制,可以用2~17个字节来存储- 1038+1到1038-1之间的固定精度和小数位的数字。也可以将其写为 Decimal(p,s)的形式,p和s确定了精确的总位数和小数位。其中p表 示可供存储的值的总位数,默认设置为18;s表示小数点后的位数,默认 设置为0。例如:decimal(10,5),表示共有10位数,其中整数5位, 小数5位
5.1.1系统数据类型 1、精确数字类型 (5)货币数据类型 货币数据类型包括 Money和 SmallMoney两种 ) Money:用于存储货币值,存储在 money数据类型中的 数值以一个正数部分和一个小数部分存储在两个4字节的整型 值中,存储范围为(-9223372136854775808)到 (9223372136854775807),精确到货币单位的千分之十 (2) Smallmoney:与 money数据类型类似,但范围比 money数据类型小,其存储范围为-2147483468到 2147483467之间,精确到货币单位的千分之十 当为 money或 smallmoney的表输入数据时,必须在有效位 置前面加一个货币单位符号 SQL SERVER2005入门与实例教程电子工业出版社2006
5.1.1 系统数据类型 1、精确数字类型 (5)货币数据类型 货币数据类型包括Money和SmallMoney两种: (1)Money:用于存储货币值,存储在money数据类型中的 数值以一个正数部分和一个小数部分存储在两个4字节的整型 值中,存储范围为(-9223372136854775808)到 (9223372136854775807),精确到货币单位的千分之十。 (2)Smallmoney:与money数据类型类似,但范围比 money数据类型小,其存储范围为-2147483468到 2147483467之间,精确到货币单位的千分之十。 当为money或smallmoney的表输入数据时,必须在有效位 置前面加一个货币单位符号
5.1.1系统数据类型 2、近似数字类型 近似数字类型包括Rea和Foa两大类 (1)Real:可以存储正的或者负的十进制数值,最大可以有 7位精确位数。它的存储范围从-340E-38~340E+38。每个 Rea类型的数据占用4个字节的存储空间。 (2) Float:可以精确到第15位小数,其范围从-1.79E- 308~179E+308。如果不指定F|oat数据类型的长度,它占 用8个字节的存储空间。 Float数据类型也可以写为Foat(n) 的形式,n指定Foa数据的精度,n为1~15之间的整数值 当n取1~7时,实际上是定义了一个Rea类型的数据,系统用 4个字节存储它;当n取8~15时,系统认为其是 Float类型, 用8个字节存储它。 SQL SERVER2005入门与实例教程电子工业出版社2006
5.1.1 系统数据类型 2、近似数字类型 •近似数字类型包括Real和Float两大类。 (1)Real:可以存储正的或者负的十进制数值,最大可以有 7位精确位数。它的存储范围从-3.40E-38~3.40E+38。每个 Real 类型的数据占用4个字节的存储空间。 (2)Float:可以精确到第15位小数,其范围从-1.79E- 308~1.79E+308。如果不指定Float 数据类型的长度,它占 用8个字节的存储空间。Float数据类型也可以写为Float(n) 的形式,n指定Float数据的精度,n为1~15之间的整数值。 当n取1~7时,实际上是定义了一个Real 类型的数据,系统用 4个字节存储它;当n取8~15时,系统认为其是Float类型, 用8个字节存储它
5.1.1系统数据类型 3.日期和时间数据类型 Datetime:用于存储日期和时间的结合体,它可以存储从公元1753 年1月1日零时起~公元999年12月3日23时59分59秒之间的所有日期和 时间:其精确度可达三百分之一秒,即3.33毫秒 Datetime数据类型所 占用的存储空间为8个字节,其中前4个字节用于存储基于1900年1月1日 前或者之后旦期数,数值分正负,负数存储的数值代表在基数旦期之前 储在后面 的4个字节中。当存情Dam1数据类剩时,默认的格式是MD YYYY hh:mmAM/PM,当插 人数据或者在其他地方使用 Datetime类型 时,需要用单引号把它括起来。默认的时间日期是 January1,190012:00 AM。可以接受的输入格式如下:Jan41999、JAN41999、 January4 1999、Jan19994、19994Jan和1999Jan4。 2) Smalldatetime:与 Datetime数据类型类似,但其日期时间范围较 存储从1900年1月1日-2079年6月6日内的日期。 Small Datetime 数据类型使用4个字节存储数据 SQL Server 2000 个字节存储日期 1900年月日以后的天数,时间以子夜后的分钟数形式存储在外两个 字节中, SmallDatetime的精度为1分钟。 SQL SERVER2005入门与实例教程电子工业出版社2006
5.1.1 系统数据类型 3. 日期和时间数据类型 (1)Datetime:用于存储日期和时间的结合体,它可以存储从公元1753 年1月1日零时起~公元9999年12月31日23时59分59秒之间的所有日期和 时间,其精确度可达三百分之一秒,即3.33毫秒。Datetime数据类型所 占用的存储空间为8个字节,其中前4个字节用于存储基于1900年1月1日 之前或者之后日期数,数值分正负,负数存储的数值代表在基数日期之前 的日期,正数表示基数日期之后的日期,时间以子夜后的毫秒存储在后面 的4个字节中。当存储Datetime数据类型时,默认的格式是MM DD YYYY hh:mm A.M./P.M,当插入数据或者在其他地方使用Datetime类型 时,需要用单引号把它括起来。默认的时间日期是January 1,1900 12:00 A.M。可以接受的输入格式如下:Jan 4 1999、JAN 4 1999、January 4 1999、Jan 1999 4、1999 4 Jan和1999 Jan 4。 (2)Smalldatetime:与Datetime数据类型类似,但其日期时间范围较 小,它存储从1900年1月1日~2079年6月6日内的日期。SmallDatetime 数据类型使用4个字节存储数据,SQL Server 2000用2个字节存储日期 1900年1月1日以后的天数,时间以子夜后的分钟数形式存储在另外两个 字节中,SmallDatetime的精度为1分钟
5.1.1系统数据类型 4.字符数据类型 字符数据类型也是 SQL Server中最常用的数据类型之 可以用来存储各种 符号和特殊符号。在使用字符数据类型时,需要在其前后加上英文单 引号或者双引号。 char:其定义形式为char(n),当用cha数据类型存储数据时,每个 符和符号占用 的存储空间。n表示所有字符所占的存储空间,n的取值为 1-~8000。若不指定n值,系统默认n的值为1。若输入数据的字符串长度小于n 则系盆息动在其后添加空格来填满设定好的空间:若输入的数据过长将金截掉 作 Varchar来处理。 (2) Varchar:其定义形式为 Varchar(n)。用char数据类型可以存储长达255 个字符的可变长度字符串,和char类型不同的是 Varchar类型的存储空间是根据 存储在表的每一列值的字符数变化的。例如定义 Varchar(20) 对应 段最多可以在储20 符,但是在每一列的长度达到20 前系统不会在其后 添加空格来填满设定好的空间,因此使用 Varchar类型可以节省空间。 3)Text:用于存储文本数据,其容量理论上为1-231-1(2,147,483,647) 个字节,但实际应用时要根据硬盘的存储空间而定。 SQL SERVER2005入门与实例教程电子工业出版社2006
5.1.1 系统数据类型 4. 字符数据类型 •字符数据类型也是SQL Server中最常用的数据类型之一,它可以用来存储各种 字母、数字符号和特殊符号。在使用字符数据类型时,需要在其前后加上英文单 引号或者双引号。 (1)Char:其定义形式为Char(n),当用Char数据类型存储数据时,每个字 符和符号占用一个字节的存储空间。n表示所有字符所占的存储空间,n的取值为 1~8000。若不指定n值,系统默认n的值为1。若输入数据的字符串长度小于n, 则系统自动在其后添加空格来填满设定好的空间;若输入的数据过长,将会截掉 其超出部分。如果定义了一个Char数据类型,而且允许该列为空,则该字段被当 作Varchar来处理。 (2)Varchar:其定义形式为Varchar(n)。用Char数据类型可以存储长达255 个字符的可变长度字符串,和Char类型不同的是Varchar类型的存储空间是根据 存储在表的每一列值的字符数变化的。例如定义Varchar(20),则它对应的字 段最多可以存储20个字符,但是在每一列的长度达到20字节之前系统不会在其后 添加空格来填满设定好的空间,因此使用Varchar类型可以节省空间。 (3)Text:用于存储文本数据,其容量理论上为1~231-1(2,147,483,647) 个字节,但实际应用时要根据硬盘的存储空间而定