文章目录

  • 1 数据库分类
  • 2 用户数据库文件的组成
  • 3 数据库的创建
    • 3.1 创建一个主数据文件和一个日志文件
    • 3.2 创建多个数据文件和日志文件
  • 4 分离与附加数据库
    • 4.1 分离数据库
    • 4.2 附件数据库

1 数据库分类

数据库的类型分为:系统数据库用户数据库


2 用户数据库文件的组成

用户数据库物理文件的组成包括:数据库文件和日志文件。

数据库文件: .mdf(主数据文件)或.ndf(次要数据文件)。
日志文件: .ldf。

一个数据库必须且只能包含一个mdf,但可以包含多个ndf和ldf(至少一个)。


3 数据库的创建

3.1 创建一个主数据文件和一个日志文件

use master
go
--创建数据库
create database StudentManageDB
on primary
(name='StudentManageDB_data',--数据库文件的逻辑名filename='D:\DB\StudentManageDB_data.mdf',--数据库物理文件名(绝对路径)size=10MB,--数据库文件初始大小filegrowth=5MB --数据文件增长量
)
--创建日志文件
log on
(name='StudentManageDB_log',filename='D:\DB\StudentManageDB_log.ldf',size=5MB,filegrowth=2MB
)
go

go是批处理的标志,表示SQL Server将这些SQL语句编译为一个执行单元,提高执行效率。一般是将一些逻辑相关的业务操作语句放在同一批中,这完全由业务需求和代码编写者决定。
go是SQLServer的批处理命令,只有代码编辑器才能识别并处理,编辑其他应用程序就不能使用该命令,由于每个批处理之间是独立的,因此,在一个批处理出现错误时,并不会影响其他批处理中SQL代码的运行。

3.2 创建多个数据文件和日志文件


use master
go
--判断当前数据库是否存在
if exists(select * from sysdatabases where name='StudentManageDB' )
drop database StudentManageDB
go
--创建数据库
create database StudentManageDB
on primary
(name='StudentManageDB_data',--数据库文件的逻辑名filename='D:\DB\StudentManageDB_data.mdf',--数据库物理文件名(绝对路径)size=10MB,--数据库文件初始大小filegrowth=5MB --数据文件增长量
),
(name='StudentManageDB_data1',filename='D:\DB\StudentManageDB_data1.ndf',size=10MB,filegrowth=5MB
)
--创建日志文件
log on
(name='StudentManageDB_log',filename='D:\DB\StudentManageDB_log.ldf',size=5MB,filegrowth=2MB
),
(name='StudentManageDB_log1',filename='D:\DB\StudentManageDB_log1.ldf',size=5MB,filegrowth=2MB
)
go

drop删除数据库后将不可恢复,使用要谨慎!

创建多个数据库的另一个示例:

--首先要指向操作的数据库use master
go
if exists(select * from sysdatabases where name='CourseManageDB')
drop database CourseManageDB
go
--创建数据库
create database CourseManageDB
on primary
(--数据库的逻辑文件名(就是系统用的,必须唯一)name='CourseManageDB_data1',--数据库物理文件名(绝对路径)filename='D:\DB\CourseManageDB_data1.mdf',--主数据文件名--数据库初始文件大小(一定要根据你的实际生产需求来定)size=20MB,--数据文件增值量(也要参考文件本身大小)filegrowth=1MB
)
,
(     name='CourseManageDB_data2',   filename='D:\DB\CourseManageDB_data2.ndf',--次要数据文件名  size=20MB,filegrowth=1MB
)log on
(name='CourseManageDB_log',  filename='D:\DB\CourseManageDB_log.ldf',--日志文件名  size=10MB,filegrowth=1MB
)
go

4 分离与附加数据库

4.1 分离数据库

在早期版本的数据库系统中,当数据库服务运行中通常情况下无法直接移动和复制数据库文件。所谓的分离数据库就是将正在使用的数据库文件解除服务的限制。

语法如下:

exec sp_detach_db @dbname = 数据库名称

4.2 附件数据库

附加数据库就是将指定位置的数据库文件加入到数据库文件中并运行。分离出去的数据库只有附加后,用户才能通过DBMS操作数据。

语法如下:

exec sp_attach_db @dbname=数据库名称,
@filename1=数据库主文件物理文件路径,
@filename2=数据库日志文件物理文件路径

示例代码:

--分离数据库
exec sp_detach_db @dbname=StudentManageDB
--附加数据库方法1
exec sp_attach_db @dbname=StudentManageDB,
@filename1='E:\StudentManageDB_data.mdf',
@filename2='E:\StudentManageDB_log.ldf'--附加数据库方法2
exec sp_attach_db @dbname=StudentManageDB,
'E:\StudentManageDB_data.mdf',
'E:\StudentManageDB_log.ldf'

参考资料:

  1. .NET/C#工控上位机VIP系统学习班【喜科堂互联教育】

SQLServer中数据库的创建相关推荐

  1. docker内存阀值_网易蜂巢的Docker容器中数据库的创建和迁移教程

    创建数据库实例RDS 服务管理入口位于蜂巢首页的数据库服务选项.点击「数据库」,即可显示你的所有 RDS 实例列表,包括普通实例和只读实例.你可以在该界面进行实例创建.安全组管理等操作,此外还可以对具 ...

  2. educoder 数据库系统概论2022 SQLServer 储存过程的创建与使用

    任务描述 本关任务:学习 SQLServer 中存储过程的创建和使用. 相关知识 存储过程提供了很多 T-SQL 语言没有的高级特性,其传递参数和执行逻辑的能力,为处理各种复杂任务提供了支持.并且,由 ...

  3. 数据库 SQLServer中GUID用法介绍

    数据库 SQLServer中GUID用法介绍 1.NEWID用法 NEWID()作用是生成无顺序的GUID字符串.用法如下: SELECT NEWID() --生成36位的GUID SELECT RE ...

  4. 如何在SQLServer中处理每天四亿三千万记录的(数据库大数据处理)

    http://blog.csdn.net/wybshyy/article/details/52064289 首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是 ...

  5. 如何将oracle数据库中的表结构导入到sqlserver中,Oracle转换成SqlServer数据库的步骤...

    1 背景 ITM系统目前支持MysqL.Oracle数据库,由于现在需要和CA产品进行结合,用CA产品的采集功能进行数据采集,因此需要使用CA产品的sqlServer数据库,为了使得系统支持sqlse ...

  6. SqlServer中获取所有数据库,所有表,所有字段

    SqlServer中获取所有数据库,所有表,所有字段 原文:SqlServer中获取所有数据库,所有表,所有字段 一.获取所有数据库 select * from master.dbo.SysDatab ...

  7. 从sqlserver中数据写入mysql_从SQL server数据库导入Mysql数据库的体验

    起原:网海拾贝  ,因任务需要,要将寄存在sqlserver数据库中的数据全部导入到mysql数据库中,在网上集合关连资料,找到两种体例,而今分袂谈谈对他 起原:网海拾贝 因任务需要,要将寄存在sql ...

  8. 数据库:SQLServer中GUID用法介绍

    今天给大家分享一下SQLServer中生成GUID的用法. 一.NEWID用法 NEWID()作用是生成无顺序的GUID字符串.用法如下: SELECT NEWID() --生成36位的GUIDSEL ...

  9. 数据库:SQLServer中in和 exists函数用法笔记

    今天给大家分享一下SQLServer中in和 exists 用法,希望能对大家有所帮助. 一.IN 用法 确定指定的值是否与子查询或列表中的数据相匹配. 1.1 语法格式 test_expressio ...

最新文章

  1. rpm、yum、编译安装轻松管理centos7程序包
  2. 安装python3.6.1_CentOS 7 安装Python3.6.1 多版本共存
  3. OpenLayers 3+Geoserver+PostGIS实现点击查询
  4. Java三大特性之封装
  5. Operation not allowed after ResultSet closed--操作mysql数据库
  6. 阅读开源源码的正确姿势建议
  7. 发现一个好的索引-阳神
  8. 基于各种基础数据结构的SPFA和各种优化
  9. 中国IT行业盛行,互联网行业早已饱和!程序员“过多”是主要原因?
  10. C#操作 excel表格
  11. MyBatis自学(1):MyBatis概述
  12. java content-length_为什么Content-Length HTTP头字段使用的值不是Java代码中给出的值?...
  13. bochs怎么运行Linux系统,Ubuntu上使用Bochs
  14. Android实战简易教程-第五十六枪(模拟美团客户端进度提示框)
  15. JPG插入GPS信息
  16. 微信小程序 - Vant weapp UI 框架环境搭建详细教程(Window)
  17. 使用throttlestop超频,解除锁频和温控
  18. 内网穿透、反向代理(ngrok服务器搭建)
  19. TP-Link WR340G+ 路由器桥接实践(2016年10月更新tplink新产品wifi中继器设备)
  20. C# 分析器错误消息: 未能加载类型“XXXX”2种情况解决

热门文章

  1. Ardino基础教程 12_感光灯
  2. STM32 基础系列教程 43 – SRAM
  3. GVIM的使用(动图指导,全网首发)
  4. 目前中关村在线上面的CPU排行情况
  5. 《HTML5 canvas开发详解(第2版)》——1.3 本书使用的基础HTML页面
  6. angularjs之browserTrigger
  7. 16、ASP.NET MVC入门到精通——MVC过滤器
  8. moa 35 批量删除
  9. Javascript中的对象和原型(一)(转载)
  10. 三层路由中限制VLAN间转发,但其他转发正常事例