使用SQL命令创建与维护数据库

创建数据库

create database DB_Book   -- 数据库名,在现有连接中不可重复
on
primary      -- 主文件
(
	name = 'DB_Book',     -- 数据文件逻辑名
	filename = 'D:\A_file\数据库\图书管理\DB_Book.mdf',   -- 文件名及位置
	size = 1mb,              -- 初始大小
	maxSize = 10mb,          -- 最大
	filegrowth = 10%         -- 增长方式
)
log on      -- 日志文件
(
	name = 'DB_Book_log',
	filename = 'D:\A_file\数据库\图书管理\DB_Book.ldf',
	size = 1mb,
	maxSize = 10mb,
	filegrowth = 2mb
)

注意事项:
1、程序执行前应先判断该数据库是否已经存在
2、注释为 –
3、程序不区分大小写
4、写代码时,所有英文字母、数字、标点符号、空格、注释语句都要在英文状态下写,会减少很多错误

例一:

创建一个图书管理数据库,名字为DB_Book
1、主数据文件名为DB_Book,主文件组的主数据文件存储路径及文件名为 ”D:\A_file\数据库\图书管理\DB_Book.mdf“ ,数据文件初始大小设置为2mb,文件最大空间仅受磁盘限制,增长方式按照10%增长。
2、日志文件逻辑名为DB_Book_log,日志文件存储路径及文件名为 “D:\A_file\数据库\图书管理\DB_Book.ldf”,日志文件初始大小为1mb,文件最大空间受磁盘限制,数据文件按空间增长方式为每次2mb增长。
3、在主文件组下生成辅助数据文件,辅助数据文件名为DB_Book01,辅助文件的存储路径及文件名为“D:\A_file\数据库\图书管理\DB_Book01.ndf”,数据文件初始大小为2mb,文件最大空间仅受磁盘限制,增长方式按照10%增长。
4、自定义文件组Book,在Book下生成辅助数据文件,辅助数据文件逻辑名为DB_Book02,辅助文件的存储路径及文件名为“D:\A_file\数据库\图书管理\DB_Book02.ndf”,数据文件初始大小为2mb,文件最大空间仅受磁盘限制,增长方式按照10%增长。
代码实现如下:

create database DB_Book   -- 数据库名,在现有连接中不可重复
on
primary      -- 主文件
(
	name = 'DB_Book',     -- 数据文件逻辑名
	filename = 'D:\A_file\数据库\图书管理\DB_Book.mdf',   -- 文件名及位置
	size = 1mb,              -- 初始大小
	maxSize = unlimited,          -- 最大
	filegrowth = 10%         -- 增长方式
),
-- 在主文件组下生成辅助数据文件'DB_Book01
(
	name = 'DB_Book01',
	filename = 'D:\A_file\数据库\图书管理\DB_Book01.ndf',
	size = 2mb,              -- 初始大小
	maxSize = unlimited,          -- 最大
	filegrowth = 10%         -- 增长方式
),
-- 自定义文件组Book,在Book下生成辅助数据文件
filegroup Book
(
	name = 'DB_Book02',
	filename = 'D:\A_file\数据库\图书管理\DB_Book02.ndf',
	size = 2mb,              -- 初始大小
	maxSize = unlimited,          -- 最大
	filegrowth = 10%         -- 增长方式
)
log on      -- 日志文件
(
	name = 'DB_Book_log',
	filename = 'D:\A_file\数据库\图书管理\DB_Book.ldf',
	size = 1mb,
	maxSize = unlimited,
	filegrowth = 2mb
)

维护数据库

1、查看数据库信息

最常用的方法是调用系统存储过程sp_helpdb
语法格式:

execute sp_helpdb 数据库名
2、增加数据库文件的初始化大小

不能比之前小于等于,只能增大

alter database 数据库名
modify file (name =  文件逻辑名,size = 文件大小)
3、调整文件自动增长大小
alter database 数据库名
modify file (name =  文件逻辑名,filegrowth = 文件增长量)
4、数据库的重命名
execute sp_renamedb 原数据库名,新名
5、数据库的删除
drop database 数据库名

首先要脱机,会删除对应文件
不脱机的话,生成的的文件不会删除,只是删除了连接
请添加图片描述

附加与分离数据库

1、数据库的分离

通过系统存储过程sp_detach_db 实现

execute sp_detach_db 数据库名   -- 不会删除相关联的全文索引文件
2、数据库的附加

SQL2005后版本不支持sp_attach_db附加,可使用create database命令实现数据库的附加

create database test    -- 数据库名
on
(
	name = 'test',   -- 主数据文件逻辑名称
	filename = 'D:\A_file\数据库\图书管理\test.mdf'   -- 主数据文件物理名称
)
for attach

备份与恢复数据库

1、数据库的备份

一、先创建一个备份设备,再将数据库备份到备份设备上

sp_addumpdevice '设备类型','逻辑名称','物理名称'

-- 设备名称:备份设备的类型,如果是硬盘,为disk
-- 逻辑名称:备份设备的逻辑名称
-- 物理名称:备份设备的物理名称,必须包括完整的路径

二、直接将数据库备份到物理设备上

backup database 数据库名 to 设备名称(逻辑名称或物理名称)
[with [name=备份集名称][,init|noinit]]

-- 备份设备:备份设备的逻辑名称或物理名称
-- 备份集名称:指生成的备份集的名称
-- init:表示新备份的数据会覆盖备份设备上原有的备份数据
-- noinit: 追加到原有数据的后面

三、事务日志备份

backup log 数据库名 to备份设备(逻辑名称或物理名称)
[with [name=备份集名称][,init|noinit]]
数据库的恢复
restore database 数据库名 from 备份设备
[with [file = n] [,norecovery|recovery] [,replace]]

-- file = n:表示从逻辑备份设备上第几个备份中恢复
-- recovery:在数据库恢复完成后,SQL回滚被恢复的数据库中所有未完成的事务,以保证数据库的完整性和一致性。recovery用于最后一个备份的还原。
-- norecovery:在数据库恢复完成后,SQL不会回滚被恢复的数据库中所有未完成的事务,恢复后的数据库可能不能使用,所以还需要recovery再一次还原,以保证数据库的完整性和一致性。
-- replace:表示要创建一个新的数据库,并将备份还原到新的数据库。如果服务器上存在一个同名的数据库,则原来的数据库会被删除

例;

从备份设备DatBak中替代还原数据库Student_mg

restore database Student_mg from DatBak with replace

恢复事务日志:

restore log 数据库名 from 备份设备
[with [file = n] [,norecovery|recovery]]

恢复指定文件:

restore database 数据库名
file = 文件名|filegroup = 文件组名 from 备份设备
[with partial [,file = n] [,norecovery] [,replace]] 

恢复文件或文件组:

restore database 数据库名
file = 文件名|filegroup = 文件组名 from 备份设备
[with [,file = n] [,norecovery] [,replace]] 
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值