几行代码创建属于你自己的SQL数据库

简介:

创建数据库有多重方法,如可以使用企业管理器创建数据库,也可以使用向导创建数据库。上面两种方法操作都很简单,但却有一个很大的缺点就是他很难大规模重复。换句话说,如果你创建一个准备重新分布到世界各地的数据库,对于一个没有经验的用户来说,应付SQL企业管理器并建立数据库并不是一件容易的事。于是为了解决我们上面所说的难题,用T-SQL语句创建数据库的方法变应运而生。

  在讲语法之前我先给大家介绍下什么是数据库文件。数据库文件说简单点就是存储我们所需要的数据库的数据,或者事务日志。就好比文件夹是为了存储文件一样。

  在SQL Sever中有如下三种类型的数据库文件:

数据库文件类型

描述

主数据库文件

        是所有数据库的起点。这些文件不仅包含数据库用户收集的信息,还包含了数据库中所有其他文件的有关信息。每个数据库都有一个主数据库文件。主数据库文件的扩展名默认并推荐使用.mdf

辅数据库文件

        顾名思义它其实是那些你增加到数据库中的其他任何数据库文件。增加它们可以用来为数据库增大容量。不是所有的数据库都有辅数据库文件,但是如果想要你的数据库文件延伸到多个物理磁盘上,就需要有辅数据库文件。它的扩展名默认使用.ndf

日志文件

        用来保存数据库的事务日志。每个数据库至少有一个日志文件。日志文件的扩展名使用.ldf

  那接下来让我们认识Create Database语句的语法:

CREATE DATABASE <database_name>
      On [primary]
      [<filespec> [,…n]  ]
      [,<filegroup> [,…n]  ]
[LOG ON {<filespec> [,…n] }  ]
[FOR LOAD |  FOR  ATTCH  ]

  上面几句就是创建数据库最基本的语法,很简单吧。但是里面有些选项还是需要我们慢慢讲来的。

  其中的两个选项<filespec>和<filegroup>是什么意思呢?简单的说他们分别代表了创建一个文件和一个文件组所需要的信息,可能很难懂吧,不用着急我们看下面它们两个的语法。

<filespec>::=
                   (   [NAME=logical_file_name,]
                        FILENAME='os_file_name'
                        [,SIZE=size]
                        [,MAXSIZE={max_size | UNLIMITED}]
                        [,FILEGROWTH=growth_increment])  [,…n]
       <filegroupspec>::=
                        FILEGROUP filegroup_name <filespec>  [,…n]

  在SIZE、MAXSIZE、FILEGROWTH中如果大小的单位是兆字节(MB),则该单位可以省略,也就是说兆字节是缺省单位。但其它的表示单位不可省略。

  没晕吧(偷笑),没关系我们接着来看个例子。在下面的例子里,你可以建立一个数据库Test、一个数据库文件Test_Data和一个日志文件Test_Log:

  Create Database Test

         On primary

         (      name=’Test_Data’,

                 Filename=’c:\mssql17\data\Test_Data.mdf’,

                Size=10[MB],

                Maxsize=50[MB],

                Filegrowth=5[MB]   )

         LOG ON

         (      name=’Test_Log’,

                Filename=’c:\mssql17\data\Test_Log.ldf’,

                Size=5[MB],

                Maxsize=25[MB],

                Filegrowth=10%    )

          GO

  在SQL 2000中的查询分析器中执行后,你会看到一下的结果:

  CREATE DATABASE 进程正在磁盘 'Test_Data' 上分配 10.00 MB 的空间。

  CREATE DATABASE 进程正在磁盘 'Test_Log' 上分配 5.00 MB 的空间。

  上面代码括号中的部分即为<filespec>部分,是对创建的数据库的说明。怎么样,变的很简单了吧。









====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3天前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】7、SQL 优化
【MySQL 数据库】7、SQL 优化
23 0
|
5天前
|
SQL 关系型数据库 MySQL
数据库管理新星:Navicat、HeidiSQL和SQL Workbench的竞争格局
随着数据管理需求的不断增长,数据库管理工具的选择变得至关重要。在众多选择中,Navicat、HeidiSQL和SQL Workbench作为备受关注的数据库管理工具,各自展现出独特的特性和功能,竞争格局日益激烈。
17 0
|
15天前
|
SQL 存储 关系型数据库
sql数据库的相关概念与底层介绍
sql数据库的相关概念与底层介绍
32 0
|
3天前
|
SQL Oracle Java
怎样写出可在各种数据库间移植的SQL
国际标准没有对这些函数做规定,这种 SQL 语句就会和数据库相关而无法移植了,而这些函数在应用开发中还特别常见。 Hibernate 能将包括这些函数的标准 HQL 语句转换成不同数据库的 SQL,但 HQL 支持的函数太少,碰到不认识的函数还是要分别注册,这就丧失了可移植性;而且 HQL 能生成的 SQL 本身也比较简单,覆盖面太窄了。
|
9天前
|
SQL Java 关系型数据库
Flink SQL 问题之用代码执行报错如何解决
Flink SQL报错通常指在使用Apache Flink的SQL接口执行数据处理任务时遇到的问题;本合集将收集常见的Flink SQL报错情况及其解决方法,帮助用户迅速恢复数据处理流程。
34 6
|
11天前
|
SQL 安全 Devops
一个简单的代码拼写错误导致17个生产数据库被删!微软Azure DevOps宕机10小时始末
一个简单的代码拼写错误导致17个生产数据库被删!微软Azure DevOps宕机10小时始末
|
28天前
|
SQL 关系型数据库 MySQL
MySQL日期函数的SQL代码示例和使用场景
MySQL日期函数的SQL代码示例和使用场景
14 0
|
1月前
|
SQL 人工智能 运维
数据库基础入门 — SQL排序与分页
数据库基础入门 — SQL排序与分页
17 0
|
1月前
|
SQL 人工智能 运维
数据库基础入门 — SQL运算符
数据库基础入门 — SQL运算符
15 0
|
2天前
|
SQL 关系型数据库 MySQL
Mysql基础第三天,创建罗斯文数据库
Mysql基础第三天,创建罗斯文数据库
18 0
Mysql基础第三天,创建罗斯文数据库