三,数据库创建与管理

使用Transact-SQL命令创建数据库

CREATE DATABASE 数据库名        
[ON [PRIMARY]  [<数据库逻辑名> [,…n]  [,< 文件组名> [,…n]]  ]
[LOG ON {<LOG_NAME > [,…n]}]
[FOR RESTORE]
FILENAME='数据库物理文件名'
[,SIZE=size]
[,MAXSIZE={max_size|UNLIMITED}]
[,FILEGROWTH=growth_increment] )  [,…n]

参数说明:

(1)PRIMARY:该选项是一个关键字,指定主数据库文件,若没有给出这个关键字,则默认文件序列第一个是主数据文件。
(2)LOG ON:指明事务日志文件的明确定义。
数据库逻辑名称:这是在SQL Server系统中使用的名称,是数据库在SQL Server中的标识符。
(3)FILENAME:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAME的逻辑名称一一对应。
(4)SIZE:指定数据库的初始容量大小。
(5)MAXSIZE:指定操作系统文件可以增长到的最大尺寸。
(6)FILEGROWTH:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。

eg:

  create  database  教学练习      --数据库名称:教学练习
  on primary                     --下面主文件属于主文件组
  (name= 教学练习_data,         --对应数据库第一个逻辑文件名
  filename='d:\server\mssql\data\教学练习_data.mdf', --对应的主文件名和存储位置
  size=20,                         --初始分配的空间
  maxsize=150,                     --指出最大空间为150MB
  filegrowth=10%),                 --空间增长按10%增长
  FILEGROUP stugroup              --指定新的文件组,下面文件属于stugroup文件组
  (name= 教学练习_data1,        --对应数据库第二个逻辑文件名
  filename='d:\server\mssql\data\教学练习_data1.ndf', --对应的第一个次文件名和存储位置
  size=10,                      --初始分配的空间
  maxsize=100,                  --指出最大空间为100MB
  filegrowth=1),                --空间增长按1MB增长
  (name= 教学练习_data2,         --对应数据库第三个逻辑文件名
  filename='d:\server\mssql\data\教学练习_data2.ndf', --对应的第二个次文件名和存储位置
  size=10,                      --初始分配的空间
  maxsize=100,                  --指出最大空间为100MB
  filegrowth=1)                 --空间增长按1MB增长
  log on                           --日志文件
  (name= 教学练习_log,
  filename='d:\server\mssql\data\教学练习_log.ldf',
  size=10,
  maxsize=50,
  filegrowth=1)
输出结果为:
  CREATE DATABASE 进程正在磁盘 '教学练习_data' 上分配 20.00 MB 的空间。
  CREATE DATABASE 进程正在磁盘 '教学练习_data1' 上分配 10.00 MB 的空间。
  CREATE DATABASE 进程正在磁盘 '教学练习_data2' 上分配 10.00 MB 的空间。
  CREATE DATABASE 进程正在磁盘 '教学练习_log' 上分配 10.00 MB 的空间。

 

修改数据库

  数据库创建后,主数据文件和日志文件的物理地址就不允许被改变和删除。但数据文件和日志文件的大小、增长方式等属性可以改变,可以增加或删除次数据文件、次日志文件、文件组。

ALTER DATABASE 数据库名        
    { ADD FILE < filespec > [ ,...n ] [ TO FILEGROUP 文件组名 ]
    | ADD LOG FILE < filespec > [ ,...n ]
    | REMOVE FILE数据库逻辑名
    | ADD FILEGROUP文件组名
    | REMOVE FILEGROUP文件组名
    | MODIFY FILE < filespec >
    | MODIFY NAME =数据库名
    |MODIFY FILEGROUP 文件组名{NAME =新文件组名 }

参数说明:

(1)filespec参数定义如下:
   ( NAME =数据库逻辑名
    [ , NEWNAME =新数据库逻辑名]
    [ , FILENAME = '数据库物理文件名' ]
    [ , SIZE = size ]
    [ , MAXSIZE = { max_size | UNLIMITED } ]
    [ , FILEGROWTH = growth_increment ] )
(2)ADD FILE:指定要添加文件。
(3)TO FILEGROUP:指定要将指定文件添加到的文件组。
(4)ADD LOG FILE:指定要将日志文件添加到指定的数据库。
REMOVE FILE:从数据库系统表中删除文件描述并删除物理文件。只有在文件为空时才能删除。
(5)ADD FILEGROUP:指定要添加文件组。
(6)REMOVE FILEGROUP:从数据库中删除文件组并删除该文件组中的所有文件。只有在文件组为空时才能删除。
(7)MODIFY FILE:指定要更改给定的文件,更改选项包括 FILENAME、SIZE、FILEGROWTH和MAXSIZE。一次只能更改这些属性中的一种。必须在<filespec>中指定数据库逻辑名,以标识要更改的文件。如果指定了SIZE,那么新大小必须比文件当前大小要大。
(8)SIZE:指定数据库的初始容量大小。
(9)MAXSIZE:指定操作系统文件可以增长到的最大尺寸。
(10)FILEGROWTH:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。

eg:

  Alter database 教学练习     --修改教学练习数据库
  modify file(           --修改数据文件教学练习_data
    name='教学练习_data',
    maxsize=UNLIMITED
    )
  GO
  Alter database 教学练习
  add file (             --增加数据文件教学练习_add
    name='教学练习_add',
    Filename='d:\server\mssql\data\教学练习_add.mdf',
    Size=5,
    Filegrowth=0             --不允许自动增长
    )
  GO
  Alter database 教学练习
  Remove  file 教学练习_data2    --删除次数据文件教学练习_data2
  GO
  Alter database 教学练习
  Add log file (            --增加日志文件教学练习_addlog
    name='教学练习_addlog',Filename='d:\server\mssql\data\教学练习_addlog.ldf',
    Size=1,

    Maxsize=10,

    Filegrowth=1
    )
  GO

 

收缩数据库

  DBCC SHRINKDATABASE

    (database_name [,target_percent]

     [,{NOTRUNCATE} | TRUNCATEONLY]

    )

  参数说明:

  • target_percent:表示当数据库收缩后还剩下的自由空间(可用空间的百分比)。
  • NOTTRUNCATE:被释放的文件空间还保持在数据库文件的范围内,否则释放的空间被系统收回。
  • TRUNCATEONLY:将所有未使用的数据空间释放给操作系统使用。使用该关键字,将忽略target_percent限制。

 

查看数据库信息

  (1)查看数据库信息
  Sp_helpdb           --返回所有数据库信息
  Sp_helpdb 数据库名称     --返回当前数据库信息

  (2)查看数据空间使用状况
  Sp_spaceused          --返回当前数据库空间使用情况
  DBCC SQLPERF(LOGSPACE)  --返回所有数据库的日志文件使用情况

 

删除数据库

  Drop语句可以从SQL Server中一次删除一个或多个数据库。其语法如下:
  Drop database database_name[,…n]
  删除创建的数据库教学练习。
  语句如下:
  drop database 教学练习         -- 教学练习中所包含的文件都被删除

  

分离和附加数据库

 

脱机和联机数据库

 

 

posted @ 2020-06-04 21:59  爱十三的柒  阅读(739)  评论(0编辑  收藏  举报