资源预览内容
第1页 / 共82页
第2页 / 共82页
第3页 / 共82页
第4页 / 共82页
第5页 / 共82页
第6页 / 共82页
第7页 / 共82页
第8页 / 共82页
第9页 / 共82页
第10页 / 共82页
亲,该文档总共82页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第4章 视图和表,4.1 数据类型 4.2 表操作 4.3 视图操作,上一章,返回目录,4.1 数据类型,4.1.1 系统数据类型 4.1.2 自定义数据类型,4.1.1 系统数据类型,1. 整型数据类型 2. 浮点数据类型 3. 字符数据类型 4. 日期和时间数据类型 5. 文本和图形数据类型,6. 货币数据类型 7. 位数据类型 8. 二进制数据类型 9. 特殊数据类型 10. 新增数据类型,1. 整型数据类型,整型数据类型是最常用的数据类型之一,它主要用来存储数值,可以直接进行数据运算,而不必使用函数转换。 int(integer):int(或integer)数据类型可以存储从-231(-2,147,483,648)到231-1(2,147,483,647)范围之间的所有正负整数。 Smallint:可以存储从-215(-32,768)到215-1范围之间的所有正负整数 。 Tinyint:可以存储从0到255范围之间的所有正整数。,2. 浮点数据类型,浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server中采用只入不舍的方式进行存储 。 Real:可以存储正的或者负的十进制数值,最大可以有7位精确位数。 Float:可以精确到第15位小数,其范围从-1.79E-308到1.79E+308。 Decimal和numeric:Decimal数据类型和numeric数据类型完全相同,它们可以提供小数所需要的实际存储空间,但也有一定的限制,可以用2到17个字节来存储从-1038-1到1038-1之间的数值。,3. 字符数据类型,字符数据类型可以用来存储各种字母、数字符号和特殊符号。 Char:其定义形式为char(n),每个字符和符号占用一个字节的存储空间。 Varchar:其定义形式为varchar(n)。用char数据类型可以存储长达255个字符的可变长度字符串 。 Nchar:其定义形式为nchar(n)。 Nvarchar:其定义形式为nvarchar(n)。,4. 日期和时间数据类型,Datetime:用于存储日期和时间的结合体 。它可以存储从公元1753年1月1日零时起到公元9999年12月31日23时59分59秒之间的所有日期和时间 。 Smalldatetime:与datetime数据类型类似,但其日期时间范围较小,它存储从1900年1月1日到2079年6月6日内的日期。,5. 文本和图形数据类型,Text:用于存储大量文本数据,其容量理论上为1到231-1(2,147,483,647)个字节,但实际应用时要根据硬盘的存储空间而定。 Ntext:与text数据类型类似,存储在其中的数据通常是直接能输出到显示设备上的字符,显示设备可以是显示器、窗口或者打印机。 Image:用于存储照片、目录图片或者图画,其理论容量为231-1(2,147,483,647)个字节。,6. 货币数据类型,Money:用于存储货币值,存储在money数据类型中的数值以一个正数部分和一个小数部分存储在两个4字节的整型值中,存储范围为-922337213685477.5808到922337213685477.5808,精度为货币单位的万分之一。 Smallmoney:与money数据类型类似,但其存储的货币值范围比money数据类型小,其存储范围为-214748.3468到214748.3467。,7. 位数据类型,Bit:称为位数据类型,其数据有两种取值:0和1,长度为1字节。,8. 二进制数据类型,Binary:其定义形式为binary(n),数据的存储长度是固定的,即n+4字节,当输入的二进制数据长度小于n时,余下部分填充0。 Varbinary:其定义形式为varbinary(n),数据的存储长度是变化的,它为实际所输入数据的长度加上4字节。其它含义同binary。,9. 特殊数据类型,Timestamp:亦称时间戳数据类型,它提供数据库范围内的唯一值,反应数据库中数据修改的相对顺序,相当于一个单调上升的计数器。 Uniqueidentifier:用于存储一个16字节长的二进制数据类型,它是SQL Server根据计算机网络适配器地址和CPU时钟产生的唯一号码而生成的全局唯一标识符代码(Globally Unique Identifier,简写为GUID)。,10. 新增数据类型,Bigint:用于存储从-263(-9,223,372,036,854,775,807)到263-1(9,223,372,036,854,775,807)之间的所有正负整数。 sql_variant:用于存储除文本、图形数据和timestamp类型数据外的其它任何合法的SQL Server数据。 table:用于存储对表或者视图处理后的结果集。这种新的数据类型使得变量可以存储一个表,从而使函数或过程返回查询结果更加方便、快捷。,4.1.2 自定义数据类型,1. 使用企业管理器(Enterprise Manager)创建用户自定义数据类型。 2. 利用系统存储过程创建用户自定义数据类型 。 系统存储过程sp_addtype为用户提供了T_SQL语句创建自定义数据类型的途径,其语法形式如下: sp_addtype typename= type, phystype= system_data_type , nulltype= null_type , owner= owner_name,例子4-1:自定义一个地址数据类型。,exec sp_addtype address, varchar(80), not null 其运行结果如下: (1 row(s) affected) type added.,例子4-2:删除自定义的生日数据类型。,exec sp_droptype birthday 其运行结果如下: (1 row(s) affected) (0 row(s) affected) Type has been dropped.,4.2 表操作,4.2.1 创建表 4.2.2 增加、删除和修改字段 4.2.3 创建、删除和修改约束 4.2.4 查看表格,4.2.1 创建表,在SQL Server 2000中,每个数据库中最多可以创建200万个表,用户创建数据库表时,最多可以定义1024列,也就是可以定义1024个字段。 SQL Server 2000提供了两种方法创建数据库表,第一种方法是利用企业管理器(Enterprise Manager)创建表;另一种方法是利用Transact-SQL语句中的create命令创建表。,1. 利用Enterprise Manager创建表,在Enterprise Manager中,展开指定的服务器和数据库,打开想要创建新表的数据库,用右键单击表对象,从弹出的快捷菜单中选择新建表选项,或者在工具栏中选择图标,就会出现新建表对话框,在该对话框中,可以定义列的以下属性:列名称、数据类型、长度、精度、小数位数、是否允许为空、缺省值、标识列、标识列的初始值、标识列的增量值和是否有行的标识。 然后根据提示进行设置。,2. 利用create命令创建表,其语法形式如下: CREATE TABLE database_name. owner .| owner. table_name ( | column_name AS computed_column_expression| ,n) ON filegroup | DEFAULT ,创建表的各参数的说明如下:,database_name:用于指定在其中创建表的数据库名称。 owner:用于指定新建表的所有者的用户名 。 table_name:用于指定新建的表的名称。 column_name:用于指定新建表的列的名称。 computed_column_expression:用于指定计算列的列值的表达式。 ON filegroup | DEFAULT:用于指定存储表的文件组名。 TEXTIMAGE_ON:用于指定 text、ntext 和 image 列的数据存储的文件组。 data_type:用于指定列的数据类型 。 DEFAULT:用于指定列的缺省值。,constant_expression:用于指定列的缺省值的常量表达式 。 IDENTITY:用于指定列为标识列。 Seed:用于指定标识列的初始值。 Increment:用于指定标识列的增量值。 NOT FOR REPLICATION:用于指定列的IDENTITY属性在把从其它表中复制的数据插入到表中时不发生作用,即不足的生成列值,使得复制的数据行保持原来的列值。 ROWGUIDCOL:用于指定列为全球唯一鉴别行号列 。 COLLATE:用于指定表使用的校验方式。 column_constraint和table_constraint:用于指定列约束和表约束。,例子4-3:创建了一个雇员信息表,其SQL语句的程序清单如下: CREATE TABLE employee ( number int not null, name varchar(20) NOT NULL, sex char(2) NULL, birthday datetime null, hire_date datetime NOT NULL DEFAULT (getdate() professional_title varchar(10) null, salary money null, memo ntext null ),4.2.2 增加、删除和修改字段,利用企业管理器增加、删除和修改字段 。在企业管理器中,打开指定的服务器中要修改表的数据库,用右键单击要进行修改的表,从弹出的快捷菜单中选择设计表选项,则会出现设计表对话框,在该对话框中,可以利用图形化工具完成增加、删除和修改字段的操作。 利用Transact-SQL语言中的alter table命令增加、删除和修改字段。,利用Transact-SQL语言中的alter table命令增加、删除和修改字段的各参数的说明如下:,table:用于指定要修改的表的名称。 ALTER COLUMN:用于指定要变更或者修改数据类型的列。 column_name:用于指定要更改、添加或删除的列的名称。 new_data_type:用于指定新的数据类型的名称。 precision:用于指定新的数据类型的精度。 scale:用于指定新的数据类型的小数位数。 NULL | NOT NULL:用于指定该列是否可以接受空值。 ADD | DROP ROWGUIDCOL :用于指定在某列上添加或删除 ROWGUIDCOL 属性。,ADD:用于指定要添加一个或多个列定义、计算列定义或者表约束。 computed_column_expression:用于指定一个计算列的计算表达式。 WITH CHECK | WITH NOCHECK:用于指定已经存在于表中的数据是否需要使用新添加的或者刚启用的 FOREIGN KEY 或 CHECK 约束进行验证。 DROP CONSTRAINT constraint_name | COLUMN column_name :用于指定从表中删除的约束或者列的名称。, CHECK | NOCHECK CONSTRAINT:用于指定启用或禁用FOREIGN KEY或者CHECK约束。 ALL :用于指定使用 NOCHECK 选项禁用所有的约束,或者使用 CHECK 选项启用所有约束。 ENABLE | DISABLE TRIGGER:用于指定启用或禁用触发器。当一个触发器被禁用时,它对表的定义依然存在;然而,当在表上执行 INSERT、UPDATE 或 DELETE 语句时,触发器中的操作将不执行,除非重新启用该触发器。 ALL :用于指定启用或禁
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号