数据库概念
1 数据库 2 数据库表 3 数据库操作 4 完整性约束 5 索引
6视图
7 数据查询 8 存储过程 9 触发器
10 T-SQL程序设计
与游标设计
11用户定义数据类型与自定义函数 12安全管理 13事务设计
14数据库备份与恢复
15数据的导入与导出
-1-
? SQL Server中,每个数据库至少有2个操作系统文件:数据文件和日志文件
? 数据文件:数据和对象.比如:数据库表,索引,存储过程,触发器,视图等等
? 日志文件:包含数据库中所有更新事务的全部信息.用于数据库恢复.
? 数据库文件:
? 主要数据文件:包含数据库的启动信息.并指向数据库中的其他文件.每个数据库有一个主要文件.扩展名:.mdf
? 次要数据文件:可选。用于数据库的数据分散存放。.ndf。
? 事务日志文件:.LDF。用于记录数据库更新情况的。比如对数据库的insert、update、delete等操作。
? 文件组:构成数据库的数个文件集合起来组合成一个个群体。
? 主要文件组:包含主要数据文件和指定加入组的其他文件。还包括该数据库的系统表。
? 非主要文件组:可多个,用户指定一个默认文件组。当用户创建对象时,未指定文件组,则在默认组上建立。
? 数据库定义:是长期储存在计算机内、有组织的、可共享的数据集合。 ? 简述分离数据库与删除数据库的区别?
【不能使用在资源管理器中删除数据库文件的方法。】 【分离的数据库将无法使用,附加后再继续使用。】 -2-
? 数据库表:也叫关系。每个关系的数据结构是一张二维表格。 ? 码:区分数据库记录的属性。或者标志实体的属性集。 -4-
数据库的完整性是指数据的正确性和相容性 功能:为了防止数据库中存在不符合语义的数据,即防止数据库中存在不正确的数据。
? 完整性约束的作用对象
? 关系、元组、列
? 完整性约束类型
? 实体完整性 域完整性 参照完整性 自定义完整性
? 实体完整性是对关系中的记录唯一性,也就是主键的约束 ? 域完整性是对数据表中字段属性的约束,通常指数据的有效性
? 参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。
? CHECK约束 -5-
? 索引
? 对数据库表中的列进行排序的逻辑结构.有特定的搜索码与表关联.索引按照顺序存储搜索码的值.
? 索引类型与特点
? 聚簇索引:每个表1个
? 非聚簇索引:每个表259个.同一个索引列的数目最大16列.
? 简述索引的含义、类型、及其使用索引的准则?
? 对数据库表中的列进行排序的逻辑结构. ? 有特定的搜索码与表关联.
? 索引按照顺序存储搜索码的值. ? 包括:聚簇索引和非聚簇索引
? 准则:应该在经常被查询的列建立索引(主关键字所在列;连接查询经常使用的列;案关键字的范围值进行缩缩的列。) ? 不适用索引的列:更新性能比查询性能重要的列;包含较少的唯一值;查询很少适应的列
-6-
? 视图
? 从一个或者几个表导出的表,是虚表.
? 视图的作用
? 能够简化用户的操作
? 使用户能以多种角度看待同一数据
? 对重构数据库提供一定程度的逻辑独立性 ? 对机密数据提供安全保护
? 适当利用试图可以更清晰地表达查询
? 可更新视图的限制
? 如果视图有一个基本关系的简单查询生成,而且它还包含了基本关系中的主关键字或是候选关键字,则可以通过这个视图进行更新操作。
? 不允许对涉及到多个基本关系的视图进行更新。 ? 如果视图的生成中涉及到聚集或是分组操作,则不允许通过这个视图进行更新。
? 什么是视图?它与数据库的三级模式有何关系?
? 从一个或者几个表导出的表,是虚表. ? 对应三级模式结构的 外模式。 -8-
存储过程:是有过程化SQL语句书写的过程,这个过程经编译和优化后存储在
数据库服务器中,使用时只要调用即可 ? 存储过程类型
? 系统存储过程(以sp_为前缀)、扩展存储过程 ? 用户自定义存储过程、临时性存储过程.
? 存储过程的特点
? 运行效率高
? 降低了客户机和服务器之间的通信量 ? 方便实施企业规则
? 创建方法
? 在本地客户端创建 ? 在SQL Server中创建
-9-
? 触发器
? 特殊的存储过程,用T_SQL语言编写的程序 ? 用户对表进行插入\\删除\\更新操作时候触发执行
? 触发器的作用:级联更改,约束,等等 ? 类型:UPDATE INSERT DELETE ? 创建、修改、删除
? 使用inserted和deleted表
? deleted表存储UPDATE DELETE语句所影响的行的副本 ? Inserted表存储UPDATE INSERT 语句所影响的行的副本
-10-
? T-SQL程序设计
? 对标准SQL的扩充,增加了程序的流程控制语句.用于设计服务器端的后台执行的存储过程、
? 变量:局部变量以@开头,用DECLARE说明后使用.引用全局变量必须以@@开头.
? 流程控制:(BEGIN … END IF … ELSE CASE ….)
? 游标:系统为用户开辟的数据缓冲区。存放SQL语句的执行结果。 ? 游标:定义.打开.获取.关闭.释放
1、游标的简介:
游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力。我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。 2、游标的组成:
1)、游标包含两个部分:一个是游标结果集、一个是游标位置。 2)、游标结果集:定义该游标得SELECT语句返回的行的集合。 游标位置:指向这个结果集某一行的当前指针。 3、游标的生命周期
游标的生命周期包含有五个阶段:声明游标、打开游标、读取游标数据、关闭游标、释放游标。 [1]声明游标: