一、创建数据库

数据库在磁盘上是以文件为单位存储的。由数据文件和事务日志文件组成,一个数据库至少应该包含一个数据文件和事务日志文件。


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
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
ADD FILE
    (NAME=STUMS_data1, 
    FILENAME='D:\SQL\STUMS_data1.ndf',
    SIZE=5MB,
    MAXSIZE=100MB,
    FILEGROWTH=10% )
 
    GO  
 
ALTER DATABASE
MODIFY FILE
(NAME=STUMS, 
 SIZE=35MB,
 MAXSIZE=100MB,
 FILEGROWTH=5MB)
GO
 
ALTER DATABASE STUMS
REMOVE FILE
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

附加数据库


       

CREATE DATABASEstudentsys

ON( FILENAME='D:\sql数据库\JX.mdf’)

LOG ON( FILENAME='D:\sql数据库\JX.ldf')

FOR ATTACH