-
sql语句大全之管理数据库
管理数据库
在创建完成数据库之后,就可以对数据库进行管理操作,主要包括查看、修改和删除。查看是指可以浏览数据库的各种属性和状态;修改是指可以修改数据库的名称、大小、自动增长等;删除数据库是对不需要的数据库进行删除,以释放多余的磁盘空间。2.3.1 查看数据库信息
Microsoft SQL Server 2008系统中,查看数据库信息有很多种方法,例如,可以使用目录视图、函数和存储过程等查看有关数据库的基本信息。下面分别来介绍这几种查看数据库信息的基本方式。1.使用目录视图
常见的查看数据库基本信息的操作有:
l 使用sys.databases数据库和文件目录视图查看有关数据库的基本信息
l 使用sys.database_files查看有关数据库文件的信息
l 使用sys.filegroups查看有关数据库组的信息
l 使用sys.maste_files查看数据库文件的基本信息和状态信息
2.使用函数
可以使用DATABASEPROPERTYEX函数来查看指定数据库中的指定选项的信息,该函数一次只能返回一个选项的设置。例如,要查看【图书管理系统(BookDateBase)】数据库中的Version选项的设置信息,可以使用如下语句:
select DATABASEPROPERTYEX(' BookDateBase','Version')
代码的执行结果如图2-11所示:图2-11 查看数据库选项设置
3.使用存储过程
使用sp_spaceused存储过程可以显示数据库使用和保留的空间。下面来查看【图书管理系统(BookDateBase)】数据库的空间大小和已经使用的空间等信息。如图2-12所示。
图2-12 使用sp_spaceused存储过程
可以查看所有数据库的基本信息,仍然来查看【图书管理系统(BookDateBase)】数据库的信息,如图2-13所示。
图2-13 使用sp_helpdb存储过程
除上面介绍的几种方法外,还可以利用Microsoft SQL Server Management Studio窗口来查看数据库信息。在【对象资源管理器】窗格中右击要查看信息的数据库,选择【属性】命令,在弹出的【数据库属性】对话框中就可以查看到数据库的常规信息、文件信息、文件组信息、选项信息等,如图2-14所示。
图2-14 【数据库属性】对话框
2.3.2 修改数据库的大小
修改数据库的大小,其实就是修改数据文件和日志文件的长度,或者增加/删除文件。修改数据库最常用的两种方法为:通过ALTER DATABASE语句和图形界面。下面分别来介绍这两种修改数据库大小的方法。1.使用ALTER DATABASE语句
下面使用ALTER DATABASE语句将【图书管理系统(BookDateBase)】数据库扩大5MB,可以通过为该数据库添加一个大小为5MB的数据文件来实现。语句如下所示:
ALTER DATABASE BookDateBase
ADD FILE
(
NAME= BookDateBase_DAT3,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _DAT3.mdf',
SIZE=5MB,
MAXSIZE=30MB,
FILEGROWTH=20%
)
上述语句代码将添加一个名称为工资管理系统_DAT3,大小为5MB的数据文件,最大值为30MB,并可按20%自动增长。ADD FILE
(
NAME= BookDateBase_DAT3,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _DAT3.mdf',
SIZE=5MB,
MAXSIZE=30MB,
FILEGROWTH=20%
)
如果要增加日志文件,可以使用ADD LOG FILE子句,在一个ALTER DATABASE语句中,一次可以增加多个数据文件或日志文件,多个文件之间需要使用,分开。 |
2.使用图形界面
下面来介绍如何在图形界面下修改数据库的大小:
(1)在【对象资源管理器】窗格中,右击要修改大小的数据库(如图书管理系统数据库BookDateBase),选择【属性】命令。
(2)在【数据库属性】对话框的【选择页】下选择【文件】选项。
(3)在【工资管理系统】数据文件行的【初始大小】列中,输入要修改的值。同样在日志文件行的【初始大小】列中,输入要修改的值。
(4)单击【自动增长】列中的按钮( ),打开【自动增长设置】窗口,可设置自动增长的方式及大小。如图2-15所示。
图2-15 【自动增长设置】窗口
(5)如果要添加文件,可以直接在【数据库属性】对话框中单击【添加】按钮,进行相应大小设置即可。
(6)完成修改后,单击【确定】按钮完成修改数据库大小的操作。
2.3.3 删除数据库
数据库在使用中,随着数据库数量的增加,系统的资源消耗越来越多,运行速度也会越来越慢。这时,就需要调整数据库,调整方法有很多种。例如,将不再需要的数据库删除,以此释放被占用的磁盘空间和系统消耗。在SQL Server 2008中,有两种删除数据库的方法:使用图形界面和DROP DATABASE语句。1.使用图形界面
(1)在【对象资源管理器】窗格中选中要删除的数据库,右击选择【删除】命令。
(2)在弹出的【删除对象】对话框中,单击【确定】按钮确认删除。删除操作完成后会自动返回SQL Server Management Studio窗口,如图2-16所示。
图2-16 【删除对象】窗口
2.DROP DATABASE语句
使用DROP DATABASE语句删除数据库的语法如下:
DROP DATABASE database_name [,…n]
其中,database_name为要删除的数据库名,[,…n]表示可以有多于一个数据库名。例如,要删除数据库“图书管理系统(BookDateBase)”,可使用如下的DROP DATABASE语句:
DROP DATABASE BookDateBase
使用DROP DATABASE删除数据库不会出现确认信息,所以使用这种方法时要小心谨慎。此外,千万不能删除系统数据库,否则会导致SQL Server 2008服务器无法使用。 |
2.3.4 其他数据库操作
到目前为此,已经学习了基本的数据库操作形式,除这些操作以外,数据的操作还包括分离数据库、附加数据库和收缩数据库等。下面就分别来简单介绍一下他们是怎样操作的。1.分离数据库
分离数据库就是指将数据库从SQL Server 2008的实例中分离出去,但是不会删除该数据库的文件和事务日志文件,这样,该数据库可以再附加到其他的SQL Server 2008的实例上去。
首先,可以使用sp_detach_db存储过程来执行分离数据库操作。例如,要分离【图书管理系统(BookDateBase)】数据库,则该执行语句如下所示:
EXEC sp_detach_db BookDate
不过,并不是所有的数据库都可以分离的,如果要分离的数据库出现下列任何一种情况都将无法分离数据库:l 已复制并发布数据库。如果进行复制,则数据库必须是未发布的。如果要分离数据库,必须先通过执行sp_replicationdboption存储过程禁用发布后再进行分离。
l 数据库中存在数据库快照。此时,必须首先删除所有数据库快照,然后才能分离数据库。
l 数据库处于未知状态。在SQL Server 2008中,无法分离可疑和未知状态的数据库,必须将数据库设置为紧急模式,才能对其进行分离操作。
当然,也可以使用图开界面来执行分离数据库的操作。步骤如下:
(1)在【对象资源管理器】窗格中右击想要分离的数据库(如,图书管理系统BookDateBase),选择【任务】|【分离】命令。
(2)在打开的【分离数据库】对话框,查看在【数据库名称】列中的数据库名称,验证这是否为要分离的数据库,如图2-17所示。
图2-17 【分离数据库】对话框
(3)在【状态】列中的是如果显示的是“未就绪”,则【消息】列将显示有关数据库的超链接信息。当数据库涉及复制时,【消息】列将显示Database replicated。
(4)数据库有一个或多个活动连接时,【消息】列将显示“<活动连接数>个活动连接”。在可以分离数据列之前,必须启用【删除连接】复选框来断开与所有活动连接的连接。
(5)分离数据库准备就绪后,单击【确定】按钮。
2.附加数据库
附加数据库是指将当前数据库以外的数据库附加到当前数据库实例中。在附加数据库时,所有数据库文件(.mdf和.ndf文件)都必须是可用的。如果任何数据文件的路径与创建数据库或上次附加数据库时的路径不同,则必须指定文件的当前路径。在附加数据库的过程中,如果没有日志文件,系统将创建一个新的日志文件。
下面就将刚分离后的【图书管理系统(BookDateBase)】数据库再附加到当前数据库实例中。可以执行下列语句进行数据库附加操作,附加时会加载该数据库所有的文件,包括主数据文件、辅助数据文件和事务日志文件。执行语句如下所示:
CREATE DATABASE BookDateBase
ON
(
NAME='BookDateBase_DATA',
FILENAME = 'E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\BookDateBase_DAT.mdf'
)
LOG ON
(
NAME=BookDateBase_LOG,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\BookDateBase_LOG.ldf'
)
FOR ATTACH
同样,附加数据库也可以使用图形界面窗口。具体操作步骤如下所示:ON
(
NAME='BookDateBase_DATA',
FILENAME = 'E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\BookDateBase_DAT.mdf'
)
LOG ON
(
NAME=BookDateBase_LOG,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\BookDateBase_LOG.ldf'
)
FOR ATTACH
(1)在【对象资源管理器】窗格中,右击【数据库】节点并选择【附加】命令。
(2)在打开的【附加数据库】对话框中单击【添加】按钮,从弹出的【定位数据库文件】对话框中选择要附加的数据库所在的位置,再依次单击【确定】按钮返回,如图2-18所示。
图2-18 【附加数据库】对话框
(3)回到【对象资源管理器】中,展开【数据库】节点,将看到【工资管理系统(BookDateBase)】数据库已经成功附加到了当前的实例数据库。
3.收缩数据库
如果数据库的设计尺寸过大,或者删除了数据库中的大量数据,这时数据库依然会耗费大量的磁盘资源。根据用户的实际需要,可以对数据库进行收缩。在Microsoft SQL Server 2008系统中,收缩数据库有以下3种方式。
l 使用AUTO_SHRINK数据库选项设置自动收缩数据库
将AUTO_SHRINK选项设置为ON后,数据库引擎将自动收缩具有可用空间的数据库。此选项可以使用ALTER DATABASE语句来进行设置。默认情况下,此选项设置为OFF。数据库引擎会定期检查每个数据库的空间使用情况。如果某个数据库的AUTO_SHRINK选项设置为ON时,则数据库引擎将自动减小数据库中的文件。设置AUTO_SHRINK选项的语法格式如下所示:
ALTER DATABASE database_name SET AUTO_SHRINK ON
l 使用DBCC SHRINKDATABASE命令收缩数据库使用这种方式,要求手动的来收缩数据库的大小,他是一种比自动收缩数据库更加灵活的收缩数据库的方式,可以对整个数据库进行收缩。DBCC SHRINKDATABASE命令的基本语法格式如下所示:
DBCC SHRINKDATABASE ('database_name',target_percent)
l 使用DBCC SHRINKDFILE命令收缩数据库文件此命令可以收缩指定的数据库文件,还可以将文件收缩至小于其初始创建的大小,并且重新设置当前的大小为其初始创建的大小。DBCC SHRINKDFILE命令的基本语法形式如下所示:
DBCC SHRINKDFILE ('file_name',target_size)
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式