2024年3月24日发(作者:)

第一章 数据库基础

1数据库系统:是由数据库及其管理软件组成的系统,常常把数据库有关的硬件和软件系统

成为数据库系统

2.数据库:数据库就是数据的仓库,由表、关系以及操作对象组成

3.数据:是描述事物的符号记录(数字、文字、图形、图像、声音等)

4.数据库的作用

存储大量数据,方便检索和访问

保持数据信息的一致、完整

共享和安全

通过组合分析,产生新的有用信息

5.数据库经历的三个阶段及特点

1) 人工管理阶段: 数据不保存;使用应用程序管理数据;数据不共享;数据不具有独立

性。

2) 文件系统阶段:数据可以长期保存;由文件系统管理数据;共享性差,数据冗余大;

数据独立性差。

3) 数据库系统阶段:数据结构化;数据共享性高;数据独立性强;数据粒度小;独立的

数据操作界面;统一管理和控制

6.数据模型的分类

层次模型

网络模型

关系模型

7. E-R图三个主要部分

1)1.实体集:在E-R图中用长方形来表示实体集,实体是实体集的成员。

2) 联系: 在E-R图中用菱形来表示联系,联系与其涉及的实体集之间以直线连接, 并

在直线端部标上联系的种类 , (1:1,1:N,M:N)。

3) 属性: 在E-R图中用椭圆形来表示实体集和联系的属性,对于主键码的属性, 在属

性名下划一横线。

8. 绘制E-R图所需的图形

1) 长方形框----实体集(考虑问题的对象)

2) 菱形框----联系(实体集间联系)

3) 椭圆形框----实体集和联系的属性

4) 直线----连接相关的联系和实体,并可标上联系的种类

9. E-R图设计原则:真实性;避免冗余;简单性

10.三大范式

第一范式:在关系模型中的每一个具体关系R中,如果每个属性都是不可再分的,则称关

系(R)属于第一范式(1NF)

第二范式:如果关系模式R属于第一范式,且每一个非主属性都完全依赖于主码,则称关

系R是属于第二范式的

第三范式:如果关系模式R为2NF,并且R中的每个非主属性不传递依赖于R的主码,则称

关系R是属于第三范式的

第二章 数据库的安装

1.常见的数据库类型:Access、SQL server2000、2005、2008,Oracle数据库等

2. 数据库管理员的工作是:配置数据库服务器环境 ;管理数据库的逻辑对象结构; 配置

数据库的对象权限 ;制定数据库的性能优化策略 ;数据库的备份还原策略 ;数据库的异

构协同结构

3. SQL Server 2008 的版本

Express 适用于无连接的客户端或独立应用程序

Workgroup 适用于工作组或分支机构操作的数据库

Standard 部门级应用程序的数据库服务器

Enterprise 高度可伸缩和高度可用的企业级数据库

Developer Enterprise 版,但是只授予开发和测试用许可

Web 供托管公司提供低成本、高伸缩的托管服务,只收取低廉的每月许可费

Mobile 用于智能手持式设备的精简数据库

12.掌握SQL Server 2008数据库的安装与卸载

第三章 数据库的管理

1.T-SQL语言分类

DDL(数据定义语言)

-create(创建)

-alter (修改)

-drop (删除)

DQL(数据查询语言)

-inter(插入)

-update(更新)

DML(数据操作语言)

-select(查询)

DCL(数据控制语言)

-revoke(撤销)

-deny(拒绝)

-grant(同意、授权)

2.数据库文件

主数据文件(.mdf):一个数据库有且只有一个

辅助数据文件(.ndf):根据需要自由选择,当数据库很大时,可以选择多个

日志文件(.ldf):用于存储恢复数据库所需的事务日志信息

3.掌握数据库的创建及修改(图形化及代码)

修改数据库包括:扩展、收缩、分离附加、删除

4.语法

1)修改数据库名

Alter database 原数据库名

Modify name =新数据库名

例子:【例】将数据库book的名字改为books

alter database book

modify name=books

2)修改文件属性

Alter database 数据库名

Modify file

(

name='逻辑名',

size=修改后的大小,

maxsize=修改后的大小,

filegrowth=修改后的大小

)

Go

例子:把初始大小由原来5mb增大为12mb

alter database books

modify file

(

name='book_data',

size=12mb

)

go

3)添加日志文件

Alter database 数据库名

Add log file

(

name= ‘逻辑名’,

filename = ‘文件的存放路径’,

size=日志文件的初始大小,

maxsize=日志文件的最大大小,

filegrowth=日志文件的增长方式

)

Go

例子:【例】向shop数据库中添加一个日志文件

alter database shop

add log file

(

name='shop_log2',

filename ='c:shop_',

size=10mb, maxsize=20mb,

filegrowth=10%

)

go

4)删除空文件

Alter database 数据库名

Remove file 文件的逻辑名

例子: 删除文件shop_data2 alter

database shop remove

file shop_data2

4) 添加辅助数据文件

alter database 数据库名

add file

(

name=‘逻辑名’,

filename=‘文件存放的路径’,

size=初始大小,

maxsixe=最大大小,

filegrowth=增长方式

)

Go

例子:向数据库shop中添加一个辅助数据文件

alter database shop

add file

(

name='shop_data3',

filename='c:shop_',

size=5mb,

maxsize=10mb,

filegrowth=10%

)

go

5)创建/删除数据库

Create database 数据库名

on primary

( --数据文件

name=‘逻辑名’,

filename=‘文件的存放路径’,

size=数据文件的初始大小,

maxsize=数据文件的最大大小,

filegrowth=文件的增长方式 )

log on ( --日志文件

name=‘逻辑名’,

filename=‘文件的存放路径’,

size=数据文件的初始大小,

maxsize=数据文件的最大大小,

filegrowth=文件的增长方式 )

go

例子:创建一个名为book的数据库,其初始值大小为5MB,最大大小为 50MB,允许

数据库自动增长,增长方式是按10%比例增长;日志文件初始 为2MB,最大可增长到5MB,

按1MB增长。

create database book

on primary

(

name=‘book_data',

filename='c:book_',

size=5mb,

maxsize=50mb,

filegrowth=10% )

log on

(

name=‘book_Log',

filename='c:book_',

size=2mb,

maxsize=5mb,

filegrowth=1mb

)

6) 删除数据库

Drop database 数据库名

例子:删除数据库shop

drop database shop

第四章 数据表的操作

1. 在SQL server中创建表的极限: 每个数据库可以有20亿个表 ,每个表有1024个列 ,

每个列可以有8064字节

2. 数据类型

种类

数字 整数

精确数值

近似数值

货币

日期和时间

字符 Non-Unicode

Unicode

二进制

图像

全局标识符

Xml

特殊

数据类型

int, bigint, smallint, tinyint

decimal, numeric

float, real

money, smallmoney

datetime, smalldatetime

char,varchar,varchar(max), text

nchar,nvarchar,nvarchar(max),

ntext

binary,varbinary,varbinary(max)

image

uniqueidentifier

xml

bit, cursor, timestamp, sysname,

table, sql_variant

3.字符类型

字符、数字、特殊符号

– char( ) : 固定长度,以空格填补多余长度空间

– varchar( ): 可变长长度,不以空格填补多余长度空间

– nchar( ): unicode固定长度

– nvarchar( ) : unicode可变长长度

– unicode国际标准码: 双字节模式(固定每个字符16bit)

一个汉字占两个字节(16bit)

一个字母占两个字节(16bit)

4.语法:

1)创建表

create table 表名

2)修改表

alter table 表名

3)删除表

drop/delete table 表名

4)将查出的信息放入新表

Select * into 新表名 from 旧表名

5) 添加的信息必须满足现有表结构

Insert into 现有表 select * from 旧表名

和delete、truncate的区别:drop是删除表,而delete和truncate是删除表中

记录

5. 数据操作语言DML

select 从表或视图中检索数据

insert 将数据插入到表或视图中

update 修改表或视图中的数据

delete 从表或视图中删除数据

第五章 基础查询

语法结构

基本语法:select 字段名

From 目标表

Where 条件

【例】查询学生成绩数据库(student_score)学生情况表(Member)中的 所有列。

use student_score

select *

from Member

条件限定语法的用法

基本语法:use 数据库名

Select 字段名

From 目标名

Where 字段名=“内容”

Go

【例】查询Member表中Mname为马德保的相关信息

use student_score

select *

from Member

where Mname='马德保'

go

3.模糊查询 like

1)基本语法:select 字段名

From 目标名

Where 目标名 like 条件

【例】查找学生姓名以‘刘’开头的所有学生信息

use student_score

select *

from Member

where Mname like '刘%'

go

2) % 代表所有可能的情况

3)%的使用

%N% 表示包含N

N% 表示N开头

%N 表示N结尾

4)“^’代表不、不是、不以的意思

4. Or/and/not的逻辑运算

【例】将Mname以’刘’开头,或总学分为60,且专业名为网络互连的学生Mname

use student_score

select Mname,Mtotalscore,MMajor

from Member where Mname like '刘%' or MTotalscore=60

and MMajor='网络互连'

go

n…and 在…范围之内

【例】查找总学分为60和70之间的学生所有信息

use student_score

select *

from Member

where MTotalScore between 60 and 70

go

=or 或

【例】查找总学分为70和80的所有学生信息

use student_score

select

from Member

where Mtotalscore in('70','80')

-------where Mtotalscore not in(‘70',‘80')

go

null为空的查询

【例】查询所在地区为空的学生姓名

use student_score

select Maera,Mname

from Member

where Maera is null

go

by排序: asc升序;desc降序

【例】查找学生的总学分以升序排列,出生日期以降序排列的学生姓名和学号

use student_score

select Mname,Mbirth,Mtotalscore, MID

from Member

order by Mtotalscore asc ,Mbirth desc

go

ct 数据过滤和消除重复记录

【例】查询student_score数据库中Member表中的总学分,但是不能有重复

use student_score

select distinct Mtotalscore

from Member order by Mtotalscore

go

和top…with ties的用法

【例】求学分最高的5位学生的信息,并且返回与第5并列的学生信息

use student_score

select top 5 with ties MID,Mtotalscore

from Member order by Mtotalscore

go

注: with ties必须与order by连用

取别名

【例】在student_score数据库中的Member表中对Mname取别名为a, 专业名为b,并在

补一列为性别,并取别名为c

use student_score

select Mname as a, MMajor as b ,‘性别’ as c

from Member

go

第六章 高级查询

1.联接定义:根据各个数据库表之间的逻辑关系从二个或多个数据表中检索数据

2.联接分类

内连接:基本内连接、多表连接、自连接

外连接:左外连接、右外连接、全外连接

交叉连接

3. 左外连接、右外连接、全外连接的含义

left outer join 左外连接(join左边的表),结果集中除了包括满足连接条件的行外,还

包 括左表所有行

right outer join 右外连接(join 右边的表),结果集中除了包括满足连接条件的行外,

还包括右表所有行

full outer join 全外连接,结果集中除了包括满足连接条件的行外,还包括两个表的所

有行

4.内连接概述

1)用…innerjion… on…语句进行连接

Jion指定需要连接的数据表

On指定连接条件(inner可省略)

【例】查找选修了01课程且成绩在30分以上的学生编号和成绩

use student_score

select ,

from Member M join Score S

on =

where CID='01' and score>=30

go

5.外连接语法:select 字段名1,字段名2…字段n

From 表1 left outer join 表2

from 表1 right outer join 表2

from 表1 full outer join 表2

Go

【例】查找所有学生信息及其考试成绩,若该生未参加任何考试,也列出其信息

use student_score

select M.*,,

from Score S right join Member M

on =

go

6.交叉连接语法:select字段1,字段2

From 表1 cross join 表2

Go

【例】返回Member表和Score表所有可能记录的组合

use student_score

select ,,CID,Score

from Member M cross join Score S

go

第七章 函数

1. 函数:是一段特殊的程序代码,它能对查询结果进行一定的操作

函数的作用:就是使用户不必书写太多的程序代码即可完成复杂的操作

2. SQL Server函数类型包括系统函数、字符串函数、 日期时间函数、聚合函数等

3. 系统函数对SQL Server服务器和数据库对象进行操作,返回服务器配置和数据库对

象数值等信息

CURRENT_TIMESTAMP( )可返回系统当前日期和时间,类型为datetime

HOST_NAME ()返回主机名称

SYSTEM_USER 返回当前系统用户

USER_NAME( ) 返回id 标识指定的用户名称

db_name()返回当前会话的数据库名称

4. 聚合函数 功能

1)Sum() 计算表达式所有值之和

【例】求选修01课程的学生的总成绩。

use student_score

select sum(score) as '课程01总成绩'

from Score

where CID='01

go

2)Avg() 计算表达式的平均值

【例】求选修10课程的学生的平均成绩。

use student_score

select avg(score) as '课程10平均成绩'

from Score

where CID='10'

go

3)Count(列名) 计算表达式中非空值的数量

【例】求学生的总成绩

use student_score

select count() as ‘学生总成绩’

from Member

go

4)count(*) 计算表达式中所有值的数量

【例】求学生的总人数

use student_score

select count(*) as ‘学生总人数’

from Member

go

5)Min() 计算表达式的最小值

【例】求选修00课程的学生的最低分

use student_score

select min(score) as '课程00的最低分'

from Score where CID='00'

go

6)Max() 计算表达式的最大值

【例】求选修11课程的学生的最高分

use student_score

select max(score) as '课程11的最高分'

from Score where CID='11'

go

第八章 数据的完整性

1. 数据库完整性: 是指存储在数据库中数据的一致性和标准性

2. 数据完整性的类型

1)域(列)完整性:指定对列的一组有效值并决定是否允许有空值。也可以通 过在一

列中限定数据类型,格式和可能值的范围来强制数据完整性。

2) 实体(行)完整性:要求表中所有的行具有唯一的标识符,例如主关键字值。

3) 参照完整性:确保维持主关键字和外部关键字的关系

3. 约束的概念: 确保在列中输入有效的值并维护表之间的关系。

4.约束的类型

完整性类型

约束类型

DEFAULT

说明

指定列的默认值

CHECK

NULL

实体

引用

PRIMARY KEY

UNIQUE

FOREIGN KEY

指定列的允许值

指定是否允许NULL

唯一标识每一行

防止非主键重复

定义值必须与此表的主键匹

配的列

t功能:执行insert语句时将默认值自动插入约束所在的列

语法: alter table 表名

add constraint 约束名

default(默认值)

for 字段名

go

【例】修改数据库student_score中的Menber表,将性别的默认值设置为’男’

use student_score

alter table Member

add constraint df_sex

default('男') for Msex

go

6. check功能: check(检查约束),每次执行Insert/update语句时,该约束要校验数据的

合法性

语法:alter table 表名

add constraint 约束名

check(条件)

go

【例】 修改数据库student_score中的Score表,使成绩限制在0~100之间

use student_score

alter table Score

add constraint ck_cj

check(score>=0 and score<=100)

go

7. primary key功能: primary key(主键约束),一个表中只有能一个pk,不能有空值,

不能有 重复值;pk所在列的值能够唯一标识此行 ;能与fk关联, pk所在表为主表; 同

时创建一个与PK约束名的簇索引。

语法: alter table 表名

add constraint 约束名

primary key(字段名)

go

【例】修改数据库student_score中的kc表,将课程号设置为主键

use student_score

alter table Course

add constraint pk_kch

primary key(CID)

go

8. Unique功能: unique(唯一约束), 指定在同一列中的两行不能有相同的值,只能有一

行为 空值,该约束自动创建一个与约束同名的非簇索引,在插入/修改时自动执行。

语法: alter table 表名

add constraint 约束名

unique (字段名)

go

【例】修改数据库student_score中的Course表,将课程名设置为unique约束

use student_score

alter table Course

add constraint un_kcm

unique(Cname)

go

9. FOREIGN KEY功能: 参照完整性确保维持主关键字(在主表中)和外部关键字(在辅表

中)的关系。

语法: alter table 表名1

add constraint 约束名

foreign key(字段名)

references 表名2(字段名)

go

【例】修改数据库student_score中的Score表,将课程号设置为外键

use student_score

alter table Score

add constraint fk_kch

foreign key(CID)

references Course(CID)

go

10. 删除约束

语法: alter table 表名

drop constraint 约束名

【例】 删除 Menber表的fk_xh约束。

use student_score

alter table Score

drop constraint fk_xh

go

第九章 视图

1

.

视图; 是从一个或多个表(或视图)导出的虚表。对于数据库用户来说,视图 似乎是一

个真实的表,它具有一组命名的数据列和行。但是,与真实的表不 同,在视图中没有存储

任何数据,仅仅是一种较简单的访问数据库里其他表 中数据的方式,因此称它为“虚表”。

视图只能建立在当前正在使用的数据库中

2.视图的优点

聚焦数据,创建可以控制的环境,将需要的、常规的、适当的数据存储在视图中。

隐藏数据库的复杂性

简化对用户的许可管理

数据库拥有者只允许用户通过视图查询数据,保护了底层基本表的设计结构

提高性能

存储复杂查询、分割数据

输出数据给其他应用程序

3.视图创建是应注意的情况

只能在当前数据库中创建视图。

如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新 的基表或者

视图。

如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同, 则必须为列

定义名称。

当通过视图查询数据时,SQL Server要检查以确保语句中涉及的所有数据库 对象存在,

而且数据修改语句不能违反数据完整性规则。

视图的名称必须遵循标识符的规则,且对每个用户必须是唯一的

2.语法;

1) create view 视图名 创建视图

【例】创建v1视图,包括作者为马德保的书籍ISBN,名称,及单价

use book

go

create view v1

as

select isbn,bookname,unitprice

from bookinfo

where author='马德保'

go

2) drop view 视图名 删除视图

【例】删除名为v2的视图

drop view v2

3) alter view 视图名 修改视图

【例】修改v1视图,包括出版社为工业出版社的书籍ISBN,作者及单价

use book

go

alter view v1

as

select isbn,author,unitprice

from bookinfo

where publisher='工业出版社'

go

4) exec sp_helptext 视图名 查看视图定义

【例】查看视图v1:

exec sp_helptext v1

5) update 视图名 更新视图

【例】将v1视图中书名为“Windows Server 2008活动目录”的单价增加10。

use book

go

update v1

set unitprice=unitprice+10

where bookname='Windows Server 2008活动目录'

go

第十章 索引

1. 建立索引目的:是希望提高SQL Server数据检索的速度

2.索引的分类

聚集索引

非聚集索引

唯一索引

3. 建立索引的原则

1)定义主键数据列一定要建立索引

2)定义外键数据列上一定建立索引

3)对于经常查询的数据列最好建立索引

4)对于需要在指定范围内快速或频繁查询的数据列

5)经常用在where子句中的数据列

6)对于那些查询中很少涉及的列,重复值较多的列不要建立索引

7)对于定义为text、image和bit数据类型的列不要建立索引

4.语法;

创建索引 Create unique 索引名

修改索引 alter unique 索引名

删除索引 drop unique 索引名

第十一章 存储过程

1. 存储过程的类型

系统存储过程 (名字以“sp_”为前缀,存储在master里)

本地存储过程 (存储在用户定义的数据库中)

扩展存储过程 (名字都以“xp_”为前缀,存储在master里)

临时存储过程 (名字以#开头)

2.语法:

1)Creat procedure 存储过程名 创建存储过程

【例】创建名为p_book_info的存储过程,该存储过程查询所有书籍的信息

use book

go

create procedure p_book_info

as

select * from bookinfo

order by ISBN

go

2)Exec procedure存储过程名 执行存储过程

【例】 p_order_detail可以通过以下方式执行

exec p_order_detail

3)Alter procedure 存储过程名 修改存储过程

【例】修改p_order_detail,返回订单id,用户姓名,用户地址,书籍单价, 书籍名称及 订

单数量

alter procedure p_order_detail

as

select

etailid,me,,ice,me,ty

from orderdetail as o join userinfo as u

on =

join bookinfo as b

on =

go

4)Drop procedure存储过程名 删除存储过程

【例】删除xscj数据库中的p_book_info存储过程

use book

go

drop procedure p_book_info

go

第十二章 流程设计

1. 流程控制语句:是指那些用来控制程序执行和流程分支的命令,在SQL Server 中,流

程控制语句主要用来控制SQL语句、语句块或者存储过 程的执行流程。

2. 变量分为:局部变量和全局变量

3. 运算符

算术运算符:+,-,*,/,%

赋值运算符:=

比较运算符 :>,<,>=,<=,=,!=,<>,!>,!<

逻辑运算符: – all,and,any,between,exists,in,like,not,or,some

字符串串联运算符 :+

按位运算符:&,|,^,~

4. 流程控制

1)begin…end:定义语句块。

2)goto label从 label 所定义的 label 之后的语句处继续进行处理。

3)if…else定义条件以及当一个条件为 FALSE 时的操作。

4)while当特定条件为 TRUE 时重复语句。

5)waitfor为语句的执行设置延迟

第十三章 触发器

1. 触发器 :是一种特殊的存储过程,它被分配给某个特定的表,触发器都是自动 调用的。

当一特定的表数据被插入、更新或删除时,数据库需要执行一定的 动作,触发器是确保数

据完整性和一致性的基本有效的方法

2. 触发器的动作

Delete

Update

Insert

3. 触发器的作用

禁止无效的修改

级联修改相关表格

执行较为复杂的约束操作

4. 触发器特点

不接受用户参数,也不返回用户参数;存储在表上。

数据库中跨越相关表的级联修改。对数据库中的相关表进行级

联更新和删除

强制比Check约束更复杂的数据完整性.可以引用其他表中的列

5.语法:

1) Create trigger 触发器名 创建触发器

【例】对于student_score数据库,如果在Member表中删除数据,则在 执行时显示提示

信息。

use student_score

go

create trigger tr_delete

on Member

for delete

as

print '你已经删除了此数据!'

go

2)alter trigger 触发器名 修改触发器

【例】在Member表中定义触发器,当修改纪录时弹出消息:恭喜!你修改了此表!

use student_score

go

alter trigger tr_delete

on Member

for delete

as

print '恭喜!你修改了此表!

go

3)disable trigger 触发器名 禁用触发器

【例】禁用tr_update触发器

use student_score

go

alter table Member

disable trigger tr_update

go

4)enable trigger 触发器名 启用触发器

【例】启用tr_insert触发器

use student_score

go

alter table Member

enable trigger tr_insert

go

5)drop trigger 触发器名 删除触发器

【例】删除名为tr_insert的触发器

drop trigger tr_insert

第十四章 数据库安全

1. SQL Server 2008的安全性管理可分为3个等级:

1)操作系统级

2)SQL Server 级

3)数据库级

2. SQL Server登录认证简介;Windows和SQL Server身份验证

Windows身份验证

当用户登陆到Windows域时,用户名和密

码在被传送到 Windows域控制器之前被加

支持复杂加密、密码的截止日期和最短长

度等密码策略

支持帐户锁定策略,在使用无效密码进行

多次尝试后锁定帐户

在Windows98/me中不能使用

SQL Server身份验证

Windows操作系统从不验证用户

支持密码策略(Sql2000不支持)

不支持帐户锁定功能

在Windows98/me中可以使用

3数据库安全通过以下三种方式实施:

帐户管理: 添加和删除数据库用户,便于访问数据库。

权限管理: 指定用户能够对哪些数据库对象执行哪种操作。

角色管理: 将具有相同权限的用户设置为同一角色,减少权限设置的工作量

第十五章 数据库灾难性恢复

1. 备份和恢复的必要性

数据库中的数据丢失或被破坏的原因: 计算机硬件故障、软件故障、病毒、误操作、

自然灾害、盗窃

2. 备份类型

完全备份(Database Full Backups) 特点: 1)速度慢、时间长; 2)占用大量的

磁盘空间; 3)完全备份的频率通常比差异备份或事务日志备份低

事务日志备份(Transaction Log Backups)特点: 1)速度快、时间少 2)占用磁盘

空间少 3)操作复杂

差异备份(Differential Database Backups)特点: 1) 速度一般、时间短 2) 占

用磁盘空间少 3)需要经常备份

3. 恢复模式

恢复模式

简单恢复模式

描述

数据库的完整或差异副本,截断事务日志

完整恢复模式

大容量日志恢复

包括数据库备份和事务日志备份

包括数据库和事务日志备份, 但使用较少

的日志空 间

4. 当选择恢复模式时,必须考虑原则:

1) 大规模操作的性能(如大容量装载)

2) 数据丢失表现(如已提交的事务丢失)

3) 事务日志空间损耗

4) 备份和恢复过程的简化

5.备份还原的方法

完整备份和还原

完整+差异备份与还原

完整+事务日志备份与还原

6.创建备份设备:物理和逻辑

7.语法:

1)创建数据库备份

完全备份

backup database 数据库名 to 永久设备逻辑名 with init /noinit

--init 表示重写

--noinit 表示追加(默认)

【例】把book数据库完全备份到backup_book设备里

backup database book to backup_book with noinit

差异备份

backup database 数据库名 to 永久备份设备逻辑名 with differential

【例】追加book数据库的差异备份到backup_book设备里

backup database book to backup_book with differential, noinit

日志备份

backup log 数据库名 to 永久备份设备逻辑名 with init/noinit

【例】追加book数据库的日志备份到backup_book设备里

backup log book to backup_book with noinit

2)备份到临时设备

backup database 数据库名 to disk=‘物理路径’

【例】备份book数据库到临时设备book_里

backup database book to disk=‘c:book_’

6) 恢复数据库

restore database 数据库名 from 永久备份设备逻辑名

【例】先把book数据库备完全份到book_full设备里,再恢复数据库.

backup databse book to book_full

restore database book from book_full

restore log 数据库名 from 永久备份设备逻辑名

【例】恢复book_backup 里的日志备份内容

restore log book from book_backup

restore database 数据库名 from disk=‘物理路径’

【例】从临时设备book_中恢复数据库

restore database book from disk=‘c:book_’

第十六章 数据库高可用性

1. 影响可用性的因素有 软件故障,硬件组件故障,网络故障,电源故障和资源灾难

2. 优化数据库可用性的注意事项

硬件组件冗余

网络冗余

RAID

服务器和数据库冗余

3. 服务器群集的版本 : Enterprise 、 Developer、 Standard

4. 为数据库镜像准备服务器的方法

创建镜像端点和登录

设置恢复模式

备份主体数据库并将其还原到镜像服务器上

复制服务器级资源

5. 处理故障恢复的方法:自动故障恢复,手动故障恢复,强制恢复

切换服务器角色的方法:复制事务日志备份;用 NORECOVERY备份主数据库;使用

RECOVERY 来还原备用服务器上由上一步得到的备份;原来的主体服务器上禁用日志传

送作业;在辅助数据库上设置日志传送

第十七章 商业智能

1. 当今商业智能领域面临的挑战:商业数据分散在企业各处;绩效考核所依赖的信息不能

被完整地获取;可执行的洞察力不容易被传递到需要它的每一个用户面前

2. SQL Server 2008智能数据平台

1) 集成服务:整合和清洗来自各种异类数据源的数据;可预见性响应大数据量变化 ;

简化数据仓库的管理

2) 报表服务: 用户自定义报表可以满足任何报表需求;管理任意大小的报表负荷;

根据每个用户的喜好灵活 的展示不同形式的报表

3) 分析服务: 创造企业级的分析解 决方案; 增强分析的可理解性 和可预见能力;

满足每个涉众的需求

3. 常用数据操作:条件性拆分、查找、排序、转换、Union All