一、创建数据库
数据库在磁盘上是以文件为单位存储的。由数据文件和事务日志文件组成,一个数据库至少应该包含一个数据文件和事务日志文件。
SQL Server数据库文件
① 主要数据文件(primary file):用来存储数据库的数据和数据库的启动信息,其默认扩展名为.mdf。主要数据文件是SQL Server 数据库的主体,它是每个数据库不可缺少的部分,而且每个数据库只能有一个主要数据文件。
② 次要数据文件(secondaryfile):用来存储主要数据文件没存储的其他数据,其默认扩展名为.ndf。使用次要数据文件可以扩展存储空间。
③ 事务日志文件(transactionlog):用来记录数据库更新情况的文件,其默认扩展名为.ldf。每个数据库至少要有一个事务日志文件。
SQL Server的数据库文件组
文件组(FileGroup)是将多个数据库文件集合起来形成的一个整体。在SQL Server中允许对文件进行分组,以便于管理数据的分配或放置。
文件组分为主文件组(Primary File Group)和次文件组(Secondary File Group)。
文件和文件组的设计规则:
① 文件或文件组不能由一个以上的数据库使用。例如,文件 stums.mdf 和stums.ndf 包含stums数据库中的数据和对象,任何其它数据库都不能使用这两个文件;
② 一个文件只能存在于一个文件组中;
③ 数据和事务日志信息不能属于同一文件或文件组;
④ 事务日志文件不能属于任何文件组。
代码范例:
create database stunew
on
(
name=stunew_data,//逻辑名
filename=’d:\SQL Server\stunew_data.mdf’,//保存在磁盘中的文件名
size=1mb,
maxsize=20mb,
filegrowth=10%
)
(
name=stunew_data1,
filename=’d:\SQL SERVER\stunew_data1.ndf’,
size=10mb,
maxsize=20mb,
filegrowth=10%
)
log on
(
name=stunew_log,
filename=’d:\SQL SERVER\stunew_log.ldf’,
size=10mb,
maxsize=20mb,
filegrowth=10%
)
_____________________________________________________________________________________________________________________________
使用系统存储过程查看数据库信息
sp_helpdb:查看有关数据库和数据库参数信息。
sp_spaceused:查看数据库空间信息。
sp_dboption:查看数据库选项信息。
代码如下:
EXEC sp_helpdb ‘STUMS’
EXEC sp_spaceused
EXEC sp_dboption ‘STUMS’
__________________________________________________________________________________________________________________________________
使用ALTER DATABASE语句修改数据库
ALTER DATABASE <数据库名>
{ ADD FILE <数据文件名> [,…n] [ TO FILEGROUP <文件组名> ]
| ADD LOG FILE <日志文件名> [,…n ]
| REMOVE FILE <逻辑文件名>
| MODIFY FILE <数据文件>
| ADD FILEGROUP <文件组名>
| REMOVE FILEGROUP <文件组名>
| MODIFY FILEGROUP <文件组名> { 文件组属性| NAME=<新文件组名>}
}
代码范例:
ALTER DATABASE STUMS
ADD FILE
(NAME=STUMS_data1,
FILENAME=’D:\SQL\STUMS_data1.ndf’,
SIZE=5MB,
MAXSIZE=100MB,
FILEGROWTH=10% )
GO
ALTER DATABASE STUMS
MODIFY FILE
(NAME=STUMS,
SIZE=35MB,
MAXSIZE=100MB,
FILEGROWTH=5MB)
GO
ALTER DATABASE STUMS
REMOVE FILE STUMS_data1
GO
ALTER DATABASE STUMS
ADD LOG FILE
(NAME=STUMS_log2,
FILENAME=’D:\SQL\STUMS_log2.ldf’,
SIZE=3MB)
GO
____________________________________________________________________________________________________
缩减数据库容量
1.自动收缩数据库容量
使用ALTERDATABASE语句可以实现用户数据库容量的自动收缩。其语法格式如下:
ALTER DATABASE <数据库名>
SET AUTO_SHRINK ON/OFF
参数说明:
ON:将数据库设为自动收缩。
OFF:将数据库设为不自动收缩。
2.手动收缩数据库容量
DBCC SHRINKDATABASE(database_name[,new_size
[,’MASTEROVERRIDE’]])
其中,
database_name:是要缩减容量的数据库名称。
new_size:指明要缩减数据库容量至多少,如果不指定,将缩到最小容量。
MASTEROVERRIDE:是指缩减master数据库。
使用权限默认为dbo。
____________________________________________________________________________________________________
使用sp_renamedb重命名数据库
EXECsp_renamedb oldname,newname
其中,EXEC为执行命令语句;sp_renamedb为系统存储过程;oldname为更改前的数据库名;newname为更改后的数据库名。
代码示例:EXEC sp_renamedb ‘STUNEW’,’STU_123‘
____________________________________________________________________________________________________
删除数据库
1)使用T-SQL语句删除数据库
(1)用DROP语句删除数据库
DROPDATABASE database_name[,database_name…]
其中,
DROPDATABASE:表示删除数据库;
database_name:为要删除的数据库名称。
代码示例:
DROP DATABASRE stums_1
(2)用sp_dbremove系统存储过程删除数据库
EXEC sp_dbremove database_name
其中,database_name为要删除的数据库名称。
____________________________________________________________________________________________________
分离数据库
分离数据库将从SQLServer 移除数据库,但是保持在组成该数据库的数据和事务日志文件中的数据完好无损
exec sp_detach_db STUMS
附加数据库
附加数据库的工作是分离数据库的逆操作,通过附加数据库,可以将分离出去的数据库重新加入SQLSever服务器。
CREATE DATABASEstudentsys
ON( FILENAME=’D:\sql数据库\JX.mdf’)
LOG ON( FILENAME=’D:\sql数据库\JX.ldf’)
FOR ATTACH