(3)索引(Index)
索引是对字段生成的,用于加快数据的检索。在Sybase数据库中,索引是由系统自动管理的,也就是说,Sybase的索引操作对用户是透明的。表的索引一旦建立,系统会自动对其进行更新维护以使它与相应表对应一致;操作时,用户无须指定索引,系统会自动确定是否使用索引进行操作。
Sybase支持三种不同类型的索引,一是复合索引,即包含几个列的索引;二是唯一性索引,即任意两行中的索引列不能有相同的取值;三是簇类索引(Clustered indexes)和非簇类索引(Nonclustered indexs),簇类索引使SQL服务器不断重排表行的物理顺序以使其与逻辑索引顺序相一致,非簇类索引则不需要表行的物理顺序与逻辑顺序一致。每个表最多只能建立一个簇类索引,非簇类索引则可建立多个。与非簇类索引相比,簇类索引的检索速度要快。应当在建立任何非簇类索引以前建立簇类索引。
(4)存储过程(Stored procedures)
存储过程是用T-SQL语言编写成的SQL子例程,它存储于SQL服务器上供用户调用执行。与一般的SQL语句和批处理语句不同的是,存储过程是经过预编译的。当首次运行一个存储过程时,SQL Server的查询处理器将对其分析,并产生最终的执行方案。由于查询处理的大部分工作已经完成,所以以后执行存储过程时速度将会很快。执行存储过程时可带参数并可调用其他存储过程,执行完毕后返回信息以指示是否成功完成相应操作。存储过程有两种:一种是SQL服务器安装时自动建立的系统存储过程(系统过程),另一种是用户自己创建的存储过程。
系统过程是用于系统管理,并且为用户提供了从事数据库管理的一种途径。这些系统过程都是以sp_开头的,它们都放在master数据库中且隶属于sa(系统管理员) 。也有很多可以在任一个数据库中运行的系统过程。
常见的系统过程有:
Sp_addgroup 在当前数据库中建立一个数据库用户组
Sp_addlogin 建立一个SQL服务器用户
Sp_adduser 在当前数据库中增加一个用户
sp_changegroup 改变数据库用户组
Sp_dboption 查询或改变数据库系统设置
Sp_dropdevice 删除设备
Sp_dropgroup 删除组
Sp_droplogin 删除帐号
Sp_help 查询数据库对象及所有数据库信息
Sp_helpdb 查询数据库信息
Sp_helpdevice 查询设备信息
Sp_helpgroup 查询组信息
Sp_helpindex 查询给定表信息
Sp_helpuser 查询用户信息
Sp_lock 查询当前加锁信息
Sp_monitor 查询SQL服务器统计信息
Sp_password 改变登录帐号口令
Sp_spaceused 查询表中的行数、数据页数及空间大小
Sp_who 查询当前用户及过程信息
Sp_syntax 查询操作语法
Sp_configure 配置系统参数
例:
1> sp_helpdb |
(5)触发器(Triggers)
触发器是一种特殊的存储过程,用来维护不同表中的相关数据的一致性。当在一张表中插入、删除和修改数据时,触发器就会触发另一个存储过程,从而保持数据的一致性。
(6)缺省与规则(Defaults and rules)
缺省是在数据录入时,若用户没有输入数据,SQL Server自动输入的值。 规则是可以理解为对数据库、某一列、某用户数据类型的限制。
附录:只有在master数据库中才能有的系统表
系统表名 表中的内容
Sysconfigures 一行记录了用户可设置的配置参数
Syscurconfigs 有关SQL Server当前正使用的配置参数情况
Sysdatabases 一行记录了SQL Server中的一个数据库
Sysdevices 一行记录了数据库的每一磁带转储设备,磁盘转储设备,数据库设备和磁盘分区
设备和磁盘分区
Syslocks 有关动态锁的情况
Syslogins 一行记录了每一有效的SQL Server的用户帐号
Sysmessages 一行记录了每一系统错误或警告
Sysprocesses 有关Server进程的情况
Sysremotelogins 一行记录了一个远程用户
Sysservers 一行记录了一个远程SQL Server
