SQL SERVER2000教程 第一章
第一节 简介
SQL Server 2000是微软公司开发的采用SQL语言的关系型数据库管理系统,它拥有高弹性与多元化的结构,不仅符合业界的需要,更能与现今的互联网紧密集成,而对Windows CE/98/NT/2000/XP/2003等操作系统的全面支持的优越性得到最终程序开发人员的普遍认可。
SQL Server2000是服务器级的数据库管理系统,不论是客户机/服务器、多层结构,还是Database Web应用程序,SQL Server 2000都起着后端数据库的角色。可以说,SQL Server 2000是所有数据的汇总与管理 中心,是整个应用系统的枢纽。 第二节 数据库分类 逻辑数据库
(1)系统数据库:
系统数据库作为SQLSERVER默认安装的一部分而安装,由系统表和存储过程组成。系统数据库、表以及存储过程共同为您提供
了设计、创建、部署和维护世界级SQLSERVER数据库的工具和支持。 a)Master数据库:
是追踪所有其它数据库和配置信息的关键数据库。它控制着用户数据库和SQLSERVER的操作。Master数据库对你的信息绝对重要,所
以你应该总是保留Master数据库的最近备份。 b)Msdb数据库:
是SQLSERVERAgent的主要支持。SQLSERVERAgent负责复制、任务调度、警报、系统操作员信息以及备份信息。因此,Msdb也是非常重
要的,哪怕你不使用SQLSERVERAgent,在Msdb中的备份信息也有助于数据库的恢复。 c)Model数据库:
是一个创建新数据库的模板,它包含了应该出现在每个用户数据库中的系统表。在创建一个数据库时,SQLSERVER会把Model数据库的
全部内容复制到新数据库中。因此,如果你想每次创建数据库时自动地创建某些对象、权限和用户,你就可以把它们放在Model数据库中。 d)Tempdb数据库:
保存所有临时表和临时存储过程。临时表可以被程序员显示的创建。当客户端连接终止时,这些临时表也会被自动删除。默认大小为
8MB.SQLSERVER支持两种类型的临时表:1、以##符号开头的全局临时表可为所有连接所用。在一个全局表创建之后,所有用户都可以使用它。
2、以#符号开头的局部临时表仅在创建它们的连接中可见,并且仅能由表的所有者访问。在Tempdb中创建临时表不需要在名称前加标志,并
且可以授予权限和废除权限。在Tempdb中直接创建的临时表必须显示的删除,否则它们会一直留在Tempdb中,除非SQLSERVER重新启动。 (2)演示数据库:
PUBS和NORTHWIND,是SQLSERVER提供的示例数据库。该数据库及其中的表经常在联机帮助 的文档内容所介绍的示例中使用。 (3)自定义数据库:
用户通过SQL命令自己创建的数据库。
第三节 数据库分类 物理数据库
(1)主要数据文件:
此文件是数据库的起始点。每个数据库必须有且仅有一个主要数据文件。主要数据文件的扩展名.mdf。 (2)次要数据文件:
这些文件是可选的,可以包含所有不在主要数据文件中的数据和对象。数据库可以有多个次要数据文件。次要数据文件的扩展名为.ndf。 (3)日志文件:
这些文件包含所有用于恢复数据库的事务日志信息。每个数据库至少有一个日志文件。日志文件扩展名为.ldf。
注意:数据库文件一词通常指的是三种文件类型中的任何一种。数据文件一词则指的是主要数据文件和次要数据文件。
日志文件一词指的则是作为数据库事务日志一部分的文件。
第四节 数据的存储方式
1、页:
在SQLSERVER中页是最基本的存储单位。页包含数据本身以及数据的物理存放位置的信息。所有页
的大小都是相同的:8KB(在7.0版本以前,页的大小是2KB)。 2、盘区:
分为混合盘区和统一盘区。当创建一个表时,在混合盘区上分配给该表引一个页。如果对该数据 库来说不存在混合盘区,就给它分配一个这样的盘区。混合盘区可以包含来自几个表的页。一个混合 盘区最多可包含来自8个表的页(因为一个盘区由8页组成,所以大小为64KB)。当一个表增加的页超过
8页时,就作为统一盘区被保留为该表专用。
第五节 文件组
文件组是一个或多个文件的集合,这些文件组成分配和管理的单元。文件组可以在一开始创建数据库时创 建,以后多个文件添加到数据库中时再创建。但是,一旦文件添加到数据库中以后,就不能再将这些文件移
动到其他不同的文件组中。文件组只能包含数据文件,不能有事务日志文件。一个文件不能属于多个文件组。
文件组有三种类型: 1、主文件组:
这些文件组包含主要数据文件和未放入其他文件组的所有其他文件。系统表的所有页都是从主文件组分配的。
2、用户定义文件组:
这些文件组是在CREATE DATABASE或ALTER DATABASE语句中,或企业管理器中的属性页中使用FILEGROUP 关键字指定的。 3、默认值:
这些文件组包含所有表和索引的页,这些表和索引在创建时未指定文件组。在每个数据库中,一次只有 一个文件组为默认文件组。如果没有指定默认文件组,则默认文件组为主文件组。
注意:每个数据库最多只能创建256个文件组,而且文件组不能独立于数据库文件创建。文件组是对数据库中
的文件进行分组的一种管理机制。
第二章 创建和管理数据库
第一节 创建数据库
---格式
Create database 数据库名 On [Primary]
(Name=逻辑文件名, Filename=物理文件名, Size=文件起始大小, Maxsize=文件最大容量, Filegrowth=文件增量), ……
Filegroup 文件组名 (Name=逻辑文件名, Filename=物理文件名, Size=文件起始大小, Maxsize=文件最大容量, Filegrowth=文件增长容量) …… Log on
(Name=逻辑文件名, Filename=物理文件名, Size=文件起始大小, Maxsize=文件最大容量, Filegrowth=文件增长容量) …… 说明:
(1)Primary:指定下面文件为主文件组的文件。可省略。 (2)Filename:指定文件的实际存储位置。 (3)Size:指定文件的起始大小。
(4)Maxsize:指定文件可达到的最大容量。
(5)Filegrowth:定义的文件的增量。文件的增量设置不能超过Maxsize 设置。可以指定一个确切的增长数值,也可以指定增长的百分比 (起始值的百分比),默认为10%。 (6)Log on :指定下面为日志文件。 ---实例
(1)创建只有一个数据文件和一个日志 文件的数据库
Create database student On Primary
( Name=student_mdf,
Filename='d:\\sql\\student_mdf.mdf', Size=2, Maxsize=10, Filegrowth=1
) Log on
( Name=student_ldf,
Filename='d:\\sql\\student_ldf.ldf', Size=1, Maxsize=5, Filegrowth=1 )
(2)创建有多个数据文件和日志文件的数据库 Create database score On Primary
( Name=score_mdf,
Filename='d:\\sqlserver\\score_mdf.mdf', Size=5MB, Maxsize=50MB, Filegrowth=5MB ), ( Name=score_ndf1,
Filename='d:\\sqlserver\\score_ndf1.ndf', Size=3MB, Maxsize=30MB, Filegrowth=20% ), ( Name=score_ndf2,
Filename='d:\\sqlserver\\score_ndf2.ndf', Size=6, Maxsize=50, Filegrowth=4 ) Log on
( Name=score_ldf1,
Filename='d:\\sqlserver\\score_ldf1.ldf', Size=8MB, Maxsize=100MB, Filegrowth=5MB ), ( Name=score_ldf2,
Filename='d:\\sqlserver\\score_ldf2.ldf', Size=10, Maxsize=100, Filegrowth=10 )
(3)创建带有多个文件组的数据库 Create database book On Primary
( Name=book_mdf,
Filename='d:\\books\\book_mdf.mdf', Size=3, Maxsize=30,
Filegrowth=3 ), Filegroup group1 ( Name=book_ndf1,
Filename='d:\\books\\book_ndf1.ndf', Size=2MB, Maxsize=20MB, Filegrowth=25% ), Filegroup group2 ( Name=book_ndf2,
Filename='d:\\books\\book_ndf2.ndf', Size=4, Maxsize=30, Filegrowth=4 ) Log on
( Name=book_ldf1,
Filename='d:\\books\\book_ldf1.ldf', Size=5, Maxsize=40, Filegrowth=5 ), ( Name=book_ldf2,
Filename='d:\\books\\book_ldf2.ldf', Size=6, Maxsize=60, Filegrowth=30% )
第二节 修改数据库
(1)添加数据文件:
a)格式:Alter database 数据库名 Add File ( Name=逻辑文件名, Filename=物理文件名, Size=文件起始大小, Maxsize=文件最大容量, Filegrowth=文件增量 ) [To FileGroup 文件组名]
b) 说明:To FileGroup :指定添加的数据文件到 哪个文件组中,该文件组必须存在,默认为主文 件组。
c)实例: Alter database student add file
( Name=student_ndf,
Filename='d:\\sql\\student_ndf.ndf', Size=1,Maxsize=5, Filegrowth=1 )