欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL Server数据库之数据库的创建、修改、查看、删除及分离与附加的方法讲解

程序员文章站 2024-01-26 11:12:28
一、创建数据库 数据库在磁盘上是以文件为单位存储的。由数据文件和事务日志文件组成,一个数据库至少应该包含一个数据文件和事务日志文件。      ...

一、创建数据库

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

         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