350 likes | 501 Views
SQL Server 2005 实用教程. 电子工业出版社 出版. 第 3 章. 数据库的基本操作. 第 3 章 数据库的基本操作. 3.1 SQL Server 数据库的一些基本术语和概念 3.2 创建数据库 3.3 管理数据库 3.4 案例中的应用举例. 3.1 SQL Server 数据库的一些基本术语和概念. 3.1.1 SQL Server 的数据库 3.1.2 SQL Server 的事务日志 3.1.3 SQL Server 数据库文件及文件组 3.1.4 SQL Server 的系统数据库.
E N D
SQL Server 2005 实用教程 电子工业出版社出版
第3章 数据库的基本操作
第3章 数据库的基本操作 • 3.1 SQL Server 数据库的一些基本术语和概念 • 3.2 创建数据库 • 3.3 管理数据库 • 3.4 案例中的应用举例
3.1 SQL Server 数据库的一些基本术语和概念 • 3.1.1 SQL Server的数据库 • 3.1.2 SQL Server的事务日志 • 3.1.3 SQL Server 数据库文件及文件组 • 3.1.4 SQL Server 的系统数据库
3.1.1 SQL Server的数据库 1. SQL Server的数据库 是有组织的数据的集合,这种数据集合具有逻辑结构并得到数据库系统的管理和维护。SQL Server数据库是数据库对象的容器,它以操作系统文件的形式存储在磁盘上。一般情况下它用一组文件映射DB。DB中所有的数据和对象都存储在OS文件中。
3.1.1 SQL Server的数据库 数据、表、存储过程、触发器、视图、规则、默认值、用户定义数据类型、索引、权限 数据库用户、数据库规则等对象 学生管理数据库 日志文件 数据文件 图3.1 数据库、数据库对象及文件 关系图
3.1.2 SQL Server的事务日志 1.事务是一组T-SQL语句的集合,这组语句作为单个的工作与恢复的单元。事务作为一个整体来执行,对于其数据的修改,要么全都执行,要么全都不执行。 2.事务日志是数据库中已发生的所有修改和执行每次修改的事务的一连串记录。 3.事务日志记录更改数据的流程 。
3.1.2 SQL Server的事务日志 事务日志工作流程 写入日志 数据库修改操作 写入磁盘 页调入内存
3.1.3 SQL Server 数据库文件及文件组 1.SQL Server的数据库文件的三种类型 1)主数据文件(Primary file) 用来存储数据库的数据和数据库的启动信息。每个数据库必须并且只有一个主数据文件,其扩展名为.MDF。实际的文件都有两种名称:操作系统文件名和逻辑文件名(T-SQL语句中使用)。 2)辅助数据文件(Secondary file) 用来存储数据库的数据,使用辅助数据库文件可以扩展存储空间。如果数据库用一个主数据文件和多个辅助数据文件来存放数据,并将它们放在不同的物理磁盘上,数据库的总容量就是这几个磁盘容量的和。辅助数据文件的扩展名为:.NDF 3)事务日志文件(Transaction log) 用来存放数据库的事务日志。凡是对数据库进行的增、删、改等操作,都会记录在事务日志文件中。当数据库被破坏时可以利用事务日志文件恢复数据库的数据。每个数据库至少要有一个事务日志文件,事务日志文件的扩展名为:LDF
3.1.3 SQL Server 数据库文件及文件组 2.SQL Server的数据库文件组 文件组是SQL另一种形式的容器,文件位置可以很灵活,你可以将数据文件存储在不同的地方,然后用文件组把他们作为一个单元来管理。例如,你可以将主数据文件放在一个地方然后将次要数据文件(aa1.ndf,aa2.ndf,aa3.ndf),如果需要,可将他们放在三个不同的磁盘(如D盘、E盘、F盘)上。然后创建一个文件组,将所有的文件指定到此文件组。如图3.2所示。
学生数据库 d:\msql\data\student_log.ldf d:\msql\data\student_data.mdf e:\msql\data\student_data2.ndf e:\msql\data\student_log2.ldf f:\msql\data\student_data3.ndf f:\msql\data\student_log3.ldf 图 3.2 数据库与操作系统文件之间的映射
3.1.4 SQL Server 的系统数据库 • SQL server 2005的系统构成 数据库分为两类有系统数据库和用户数据库。当安装完成后系统会自动创建5个系统数据库,其中4个在SQL Server Management Studio环境中可见( master、model、tempb、msdb )和1个逻辑上不单独存在,隐藏的系统数据库Resource。
3.1.4 SQL Server 的系统数据库 • SQL server 20005系统构成 • master数据库:该数据库记录SQL server 2005的所有的服务器系统信息、注册账户和密码以及所有的系统设置信息等大量对对系统至关重要的信息,是系统的关键性所在,所以他一旦受到破坏,可能会导致这个系统的瘫痪。 • model数据库:为用户提供了模板和原型,包含了每一用户数据库所需要的系统表。它的定制结构可以被更改,因为每当用户创建新的数据库时,都是复制model数据库的模板,所以所作的所有更改都将反映到用户数据库当中。 • tempdb数据库: 此数据库保存所有的临时性表和临时存储过程,并满足任何其他的临时存储要求。tempdb数据库是全局资源,在每次启动时都重新创建,因此该数据库在系统启动时总是空白的。 • msdb数据库:此数据库供SQL server代理程序调度报警和作业调度等活动。 • Resource数据库:是一个只读的数据库,它包含了 SQL Server 2005 中的所有系统对象。系统对象在物理上保存在Resource 数据库文件中,在逻辑上显示在每个数据库的sys架构中。
3.2创建数据库 数据库是数据库系统最基本的对象,是存储过程、触发器、视图和规则等数据库对象的容器。因此,创建数据库是创建其它数据库对象的基础。若要创建数据库,需要确定数据库的名称、所有者、大小以及存储该数据库的文件和文件组。在SQL Server 2005中创建数据库主要有两种方法:使用SQL Server Management Studio或T-SQL语言创建数据库。 1、使用SQL Server Management Studio创建数据库
3.2创建数据库 2、使用T-SQL语言创建数据库 常用语法格式如下: CREATE DATABASE database_name [ON { [PRIMARY] (NAME=logical_file_name, FILENAME=’os_file_name’, [,SIZE=size] [,MAXSIZE={max_size|UNLIMITED}] [,FILEGROWTH=grow_increment]) }[,…n] LOG ON {(NAME=logical_file_name, FILENAME=’os_file_name’ [,SIZE=size] [,MAXSIZE={max_size|UNLIMITED}] [,FILEGROWTH=growth_increment]) }[,…n]] [COLLATE collation_name]
3.2创建数据库 3、案例 创建数据库名为“BVTC_DB”的数据库,其包含一个主数据文件和一个事务日志文件。主数据文件的逻辑名为“BVTC_DB_DATA”,操作系统文件名为“BVTC_DB_DATA.MDF”,初始容量大小为5MB,最大容量为20MB,文件的增长量为20%;事务日志文件的逻辑文件名为“BVTC_DB_LOG”,操作系统文件名为“BVTC_DB_LOG.LDF”,初始容量大小为5MB,文件增长量为2MB,最大不受限制。数据文件与事务日志文件都保存在D盘根目录。
3.2创建数据库 CREATE DATABASE BVTC_DB ON PRIMARY (NAME = 'BVTC_DB_DATA', FILENAME = 'D:\BVTC_DB_DATA.MDF' , SIZE = 5MB, MAXSIZE = 20MB, FILEGROWTH = 20%) LOG ON (NAME ='BVTC_DB_LOG', FILENAME = 'D:\BVTC_DB_LOG.LDF' , SIZE = 5MB, FILEGROWTH = 2MB) COLLATE Chinese_PRC_CI_AS GO
3.3管理数据库 3.3.1使用SQL Server Management Studio管理数据库 3.3.2使用T-SQL管理数据库
3.3.1使用SQL Server Management Studio管理数据库 1、打开数据库 在SQL Server Management Studio中打开数据库的步骤是:在“对象资源管理器”窗口中,展开“数据库”节点,单击要打开的数据库“BVTC_DB”,此时右边“摘要”窗口中列出当前打开数据库的数据库对象。
3.3.1使用SQL Server Management Studio管理数据库 2、查看数据库信息 (1)启动SQL Server Management Studio,在“对象资源管理器”窗口中,展开“数据库”节点,选择要查看信息的数据库“BVTC_DB”,单击右键,在弹出的快捷菜单中,单击“属性”命令,打开“数据库属性”对话框。 (2)在“数据库属性”对话框中,包含常规、文件、文件组、选项、权限、扩展属性、镜像和事务日志传送8个选择页。单击其中任意的选择页,可以查看到与之相关的数据库信息。
3.3.1使用SQL Server Management Studio管理数据库 3、修改数据库容量 (1)增加数据库容量:在“对象资源管理器”窗口中,展开“数据库”节点,选择要增加容量数据库“BVTC_DB”,单击右键,在弹出的快捷菜单中单击“属性”命令,打开“数据库属性”对话框。从“选择页”中选择“文件”页,在这里可以修改数据库文件的初始大小和增长方式,其修改方法与创建数据库时相同。 (2)收缩数据库容量:在“对象资源管理器”窗口中,展开“数据库”节点,选择要收缩容量的数据库“BVTC_DB”,单击右键,在弹出的快捷菜单中执行“任务”→“收缩”→“数据库”命令,打开“收缩数据库”对话框 。根据需要,可以选择“在释放未使用的空间前重新组织文件”复选框,如果选择该项,必须为“收缩后文件中的最大可用空间”输入值,允许输入的值介于0和99之间。设置完成后,单击“确定”命令按钮,完成数据库收缩。
3.3.1使用SQL Server Management Studio管理数据库 4、设定修改数据库选项 (1)在“对象资源管理器”窗口中,展开“数据库”节点,选择要设置选项的数据库“BVTC_DB”,单击右键,在弹出的快捷菜单中,单击“属性”命令,打开“数据库属性”对话框。 (2)在“数据库属性”对话框中,选择“选项”页,出现数据库的各个选项,在此,可以根据管理需要对数据库选项进行重新设定。
3.3.1使用SQL Server Management Studio管理数据库 5、更改数据库名称 (1)启动SQL Server Management Studio,在“对象资源管理器”窗口中,展开“数据库”节点,选择要更名的数据库“BVTC_DB”,单击右键,在弹出的快捷菜单中,单击“属性”命令,打开“数据库属性”对话框,选择“选项”页,将数据库选项中的“限制访问”设为“Single”用户模式,设置成功后,在对象资源管理器中该数据库名称旁边有单个用户标志。 (2)选择“BVTC_DB”,单击右键,在弹出的快捷菜单中选择“重命名”,数据库名称变为可编辑状态,输入新的数据库名称即可。 (3)更名后,将数据库选项中的“限制访问”设为“Multipe”用户模式。
3.3.1使用SQL Server Management Studio管理数据库 6、分离和附加数据库 (1)分离数据库:在“对象资源管理器”窗口中,展开“数据库”节点,选择要分离的数据库,如“BVTC_DB”,单击右键,在弹出的快捷菜单中执行“任务”→“分离”命令,打开“分离数据库”对话框。在“分离数据库”对话框中右侧是“要分离的数据库”窗格,在“状态”为就绪时,单击“确定”按钮,将数据库与SQL Server服务器分离。 (2)附加数据库:在“对象资源管理器”窗口中,选择“数据库”节点,单击右键,在弹出的快捷菜单中,单击“附加”命令,打开“附加数据库”对话框。单击“添加”命令按钮,打开“定位数据库文件”对话框,在该对话框中选择数据文件所在的路径,选择扩展名为. MDF数据文件,如BVTC_DB_DATA.MDF,单击“确定”命令按钮返回“附加数据库”对话框。最后,单击“确定”按钮,完成数据库附加。
3.3.1使用SQL Server Management Studio管理数据库 6、删除数据库 在“对象资源管理器”窗口中,展开“数据库”节点,选择要删除的数据库,单击右键,在弹出的快捷菜单中单击“删除”命令,打开“删除对象”对话框,单击“确定”命令按钮即可完成数据库删除操作。
3.3.2使用T-SQL管理数据库 1、打开数据库 语法格式为: USE database_name 2、查看数据库信息 语法格式为: [EXEC[UTE ]] sp_helpdb database_name
3.3.2使用T-SQL管理数据库 3、增加或减少数据库容量 修改数据库容量,可以修改数据库文件的大小,也可以增加或删除数据库文件,其语法格式为: ALTER DATABASE database_name ADD FILE (NAME= logical_file_name, FILENAME=’os_file_name’ [,SIZE= size] [,MAXSIZE={ max_size |UNLIMITED}] [,FILEGROWTH= grow_increment]) | ADD LOG FILE(NAME= logical_file_name, FILENAME=’os_file_name’ [,SIZE= size] [,MAXSIZE={ max_size |UNLIMITED}] [,FILEGROWTH= grow_increment]) | MODIFY FILE (NAME=file_name, SIZE= newsize)| REMOVE FILE logical_file_name
3.3.2使用T-SQL管理数据库 案例:为BVTC_DB数据库增加容量,原来数据库文件BVTC_DB_DATA的初始分配空间为5MB,指派给BVTC_DB数据库使用,现在将BVTC_DB_DATA的分配空间增加至20M。 代码如下: USE BVTC_DB GO ALTER DATABASE BVTC_DB MODIFY FILE (NAME=BVTC_DB_DATA, SIZE=20MB)
3.3.2使用T-SQL管理数据库 4、收缩数据库容量 语法格式如下: DBCC SHRINKDATABASE 案例:收缩BVTC_DB数据库的容量至最小。 其代码如下: DBCC SHRINKDATABASE ('BVTC_DB') GO
3.3.2使用T-SQL管理数据库 5、设定修改数据库选项 (1)查看数据库选项:语法格式如下: EXEC sp_dboption ‘database_name’ (2)修改数据库选项:语法格式如下: EXEC sp_dboption database_name,option_name,{TRUE|FALSE} 案例:更改数据库BVTC_DB为只读状态。 代码如下: EXEC sp_dboption 'BVTC_DB','read_only',TRUE GO
3.3.2使用T-SQL管理数据库 6、更改数据库名称 语法格式如下: EXEC sp_renamedb 'oldname', 'newname' 案例:更改数据库“BVTC_DB”的名称为“BVTC_DB1”。 代码如下: EXEC sp_dboption 'BVTC_DB','read_only',FALSE GO EXEC sp_renamedb 'BVTC_DB','BVTC_DB1' GO
3.3.2使用T-SQL管理数据库 7、分离数据库 语法格式如下: sp_detach_db 'database_name' 案例:将“BVTC_DB1”数据库从SQL Server服务器中分离。 代码如下: USE master GO sp_detach_db 'BVTC_DB1' GO
3.3.2使用T-SQL管理数据库 8、附加数据库 语法格式如下: CREATE DATABASE database_name ON (FILENAME =’os_file_name’) FOR ATTACH 案例:将“BVTC_DB1”数据库附加到SQL Server服务器中。 代码如下: USE master GO CREATE DATABASE BVTC_DB1 ON (FILENAME ='d:\BVTC_DB_DATA.mdf') FOR ATTACH GO
3.3.2使用T-SQL管理数据库 7、删除数据库 语法格式如下: DROP DATABASE database_name[,database_name…] 案例:删除student数据库,代码如下: USE master GO DROP DATABASE student GO
3.4 案例中的应用举例 3.4.1 创建学生选课管理数据库 3.4.2 设定修改数据库的容量