SQLServer中数据库的创建

本文详细介绍SQL Server中数据库的创建过程,包括系统数据库和用户数据库的分类,数据库文件的组成,以及如何创建主数据文件、次要数据文件和日志文件。此外,还介绍了数据库的分离与附加操作,提供了具体的SQL语句示例。

1 数据库分类

数据库的类型分为:系统数据库用户数据库

在这里插入图片描述


2 用户数据库文件的组成

用户数据库物理文件的组成包括:数据库文件和日志文件。

数据库文件: .mdf(主数据文件)或.ndf(次要数据文件)。
日志文件: .ldf。

一个数据库必须且只能包含一个mdf,但可以包含多个ndf和ldf(至少一个)。


3 数据库的创建

3.1 创建一个主数据文件和一个日志文件

use master
go
--创建数据库
create database StudentManageDB
on primary
(
	name='StudentManageDB_data',--数据库文件的逻辑名
	filename='D:\DB\StudentManageDB_data.mdf',--数据库物理文件名(绝对路径)
	size=10MB,--数据库文件初始大小
	filegrowth=5MB --数据文件增长量	
)
--创建日志文件
log on
(
	name='StudentManageDB_log',
	filename='D:\DB\StudentManageDB_log.ldf',
	size=5MB,
	filegrowth=2MB
)
go

go是批处理的标志,表示SQL Server将这些SQL语句编译为一个执行单元,提高执行效率。一般是将一些逻辑相关的业务操作语句放在同一批中,这完全由业务需求和代码编写者决定。
go是SQLServer的批处理命令,只有代码编辑器才能识别并处理,编辑其他应用程序就不能使用该命令,由于每个批处理之间是独立的,因此,在一个批处理出现错误时,并不会影响其他批处理中SQL代码的运行。

3.2 创建多个数据文件和日志文件


use master
go
--判断当前数据库是否存在
if exists(select * from sysdatabases where name='StudentManageDB' )
drop database StudentManageDB
go
--创建数据库
create database StudentManageDB
on primary
(
	name='StudentManageDB_data',--数据库文件的逻辑名
	filename='D:\DB\StudentManageDB_data.mdf',--数据库物理文件名(绝对路径)
	size=10MB,--数据库文件初始大小
	filegrowth=5MB --数据文件增长量	
),
(
	name='StudentManageDB_data1',
	filename='D:\DB\StudentManageDB_data1.ndf',
	size=10MB,
	filegrowth=5MB	
)
--创建日志文件
log on
(
	name='StudentManageDB_log',
	filename='D:\DB\StudentManageDB_log.ldf',
	size=5MB,
	filegrowth=2MB
),
(
	name='StudentManageDB_log1',
	filename='D:\DB\StudentManageDB_log1.ldf',
	size=5MB,
	filegrowth=2MB
)
go

drop删除数据库后将不可恢复,使用要谨慎!

创建多个数据库的另一个示例:

--首先要指向操作的数据库

use master
go
if exists(select * from sysdatabases where name='CourseManageDB')
drop database CourseManageDB
go
--创建数据库
create database CourseManageDB
on primary  
(
         --数据库的逻辑文件名(就是系统用的,必须唯一)
		 name='CourseManageDB_data1',
		 --数据库物理文件名(绝对路径)
		 filename='D:\DB\CourseManageDB_data1.mdf',--主数据文件名
		 --数据库初始文件大小(一定要根据你的实际生产需求来定)
		 size=20MB,
		 --数据文件增值量(也要参考文件本身大小)
		 filegrowth=1MB
)
,
(     
		 name='CourseManageDB_data2',	
		 filename='D:\DB\CourseManageDB_data2.ndf',--次要数据文件名	
		 size=20MB,
		 filegrowth=1MB
)

log on
(
         name='CourseManageDB_log',	
		 filename='D:\DB\CourseManageDB_log.ldf',--日志文件名	
		 size=10MB,
		 filegrowth=1MB
)
go

4 分离与附加数据库

4.1 分离数据库

在早期版本的数据库系统中,当数据库服务运行中通常情况下无法直接移动和复制数据库文件。所谓的分离数据库就是将正在使用的数据库文件解除服务的限制。

语法如下:

exec sp_detach_db @dbname = 数据库名称

4.2 附件数据库

附加数据库就是将指定位置的数据库文件加入到数据库文件中并运行。分离出去的数据库只有附加后,用户才能通过DBMS操作数据。

语法如下:

exec sp_attach_db @dbname=数据库名称,
@filename1=数据库主文件物理文件路径,
@filename2=数据库日志文件物理文件路径

示例代码:

--分离数据库
exec sp_detach_db @dbname=StudentManageDB
--附加数据库方法1
exec sp_attach_db @dbname=StudentManageDB,
@filename1='E:\StudentManageDB_data.mdf',
@filename2='E:\StudentManageDB_log.ldf'

--附加数据库方法2
exec sp_attach_db @dbname=StudentManageDB,
'E:\StudentManageDB_data.mdf',
'E:\StudentManageDB_log.ldf'

参考资料:

  1. .NET/C#工控上位机VIP系统学习班【喜科堂互联教育】
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值