- SQL Server 2016从入门到精通(视频教学超值版)
- 王英英
- 3325字
- 2021-03-24 12:41:06
2.3 创建数据库
数据库的创建过程实际上就是数据库的逻辑设计到物理实现过程。在SQL Server中创建数据库有两种方法:在SQL Server管理器(SSMS)中使用对象资源管理器创建和使用T-SQL代码创建。这两种方法在创建数据库的时候,有各自的优缺点,可以根据自己的喜好,灵活选择使用不同的方法,对于不熟悉T-SQL语句命令的用户来说,可以使用SSMS管理器提供的生成向导来创建。下面将向各位读者介绍这两种方法的创建过程。
2.3.1 使用对象资源管理器创建数据库
在使用对象资源管理器创建之前,首先要启动SSMS,然后使用账户登录到数据库服务器。SQL Server安装成功之后,默认情况下数据库服务器会随着系统自动启动;如果没有启动,则用户在连接时,服务器也会自动启动。
数据库连接成功之后,在左侧的【对象资源管理器】窗口中打开【数据库】节点,可以看到服务器中的【系统数据库】节点,如图2-1所示。
在创建数据库时,用户要提供与数据库有关的如下信息:数据库名称、数据存储方式、数据库大小、数据库的存储路径和包含数据库存储信息的文件名称。下面介绍创建过程。
右击【数据库】节点文件夹,在弹出的快捷菜单中选择【新建数据库】菜单命令,如图2-2所示。
图2-1 【数据库】节点
图2-2 【新建数据库】菜单命令
打开【新建数据库】窗口,在该窗口中左侧的【选择页】中有3个选项,默认选择的是【常规】选项,右侧列出了【常规】选项卡中数据库的创建参数,输入数据库的名称和初始大小等参数,如图2-3所示。
图2-3 【新建数据库】窗口
(1)数据库名称:mytest为输入的数据库名称。
(2)所有者:这里可以指定任何一个拥有创建数据库权限的账户。此处为默认账户(default),即当前登录到SQL Server的账户。用户也可以修改此处的值,如果使用Windows系统身份验证登录,这里的值将会是系统用户ID;如果使用SQL Server身份验证登录,这里的值将会是连接到服务器的ID。
(3)使用全文索引:如果想让数据库具有搜索特定内容的字段,需要选择此选项。
(4)逻辑名称:引用文件时使用的文件名称。
(5)文件类型:表示该文件存放的内容,行数据表示这是一个数据库文件,其中存储了数据库中的数据;日志文件中记录的是用户对数据进行操作。
(6)文件组:为数据库中的文件指定文件组,可以指定的值有:PRIMARY和不适用,数据库中必须有一个主文件组(PRIMARY)。
(7)初始大小:该列下的两个值分别表示数据库文件的初始大小为8MB,日志文件的初始大小为8MB。
(8)自动增长:当数据库文件超过初始大小时,文件大小增加的速度,这里数据文件是每次增加;默认情况下,在增长时不限制文件的增长极限,即不限制文件增长,这样可以不必担心数据库的维护,但在数据库出现问题时磁盘空间可能会被完全占满。因此在应用时,要根据需要设置一个合理的文件增长的最大值。
(9)路径:数据库文件和日志文件的保存位置,默认的路径值为G:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA。如果要修改路径,单击路径右边带省略号的按钮,打开一个【定位文件夹】的对话框,读者选择想要保存数据的路径之后,单击【确认】按钮返回。
(10)文件名:将滚动条向右拉到最后,该值用来存储数据库中数据的物理文件名称,默认情况下,SQL Server使用数据库名称加上_Data后缀来创建物理文件名,例如这里是test_Data。
(11)添加按钮:添加多个数据文件或者日志文件,在单击【添加】按钮之后,将新增一行,在新增行的【文件类型】列的下拉表中可以选择文件类型,分别是【行数据】或者【日志】。
(12)删除按钮:删除指定的数据文件和日志文件。用鼠标选定想要删除的行,然后单击【删除】按钮,注意主数据文件不能被删除。
提示
文件类型为【日志】的行与【行数据】的行所包含的信息基本相同,对于日志文件,【文件名】列的值是通过在数据库名称后面加_log后缀而得到的,并且不能修改【文件组】列的值。
数据库名称中不能包含以下Windows不允许使用的非法字符:“"” “'” “*” “/”“?” “:” “\” “<” “>” “-”。
在【选择页】列表中选择【选项】选项,【选项】选项卡可以设置的内容如图2-4所示。
图2-4 【选项】选项卡
(1)恢复模式
- 完整:允许发生错误时恢复数据库,在发生错误时,可以即时地使用事务日志恢复数据库。
- 大容量日志:当执行操作的数据量比较大时,只记录该操作事件,并不记录插入的细节。例如,向数据库插入上万条记录数据,此时只记录了该插入操作,而对于每一行插入的内容并不记录。这种方式可以在执行某些操作时提高系统性能,但是当服务器出现问题时,只能恢复到最后一次备份的日志中的内容。
- 简单:每次备份数据库时清除事务日志,该选项表示根据最后一次对数据库的备份进行恢复。
(2)兼容性级别
兼容级别:是否允许建立一个兼容早期版本的数据库,如要兼容早期版本的SQL Server,则新版本中的一些功能将不能使用。
下面的【其他选项】中还有许多其他可设置参数,这里直接使用默认值即可,在SQL Server的学习过程中,读者会逐步理解这些值的作用。
在【文件组】选项卡中,可以设置或添加数据库文件和文件组的属性,例如是否为只读,是否有默认值,如图2-5所示。
图2-5 【文件组】选项卡
设置完上面的参数,单击【确定】按钮,开始创建数据库的工作,SQL Server 2016在执行创建过程中将对数据库进行检验,如果存在一个相同名称的数据库,则创建操作失败,并提示错误信息,创建成功之后,回到SSMS窗口中,在【对象资源管理器】看到新建立的名称为mytest的数据库,如图2-6所示。
图2-6 创建的数据库
2.3.2 使用Transact-SQL创建数据库
SSMS是一个非常实用、方便的图形化(GUI)管理工具,实际上前面进行的创建数据库的操作,SSMS执行的就是T-SQL语言脚本,根据设定的各个选项的值在脚本中执行创建操作的过程。接下来的内容,将向读者介绍实现创建数据库对象的T-SQL语句。SQL Server中创建一个新数据库,以及存储该数据库文件的基本Transact-SQL语法格式如下:
上述语句分析如下。
- database_name:数据库名称,不能与SQL Server中现有的数据库实例名称相冲突,最多可以包含128个字符。
- ON:指定显示定义用来存储数据库中数据的磁盘文件。
- PRIMARY:指定关联的<filespec>列表定义的主文件,在主文件组<filespec>项中指定的第一个文件将生成主文件,一个数据库只能有一个主文件。如果没有指定PRIMARY,那么CREATE DATABASE语句中列出的第一个文件将成为主文件。
- LOG ON:指定用来存储数据库日志的日志文件。LOG ON后跟以逗号分隔的用以定义日志文件的<filespec>项列表。如果没有指定LOG ON,将自动创建一个日志文件,其大小为该数据库的所有数据文件大小总和的25%或512 KB,取两者之中的较大者。
- NAME:指定文件的逻辑名称。指定FILENAME时,需要使用NAME,除非指定FOR ATTACH子句之一。无法将FILESTREAM文件组命名为PRIMARY。
- FILENAME:指定创建文件时由操作系统使用的路径和文件名,执行CREATE DATABASE语句前,指定路径必须存在。
- SIZE:指定数据库文件的初始大小,如果没有为主文件提供size,数据库引擎将使用model数据库中的主文件的大小。
- MAXSIZE:指定文件可增大到的最大大小。可以使用KB、MB、GB和TB做后缀,默认值为MB。max_size是整数值。如果不指定max_size,则文件将不断增长直至磁盘被占满。UNLIMITED表示文件一直增长到磁盘装满。
- FILEGROWTH:指定文件的自动增量。文件的FILEGROWTH设置不能超过MAXSIZE设置。该值可以MB、KB、GB、TB或百分比(%)为单位指定,默认值为MB。如果指定%,则增量大小为发生增长时文件大小的指定百分比。值为0时表明自动增长被设置为关闭,不允许增加空间。
【例2.1】创建一个数据库sample_db,该数据库的主数据文件逻辑名为sample_db,物理文件名称为sample.mdf,初始大小为5MB,最大尺寸为30MB,增长速度为5%;数据库日志文件的逻辑名称为sample_log,保存日志的物理文件名称为sample.ldf,初始大小为1MB,最大尺寸为8MB,增长速度为128KB。具体操作步骤如下。
启动SSMS,选择【文件】|【新建】|【使用当前连接的查询】菜单命令,如图2-7所示。
图2-7 【使用当前连接的查询】菜单命令
在查询编辑器窗口中打开一个空的.sql文件,将下面的T-SQL语句输入到空白文档中,如图2-8所示。
图2-8 输入相应的语句
输入完成之后,单击【执行】命令,命令执行成功之后,刷新SQL Server 2016中的数据库节点,可以在子节点中看到新创建的名称为sample_db的数据库,如图2-9所示。
图2-9 新创建sample数据库
提示
如果刷新SQL Server 2016中的数据库节点后,仍然看不到新建的数据库,可以重新连接对象资源管理器,即可看到新建的数据库。
选择新建的数据库后右击,在弹出的快捷菜单中选择【属性】菜单命令,打开【数据库属性】窗口,选择【文件】选项,即可查看数据库的相关信息。可以看到,这里各个参数值与T-SQL代码中指定的值完全相同,说明使用T-SQL代码创建数据库成功,如图2-10所示。
图2-10 【数据库属性】窗口