-
sql语句大全之创建数据库
创建数据库
创建数据库就是为数据库确定名称、大小、存放位置、文件名和所在文件组的过程。在一个SQL Server 2008实例中,最多可以创建32767个数据库,数据库的名称必须满足系统的标识符规则。在命名数据库时,一定要使数据库名称简短并有一定的含义。在SQL Server 2008中创建数据库的方法主要有两种:一是在SQL Server Management Studio窗口中使用现有命令和功能,通过方便的图形化向导创建;二是通过编写Transact-SQL语句创建。
2.2.1 使用图形化向导创建
SQL Server Management Studio是SQL Server系统运行的核心窗口,它提供了用于数据库管理的图形工具和功能丰富的开发环境,方便数据库管理员及用户进行操作。首先来介绍如何使用SQL Server Management Studio来创建自己的用户数据库。在SQL Server 2008中,通过SQL Server Management Studio创建数据库是最容易的方法,对初学者来说简单易用。下面以创建本书的示例数据库【图书管理系统(BookDateBase)】数据库为例,对这种方法作详细介绍。具体的操作步骤如下所示:
(1)从【开始】菜单中选择【程序】|Microsoft SQL Server 2008|SQL Server Management Studio命令,打开Microsoft SQL Server Management Studio窗口,并使用Windows或SQL Server身份验证建立连接。如图2-3所示。
图2-3 连接服务器身份验证
(2)在【对象资源管理器】窗格中展开服务器,然后选择【数据库】节点。
(3)在【数据库】节点上右击,从弹出的快捷菜单中选择【新建数据库】命令,如图2-4所示。
图2-4 选择【新建数据库】命令
(4)执行上述操作后,会弹出【新建数据库】对话框,如图2-5所示。
在这个对话框中有三个页,分别是【常规】、【选项】和【文件组】页。完成这三个选项中的内容之后,就完成了数据库的创建工作。
图2-5 【新建数据库】对话框
(5)在【数据库名称】文本框中输入要新建数据库的名称,例如这里输入“工资管理系统”。
(6)在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。
(7)在【数据库文件】列表中,包括两行:一行是数据文件,而另一行是日志文件。通过单击下面相应按钮,可以添加或者删除相应的数据文件。该列表中各字段值的含义如下:
l 逻辑名称 指定该文件的文件名,其中数据文件与SQL Server 2000不同,在默认情况下不再为用户输入的文件名添加下划线和Data字样,相应的文件扩展名并未改变。
l 文件类型 用于区别当前文件是数据文件还是日志文件。
l 文件组 显示当前数据库文件所属的文件组。一个数据库文件只能存在于一个文件组里。
在创建数据库时,系统自动将model数据库中的所有用户自定义的对象都复制到新建的数据库中。用户可以在model系统数据库中创建希望自动添加到所有新建数据库中的对象,例如表、视图、数据类型、存储过程等。 |
l 初始大小 制定该文件的初始容量,在SQL Server 2008中数据文件的默认值为3MB,日志文件的默认值为1MB.
l 自动增长 用于设置在文件的容量不够用时,文件根据何种增长方式自动增长。通过单击【自动增长】列中的省略号按钮,打开【更改自动增长设置】窗口进行设置。如图2-6和图2-7所示分别为数据文件、日志文件的自动增长设置窗口。
图2-6 数据文件自动增长设置 图2-7 日志文件自动增长设置
l 路径 指定存放该文件的目录。在默认情况下,SQL Server 2008将存放路径设置为SQL Server 2008安装目录下的data子目录。单击该列中的按钮可以打开【定位文件夹】对话框更改数据库的存放路径。
(8)单击【选项】按钮,设置数据库的排序规则、恢复模式、兼容级别和其他需要设置的内容,如图2-8所示。
图2-8 新建数据库【选项】页
(9)单击【文件组】可以设置数据库文件所属的文件组,还可以通过【添加】或者【删除】按钮更改数据库文件所属的文件组。如图2-9所示。
图2-9 新建数据库【文件组】页
(10)完成以上操作后,就可以单击【确定】关闭【新建数据库】对话框。至此,成功创建了一个数据库,可以通过【对象资源管理器】窗格查看新建的数据库。
在SQL Server 2008中创建新的对象时,他可能不会立即出现在【对象资源管理器】窗格中,可右击对象所在位置的上一层,并选择【刷新】命令,即可强制SQL Server 2008重新读取系统表并显示数据中的所有新对象。 |
更新至此
2.2.2 使用Transact-SQL语句创建
使用SQL Server Management Studio创建数据库可以方便应用程序对数据的直接调用。但是,有些情况下,不能使用图形化方式创建数据库。比如,在设计一个应用程序时,开发人员会直接使用Transact-SQL在程序代码中创建数据库及其他数据库对象,而不用在制作应用程序安装包时再放置数据库或让用户自行创建。SQL Server 2008使用的Transact-SQL是标准SQL(结构化查询语言)的增强版本,使用他提供的CREATE DATABASE语句同样可以完成新建数据库操作。下面同样以创建【图书管理系统(BookDateBase)】数据库为例来介绍如何使用Transact-SQL语句创建一个数据库。
使用CREATE DATABASE语句创建数据库最简单的方式如下所示:
CREATE DATABASE databaseName
按照方式只需指定databaseName参数即可,他表示要创建的数据库的名称,其他与数据库有关的选项都采用系统的默认值。例如,创建【图书管理系统(BookDateBase)】数据库,则语句为:
CREATE DATABASE BookDateBase
1.CREATE DATABASE语法格式如果希望在创建数据库时明确的指定数据库的文件和这些文件的大小以及增长的方式。首先就需要了解CREATE DATABASE语句的语法,其完整的格式如下:
CREATE DATABASE database_name
[ON [PRIMARY]
[<filespec> [1,…n]]
[,<filegroup> [1,…n]]
]
[
[LOG ON {<filespec> [1,…n]}]
[COLLATE collation_name]
[FOR {ATTACH [WITH <service_broker_option>]|ATTACH_REBUILD_LOG}]
[WITH <external_access_option>]
]
[;]
<filespec>::=
{
[PRIMARY]
(
[NAME=logical_file_name,]
FILENAME='os_file_name'
[,SIZE=size[KB|MB|GB|TB]]
[,MAXSIZE={max_size[KB|MB|GB|TB]|UNLIMITED}]
[,FILEGROWTH=growth_increment[KB|MB|%]]
)[1,…n]
}
<filegroup>::=
{
FILEGROUP filegroup_name
<filespec> [1,…n]
}
<external_access_option>::=
{
DB_CHAINING {ON|OFF}|TRUSTWORTHY{ON|OFF}
}
<service_broke_option>::=
{
ENABLE_BROKE|NEW_BROKE|ERROR_BROKER_CONVERSATIONS
}
2.CREATE DATABASE语法格式说明[ON [PRIMARY]
[<filespec> [1,…n]]
[,<filegroup> [1,…n]]
]
[
[LOG ON {<filespec> [1,…n]}]
[COLLATE collation_name]
[FOR {ATTACH [WITH <service_broker_option>]|ATTACH_REBUILD_LOG}]
[WITH <external_access_option>]
]
[;]
<filespec>::=
{
[PRIMARY]
(
[NAME=logical_file_name,]
FILENAME='os_file_name'
[,SIZE=size[KB|MB|GB|TB]]
[,MAXSIZE={max_size[KB|MB|GB|TB]|UNLIMITED}]
[,FILEGROWTH=growth_increment[KB|MB|%]]
)[1,…n]
}
<filegroup>::=
{
FILEGROUP filegroup_name
<filespec> [1,…n]
}
<external_access_option>::=
{
DB_CHAINING {ON|OFF}|TRUSTWORTHY{ON|OFF}
}
<service_broke_option>::=
{
ENABLE_BROKE|NEW_BROKE|ERROR_BROKER_CONVERSATIONS
}
在语法格式中,每一种特定的符号都表示有特殊的含义,其中:
l 方括号[]中的内容表示可以省略的选项或参数,[1,…n]表示同样的选项可以重复1到n遍。
l 如果某项的内容太多需要额外的说明,可以用<>括起来,如句法中的<filespec>和<filegroup>,而该项的真正语法在::=后面加以定义。
l 大括号{}通常会与符号|连用,表示{}中的选项或参数必选其中之一,不可省略。
例如,MAXSIZE ={ max_size [ KB | MB | GB | TB ] | UNLIMITED }表示定义数据库文件的最大容量,或者指定一个具体的容量max_size [ KB | MB | GB | TB ],或者指定容量没有限制UNLIMITED,但是不能空缺。下面表2-2列出了关于语法中主要参数的说明。
表2-2 语法参数说明
参数 | 说明 |
database_name | 数据库名称 |
Logical_file_name | 逻辑文件名称 |
os_file_name | 操作系统下的文件名和路径 |
size | 文件初始容量 |
max_size | 文件最大容量 |
growth_increment | 自动增长值或比例 |
filegroup_name | 文件组名 |
l CREATE DATABASE database_name 用于设置数据库的名称,可长达128个字符,需要将database_name替换为需要的数据库名称,如【工资管理系统】数据库。在同一个数据库中,数据库名必须具有惟一性,并符合标识命名标准。
l NAME=logical_file_name 用来定义数据库的逻辑名称,这个逻辑名称将用来在Transact_SQL代码中引用数据库。该名称在数据库中应保持惟一,并符合标识符的命名规则。这个选项在使用了FOR ATTACH时不是必须的。
l FILENAME=os_file_name 用于定义数据库文件在硬盘上的存放路径与文件名称。这必须是本地目录(不能是网络目录),并且不能是压缩目录。
l SIZE=size[KB|MB|GB|TB] 用来定义数据文件的初始大小,可以使用KB、MB、GB或TB为计量单位。如果没有为主数据文件指定大小,那么SQL Server将创建与model系统数据库相同大小的文件。如果没有为辅助数据库文件指定大小,那么SQL Server将自动为该文件指定1MB大小。
l MAXSIZE={max_size[KB|MB|GB|TB]UNLIMITED} 用于设置数据库允许达到的最大大小,可以使用KB、MB、GB、TB为计量单位,也可以为UNLIMTED,或者省略整个子句,使文件可以无限制增长。
l FILEGROWTH=growth_increment[KB|MB|%] 用来定义文件增长所采用的递增量或递增方式。他可以使用KB、MB或百分比(%)为计量单位。如果没有指定这些符号之中的任一符号,则默认MB为计量单位。
l FILEGROUP filegroup_name 用来为正在创建的文件所基于的文件组指定逻辑名称。
4.使用CREATE DATABASE创建数据库
在掌握了上述内容后,接下来介绍如何使用CREATE DATABASE语句创建【工资管理系统】数据库。
(1)打开Microsoft SQL Server Management Studio窗口,并连接到服务器。
(2)选择【文件】|【新建】|【数据库引擎查询】命令或者单击标准工具栏上的【新建查询】按钮( ),创建一个查询输入窗口。
通过选择【文件】|【新建】|【数据库引擎查询】命令创建查询输入窗口会弹出【连接到数据库引擎】对话框需要身份验证连接到服务器,而通过单击【新建查询】按钮( )不会出现该对话框。 |
(3)在窗口内输入语句,创建【图书管理系统(BookDateBase)】数据库,保存位置为“E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码”。CREATE DATABASE语句如下所示:
CREATE DATABASE BookDateBase
ON
(
NAME=BookDateBase_DAT,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\BookDateBase_DAT.mdf',
SIZE=3MB,
MAXSIZE=50MB,
FILEGROWTH=10%
)
LOG ON
(
NAME=BookDateBase_LOG,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\BookDateBase_LOG.ldf',
SIZE=1MB,
MAXSIZE=10MB,
FILEGROWTH=10%
)
GO
(4)单击【执行】按钮( )执行语句。如果执行成功,在查询窗口内的【查询】窗格中,可以看到一条“命令已成功完成。”的消息。然后在【对象资源管理器】窗格中刷新,展开数据库节点就能看到刚创建的【图书管理系统】数据库。如图2-10所示。ON
(
NAME=BookDateBase_DAT,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\BookDateBase_DAT.mdf',
SIZE=3MB,
MAXSIZE=50MB,
FILEGROWTH=10%
)
LOG ON
(
NAME=BookDateBase_LOG,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\BookDateBase_LOG.ldf',
SIZE=1MB,
MAXSIZE=10MB,
FILEGROWTH=10%
)
GO
图2-10 CREATE DATABASE创建数据库
在上述的例子中,创建了【图书管理系统(BookDateBase)】数据库,其中NAME关键字指定了数据文件的逻辑名称是“BookDateBase_DAT”,日志文件的逻辑名称是“BookDateBase_LOG”,而他的数据文件的物理名称是通过FILENAME关键字指定的。在【工资管理系统(BookDateBase)】数据库中,通过SIZE关键字把数据文件的大小设置为3MB,最大值为50MB,按10%的比例增长,日志文件的大小设置为1MB,最大值为10MB,按10%的方式增长。整个数据库的大小为:数据文件大小(3MB)+日志文件大小(1MB)=4MB。
如果感觉以后数据库会不断增长,那么就指定其自动增长方式。反之,最好不要指定其自动增长,以提高数据的使用效率。 |
如果数据库中的数据文件或日志文件多于1个,则文件之间使用逗号隔开。当数据库有两个或两个以上的数据文件时,需要指定哪一个数据文件是主数据文件。默认情况下,第一个数据文件就是主数据文件,也可以使用PRIMARY关键字来指定主数据文件。
下面重新创建【图书管理系统(BookDateBase)】数据库,让该数据库包含3个数据文件和2个日志文件。并将后两个数据文件存储在名称为group1的文件组中。代码如下所示:
CREATE DATABASE BookDateBase
ON PRIMARY
(
NAME= BookDateBase _DAT,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _DAT.mdf',
SIZE=3MB,
MAXSIZE=50MB,
FILEGROWTH=10%
),
FILEGROUP group1
(
NAME= BookDateBase _DAT1,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _DAT1.ndf',
SIZE=2MB,
MAXSIZE=10MB,
FILEGROWTH=5%
),
(
NAME= BookDateBase _DAT2,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _DAT2.ndf',
SIZE=2MB,
MAXSIZE=20MB,
FILEGROWTH=15%
)
LOG ON
(
NAME= BookDateBase _LOG,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _LOG.ldf',
SIZE=1MB,
MAXSIZE=10MB,
FILEGROWTH=10%
),
(
NAME= BookDateBase _LOG1,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _LOG1.ldf',
SIZE=1MB,
MAXSIZE=5MB,
FILEGROWTH=5%
)
ON PRIMARY
(
NAME= BookDateBase _DAT,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _DAT.mdf',
SIZE=3MB,
MAXSIZE=50MB,
FILEGROWTH=10%
),
FILEGROUP group1
(
NAME= BookDateBase _DAT1,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _DAT1.ndf',
SIZE=2MB,
MAXSIZE=10MB,
FILEGROWTH=5%
),
(
NAME= BookDateBase _DAT2,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _DAT2.ndf',
SIZE=2MB,
MAXSIZE=20MB,
FILEGROWTH=15%
)
LOG ON
(
NAME= BookDateBase _LOG,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _LOG.ldf',
SIZE=1MB,
MAXSIZE=10MB,
FILEGROWTH=10%
),
(
NAME= BookDateBase _LOG1,
FILENAME='E:\张帅\zs SQL2008 shugao\SQL2008\第3章 管理数据库 代码\ BookDateBase _LOG1.ldf',
SIZE=1MB,
MAXSIZE=5MB,
FILEGROWTH=5%
)
重新创建【图书管理系统(BookDateBase)】数据库时必须先删除之前创建的那个【图书管理系统(BookDateBase)】数据库。右键单击要删除的数据库,选择“删除”命令,单击“确定”按钮。 |
上述代码中,创建了3个数据文件和2个日志文件分别为:BookDateBase_DAT,BookDateBase_DAT1,BookDateBase_DAT2和BookDateBase_LOG,BookDateBase_LOG1,将“BookDateBase_DAT”设为了主数据文件。创建之后,就可以在“E:\张帅\zsSQL2008shugao\SQL2008\第3章管理数据库代码”目录下看到所创建的文件。
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式