本书全面讲述了数据库的基本原理和SQL Server 2008的应用,全书以理论够用、实用,实践*为原则,使读者能够快速、轻松地掌握SQL Server数据库技术与应用。第1~3章讲述数据库的基本理论知识,其内容包括数据库系统概述、关系数据库和数据库设计; 第4~13章讲述数据库管理系统SQL Server 2008的应用,其内容包括SQL Server 2008数据库基础、数据库的概念和操作、表的基本操作、数据库查询、视图和索引、TSQL编程、存储过程和触发器、事务与并发控制、数据库的安全管理、数据库的备份与还原; 第14章利用一个实例介绍基于C#.NET的SQL Server数据库系统的开发过程。 本书理论和实践相结合,既阐述了数据库的基本理论,又结合了SQL Server 2008数据库管理系统的应用,内容翔实、实例丰富、图文并茂、体系完整、通俗易懂,有助于读者理解数据库的基本概念,掌握要点和攻克难点; 为便于学习,每章节还配有丰富的习题。 本书可以作为大学本科、专科、高等职业院校SQL Server数据库课程的教学用书,也可以作为培养数据库系统工程师的培训教材,还可以作为数据库管理人员及数据库应用系统开发人员的参考用书。
目錄:
目录
第1章数据库系统概述
1.1数据库技术的发展史
1.1.1数据处理技术
1.1.2数据库技术的3个发展阶段
1.1.3数据库技术的新进展
1.2数据库系统介绍
1.2.1数据库系统的组成
1.2.2数据库的体系结构
1.3数据模型
1.3.1信息的3种世界
1.3.2概念模型
1.3.3常见的3种数据模型
习题1
第2章关系数据库
2.1关系数据结构
2.1.1关系的定义和性质
2.1.2关系模式和关系数据库
2.2关系的完整性
2.3关系运算
2.3.1传统的集合运算
2.3.2专门的关系运算
2.4关系的规范化
2.4.1函数依赖
2.4.2关系规范化的目的
2.4.3关系的规范化过程
习题2
第3章数据库设计
3.1数据库设计概述
3.2需求分析
3.2.1需求分析的任务
3.2.2需求分析的方法
3.2.3数据流图和数据字典
3.3概念结构设计
3.3.1概念结构设计的方法
3.3.2概念结构设计的步骤
3.4逻辑结构设计
3.4.1将ER图转化为关系数据模型
3.4.2关系模式的优化
3.4.3设计用户外模式
3.5物理结构设计
3.5.1确定数据库的物理结构
3.5.2评价物理结构
3.6数据库的实施、运行和维护
3.6.1数据库的实施
3.6.2数据库的运行与维护
3.7数据库设计实例
3.7.1图书借阅管理系统设计
3.7.2钢材仓库管理系统设计
习题3
第4章SQL Server 2008基础
4.1SQL Server 2008简介
4.1.1SQL Server 发展史
4.1.2SQL Server 2008的新增功能
4.1.3SQL Server 2008的新特性
4.2SQL Server 2008的安装与配置
4.2.1SQL Server 2008的版本
4.2.2SQL Server 2008的环境需求
4.2.3SQL Server 2008的安装过程
4.3SQL Server 2008的管理工具
4.3.1服务器管理
4.3.2SQL Server Management Studio
4.3.3SQL Server配置管理器
4.3.4其他管理工具
4.4TSQL语言基础
4.4.1TSQL语言的特点
4.4.2TSQL语言的分类
4.4.3TSQL语言的基本语法
习题4
第5章数据库的概念和操作
5.1数据库的基本概念
5.1.1物理数据库
5.1.2逻辑数据库
5.2数据库的操作
5.2.1创建数据库
5.2.2修改数据库
5.2.3删除数据库
习题5
第6章表的操作
6.1创建表
6.1.1数据类型
6.1.2使用SQL Server Management Studio创建表
6.1.3使用TSQL语句创建表
6.2修改表
6.2.1在SQL Server Management Studio中修改表
6.2.2使用TSQL语句修改表
6.3列约束和表约束
6.3.1创建和删除PRIMARY KEY约束
6.3.2创建和删除UNIQUE约束
6.3.3创建和删除FOREIGN KEY约束
6.3.4创建和删除CHECK约束
6.3.5创建和删除DEFAULT约束
6.4表数据的操作
6.4.1插入数据
6.4.2修改数据
6.4.3删除数据
6.4.4使用MERGE语句插入、修改和删除数据
6.5删除表
6.6数据的导入和导出
6.6.1导出数据
6.6.2导入数据
习题6
第7章数据库查询
7.1SELECT查询语法
7.2简单查询
7.2.1投影查询
7.2.2选择查询
7.2.3聚合函数查询
7.3分组和汇总
7.3.1分组查询
7.3.2数据汇总
7.4连接查询
7.4.1内连接
7.4.2自连接
7.4.3外连接
7.4.4交叉连接
7.5子查询
7.5.1无关子查询
7.5.2相关子查询
7.6其他查询
7.6.1集合运算查询
7.6.2对查询结果排序
7.6.3存储查询结果
7.7在数据操作中使用SELECT子句
7.7.1在INSERT语句中使用SELECT子句
7.7.2在UPDATE语句中使用SELECT子句
7.7.3在DELETE语句中使用SELECT子句
习题7
第8章视图和索引
8.1视图
8.1.1视图概述
8.1.2创建视图
8.1.3修改视图
8.1.4使用视图
8.1.5删除视图
8.2索引
8.2.1索引简介
8.2.2索引的类型
8.2.3创建索引
8.2.4查看索引信息
8.2.5删除索引
习题8
第9章TSQL编程
9.1TSQL编程基础
9.1.1标识符
9.1.2变量
9.1.3运算符
9.1.4批处理
9.1.5注释
9.2流程控制语句
9.2.1SET语句
9.2.2BEGINEND语句
9.2.3IFELSE语句
9.2.4CASE语句
9.2.5WHILE语句
9.2.6GOTO语句
9.2.7RETURN语句
9.3函数
9.3.1系统内置函数
9.3.2用户定义函数
9.4游标
9.4.1游标概述
9.4.2游标的类型
9.4.3游标的操作
习题9
第10章存储过程和触发器
10.1存储过程
10.1.1存储过程概述
10.1.2存储过程的类型
10.1.3创建存储过程
10.1.4执行存储过程
10.1.5查看存储过程
10.1.6修改和删除存储过程
10.2触发器
10.2.1触发器概述
10.2.2触发器的分类
10.2.3创建DML触发器
10.2.4查看触发器信息及修改触发器
10.2.5禁止、启用和删除触发器
习题10
第11章事务与并发控制
11.1事务概述
11.2事务的类型
11.2.1根据系统的设置分类
11.2.2根据运行模式分类
11.3事务处理语句
11.4事务的并发控制
11.4.1并发带来的问题
11.4.2锁的基本概念
11.4.3锁的类型
11.4.4锁的信息
11.4.5死锁的产生及解决办法
11.4.6手工加锁
习题11
第12章数据库的安全管理
12.1身份验证
12.1.1SQL Server的身份验证模式
12.1.2设置身份验证模式
12.2账号管理
12.2.1服务器登录账号
12.2.2数据库用户账号
12.3角色管理
12.3.1固定服务器角色
12.3.2数据库角色
12.3.3应用程序角色
12.4权限管理
12.4.1权限的类别
12.4.2权限操作
习题12
第13章数据库的备份与还原
13.1数据库备份概述
13.1.1数据库备份计划
13.1.2数据库备份的类型
13.2数据库还原概述
13.2.1数据库还原策略
13.2.2数据库恢复模式
13.3数据库备份操作
13.4数据库还原操作
13.4.1自动还原
13.4.2手动还原
13.5数据库的分离与附加
13.5.1分离数据库
13.5.2附加数据库
习题13
第14章基于C#.NET的数据库系统开发
14.1C#语言简介
14.2使用ADO.NET访问SQL Server 2008数据库
14.2.1ADO.NET的对象模型
14.2.2利用ADO.NET访问数据库的基本操作
14.3数据库系统开发实例
14.3.1数据库设计
14.3.2系统设计与实现
习题14
內容試閱:
前言
数据库最初是在大公司或大机构中用作大规模事务处理的基础,后来随着个人计算机的普及,数据库技术被移植到PC上,供单用户个人数据库应用。接着,由于PC在工作组内连成网,数据库技术就移植到工作组级。如今,数据库正在Internet和内联网中被广泛使用。数据库技术是目前计算机领域发展最快、应用最广泛的技术,它的应用遍及各行各业,大到操作系统程序,如全国联网的飞机票、火车票订票系统,银行业务系统; 小到个人的管理信息系统,如家庭理财系统。在互联网日渐流行的动态网站中,数据库的应用显得尤为重要。SQL Server 2008是一个功能完备的数据库管理系统,提供了完整的关系数据库的创建、开发和管理功能。它功能强大、操作简便,日益被广大数据库用户所喜爱,而且越来越多的开发工具提供了与SQL Server的接口。本书在第1版的基础上对部分内容做了调整和扩充,实例更丰富、实践性更强,对各章的习题也进行了合理的补充和调整。本书系统地介绍数据库技术的基本理论,全面介绍SQL Server 2008的各项功能、数据库系统设计方法、维护和管理以及数据库系统开发应用的相关技术。全书共14章,分为3个部分,第一部分是第1~3章,系统讲述数据库的基本理论知识,内容包括数据库系统概述、关系数据库、数据库设计; 第二部分是第4~13章,全面讲述SQL Server 2008数据库基础、数据库的概念和操作、表的基本操作、数据库查询、视图和索引、TSQL编程、存储过程和触发器、事务与并发控制、数据库的安全管理、数据库的备份与还原; 第三部分是第14章,利用一个实例介绍基于C#.NET的SQL Server数据库系统的开发过程。本书编者长期从事本科计算机类专业的教学工作,具有丰富的教学经验和多年的数据库开发经验,编者深知数据库的主要知识点和重点、难点,了解什么样的教材适合教学使用,学生及各类读者对数据库的学习方式和兴趣所在,以及如何组织书本的内容更有利于教学和自学,从而形成本书的结构体系。本书第1、5、9和10章由尹志宇编写,第2~4章和第8章由郭晴编写,第6章由于富强编写,第7章由陈敬利编写,第11和12章由李青茹编写,第13和14章由解春燕编写,全书由尹志宇统稿。为了配合教学和方便读者参考,本书提供了配套的电子教案,读者可以到清华大学出版社网站http:www.tup.com.cn下载。由于编者水平有限,书中难免有疏漏与错误之处,衷心希望广大读者批评、指正。编者2016年6月
第5章数据库的概念和操作
SQL Server的数据库是有组织的数据的集合,这种数据集合具有逻辑结构并得到数据库系统的管理和维护。数据库由包含数据的基本表和对象如视图、索引、存储过程和触发器等组成,其主要用途是处理数据管理活动产生的信息。对数据库进行操作是开发人员的一项重要的工作。本章首先介绍数据库的基本概念,然后以实例的形式介绍数据库的创建、修改和删除操作。5.1数据库的基本概念数据库是SQL Server 2008存放表和索引等数据库对象的逻辑实体。数据库的存储结构分为逻辑存储结构和物理存储结构两种。5.1.1物理数据库数据库的物理存储结构指的是保存数据库各种逻辑对象的物理文件是如何在磁盘上存储的,数据库在磁盘上是以文件为单位存储的,SQL Server 2008将数据库映射为一组操作系统文件。数据库中所有的数据和对象都存储在操作系统文件中。1. SQL Server 2008中数据库文件的类型SQL Server 2008的数据库具有下面3种类型的文件。1 主数据文件: 主数据文件是数据库的起点,指向数据库中的其他文件。每个数据库都有且只有一个主数据文件。主数据文件的推荐扩展名是.mdf。2 辅助数据文件: 除主数据文件以外的其他所有数据文件都是辅助数据文件。某些数据库可能不含有任何辅助数据文件,而有些数据库则含有多个辅助数据文件。辅助数据文件的推荐扩展名是.ndf。3 事务日志文件: 日志文件包含了用于恢复数据库的所有日志信息。每个数据库必须至少有一个日志文件,当然也可以有多个。SQL Server 2008事务日志采用提前写入的方式,即将对数据库的修改先写入事务日志中,然后再写入数据库。日志文件的推荐扩展名是.ldf。SQL Server 2008不强制使用.mdf、.ndf和.ldf扩展名,但使用它们有助于标识文件的类型和用途。在SQL Server 2008中,数据库中所有文件的位置都记录在该数据库的主数据文件和系统数据库master数据库中。2. 数据库文件组为了便于管理和分配数据而将文件组织在一起,通常可以为一个数据库创建多个文件组File Group,将多个数据库文件分配在不同的文件组内分组管理。SQL Server中的数据库文件组分为主文件组Primary File Group和用户定义文件组user_defined Group。1 主文件组: 主文件组包含主要数据库文件和任何没有明确指派给其他文件组的其他文件。数据库的系统表都包含在主文件组中。2 用户定义文件组: 用户定义文件组是在CREATE DATABASE或ALTER DATABASE语句中使用FILEGROUP关键字指定的文件组。文件组的应用规则如下:1 一个数据文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。2 在主文件组中包含了所有的系统表。在建立数据库时,主文件组包括主数据文件和未指定组的其他数据文件。3 在创建数据库对象例如数据表时,如果没有指定将其放在哪一个文件组中,就会将它放在默认文件组中。如果没有指定默认文件组,则主文件组为默认文件组。4 事务日志文件不分组管理,即不属于任何文件组。5.1.2逻辑数据库数据库是存储数据的容器,即数据库是一个存放数据的表和支持这些数据的存储、检索、安全性和完整性的逻辑成分所组成的集合。组成数据库的逻辑成分称为数据库对象,SQL Server 2008中的逻辑对象主要包括数据表、视图、同义词、存储过程、函数、触发器、规则以及用户、角色、架构等。每个SQL Server都包含两种类型的数据库,即系统数据库和用户数据库。系统数据库存储有关SQL Server的信息,SQL Server使用系统数据库来管理系统,例如下面将要介绍的master数据库、model数据库、msdb数据库和tempdb数据库,而用户数据库由用户来建立,例如teaching数据库。SQL Server可以包含一个或多个用户数据库。1. master数据库顾名思义,master数据库是SQL Server 2008中的主数据库,它是最重要的系统数据库,记录系统中所有系统级的信息。它对其他的数据库实施管理和控制的功能,同时该数据库还保存了用于SQL Server管理的许多系统级信息。master数据库记录所有的登录账户和系统配置,它始终有一个可用的最新master数据库备份。由此可知,如果在计算机上安装了一个SQL Server系统,那么系统首先会建立一个master数据库来记录系统的有关登录账户、系统配置、数据库文件等初始化信息。例如,如果用户在这个SQL Server系统中建立一个用户数据库如teaching数据库,系统马上将用户数据库的有关用户管理、文件配置、数据库属性等信息写入master数据库。系统正是根据master数据库中的信息来管理系统和其他数据库的。因此,如果master数据库信息被破坏,整个SQL Server系统将受到影响,用户数据库将不能被使用。2. model数据库model数据库为用户新创建的数据库提供模板,它包含了用户数据库中应该包含的所有系统表的结构。当用户创建数据库时,系统会自动把model数据库中的内容复制到新建的用户数据库中。用户在系统中新创建的所有数据库的内容最初都与该模板数据库具有完全相同的内容。3. msdb数据库msdb数据库记录备份及还原的历史信息、维护计划信息、作业信息、异常信息以及操作者信息等,所以它可以为SQL Server代理程序提供要调度的警报和作业等信息。当很多用户使用一个数据库时,经常会出现多个用户对同一个数据修改而造成数据不一致的现象,或者用户对某些数据和对象的非法操作等。为了防止上述现象的发生,SQL Server中有一套代理程序能够按照系统管理员的设定监控上述现象的发生,及时向系统管理员发出警报。那么当代理程序调度警报和作业、记录操作者时,系统要用到或实时产生许多相关信息,这些信息一般存储在msdb数据库中。4. tempdb数据库在使用SQL Server系统时,经常会产生一些临时表和临时数据库对象等,例如用户在数据库中修改表的某一行数据时,在修改数据库这一事务没有被提交的情况下,系统内就会有该数据的新、旧版本之分,往往修改后的数据表构成了临时表,所以系统要提供一个空间来存储这些临时对象。tempdb数据库保存所有的临时表和临时存储过程。tempdb数据库是全局资源,所有连接到系统的用户的临时表和存储过程都被存储在该数据库中。tempdb数据库有一个特性,即它是临时的,tempdb数据库在SQL Server每次启动时都被重新创建,因此该数据库在系统启动时总是空的,上一次的临时数据都被清除掉了。临时表和存储过程在连接断开时自动清除,而且在系统关闭后将没有任何连接处于活动状态,因此tempdb数据库中没有任何内容会从SQL Server的一个启动工作保存到另一个启动工作之中。默认情况下,在SQL Server运行时,tempdb数据库会根据需要自动增长。不过,与其他数据库不同,每次启动数据库引擎时它会重置初始大小。master、model、msdb、tempdb这4个系统数据库都是在SQL Server系统安装时生成的。5.2数据库的操作在SQL Server 2008中,用户可以自己创建数据库即用户数据库,并且可以对数据库进行修改、删除等操作。5.2.1创建数据库若要创建数据库,必须确定数据库的名称、所有者、大小以及存储该数据库的文件和文件组。在创建数据库时,根据数据库中预期的最大数据量应创建尽可能大的数据文件。在SQL Server 2008中创建数据库主要有两种方式,一是在SQL Server Management Studio中使用向导创建数据库; 二是通过查询窗口执行TSQL语句创建数据库。1. 在SQL Server Management Studio中创建数据库在SQL Server Management Studio中创建数据库的过程如下:1 启动SQL Server Management Studio,在对象资源管理器的数据库结点上右击,选择快捷菜单中的新建数据库命令,如图51所示。
图51选择新建数据库命令
2 弹出新建数据库对话框,在常规选择页的数据库名称文本框中输入要创建的数据库的名称,如图52所示。
图52新建数据库对话框
其中,SQL Server 2008的数据库文件拥有两个名称,即逻辑文件名和物理文件名。 逻辑文件名: 逻辑文件名是在所有TSQL语句中引用物理文件时所使用的名称。逻辑文件名必须符合SQL Server标识符规则,每一个数据库的逻辑文件名只有一个。 物理文件名: 物理文件名是包括目录路径的物理文件名,它必须符合操作系统文件的命名规则。通过上面的介绍我们知道,数据库中至少包含一个主数据文件和一个事务日志文件,其存储路径和文件名都可以在图52所示对话框中修改,当然也可以利用添加按钮添加多个辅助数据文件和日志文件。
图53创建数据库成功
3 在常规选择页中数据文件的初始大小处可以设置文件的初始大小MB; 单击自动增长方式后的按钮可设置自动增长方式和最大文件大小; 单击路径后的按钮可设置文件的存放路径。4 在选项选择页中设置数据库的属性,在文件组选择页中增加或删除文件组。在对象资源管理器中展开数据库,可以看到新建的数据库,如图53所示。【例51】创建数据库teaching教学库,主数据文件的初始大小为5MB,增长方式是按10%的比例自动增长; 日志文件初始为8MB,按1MB增长默认是按10%的比例增长。两个文件都不限制增长,存储位置分别为E:\DATA和F:\DATA。2. 使用TSQL语句创建数据库在SQL Server 2008中可以利用TSQL语句创建数据库。TSQL提供的数据库创建语句为CREATE DATABASE,其语法格式如下:
CREATE DATABASEdatabase_name
[ON [PRIMARY][ [,n]] [, [,n]]]
[LOG ON { [,n]}]
[FOR LOAD|FOR ATTACH]
∷=[NAME=logical_file_name,]
FILENAME=''os_file_name''
[,SIZE=size]
[,MAXSIZE={max_size|UNLIMITED}]
[,FILEGROWTH=growth_increment] [,n]说明: 在TSQL语言的语法格式中,用[ ]括起来的内容表示是可选的; [,n]表示重复前面的内容; 用括起来的内容表示在实际编写语句时用相应的内容代替; 用{ }括起来的内容表示是必选的; 类似A|B的格式,表示A和B只能选择一个,不能同时都选。对其中的参数说明如下。 database_name: 新数据库的名称。数据库名称在服务器中必须唯一,最长为128个字符,并且要符合标识符的命名规则。每个服务器管理的数据库最多为32767个。 ON: 指定存放数据库的数据文件信息。该关键字后面可以包含用逗号分隔的列表,列表用于定义主文件组的数据文件。在主文件组的文件列表后可以包含用逗号分隔的列表,列表用于定义用户文件组及其中的文件。 PRIMARY: 用于指定主文件组中的文件。主文件组不仅包含数据库系统表中的全部内容,而且包含用户文件组中没有包含的全部对象。一个数据库只能有一个主文件,在默认情况下,如果不指定PRIMARY关键字,则在命令中列出的第一个文件将被默认为主文件。 LOG ON: 指明事务日志文件的明确定义。如果没有该选项,则系统会自动产生一个文件名前缀,与数据库名相同,容量为所有数据库文件大小的14的事务日志文件。 NAME: 指定数据库的逻辑名称,这是在SQL Server系统中使用的名称,是数据库在SQL Server中的标识符。 FILENAME: 指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名称和NAME的逻辑名称一一对应。 SIZE: 指定数据库的初始容量大小。如果没有指定主文件的大小,则SQL Server默认其与模板数据库中的主文件大小一致,其他数据库文件和事务日志文件则默认为1MB。指定大小的数字size可以使用MB、GB和TB后缀,默认的后缀为MB。在size中不能使用小数,默认值为1MB。主文件的size不能小于模板数据库中的主文件。 MAXSIZE: 指定操作系统文件可以增长到的最大尺寸。如果没有指定,则文件可以不断增大直到充满磁盘。 FILEGROWTH: 指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。增加量可以确定为以MB、GB等做后缀的字节数或以%做后缀的被增加容量文件的百分比来表示,默认后缀为MB。如果没有指定FILEGROWTH,则默认值为1MB数据文件或10%日志文件。【例52】使用CREATE DATABASE创建一个新的数据库,名称为STUDENT1,其他所有参数均取默认值。实现的步骤如下:1 打开SQL Server Management Studio,在窗口上部的工具栏的左侧找到新建查询按钮。2 单击新建查询按钮,在SQL Server Management Studio的窗口右侧会建立一个新的查询页面,默认的名称为SQLQuery1.sql,在这个页面中可以输入要让SQL Server执行的TSQL语句。3 在这里输入下面列出的创建数据库的TSQL语句:
CREATEDATABASESTUDENT14 单击工具栏中的!执行按钮,当系统给出的提示信息为命令已成功完成时,说明此数据库创建成功,如图54所示。
图54创建STUDENT1数据库
【例53】创建数据库名为STUDENT2的数据库,包含一个主数据文件和一个事务日志文件。主数据文件的逻辑名为STUDENT2_DATA,操作系统文件名为STUDENT2_DATA.MDF,初始容量大小为5MB,最大容量为20MB,文件的增长量为20%。事务日志文件的逻辑文件名为STUDENT2_LOG,物理文件名为STUDENT2_LOG.LDF,初始容量大小为5MB,最大容量为10MB,文件增长量为2MB。数据文件与事务日志文件都放在F盘的根目录。首先在F盘创建一个新的文件夹,名称是DATA。然后在SQL Server Management Studio窗口中单击新建查询按钮,在打开的窗口中输入图55所示的内容,单击执行按钮,可创建数据库。
图55创建STUDENT2数据库
CREATE DATABASE STUDENT2
ON PRIMARY
NAME = ''STUDENT2_DATA'',
FILENAME = ''F:\DATA\STUDENT2_DATA.MDF'' ,
SIZE = 5MB,
MAXSIZE = 20MB,
FILEGROWTH = 20%
LOG ON
NAME =''STUDENT2_LOG'',
FILENAME = ''F:\DATA\STUDENT2_LOG. LDF'',
SIZE = 5MB,
MAXSIZE = 10MB,
FILEGROWTH = 2MB注意: 在一个数据库中最多可以创建32767个文件组,文件组不能独立于数据库文件而建立,文件组是管理数据库中一组数据文件的机制。【例54】创建一个指定多个数据文件和日志文件的数据库。该数据库名称为STUDENTS,有一个5MB和一个10MB的数据文件以及两个5MB的事务日志文件。数据文件的逻辑名称为STUDENTS1和STUDENTS2,物理文件名为STUDENTS1.mdf和STUDENTS2.ndf。主数据文件STUDENTS1属于PRIMARY文件组,辅助数据文件STUDENTS2属于新建文件组FG1,两个数据文件的最大大小分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为STUDENTSLOG1和STUDENTSLOG2,物理文件名为STUDENTSLOG1.ldf和STUDENTSLOG2.ldf,最大大小均为50MB,文件增长速度为1MB。要求数据库文件和日志文件的物理文件都存放在E盘的DATA文件夹下。实现的步骤如下:1 在E盘创建一个新的文件夹,名称是DATA,然后在SQL Server Management Studio中新建一个查询页面。2 输入以下程序段,并执行此查询。
CREATEDATABASESTUDENTS
ON
NAME=STUDENTS1,
FILENAME=''E:\DATA\STUDENTS1.MDF'',
SIZE=5,
MAXSIZE=unlimited,
FILEGROWTH=10%,
FILEGROUP FG1
NAME= STUDENTS2,
FILENAME=''E:\DATA\STUDENTS2.NDF'',
SIZE=10,
MAXSIZE=100,
FILEGROWTH=1
LOG ON
NAME=STUDENTSLOG1,
FILENAME=''E:\DATA\STUDENTSLOG1.LDF'',
SIZE=5,
MAXSIZE=50,
FILEGROWTH=1,
NAME=STUDENTSLOG2,
FILENAME=''E:\DATA\STUDENTSLOG2.LDF'',
SIZE=5,
MAXSIZE=50,
FILEGROWTH =15.2.2修改数据库在建好数据库之后,可以对其修改。修改数据库包括增减数据文件和日志文件、修改文件属性包括更改文件名和文件大小、修改数据库选项等。1. 增加数据库空间1 增加已有数据库文件的大小在SQL Server Management Studio的对象资源管理器窗口中展开数据库,然后右击要修改的数据库的名称,在快捷菜单中选择属性命令,打开数据库属性窗口,选择文件选择页,如图56所示,修改初始大小选项以及自动增长中的文件增长和最大文件大小选项。
图56数据库属性窗口
用户也可以使用TSQL语句增加已有数据库文件的初始大小,语法格式如下:
ALTER DATABASE数据库名
MODIFY FILE
NAME=逻辑文件名,
SIZE=文件大小【例55】为STUDENT2数据库增加容量,原来数据库文件STUDENT2_DATA的初始分配空间为5MB,现在将STUDENT2_DATA的分配空间增加至20MB。
ALTER DATABASESTUDENT2
MODIFY FILE
NAME= STUDENT2_DATA,
SIZE=20MB2 增加数据库文件在SQL Server Management Studio中选择数据库属性窗口中的文件选择页,单击添加按钮,为新的数据库文件指定逻辑文件名、初始大小、文件增长方式等属性,然后单击确定按钮完成增加数据库文件数目的操作。用户也可以使用TSQL语句增加数据库文件的数目,语法格式如下:
ALTER DATABASE数据库名
ADD FILE|ADD LOG FILE
【例56】为数据库STUDENT2增加数据文件STUDENT2_DATA1,初始大小为10MB,最大为50MB,按照5%的比例增长。
ALTER DATABASESTUDENT2
ADD FILE
NAME = ''STUDENT2_DATA1'',
FILENAME = ''F:\DATA\ STUDENT2_DATA1.NDF'',
SIZE = 10MB,
MAXSIZE = 50MB,
FILEGROWTH = 5%2. 缩减已有数据库文件的大小数据库文件的大小可以缩减,具体步骤如下:1 在SQL Server Management Studio的对象资源管理器窗口的数据库名上右击,选择快捷菜单中的任务收缩数据库命令,在出现的收缩数据库对话框中保持默认设置,单击确定按钮,数据库收缩完毕。2 如果要收缩特定的数据文件或日志文件,可选择快捷菜单中的任务收缩文件命令。3 数据库的自动收缩可以在数据库属性窗口中的选项选择页中设置,只要将选项中的自动收缩设为True即可。注意: 为了避免存储空间的浪费,可以进行数据库的手动收缩或设置自动收缩。但是无论怎么收缩,数据库的大小也不会小于其初始大小,所以在创建数据库时对初始大小的选择应尽可能合理。3. 删除数据库文件在SQL Server Management Studio中选择数据库属性窗口中的文件选择页,指定要删除的文件,然后单击删除按钮就可以删除对应的文件,从而缩减了数据库的空间。使用ALTER DATABASE的REMOVE FILE子句可以删除指定的文件,其语法格式如下:
ALTER DATABASE数据库名
REMOVE FILE逻辑文件名【例57】将数据库STUDENT2中增加的数据文件STUDENT2_DATA1删除。
ALTER DATABASESTUDENT2
REMOVE FILESTUDENT2_DATA14. 数据库的更名在数据库建好后可以更改其名称,在重命名数据库之前应该确保没有用户正在使用该数据库。常用的更名方法有下面两种。方法一: 在SQL Server Management Studio中选择此数据库,然后右击,在弹出的快捷菜单中选择重命名命令。方法二: 在查询窗口中执行系统存储过程sp_renamedb更改数据库的名称。系统存储过程sp_renamedb的语法如下:
sp_renamedb [@dbname=]''old_name'' ,[@newname=]''new_name''【例58】将已存在的数据库STUDENT2重命名为STUDENT_BACK。
sp_renamedb''STUDENT2'' , '' STUDENT_BACK''5.2.3删除数据库对于不再使用的数据库可以删除,删除数据库的方法如下:1. 使用SQL Server Management Studio删除数据库打开SQL Server Management Studio,选择数据库,然后右击要删除的数据库,在弹出的快捷菜单中选择删除命令,在随后出现的删除对象对话框中单击确定按钮,即可完成对指定数据库的删除操作。2. 使用TSQL中的DROP DATABASE语句删除数据库其语法格式如下:
DROP DATABASE数据库名【例59】删除已创建的数据库STUDENTS。
DROP DATABASE STUDENTS说明: 用户只能根据自己的权限删除用户数据库,不能删除当前正在使用正打开供用户读写的数据库,不能删除系统数据库msdb、model、master、tempdb。习题51. 简述数据库的两种存储结构。2. 数据库由哪几种类型的文件组成?其扩展名分别是什么?3. 简述SQL Server 2008中文件组的作用和分类。4. 使用SQL Server Management Studio创建名为inventory(仓库库存)的数据库,并设置数据库主文件名为inventory_data,初始大小为10MB,日志文件名为inventory_log,初始大小为2MB。所有的文件都放在目录E:\DATA中。5. 删除习题4创建的数据库,使用TSQL语句再次创建该数据库,主文件和日志文件的文件名及存放位置同上。要求: inventory_data最大为无限大,增长速度为20%; 日志文件初始大小为2MB,最大为5MB,增长速度为1MB。6. 请分别使用SQL Server Management Studio和TSQL语句创建数据库Student,要创建的数据库的要求如下:数据库名称为Student,包含3个20MB的数据库文件、两个10MB的日志文件,创建使用一个自定义文件组,主文件为第一个文件,主文件的扩展名为.mdf,次要文件的扩展名为.ndf; 要明确地定义日志文件,日志文件的扩展名为.ldf; 自定义文件组包含后两个数据文件,所有的文件都放在目录E:\DATA中。