数据库对象的操作.ppt
《数据库对象的操作.ppt》由会员分享,可在线阅读,更多相关《数据库对象的操作.ppt(168页珍藏版)》请在三一办公上搜索。
1、第5章 数据库对象的操作,5.1 数据类型 5.2 表操作 5.3 视图操作 5.4 索引操作 5.5 存储过程 5.6 触发器 5.7 图 表,上一章,返回目录,5.1 数据类型,5.1.1 系统数据类型5.1.2 自定义数据类型,5.1.1 系统数据类型,1.整型数据类型2.浮点数据类型 3.字符数据类型 4.日期和时间数据类型 5.文本和图形数据类型,6.货币数据类型 7.位数据类型 8.二进制数据类型 9.特殊数据类型 10.新增数据类型,1.整型数据类型,整型数据类型是最常用的数据类型之一,它主要用来存储数值,可以直接进行数据运算,而不必使用函数转换。int(integer):int
2、(或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:Dec
3、imal数据类型和numeric数据类型完全相同,它们可以提供小数所需要的实际存储空间,但也有一定的限制,可以用2到17个字节来存储从-1038-1到1038-1之间的数值。,3.字符数据类型,字符数据类型可以用来存储各种字母、数字符号和特殊符号。Char:其定义形式为char(n),每个字符和符号占用一个字节的存储空间。Varchar:其定义形式为varchar(n)。用char数据类型可以存储长达255个字符的可变长度字符串。Nchar:其定义形式为nchar(n)。Nvarchar:其定义形式为nvarchar(n)。,4.日期和时间数据类型,Datetime:用于存储日期和时间的结合体
4、。它可以存储从公元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-
5、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)
6、,数据的存储长度是固定的,即n+4字节,当输入的二进制数据长度小于n时,余下部分填充0。Varbinary:其定义形式为varbinary(n),数据的存储长度是变化的,它为实际所输入数据的长度加上4字节。其它含义同binary。,9.特殊数据类型,Timestamp:亦称时间戳数据类型,它提供数据库范围内的唯一值,反应数据库中数据修改的相对顺序,相当于一个单调上升的计数器。Uniqueidentifier:用于存储一个16字节长的二进制数据类型,它是SQL Server根据计算机网络适配器地址和CPU时钟产生的唯一号码而生成的全局唯一标识符代码(Globally Unique Identif
7、ier,简写为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:用于存储对表或者视图处理后的结果集。这种新的数据类型使得变量可以存储一个表,从而使函数或过程返回查询结果更加方便、快捷。,5.1.2 自定义数据类型,1.使用企业管理器(Enterprise Manager)创建用户自定义数据类型。2.利用系统存
8、储过程创建用户自定义数据类型。系统存储过程sp_addtype为用户提供了T_SQL语句创建自定义数据类型的途径,其语法形式如下:sp_addtype typename=type,phystype=system_data_type,nulltype=null_type,owner=owner_name,例子5-1:自定义一个地址数据类型。,exec sp_addtype address,varchar(80),not null其运行结果如下:(1 row(s)affected)type added.,例子5-2:删除自定义的生日数据类型。,exec sp_droptype birthday其运
9、行结果如下:(1 row(s)affected)(0 row(s)affected)Type has been dropped.,5.2 表操作,5.2.1 创建表5.2.2 增加、删除和修改字段 5.2.3 创建、删除和修改约束 5.2.4 查看表格,5.2.1 创建表,在SQL Server 2000中,每个数据库中最多可以创建200万个表,用户创建数据库表时,最多可以定义1024列,也就是可以定义1024个字段。SQL Server 2000提供了两种方法创建数据库表,第一种方法是利用企业管理器(Enterprise Manager)创建表;另一种方法是利用Transact-SQL语句中
10、的create命令创建表。,1.利用Enterprise Manager创建表,在Enterprise Manager中,展开指定的服务器和数据库,打开想要创建新表的数据库,用右键单击表对象,从弹出的快捷菜单中选择新建表选项,或者在工具栏中选择图标,就会出现新建表对话框,在该对话框中,可以定义列的以下属性:列名称、数据类型、长度、精度、小数位数、是否允许为空、缺省值、标识列、标识列的初始值、标识列的增量值和是否有行的标识。然后根据提示进行设置。,2.利用create命令创建表,其语法形式如下:CREATE TABLE database_name.owner.|owner.table_name(
11、|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 列的数据存
12、储的文件组。data_type:用于指定列的数据类型。DEFAULT:用于指定列的缺省值。,constant_expression:用于指定列的缺省值的常量表达式。IDENTITY:用于指定列为标识列。Seed:用于指定标识列的初始值。Increment:用于指定标识列的增量值。NOT FOR REPLICATION:用于指定列的IDENTITY属性在把从其它表中复制的数据插入到表中时不发生作用,即不足的生成列值,使得复制的数据行保持原来的列值。ROWGUIDCOL:用于指定列为全球唯一鉴别行号列。COLLATE:用于指定表使用的校验方式。column_constraint和table_con
13、straint:用于指定列约束和表约束。,例子5-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),5.2.2 增加、删除和修改字段,利用企业管理器增加、
14、删除和修改字段。在企业管理器中,打开指定的服务器中要修改表的数据库,用右键单击要进行修改的表,从弹出的快捷菜单中选择设计表选项,则会出现设计表对话框,在该对话框中,可以利用图形化工具完成增加、删除和修改字段的操作。利用Transact-SQL语言中的alter table命令增加、删除和修改字段。,利用Transact-SQL语言中的alter table命令增加、删除和修改字段的各参数的说明如下:,table:用于指定要修改的表的名称。ALTER COLUMN:用于指定要变更或者修改数据类型的列。column_name:用于指定要更改、添加或删除的列的名称。new_data_type:用于指
15、定新的数据类型的名称。precision:用于指定新的数据类型的精度。scale:用于指定新的数据类型的小数位数。NULL|NOT NULL:用于指定该列是否可以接受空值。ADD|DROP ROWGUIDCOL:用于指定在某列上添加或删除 ROWGUIDCOL 属性。,ADD:用于指定要添加一个或多个列定义、计算列定义或者表约束。computed_column_expression:用于指定一个计算列的计算表达式。WITH CHECK|WITH NOCHECK:用于指定已经存在于表中的数据是否需要使用新添加的或者刚启用的 FOREIGN KEY 或 CHECK 约束进行验证。DROP CONS
16、TRAINT constraint_name|COLUMN column_name:用于指定从表中删除的约束或者列的名称。,CHECK|NOCHECK CONSTRAINT:用于指定启用或禁用FOREIGN KEY或者CHECK约束。ALL:用于指定使用 NOCHECK 选项禁用所有的约束,或者使用 CHECK 选项启用所有约束。ENABLE|DISABLE TRIGGER:用于指定启用或禁用触发器。当一个触发器被禁用时,它对表的定义依然存在;然而,当在表上执行 INSERT、UPDATE 或 DELETE 语句时,触发器中的操作将不执行,除非重新启用该触发器。ALL:用于指定启用或禁用表中所
17、有的触发器。trigger_name:指定要启用或禁用的触发器名称。,例子5-4:创建了一个雇员信息表,其SQL语句的程序清单如下:create table employees(id char(8)primary keyname char(20)not null,department char(20)null,memo char(30)nullage int null,)alter table employees add salary int null drop column agealter column memo varchar(200)null,5.2.3 创建、删除和修改约束,在SQL
18、 Server 2000中有5种约束:主键约束(primary key constraint)唯一性约束(unique constraint)检查约束(check constraint)缺省约束(default constraint)外部键约束(foreign key constraint),1.主键约束,主键的添加、删除和修改操作方法有两种:(一)企业管理器操作法,在企业管理器中,用右键单击要操作的数据库表,从弹出的快捷菜单中选择设计表选项,然后根据提示操作。(二)Transact-SQL语句操作法。其语法形式如下:CONSTRAINT constraint_name PRIMARY KEY
19、 CLUSTERED|NONCLUSTERED(column_name,n),主键约束各参数的说明如下,constraint_name:用于指定约束的名称,约束的名称在数据库中应该是唯一的。如果不指定,则系统会自动生成一个约束名。LUSTERED|NONCLUSTERED:用于指定索引的类型,即聚簇索引或者非聚簇索引,CLUSTERED为默认值。column_name:用于指定主键的列名。主键最多由16个列组成。,例子5-5,在执行创建产品信息表的操作时,指定产品编号为主键值,并且创建一个聚簇索引。create table products(id char(10)not null,name c
20、har(20)not nullprice money default 0.01quantity smallint nullconstraint pk_id primary key clustered(id),2.唯一性约束,唯一性约束用于指定一个或者多个列的组合的值具有唯一性,以防止在列中输入重复的值。当使用唯一性约束时,需要考虑以下几个因素:使用唯一性约束的字段允许为空值。一个表中可以允许有多个唯一性约束。可以把唯一性约束定义在多个字段上。唯一性约束用于强制在指定字段上创建一个唯一性索引。缺省情况下,创建的索引类型为非聚簇索引。,创建和修改唯一性约束的操作方法,创建和修改唯一性约束的操作方法
21、有两种:(一)企业管理器操作法,通过企业管理器可以完成创建和修改唯一性约束的操作。(二)Transact-SQL语句操作法。CONSTRAINT constraint_name UNIQUE CLUSTERED|NONCLUSTERED(column_name,n),3.检查约束,一个列级检查约束只能与限制的字段有关;一个表级检查约束只能与限制的表中字段有关。一个表中可以定义多个检查约束。每个CREATE TABLE语句中每个字段只能定义一个检查约束。在多个字段上定义检查约束,则必须将检查约束定义为表级约束。当执行INSERT语句或者UPDATE语句时,检查约束将验证数据。检查约束中不能包含子
22、查询。,创建检查约束常用的操作方法有两种:,1.企业管理器操作法。使用企业管理器创建检查约束,与创建唯一性约束类似。2.Transact-SQL语句操作法。检查约束的Transact-SQL语句操作法,其语法形式如下:CONSTRAINT constraint_name CHECK NOT FOR REPLICATION(logical_expression),例子5-7:,创建了一个学生信息表,其中输入性别字段值时,只能接受“F”或者“M”,并且为phonenum字段创建检查约束,限制只能输入类似之类的数据,而不能随意输入其他数据。create table student(Id char(8
23、)name char(8)sex char(2)phonenum intconstraint chk_sex check(sex in(F,M)Constraint chk_phonenum check(phonenum like(010)0-90-90-90-9 0-90-90-90-9),4.缺省约束,使用缺省约束时,应该注意以下几点:每个字段只能定义一个缺省约束。如果定义的缺省值长于其对应字段的允许长度,那么输入到表中的缺省值将被截断。不能加入到带有IDENTITY属性或者数据类型为timestamp的字段上。如果字段定义为用户定义的数据类型,而且有一个缺省绑定到这个数据类型上,则不允许
24、该字段有缺省约束。,5.外部键约束,外部键约束用于强制参照完整性,提供单个字段或者多个字段的参照完整性。当使用外部键约束时,应该考虑以下几个因素:外部键约束提供了字段参照完整性。外部键从句中的字段数目和每个字段指定的数据类型必须和REFERENCES从句中的字段相匹配。外部键约束不能自动创建索引,需要用户手动创建。,用户想要修改外部键约束的数据,必须有对外部键约束所参考表的SELECT权限或者REFERENCES权限。参考同一表中的字段时,必须只使用REFERENCES子句,不能使用外部键子句。一个表中最多可以有31个外部键约束。在临时表中,不能使用外部键约束。主键和外部键的数据类型必须严格匹
25、配。,5.2.4 查看表格,查看表格的定义2.查看表格中的数据 3.查看表格与其它数据库对象的依赖关系 4.利用系统存储过程Sp_help查看表的信息,例子5-10:,显示当前数据库中所有对象的信息;显示表word的信息。在查询分析器(Query Analyzer)中它们对应的语句和运行结果如图5-24(a)和图5-24(b)所示。,图5-24(a)当前数据库对象显示窗口,图5-24(b)表word显示窗口,5.2.5 删除表,1.利用企业管理器删除表在企业管理器中,展开指定的数据库和表格项,用右键单击要删除的表,从快捷菜单中选择“除去表”选项,则会出现除去对象对话框。单击“全部删除”按钮,即
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 对象 操作
链接地址:https://www.31ppt.com/p-6296445.html