《数据库基础及实践技术——SQL Server 2008》一3.2 创建数据库

3.2 创建数据库

利用SQL Server Management Studio(SSMS)工具,可以用图形化的方法创建数据库,也可以通过Transact-SQL语句创建数据库。下面分别介绍这两种方法。

3.2.1 用图形化方法创建数据库

在SSMS工具中用图形化方法创建数据库的步骤为:
1)启动SSMS,并以数据库管理员身份连接到SQL Server数据库服务器的一个实例上。
2)在SSMS的“对象资源管理器”中,在SQL Server实例下的“数据库”节点上右击鼠标,或者在某个用户数据库上右击鼠标,在弹出的快捷菜单中选择“新建数据库”命令(如图3-2所示),弹出如图3-3所示的“新建数据库”窗口。

3)在如图3-3所示的窗口中,在“数据库名称”文本框中输入数据库名,如本例的Students。
注意,在命名数据库时必须遵守SQL Server 2008的标识符命名规则,具体为:
名字的长度为1~128个字符。
名字的第一个字符必须是字母或“_”、“@”、“#”中的任何一个字符。
在SQL Server 2008中文版中,可以直接用中文命名。
当输入完数据库名后,在下面的“数据库文件”的逻辑名称中就会有相应的名称,这只是用于辅助用户命名逻辑文件名,用户可以对这些名字进行修改。
4)“数据库名称”下面是“所有者”,数据库的所有者可以是任何具有创建数据库权限的登录账户,数据库所有者对其拥有的数据库具有全部的操作权限。默认时,数据库的所有者是“<默认值>”,表示该数据库的所有者是当前登录到SQL Server的账户。关于登录账户及数据库安全性将在第12章详细介绍。
5)在如图3-3所示的“数据库文件”下面的网格中,可以定义数据库包含的数据文件和日志文件。
在“逻辑名称”处可以指定文件的逻辑文件名。默认情况下,主要数据文件的逻辑文件名同数据库名,第一个日志文件的逻辑文件名为:“数据库名”+“_log”。
“文件类型”列显示了该文件的类型,“行数据”表示该文件是数据文件;“日志”表示该文件是日志文件。用户新建文件时,可通过此列表框指定文件的类型。由于一个数据库必须包含一个主要数据文件和一个日志文件,因此,在创建数据库时,最开始的两个文件的类型是不能修改的。
“文件组”列显示了数据文件所在的文件组(日志文件没有文件组概念),默认情况下,所有的数据文件都属于PRIMARY主要文件组。主文件组是系统预定义好的,每个数据库都必须有一个主文件组,而且主要数据文件必须存放在主文件组中。用户可以根据自己的需要添加辅助文件组,辅助文件组用于组织次要数据文件,目的是为了提高数据访问性能。文件组中的文件可以是位于不同磁盘空间上的文件。当然,为了简单起见,也可以将全部数据文件都放置在PRIMARY文件组上。
在“初始大小”列可以指定文件创建后的初始大小,默认情况下,主要数据文件的初始大小是3MB,日志文件的初始大小是1MB。这里假设将Students_log日志文件的初始大小设置为2MB,主数据文件初始大小不变。
在“自动增长”列可以指定文件的增长方式。默认情况下,主要数据文件是每次增加1MB,最大大小没有限制;日志文件是每次增加10%,最大大小也没有限制。单击某个文件对应的图标按钮,可以更改文件的增长方式和最大大小限制。图3-4所示为单击主要数据文件Students对应的“自动增长”图标按钮后弹出的对话框。

在图3-4中,若取消选中“启用自动增长”复选框,表示文件不自动增长,文件能够存放的数据量以文件的初始空间大小为限。若选中“启用自动增长”复选框,则可进一步设置每次文件增加的大小以及文件的最大大小限制。设置文件自动增长的好处是可以不必随时担心数据库的空间维护。
文件增长:可以按MB或百分比增长。如果是按百分比增长,则增量大小为发生增长时文件大小的指定百分比。
最大文件大小有下列两种方式:
■ 限制文件增长:指定文件可增长到的最大空间。
■ 不限制文件增长:以磁盘空间容量为限制,在有磁盘空间的情况下,可以一直增长。选择这个选项是有风险的,如果因为某种原因造成数据恶性增长,则会将整个磁盘空间占满。清理一块被彻底占满的磁盘空间是非常麻烦的事情。
这里假设将students_log日志文件设置为限制增长,且最大大小为6MB。
注意:在实际生产环境中,经常选择“限制文件增长”,这样可以防止耗尽磁盘空间,也可以避免系统无法继续运行。
“路径”部分显示了文件的物理存储位置,默认的存储位置是SQL Server 2008安装位置:Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data文件夹。单击此项对应的图标按钮,可以更改文件的存放位置。假设这里将主要数据文件和日志文件均放置在F:\Data文件夹下(设此文件夹已建好)。
在“文件名”部分可以指定文件的物理文件名,也可以不指定文件名,而采用系统自动赋予的文件名。系统自动创建的物理文件名为:逻辑文件名+文件类型的扩展名。例如,如果是主要数据文件,且逻辑名为Students,则物理文件名为Students.mdf;如果是次要数据文件,且逻辑文件名为Students_Data1,则其物理文件名为Students_Data1.ndf。
6)单击图3-3中的“添加”按钮,可以增加该数据库的次要数据文件和日志文件。图3-5所示为单击“添加”按钮后的情形。

7)我们这里添加一个次要数据文件。在如图3-5所示的窗口中,对该新文件进行如下设置。
在“逻辑名称”部分输入:Students_data1。
在“文件类型”下拉列表框中选择“行数据”。
单击“文件组”对应的列表框,其中有两个选项:“PRIMARY”和“新文件组”(如图3-6所示)。选择“PRIMARY”,表示将数据文件放置在主文件组中;如果选择“<新文件组>”,则弹出如图3-7所示的窗口,在此窗口中可以建立新的文件组。若要创建新文件组,可在“名称”文本框中输入新文件组的名字(这里输入的是NewFileGroup)。在选项部分,选中“只读”复选框表示该文件组中的文件是只读的,即不能对标记为只读的文件组进行修改操作。对于不允许修改的表(如记录历史数据的表),可以将它们置于只读文件组中,这样可以防止意外的更新。选中“默认值”复选框表示将该文件组作为该数据库的默认文件组。
我们这里不选中任何选项,单击“确定”按钮完成对新文件组的创建并关闭此对话框,回到如图3-5所示的窗口。
在如图3-5所示窗口的新建文件Students_Data1对应的“文件组”列表框中,现在已经有了新建立的NewFileGroup文件组,如图3-8所示,选中该文件组。
将初始大小改为:5。
单击“自动增长”对应的图标按钮,设置文件自动增长,每次增加1MB,最多增加到10MB。
将“路径”改为:D:\Data。

设置好后的形式如图3-9所示。
8)选中某个文件后,单击图3-5中的“删除”按钮,可删除选中的文件。这里不进行任何删除。
9)单击“确定”按钮,完成数据库的创建。
创建成功后,在SSMS的“对象资源管理器”中,通过刷新对象资源管理器中的“数据库”,可以看到新建立的数据库。

3.2.2 用T-SQL语句创建数据库

创建数据库的T-SQL语句为:CREATE DATABASE,此语句的简化语法格式如下。

CREATE DATABASE database_name
    [ ON
        [ PRIMARY ] [ <filespec> [ ,...n ]
        [ , <filegroup> [ ,...n ] ]
    [ LOG ON { <filespec> [ ,...n ] } ]
    ]
]

<filespec> ::=
{
(   NAME = logical_file_name ,
    FILENAME = { 'os_file_name' | 'filestream_path' }
    [ , SIZE = size [ KB | MB | GB | TB ] ]
    [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
    [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
) [ ,...n ]
}

<filegroup> ::=
{
FILEGROUP filegroup_name [ DEFAULT ]
     <filespec> [ ,...n ]
}

上述语法格式中,各参数含义介绍如下。
database_name:新数据库的名称。数据库名在SQL Server实例中必须是唯一的。如果在创建数据库时未指定日志文件的逻辑名,则SQL Server用database_name后加“_log”作为日志文件的逻辑名和物理名。这种情况下将限制database_name不超过123个字符,从而使生成的逻辑文件名不会超过128个字符。如果未指定数据文件名,则SQL Server用database_name作为数据文件的逻辑名和物理名。
ON:指定用来存储数据库中数据部分的磁盘文件(数据文件),其后是用逗号分隔的、用以定义数据文件的项列表。
PRIMARY:指定关联数据文件的主文件组。带有PRIMARY的部分定义的第一个文件将成为主要数据文件。如果没有指定PRIMARY,则CREATE DATABASE语句中列出的第一个文件将成为主要数据文件。
LOG ON:指定用来存储数据库中日志部分的磁盘文件(日志文件),其后面跟以逗号分隔的、用以定义日志文件的项列表。如果没有指定LOG ON,系统将自动创建一个日志文件,其大小为该数据库的所有数据文件大小总和的25%或512 KB,取两者之中的较大者。
:定义文件的属性,其中各参数含义如下。
■ NAME=logical_file_name:指定文件的逻辑名称。指定FILENAME时,需要使用NAME的值。在一个数据库中逻辑名必须唯一,而且必须符合标识符规则。名称可以是字符或 Unicode 常量,也可以是常规标识符或分隔标识符。
■ FILENAME= 'os_file_name':指定操作系统(物理)文件名称。'os_file_name'是创建文件时由操作系统使用的路径和文件名。
注意:在执行CREATE DATABASE语句前,指定的路径必须已经存在。不应将数据文件放在压缩文件系统中,除非这些文件是只读的次要数据文件或数据库是只读的。日志文件一定不要放在压缩文件系统中。
■ SIZE=size:指定文件的初始大小。如果没有为主要数据文件提供size,则数据库引擎将使用model 数据库中的主要数据文件的大小。如果指定了次要数据文件或日志文件,但未指定该文件的size,则数据库引擎将以1MB作为该文件的大小。为主要数据文件指定的大小应不小于model数据库的主要数据文件的大小。可以使用千字节(KB)、兆字节(MB)、千兆字节(GB)或兆兆字节(TB)后缀。默认为MB。size是一个整数值,不能包含小数位。
■ MAXSIZE=max_size:指定文件可增大到的最大大小。可以使用KB、MB、GB和TB后缀。默认为MB。max_size为一个整数值,不能包含小数位。如果未指定max_size,则表示文件大小无限制,文件将一直增大,直至磁盘空间满。
■ UNLIMITED:指定文件的增长无限制。在SQL Server中,指定为不限制增长的日志文件的最大大小为2TB,而数据文件的最大大小为16TB。
■ FILEGROWTH=growth_increment:指定文件的自动增量。FILEGROWTH的大小不能超过 MAXSIZE的大小。growth_increment为每次需要新空间时为文件添加的空间量。该值可以使用MB、KB、GB、TB或百分比(%)为单位指定。如果未在数字后面指定单位,则默认为MB。如果指定了“%”,则增量大小为发生增长时文件大小的指定百分比。指定的大小舍入为最接近的64KB的倍数。FILEGROWTH=0表明将文件自动增长设置为关闭,即不允许自动增加空间。如果未指定FILEGROWTH,则数据文件的默认增长值为1MB,日志文件的默认增长比例为10%,并且最小值为64KB。
:控制文件组属性,其中各参数含义如下。
■ FILEGROUP filegroup_name:文件组的逻辑名称。filegroup_name在数据库中必须唯一,而且不能是系统提供的名称PRIMARY和PRIMARY_LOG,名称必须符合标识符规则。
■ DEFAULT:指定该文件组为数据库中的默认文件组。
在使用Transact-SQL语句创建数据库时,最简单的情况是可以省略所有的参数,只提供一个数据库名即可,这时系统会按各参数的默认值创建数据库。
下面举例说明如何用Transact-SQL语句创建数据库。
【例3-1】创建一个全部采用默认设置的数据库,数据库名为mytest。
如果创建数据库时全部采用默认设置,则该数据库的主要数据文件的大小为model数据库主要数据文件的大小,日志文件将被设置为下列值中的较大者:512KB或主要数据文件大小的25%。
CREATE DATABASE mytest;
【例3-2】创建包含一个数据文件和一个日志文件的数据库。创建一个名为RShDB的数据库,该数据库由主要数据文件和一个日志文件组成。主要数据文件的逻辑文件名为“RShDB_Data”,物理文件名为“RShDB_Data.mdf”,存放在“D:\RShDB_Data”文件夹下,初始大小为10MB,最大大小为30MB,自动增长时的递增量为5MB。日志文件的逻辑文件名为“RShDB_log”,物理文件名为“RShDB_log.ldf”,也存放在“D:\RShDB_Data”文件夹下,初始大小为3MB,最大大小为12MB,自动增长时的递增量为2MB。
创建此数据库的SQL语句为(假设所需的文件夹均已建立好):

CREATE DATABASE RShDB
ON
 ( NAME = RShDB_Data,
   FILENAME = 'D:\RShDB_Data\RShDB_Data.mdf',
   SIZE = 10,
   MAXSIZE = 30,
   FILEGROWTH = 5 )
LOG ON
( NAME = RShDB_log,
  FILENAME = 'D:\RShDB_Data\RShDB_log.ldf',
  SIZE = 3,
  MAXSIZE = 12,
  FILEGROWTH = 2 )

【例3-3】创建包含多个数据文件和多个日志文件的数据库。创建一个名为“学生数据库”的数据库,该数据库包含两个数据文件和两个日志文件,每个文件的定义如下。
主要数据文件逻辑名为student_data1,存放在PRIMARY文件组上,初始大小为5MB,每次增加1MB,最大大小无限制,物理存储位置为F:\Data文件夹,物理文件名为student_data1.mdf。
次要数据文件的逻辑名为student_data2,初始大小为8MB,自动增长,每次增加2MB,最多增加到20MB,物理存储位置为D:\Data文件夹,物理文件名为student_data2.ndf。
日志文件1的逻辑名为student_log1,初始大小为2MB,每次增加10%,最多增加到6MB,物理存储位置为E:\Log文件夹,物理文件名为student_log1.ldf。
日志文件2的逻辑名为student_log2,初始大小为3MB,每次增加1MB,最多增加到8MB,物理存储位置为G:\Log文件夹,物理文件名为student_log2.ldf。
创建此数据库的SQL语句为(假设所需的文件夹均已建立好):
CREATE DATABASE 学生数据库

ON PRIMARY
  ( NAME = students_data1,
    FILENAME = 'F:\Data\student_data1.mdf',
    SIZE = 5MB,
    MAXSIZE = UNLIMITED),
  ( NAME = students_data2,
    FILENAME = 'D:\Data\student_data2.ndf',
    SIZE = 8MB,
    MAXSIZE = 20MB,
    FILEGROWTH = 2MB )
LOG ON
  ( NAME = students_log1,
    FILENAME = 'E:\Log\student_log1.ldf',
    SIZE = 2MB,
    MAXSIZE = 6MB,
    FILEGROWTH = 10%),
  ( NAME = students_log2,
    FILENAME = 'G:\Log\student_log2.ldf',
    SIZE = 3MB,
    MAXSIZE = 8MB,
    FILEGROWTH = 1MB )

【例3-4】创建具有文件组的数据库。创建一个名为Sales的数据库,该数据库除了主文件组PRIMARY外,还包括SalesGroup1和SalesGroup2两个用户创建的文件组。
主文件组包含Spri1_dat和Spri2_dat数据文件,这两个文件的FILEGROWTH均为15%。
SalesGroup1文件组包含SGrp1Fi1_dat和SGrp1Fi2_dat数据文件,这两个文件的FILEGROWTH均为5MB。
SalesGroup2文件组包含SGrp2Fi1_dat和SGrp2Fi2_dat文件,这两个文件的FILEGROWTH也都为5MB。
为了简单起见,假设这些文件均存放在D:\Sales文件夹下,所有数据文件的初始大小都是10MB,最大大小都是50MB。
该数据库只包含一个日志文件Sales_log,该文件也存放在D:\Sales文件夹下,初始大小为5MB,最大大小为25MB,每次增加5MB。
创建此数据库的SQL语句为(假设D:\Sales文件夹已建立好):

CREATE DATABASE Sales
ON PRIMARY
( NAME = SPri1_dat,
  FILENAME = 'D:\Sales\Spri1_dat.mdf',
  SIZE = 10,
  MAXSIZE = 50,
  FILEGROWTH = 15%),
( NAME = SPri2_dat,
  FILENAME = 'D:\Sales\Spri2_dat.ndf',
  SIZE = 10,
  MAXSIZE = 50,
  FILEGROWTH = 15% ),
  FILEGROUP SalesGroup1
( NAME = SGrp1Fi1_dat,
  FILENAME = 'D:\Sales\SGrp1Fi1_dat.ndf',
  SIZE = 10,
  MAXSIZE = 50,
  FILEGROWTH = 5 ),
( NAME = SGrp1Fi2_dat,
  FILENAME = 'D:\Sales\SGrp1Fi2_dat.ndf',
  SIZE = 10,
  MAXSIZE = 50,
  FILEGROWTH = 5 ),
  FILEGROUP SalesGroup2
( NAME = SGrp2Fi1_dat,
  FILENAME = 'D:\Sales\SGrp2Fi1_dat.ndf',
  SIZE = 10,
  MAXSIZE = 50,
  FILEGROWTH = 5 ),
( NAME = SGrp2Fi2_dat,
  FILENAME = 'D:\Sales\SGrp2Fi2_dat.ndf',
  SIZE = 10,
  MAXSIZE = 50,
  FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
  FILENAME = 'D:\Sales\Sales_log.ldf',
  SIZE = 5MB,
  MAXSIZE = 25MB,
  FILEGROWTH = 5MB )
时间: 2024-11-02 06:21:22

《数据库基础及实践技术——SQL Server 2008》一3.2 创建数据库的相关文章

《数据库基础及实践技术——SQL Server 2008》一导读

前 言 数据库技术起源于20世纪60年代末,经过几十年的迅速发展,目前已经建立起一套较完整的理论体系,产生了一大批商用软件产品.随着数据库技术应用领域的不断扩大,对数据库的应用已深入到国民经济和社会生活的各个方面.因此,作为当代的大学生,学习和掌握数据库知识都是非常必要的. 为了提高计算机专业本科生对数据库知识的实践能力,很多高校的计算机专业对数据库的授课做了一些调整,相当一部分学校将数据库的教学安排在两个学期完成,或者分为两个阶段来完成.第一个阶段基本是以讲授数据库基本原理为主,第二个阶段以讲

《数据库基础及实践技术——SQL Server 2008》一3.1 SQL Server数据库概述

3.1 SQL Server数据库概述 SQL Server 2008中的数据库由包含数据的表集合以及其他对象(如视图.索引.存储过程等)组成,目的是为执行与数据有关的活动提供支持.SQL Server支持在一个实例中创建多个数据库,每个数据库在物理和逻辑上都是独立的,相互之间没有影响.每个数据库存储相关的数据.例如,可以用一个数据库存储商品及销售信息,用另一个数据库存储人事信息. 从数据库的应用和管理角度来看,SQL Server将数据库分为两大类:系统数据库和用户数据库.系统数据库是SQL

《数据库基础及实践技术——SQL Server 2008》一2.5 SQL Server Management Studio工具

2.5 SQL Server Management Studio工具 SQL Server Management Studio是SQL Server 2008中最重要的管理工具之一,使用这个工具既可以用图形化的方法,也可以通过编写SQL语句来实现对数据库的操作. SQL Server Management Studio是一个集成环境,用于访问.配置和管理所有的SQL Server组件,它组合了大量的图形工具和丰富的脚本编辑器,使技术水平不同的开发和管理人员都可以通过这个工具访问和管理SQL Se

《数据库基础及实践技术——SQL Server 2008》一1.2 数据库系统与数据库管理系统

1.2 数据库系统与数据库管理系统 本节介绍数据库系统的组成以及数据库管理系统的功能. 1.2.1 数据库系统的组成 数据库管理系统是一个系统软件,如SQL Server.Oracle.DB2等都是著名的数据库管理系统软件,但在有了数据库管理系统这个软件之后,并不意味着已经具有了用数据库管理系统管理数据的优点,必须在这个软件基础之上进行一些必要的工作,以把数据库管理系统提供的功能发挥出来.首先应该利用这个系统存放用户自己的数据,让数据库管理系统帮助我们把这些数据管理起来,其次还应有对这些数据进行

《数据库基础及实践技术——SQL Server 2008》一3.7 复制数据库

3.7 复制数据库 将数据库从一台服务器移动(复制)到另一台服务器有多种方法,3.6节介绍过的分离和附加数据库是一种方法,本节介绍的复制数据库是另一种方法,还有一种方法是使用备份和恢复数据库(在第13章介绍)技术.SQL Server 2008提供了复制数据库向导,利用该向导可以很方便地将数据库从一台服务器复制到另一台服务器,也可以将数据库复制到同一台服务器上.而且可以将SQL Server 2000或SQL Server 2005数据库复制到SQL Server 2008版本的实例上,从而实现

《数据库基础及实践技术——SQL Server 2008》一3.4 修改数据库

3.4 修改数据库 创建完数据库后,用户在使用过程中可以根据需要对数据库的定义进行修改.修改数据库的操作主要包括如下几项: 扩大数据库空间. 缩小数据库空间. 添加和删除数据库文件. 创建文件组. 更改数据库所有者. 3.4.1 扩大数据库空间 如果在创建数据库时没有设置自动增长方式,则数据库在使用一段时间后可能会出现数据库空间不足的情况,这些空间包括数据空间和日志空间.如果数据空间不够,则意味着不能再向数据库中插入数据:如果日志空间不够,则意味着不能再对数据库数据进行任何修改操作,因为对数据的

《数据库基础及实践技术——SQL Server 2008》一3.6 分离和附加数据库

3.6 分离和附加数据库 利用分离和附加数据库的操作可以实现将数据库从一台计算机移动到另一台计算机,或者从一个实例移动到另一个实例的目的. 数据库被分离后,其所包含的数据文件和日志文件不再受数据库管理系统的管理,因此,用户可以复制或剪切该数据库的全部文件,然后将它们放置到另一台计算机上,或者本计算机的其他位置上.然后,通过附加的方法可以将数据库恢复到同一台数据库服务器上,或者附加到其他数据库服务器上. 如果要将数据库移动或复制到同一台服务器的不同SQL Server实例中,或者要移动数据库的数据

《数据库基础及实践技术——SQL Server 2008》一2.3 配置SQL Server 2008

2.3 配置SQL Server 2008 成功安装好SQL Server 2008后,根据需要可以对SQL Server 2008的服务器端和客户端进行适当的配置,以更符合用户的要求.本节介绍使用配置管理器工具配置SQL Server 2008的方法. SQL Server配置管理器(SQL Server Configuration Manager)综合了服务管理器.服务器网络实用工具和客户端网络实用工具的功能. 单击"开始"→"Microsoft SQL Server 2

《数据库基础及实践技术——SQL Server 2008》一第3章 数据库的创建与管理

第3章 数据库的创建与管理 数据库是存放数据的"仓库",用户在利用数据库管理系统提供的功能时,首先要将自己的数据保存到数据库中.本章介绍如何在SQL Server 2008中通过图形化方法和Transact-SQL语句创建用户数据库,同时介绍如何对用户数据库进行管理,包括对数据库空间的维护.分离和附加数据库.复制数据库等.