SQLServer创建数据库详解

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及串口基础知识硬件:断路器、接触器、继电器基础知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac上IntelliJ IDEA设置类注释和方法注释带作者和日期

在方法上标注注释 1:idea左上角点击Preferences 选择Editor------Code Style----Live Templates 点击右边号 点击Template Group,在弹框中添加一个分组 2:击Template Group,在弹框中添加一个分组 3:选中新建的分组,点击右边号,选择Live Template 4:在…

SQLServer数据库收缩相关知识笔记

1、为什么要进行数据库收缩?SQL Server 数据库采取预先分配空间的方法来建立数据库的数据文件或者日志文件,比如数据文件的空间分配了300MB,而实际上只占用了20MB空间,这样就会造成磁盘存储空间的浪费。可以通过数据库收缩技术对数…

吕梁离石学校计算机专业在哪里,山西吕梁计算机大专学校有哪些太重技校告诉您...

山西吕梁计算机大专学校有哪些太重技校告诉您。选择专业的***关键的因素是你自身的兴趣,其他只能参考,如果你能准确的知道自己的兴趣所在,未来的职业所选,那么只需要一招就可以吃遍天。相信我,一生为自己感兴趣的事情奋…

网络安全:六种常见的网络攻击手段

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

e4a html文本,E4A 怎么将剪贴版中的文本 粘贴到窗口的光标处啊?求个代码

满意答案百幻蝶V木桃2017.05.20采纳率:49% 等级:8已帮助:1710人■如何打开剪贴板查看器 当您从某个程序剪切或复制信息时,该信息会被移动到剪贴板并保留在那里,直到您清除剪贴板或者您剪切或复制了另一片信息。“剪…

电脑技巧:七款U盘修复软件

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

[deviceone开发]-do_SlideListView的简单示例

一、简介 利用提供的SlideListVIew实现那种cell可以滑动露出底部按钮的功能 主要组件:do_slidelistview 二、效果图 三、相关讨论 http://bbs.deviceone.net/forum.php?modviewthread&tid269 四、相关下载 https://github.com/do-project/code4do/tree/master/…

Git:Rebase和Merge之间的区别,看完这篇文章你就懂了!

社区中长期以来一直在争论我们应该使用Merge还是Rebase。有人会说Merge更好,因为它保留了最完整的工作历史。其他人则认为,Rebase变得更整洁,这使审阅者的生活更轻松,更高效。本文将解释合并和重新设置之间的区别是什么&#xff0…

干货:SQLServer数据库基于PowerDesigner逆向工程生成PDM文件

在日常的开发工程中,很多时候需要提供数据库设计文档,如果当时数据库设计没有采用PowerDesinger,到后期需要给客户提供数据库设计文档、后期项目运维就会比较麻烦,今天给大家介绍如何使用PowerDesigner的逆向工程生成SQLServer数据…

SQLServer基础:TOP、OFFSET-FETCH、SET ROWCOUNT用法笔记

今天给大家介绍一下TOP、OFFSET-FETCH、SET ROWCOUNT用法笔记,希望对大家能有所帮助!1、 TOP用法语法格式:TOP ( expression ) [ PERCENT ] [ WITH TIES ]expression:返回行数的数值表达式PERCENT:指返回的结果集行的百…

取本地数据_深入理解Kafka服务端之Follower副本如何同步Leader副本的数据

一、场景分析Kafka采用的是主写主读的方式,即客户端的读写请求都由分区的Leader副本处理,那么Follower副本要想保证和Leader副本数据一致,就需要不断地从Leader副本拉取消息来进行同步。由于同一个分区的Leader副本和Follower副本分布在不同的…

SQLServer子查询相关知识笔记

今天给大家介绍以下SQLServer子查询相关知识,希望对大家能有所帮助!1、子查询概念介绍子查询可以嵌套在SELECT、INSERT、UPDATE、DELETE语句或其他子查询语句中的查询,子查询一般作为查询中间结果集角色,子查询也称为内部查询或内…

软件:推荐八款电脑实用软件,你都用过吗?

今天给大家推荐八款电脑非常实用的软件,希望对大家能有所帮助!1、Audio Hijack Pro一款Mac 上的录音软件。它比较强大的功能是可以录制多个应用的声音,然后组合成一个结果,然后输出。2、快贴一个跨平台剪切板同步软件。你只需要简…

硬件:开机如何进BIOS,U盘启动快捷键一键查询

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

强制关机对电脑的伤害你有必要了解一下

不管你的电脑新旧与否,我想大家肯定都遇到过死机、卡顿无反应的情况吧,这个时候无论是电脑高手还是萌新小白同场都会采用一个相同的解决方案,对,那就是直接关机。 当然遇到这种情况,长按电源键10秒强制关机&#xff0c…