1.48k likes | 1.88k Views
第 7 章 SQL SERVER 2008 基础. 学习目标 : 了解 SQL Server 了解 SQL Server 管理工具使用方法 掌握 SQL Server 中库、表、索引等可视化创建与维护方法 了解 SQL SERVER 2008 的字段类型 掌握应用命令建库、表、索引、视图的方法 熟悉 SQL Server 中存储过程的使用 熟悉 SQL Server 中触发器的使用 掌握 SQL Server 数据备份、恢复的方法 SQL Server 的应用系统开发环境. 7.1 SQL SERVER 管理工具.
E N D
第7章 SQL SERVER 2008基础 学习目标: • 了解SQL Server • 了解SQL Server管理工具使用方法 • 掌握SQL Server中库、表、索引等可视化创建与维护方法 • 了解SQL SERVER 2008的字段类型 • 掌握应用命令建库、表、索引、视图的方法 • 熟悉SQL Server中存储过程的使用 • 熟悉SQL Server中触发器的使用 • 掌握SQL Server数据备份、恢复的方法 • SQL Server的应用系统开发环境
7.1 SQL SERVER管理工具 SQL Server 2008的管理工具包括: • 管理工作平台(Management Studio) • 分析服务 • 集成服务 • 商业智能开发工作平台 • 配置工具 • 性能工具
管理工作平台的主要部分 是对象资源管理器。
1、新建服务器 从管理工作平台主菜单选 “视图”→选“已注册的服 务器”,打开“已注册的服 务器窗口“ →右键点击 “Local Server Groups” →选择“新建服务器注册” 。
2、新建服务器组 通过建立服务器组对数据库实例进行分类管理。 右键点击“Local Server Groups”→选择“新建服务器组” → 在“新建服务器组属性”对话框中输入组名,组名必须保持唯一,在组说明中可输入别名→点击“确定”。
7.2 建立数据库、表、索引的操作 7.2.1 建立数据库 进入对象资源管理器, 用右键点击“数据库”, 出现数据库管理界面。点击“新建数据库”,进入数据库属性界面。
数据库名称必须满足SQL Server标识符的命名规则:标识符只能由不超过128个字符构成,这些字符只能是字母、数字及符号:_、#、@、$。
建立数据库会产生两个文件:主数据文件,扩展名为.MDF;日志文件,扩展名为.LDF。除了这两个文件外,如果主数据文件不能存储全部数据信息,还可以有多个次数据文件,扩展名为.NDF。 数据文件组:为了方便管理,SQL Server将多个数据文件组合在一起,称为数据文件组。 文件组控制每个数据文件的存放位置,由于它的作用,可以将属于一个文件组的文件分布在不同硬盘上,使减轻单个硬盘驱动器承受的负载,提高工作效率,也便于系统的扩展。
7.2.2 建立数据表 SQL Server一个数据库中可以建约20亿个表,每个表可含有1024个列(字段),每一列中数据均为相同数据类型,每一行的数据最多8060个字节(对于带有varchar、nvarcharvar、binary、sql_variant等数据类型的列,总宽不受此限)。
建立数据表的操作步骤: 打开相应数据库(例如SDatabase),右键点击“表”,在弹出菜单中选“新建表”,进入表设计器,在表设计器中可以依次输入列名(字段名)、数据类型、长度、是否允许空值。
列属性说明: • 精度:某些允许进行算术运算的允许有小数部分的二进制数据需要考虑设置。 • 标识:用于设定自动编号的标识列,当用户向表中每增加一新记录时,系统会为该记录该列生成一个唯一性的数值并填入其中。如果选中该复选框,将自动让其下“标识种子”、“标识递增量”设置为1,用户可以修改这两个数据。 • 是Rowguid:如果在该复选框中打勾,将来每录入一条新记录时会在该记录的uniqueidentifier类型字段中自动生成一个16位的全局唯一标识符(GUID))。
设定关键字:用右键点击关键字列名,在弹出菜单中包括设置主键、插入列、删除列、索引/键、CHECK约束等菜单项。选择“设置主键”,将来表中该字段将不允许出现空值与重复值。设定关键字:用右键点击关键字列名,在弹出菜单中包括设置主键、插入列、删除列、索引/键、CHECK约束等菜单项。选择“设置主键”,将来表中该字段将不允许出现空值与重复值。
7.2.3 修改表结构与数据维护 右键点击表名,在弹出菜单中选择“设计”,进入表设计器,进行修改表结构的操作。 如果作数据录入、修改、删除操作,可在弹出菜单中选择:“编辑前200行”。
7.2.4 建立索引 1、SQL SERVER 2008中索引类型 • 聚集索引,如果数据文件中记录按关键字排序,索引中关键字顺序保持与数据表一致。由于每一个数据表只能按一种方式排序,因此每个表只能有一个聚集索引。 • 非聚集索引,每个表可建多个(最多可达249个)非聚集索引,它不导致数据表中的数据重排。 • 唯一索引,如果对某字段建立唯一索引,该字段将不允许出现重复值。对任一字段,所建索引可以是是否聚集索引与是否唯一索引的组合。
XML索引, XML指一种由国际标准化组织创建的基于互联网的标记语言,SQL Server 2008数据库完全支持XML,在其数据表中允许定义XML数据类型的数据,存放XML的结构化的数据。用户可以查询存放在列、参数或变量中的XML数据。XML索引是为XML字段建立的索引,包括主XML索引和辅助XML索引,能大大提高对XML字段数据的查找速度。 • 全文索引,是用于全文搜索的索引,全文搜索应用于对包括XML在内各种文本或二进制数据的模糊查找。每个索引项除关键字外,还包括和关键字有关的重要词及这些词所在列及在列中位置等信息。
2、建立索引的操作 在右键点击列名后弹出的菜单中选择“索引/键”,弹出“索引”对话框。
如果设置了主键(关键字),将自动建立主索引(又称为主键索引) 选择建立主键索引、唯一索引、聚集索引、非聚集索引等。唯一索引要求为之创建索引的列的值在表中具有唯一性,不能有重复值。
7.2.5 数据维护操作 数据维护:指将数据录入到数据表中、修改表中数据、删除表中数据等操作。 数据维护方法: • 通过对象资源管理器进行可视化操作的方法; • 应用T-SQL语言,利用命令语句实现的方法。
可视化方法的操作步骤: 选择要操作的数据库,例如选“SDatabase” →展开表的目录→右键点击具体数据表,例如右击“dbo.student” →在弹出菜单中选“编辑前200行”。将出现一个表浏览器,可以输入数据、修改数据,之后关闭表浏览器。如果要删除记录,用右键点击记录左边的灰色标记框,点选删除即可。如果需要一次删除多条记录,可以先用鼠标点击第一条欲删除的记录的左边标记框,该条记录将改变颜色,之后,按住<ctrl>键不放,继续点击其他欲删除记录的标记框,选完之后,右击变色区,在弹出菜单中选删除即可。
7.3 建立视图的操作 7.3.1 建立视图 视图:是为不同用户提供的不同窗口,可以如同表一样对视图进行操作,查询视图中的数据,在一定条件下对视图进行数据录入、修改、删除等维护操作。视图是一张虚拟表,视图中不存放数据,数据存放在创建视图的表中。
建立视图的步骤: 选择某数据库下“视图”,在弹出菜单中选择“新建视图”。
7.3.2 使用视图 对视图可进行的操作: • 查询。对视图的查询操作和基本表一样。 • 受限制的更新。如果视图中涉及仅1个基表,且输出全是字段内容,没有表达式,没有聚集函数,则对视图的操作等同于对表操作,向视图录入数据将直接录入到表中,对视图中数据的修改与删除,将直接修改与删除表中的数据。
7.4 数据完整性保护 7.4.1.实体完整性保护的实现 • 实体完整性规则(Entity Integrity) 若属性组(或属性)K是基本关系R的主码(或称主关键字),则所有元组K的取值唯一,并且K中属性不能全部或部分取空值。 可以通过定义主键(Primary Key)实现实体完整性保护。
设置主键的步骤如下: 在“对象资源管理器”中展开相关数据库→展开“表”并右键点欲设置主键的表,例如选“学生”→选“设计”→右键点击欲设置主键的列名左边的空格,该行将改变颜色;如果欲设置多列共同为主键,可以继续按下“<shift>键”同时点击欲设置主键的下一个列名左边的空格,则多行改变颜色→右键点击变色区,在弹出菜单中选“设置主键”
删除主键的步骤如下: 右键点欲删除列的列名,在弹出菜单中选“删除主键”
7.4.2 参照完整性保护的实现 • 参照完整性规则 若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值。 可以通过定义外键实现参照完整性保护。
在定义外键之前,先定义主键基表的主键,再定义外键表中的外键,之后建立关系。 例如:定义成绩表中的学号外键的步骤。 在“对象资源管理器”中展开SDatabase数据库→展开“表”并右键点欲设置外键的“成绩”表→选“设计”→右键点击欲设置外键的列名 “学号”左边的空格→选“关系”出现“外键关系”对话框,点击“添加”,将出现新关系名 “FK_成绩_成绩”,点 “……”按钮,在“表和列”窗口选择或输入正确的主键表、主键名、外键表、外键名。
点 “……”按钮,在“表和列”窗口选择或输入正确的主键表、主键名、外键表、外键名。
“在创建或重新启用时检测现有数据”:确定在创建或重新启用数据表时是否检测在未启用该外键关系时变化的数据满足本关系所规定的外键约束。“在创建或重新启用时检测现有数据”:确定在创建或重新启用数据表时是否检测在未启用该外键关系时变化的数据满足本关系所规定的外键约束。 • “INSERT和UPDATE规范”:规定“更新规则”与“删除规则”是“级联”、“不执行任何操作”、“设置为NULL”、“设置为默认值”,意义是当做录入与修改操作时,怎样检查外键约束的情况及如何处理。 • “更新规则”选“级联”:则当外键表作录入或修改操作后数据不满足外键约束时,不予存盘;将要求修改数据使满足外键约束后再保存。
“删除规则”选“级联”:则当主键表作修改或删除操作后所变化的主键数据相关联的外键表中的记录将自动被删除。外键表中的记录中外键值将自动修改为“NULL”或“默认值”。“删除规则”选“级联”:则当主键表作修改或删除操作后所变化的主键数据相关联的外键表中的记录将自动被删除。外键表中的记录中外键值将自动修改为“NULL”或“默认值”。 • “不执行任何操作”: 则主表与外键表的数据更新或删除操作将不受外键关系的约束。 • “设置为NULL”或“设置为默认值”:如果“更新规则”选“级联”,则当外键表作录入或修改操作后外键数据在主键表中不存在,将不予存盘;但可以改用“NULL”或“默认值”后再保存。
7.4.3 域完整性保护的实现 为尽量保证数据在录入、修改、导入等操作中的正确性,可以设置保证数据正确性的约束条件,使数据只能在一定范围内才能存进数据库,实现“域完整性保护”。
例:设置student表的“性别”列的取值为“男”或“女”。例:设置student表的“性别”列的取值为“男”或“女”。 操作步骤如下: 右击“student”表→选择“设计” →右击“性别”列→选择“CHECK约束”,进入如图所示对话框。
点击“表达式”右边的“……”按钮,在“CHECK约束表达式”窗口中输入约束表达式,性别like ‘男’ OR 性别like ‘女’。点击“确定”并关闭“CHECK约束”窗口后约束生效。 注:Text与Image等文本或图像类型字段不能建立“CHECK约束”。
7.5 数据库安全性管理 数据库的安全性管理功能一般包括二方面内容: • 用户能否登录及如何登录的管理。 • 用户能够操作哪些对象与执行哪些操作的管理。
7.5.1 主体与安全对象 主体:可以请求SQL Server资源的个体、组或过程。 SQL Server的主体分三个级别: • Windows级别的主体,包括:Windows域登录名、Windows本地登录名、Windows组。 • SQL Server级别的主体,包括:SQL Server登录名、SQL Server角色。
数据库级别的主体,包括:数据库用户、数据库角色、应用程序角色、数据库组。数据库级别的主体,包括:数据库用户、数据库角色、应用程序角色、数据库组。
通过查看系统视图sys.server_principals,可以看出,主体包括:“SQL_LOGIN”、“SERVER_ROLE”、“WINDOWS_GROUP”、“WINDOWS_LOGIN”。通过查看系统视图sys.server_principals,可以看出,主体包括:“SQL_LOGIN”、“SERVER_ROLE”、“WINDOWS_GROUP”、“WINDOWS_LOGIN”。
7.5.2 身份验证模式 SQL Server身份验证有二种模式: • Windows身份验证模式:只要用户能登录Windows操作系统,即具有Windows用户帐号,就视同SQL Server身份验证通过。这种方法集成了Windows的安全系统的功能,例如密码加密、审核、密码过期、最短密码长度、身份验证(包括多次登录申请无效后锁定帐户等)功能。 • 混合身份验证:使用户得以使用Windows身份验证或使用SQL Server身份验证实现与SQL Server连接。
在SQL Server身份验证下,用户在连接SQL Server时必须提供登录名和密码,SQL Server在系统表sysliogin中检测输入的帐户名和密码,只有找到相匹配的,才能进入系统。
SQL Server身份验证模式的设置步骤: 展开服务器组→右键点击需要修改验证模式的“服务器”名,例如“LBDZ-08141026”→选择“属性” →系统弹出SQL Server“服务器属性”对话框→进入“安全性”选项卡,可更改身份验证模式。
7.5.3 登录名的管理 SQL Server登录名:根据登录名赋予访问SQL Server系统的权限,和一个或多个数据库用户名对应。 用户名:访问具体数据库的主体。用户登录后将具有进入SQL Server的权限,在进一步有了用户名后,才具有访问数据库的权限。