1、创建数据库介绍

在创建数据库之前,需要先确定数据库的名称、所有者、大小、存储该数据库的文件和文件组。

数据库所有者:创建数据库的用户。一般情况下,大多数产品对象由数据库所有者拥有。

2、创建数据库注意事项

  • 创建数据库需要拥有CREATE DATABASE、CREATE ANY DATABASE或ALTER ANY DATABASE权限。

  • 创建数据库的用户将成为该数据库的所有者。

  • 针对一个SQL Server实例,最多可以创建32767个数据库。

  • 数据库名称必须遵循为标识符指定的规则。

  • 在创建新数据库同时,model数据库中的所有用户定义对象都会复制到新创建的数据库中。可以向model数据库中添加任何通用的对象(如表、视图、存储过程和数据类型),然后在创建的数据库可以将这些对象复制到新创建的数据库当中。

3、创建数据库的语法格式

语法格式如下:

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

参数说明:

database_name:数据库名称。

ON:指定以显式定义方式指定存储数据库数据部分的数据文件。

PRIMARY:指定<filespec>列表中的主文件。在<filespec>项中的第一个文件将成为主文件。如果没有指定PRIMARY则默认第一个文件将成为数据库主文件。

LOG ON:指定存储数据库日志的日志文件。LOG ON后跟着以逗号分隔的用于定义日志文件的<filespec>项列表。不指定LOG ON,将自动创建一个日志文件,文件大小为该数据库的所有数据文件大小总和的1/4或512 KB,取两者之中的较大者。

COLLATE collation_name:指定数据库的默认排序规则。排序规则名称包括Windows排序规则、SQL排序规则名称。未指定排序规则,则将SQL Server实例的默认排序规则分配为数据库的排序规则。

<filespec>部分主要用于控制文件属性,语法格式如下:

(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 | GB | TB | % ] ]) [ ,...n ]

logical_file_name:指定文件的逻辑名称。logical_file_name必须在数据库中唯一,必须符合规定的标识符规则。

' os_file_name ':指定操作系统(物理)文件名称。执行创建数据库语句前,指定文件路径必须存在。如果指定了UNC(通用命名约定)路径,则无法设置SIZE、MAXSIZE和FILEGROWTH参数。

size:指定文件的初始大小。未指定主文件指定size,数据库引擎将使用model数据库中的主文件的大小。如果指定了辅助数据文件或日志文件,但未指定该文件的size,则数据库引擎将以1 MB作为该文件的大小。

可以使用千字节(KB)、兆字节(MB)、千兆字节(GB)或兆兆字节(TB)后缀,默认单位为MB。

max_size:指定文件可增大到的最大值,可以使用KB、MB、GB和TB后缀,默认单位为MB。

UNLIMITED:指定文件可以增长到磁盘空间已满。在SQL Server中,指定为不限制增长的日志文件的最大值为2 TB,而数据文件的最大值为16 TB。

growth_increment:指定每次需要新空间时为文件添加的空间量。growth_increment值不能超过MAXSIZE设置值。该值可以使用MB、KB、GB、TB或百分比(%)为单位指定。默认值为MB。growth_increment值为0时表明自动增长被关闭,不允许增加空间。

如果未指定FILEGROWTH,则数据文件的默认值为1 MB,日志文件的默认增长比例为10%,并且最小值为64 KB。

<filegroup>部分主要用于控制文件组属性,语法格式如下:

    FILEGROUP filegroup_name [ DEFAULT ]<filespec> [ ,...n ]

filegroup_name:必须在数据库中唯一,不能是系统提供的名称PRIMARY和PRIMARY_LOG。

DEFAULT:指定文件组为数据库中的默认文件组。

4、 创建数据库示例

  1. 最简单的创建数据库示例

create database TestDB

会根据SQLServer默认设置(文件存储位置、文件增加大小等)创建数据库。

2.指定数据和事务日志文件的数据库示例

 IF DB_ID (N'TestDB') is not null -- 判断数据库是否存在如果存在则先删除DROP DATABASE TestDB GOCREATE DATABASE TestDBON( NAME = TestDB,-- 逻辑数据库文件名FILENAME = 'D:\TestDB.mdf',SIZE = 10,MAXSIZE = 200,FILEGROWTH = 5 )LOG ON( NAME = TestDB_log,-- 逻辑数据库日志文件名FILENAME = 'D:\TestDB_log.ldf',SIZE = 5MB,MAXSIZE = 50MB,FILEGROWTH = 5MB ) ;

3.指定多个数据文件和事务日志文件示例

  USE masterGO   IF DB_ID (N'TestDB') is not null -- 判断数据库是否存在如果存在则先删除DROP DATABASE TestDB GOCREATE DATABASE TestDBONPRIMARY(NAME = TestDB1,FILENAME = 'd:\TestDB1.mdf',SIZE = 100MB,MAXSIZE = 200,FILEGROWTH = 20),( NAME = TestDB2,FILENAME = 'd:\TestDB2.ndf',SIZE = 100MB,MAXSIZE = 200,FILEGROWTH = 20)LOG ON(NAME = TestDB_log1,FILENAME = 'd:\TestDB_log1.ldf',SIZE = 30MB,MAXSIZE = 100,FILEGROWTH = 10),(NAME = TestDB_log2,FILENAME = 'd:\TestDB_log2.ldf',SIZE = 100MB,MAXSIZE = 500,FILEGROWTH = 50) ;

4.创建具有文件组的数据库下面的语句将创建数据库Sales,该数据库具有以下文件组。

  USE masterGO   IF DB_ID (N'TestDB') is not null -- 判断数据库是否存在如果存在则先删除DROP DATABASE TestDB GOCREATE DATABASE  TestDBON PRIMARY -- 数据库主文件( NAME = TestDB1,FILENAME = 'd:\TestDB1.mdf',SIZE = 20,MAXSIZE = 100,FILEGROWTH = 10% ),( NAME = TestDB2,FILENAME = 'd:\TestDB2.ndf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5% ),FILEGROUP DBGroup1( NAME = TestDB3,FILENAME = 'd:\TestDB3.ndf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 ),( NAME = TestDB4,FILENAME = 'd:\TestDB4.ndf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 ),FILEGROUP DBGroup2( NAME = DB1_Group2,FILENAME = 'd:\DB1_Group2.ndf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 ),( NAME = DB2_Group2,FILENAME = 'd:\DB2_Group2.ndf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 )LOG ON( NAME = TestDB_log,FILENAME = 'd:\TestDB_log.ldf',SIZE = 50MB,MAXSIZE = 500MB,FILEGROWTH = 10MB ) ;

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

SQLServer创建数据库详解相关推荐

  1. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

  2. h2 不能访问localhost_SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台

    SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台 作者:一一哥 我在上一章节中讲解了Spring Boot中整合Mybatis,接下来我给大家介绍一款内存数据库--H2. H ...

  3. exp/expdp 与 imp/impdp命令导入导出数据库详解

    exp/expdp 与 imp/impdp命令导入导出数据库详解 一.exp命令导出数据库 如何使exp的帮助以不同的字符集显示:set nls_lang=simplified chinese_chi ...

  4. 【poi-3.8】poi解析excel插入数据库详解

    文章目录 poi解析excel&插入数据库详解 说明 一.目的 二.准备工作 三.思路分析 四.流程图分析 五.核心代码 1:上传文件 2:获取输入流 3:初始化excel表 4:遍历行和列 ...

  5. php表单提交到数据库详解

    一般朋友们逛一些网站的时候,想使用网站或者看到更多网站里的内容,网站会要求用户进行新用户的注册,网站会把新用户的注册信息存入数据库中,需要的时候再进行提取. 这样网站就会首先创建自己的数据库和对应的表 ...

  6. 微信小程序云开发入门(二)-数据库详解

    微信小程序云开发入门(二)-数据库详解 接上一篇:微信小程序云开发入门(一) 摘要: 因为微信小程序云数据库有点类似传统的关系型数据库,但又有所不同.所以刚入手的时候会有点困扰,经过一段时间的学习和摸 ...

  7. pandas读写MySQL数据库详解及实战

    pandas读写MySQL数据库详解及实战 SQLAlchemy是Python中最有名的ORM工具. 关于ORM: 全称Object Relational Mapping(对象关系映射). 特点是操纵 ...

  8. Lesson13【加餐】 损失函数的随机创建现象详解

    [Lesson 13 加餐]损失函数的随机创建现象详解   接下来,我们通过手动创建一个实例,来观察在小批梯度下降过程中,损失函数是如何根据数据数据变化而变化的,这里既是作为本节内容的一个补充,同时也 ...

  9. mysql命令导入导出数据库_MYSQL命令行导入导出数据库详解

    Mysql命令行导入数据库: 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql ...

最新文章

  1. Python OpenCV应用K均值聚类进行颜色量化
  2. 学Java需要学哪些书?
  3. 美国匹兹堡大学高伟教授招收Mobile AI方向全奖博士生
  4. HTML5与HTML4的区别
  5. QT 定时器与动画实现
  6. 【Android】Fragment的简单笔记
  7. es 吗 查询必须有sort_ElasticSearch DSL之From/Size,Sort
  8. steam夏日促销悄然开始,用Python爬取排行榜上的游戏打折信息
  9. 阿里云 linux 找回mysql root密码
  10. 「Mac新手操作」:使用力度触控板进行“用力点按”的方法
  11. Windows平台下c++ 内存泄漏检查的办法(如VLD)
  12. 【生信进阶练习1000days】day7-RSQLite的使用
  13. flutter 弹幕插件_Flutter 实现虎牙/斗鱼 弹幕效果
  14. 2021年软件评测师新版考试大纲
  15. 中兴e8820刷openwrt_中兴E8820V2(电信天翼宽带类似新路由3歌华链)-拆机及OpenWrt固件...
  16. 用C语言实现传递闭包(warshall算法)
  17. java中文getbytes为3_Java getBytes方法详解(字符集问题)
  18. java中12 5.0f等于多少_F_____
  19. 分布式事务Seata错误——can not register RM,err:can not connect to services-server.
  20. LED显示行业之知识大全4

热门文章

  1. 在Ubuntu系统下如何将chrome浏览器的bookmarks导出到本地
  2. 【深度学习系列】基础知识、模型学习
  3. Python中利用plt显示中文标题解决方案
  4. C# 并行运算方法简析
  5. C#常见编码方式总结
  6. vue上传文件php,php文件上传 – 前端开发,JQUERY特效,全栈开发,vue开发
  7. 请求转发和请求重定向的区别?
  8. Android Bug分析系列:第三方平台安装app启动后,home键回到桌面后点击app启动时会再次启动入口类bug的原因剖析...
  9. 利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值...
  10. 微信支付现金红包接口(转)