第3章:复习篇——第1节:创建和管理数据库

目录

一、使用datagrip软件创建数据库

1.数据库分类

2.数据库的文件组成

(1)数据库文件

(2)数据库文件组

二、使用T-SQL语句创建数据库

1.组成

2.语法格式与说明

(1)格式

[(2)T-SQL 语法说明](#(2)T-SQL 语法说明)

(3)参数说明

3.实战训练

(1)要求

(2)解析

三、数据库管理

1.新增文件组与文件

(1)新增文件组

(2)新增辅助数据文件、事务日志文件

(3)示例

2.删除文件组与文件

(1)新增文件组

(2)新增辅助数据文件、事务日志文件

(3)示例

3.修改文件组与文件

(1)格式

(2)示例

4.重命名用户数据库

[(1)使用alter database语句](#(1)使用alter database语句)

(2)调用系统内置存储过程sp_renamede

(3)示例

5.删除用户数据库

(1)格式

(2)示例


一、使用datagrip软件创建数据库

1.数据库分类

复制代码
-----数据库
    |-----系统数据库
    |   |
    |   |-----主数据库master
    |   |-----模板数据库model
    |   |-----msdb数据库
    |   |-----临时数据库tempdb
    |
    |-----数据库快照(用户数据库)
        |
        |-----eg:SCC
        |-----eg:Class

2.数据库的文件组成

(1)数据库文件

|--------|------|---------------------------|-----------|
| 文件名称 | 扩展名 | 作用 | 允许个数 |
| 主数据文件 | .MDF | 用于存放数据,是所有数据库文件的起点 | 仅有1个 |
| 辅助数据文件 | .NDF | 存放数据,存储主数据文件未存储的所有其他数据和对象 | 可有可无,可有多个 |
| 事务日志文件 | .LDF | 记录数据库中所有的事物和由这些事务引起的数据库变化 | 至少1个 |

(2)数据库文件组

①分类:主文件组primary与用户自定义文件组

②注意:只能用于一个数据库;主数据文件只属于primary文件组;文件组不适用于事务日志文件




二、使用T-SQL语句创建数据库

1.组成

  • 数据查询语言(DQL)
  • 数据操作语言(DML)
  • 事务控制语言(TCL)
  • 数据控制语言(DCL)
  • 数据定义语言(DDL)
  • 指针控制语言(CCL)

2.语法格式与说明

(1)格式

复制代码
CREATE DATABASE 数据库名
ON [ PRIMARY ]
( NAME= '数据文件的逻辑名称' ,
  FILENAME= '文件的路径和文件名' ,
  SIZE=文件的初始大小 ,
  MAXSIZE=文件的最大容量|UNLIMITED ,
  FILEGROWTH=文件的每次增长量 ) [ , ... n]
[FILEGROUP] 文件组名 ( ),( )
LOG ON
( NAME='事务日志文件的逻辑名称',
  FILENAME='文件的路径和文件名',
  SIZE=文件的初始大小,
  MAXSIZE=文件的最大容量|UNLIMITED,
  FILEGROWTH=文件的每次增长量 ) [ , ... n]

(2)T-SQL 语法说明

  • [ ]中的内容可用省略,省略时系统取值为默认值。
  • [,...n]表示的内容可用重复书写 n 次,但必须用逗号隔开。
  • |表示相邻的前后两项只能任取一项。
  • 一条语句可用分成多行书写,但是多条语句不允许写在一行。
  • 命令一旦设计成功,可以反复使用。
  • T-SQL 语句书写时不区分大小写,一般系统保留字大写,用户自定义的名称可用小写。

(3)参数说明

  • 数据库名称:新创建的数据库的名称,在 SQL Server 实例中必须唯一,且符合标识符规定。
  • ON:根据后面的参数创建数据库的主数据文件(.mdf)或辅数据文件(.ndf)。
  • LOG ON:根据后面的参数创建事务日志文件;省略时 SQL Server 自动创建一个日志文件。ON 和 LOG ON 引出的文件可以是多个,多个文件的小括号之间用英文逗号隔开。
  • PRIMARY:指定后续数据文件属于主文件组 PRIMARY;省略时,后续数据文件默认属于主文件组 PRIMARY。
  • FILEGROUP\] 文件组名:指定其后的辅数据文件属于该自定义文件组。

  • FILEGROWTH:设置文件每次增加的容量,单位可以是 MB 或 %;设置为 0 时表示文件不增长。
  • 必填项:无论创建哪种数据库文件,小括号内的NAMEFILENAME不能省略;其他(SIZE、MAXSIZE、FILEGROWTH)可省略,省略时按系统默认属性值设置。

3.实战训练

(1)要求

创建learn数据库,现在要求使用datagrip软件,按照下表使用T-SQL语句进行创建

(2)解析

复制代码
CREATE DATABASE learn
ON 
-- 主文件组(PRIMARY)及主数据文件
PRIMARY
(
    NAME = 'Goods_data1',
    FILENAME = 'D:\DBG\Goods_data1.mdf',
    SIZE = 20MB,
    MAXSIZE = 2000MB,
    FILEGROWTH = 64MB
),
-- 自定义文件组(GGROUP)及辅数据文件
FILEGROUP GGROUP
(
    NAME = 'Goods_data2',
    FILENAME = 'D:\DBG\Goods_data2.ndf',
    SIZE = 20MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 10%
)
-- 日志文件配置
LOG ON
(
    NAME = 'Goods_log1',
    FILENAME = 'D:\DBG\Goods_log1.ldf',
    SIZE = 8MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 64MB
),
(
    NAME = 'Goods_log2',
    FILENAME = 'D:\DBG\Goods_log2.ldf',
    SIZE = 8MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 64MB
);



三、数据库管理

1.新增文件组与文件

(1)新增文件组

复制代码
ALTER DATABASE 数据库名
ADD FILEGROUP 文件组名

(2)新增辅助数据文件、事务日志文件

复制代码
ALTER DATABASE 数据库名
ADD [LOG] FILE
( 
    NAME= 文件逻辑名称,
    FILENAME='文件的路径和文件名',
    SIZE= 文件的初始大小,
    MAXSIZE= 文件的最大容量|UNLIMITED,
    FILEGROWTH= 文件的每次增长量 
)

(3)示例

在 SCC 数据库中新增名为 newgroup 的文件组,并为该文件组添加 1 个辅数据文件 SCC_data3.ndf,同时为数据库添加一个事务日志文件 SCC_log3.ldf,文件属性都使用系统默认设置。

复制代码
-- 新增文件组newgroup
Alter Database SCC
Add Filegroup newgroup

-- 新增辅数据文件并指定到newgroup文件组
Alter Database SCC
Add File
(
    name= SCC_data3,
    filename='e:\DB\SCC_data3.ndf'
)
to Filegroup newgroup

-- 新增事务日志文件
Alter Database SCC
Add log File
(
    name= SCC_log3,
    filename='e:\DB\SCC_log3.ldf'
)

2.删除文件组与文件

(1)新增文件组

复制代码
ALTER DATABASE 数据库名
REMOVE FILEGROUP 文件组名

(2)新增辅助数据文件、事务日志文件

复制代码
ALTER DATABASE 数据库名
REMOVE FILE 逻辑文件名

(3)示例

删除 SCC 数据库中的 newgroup 文件组

复制代码
-- 删除辅数据文件SCC_data3
Alter Database SCC
Remove File SCC_data3

-- 删除文件组newgroup
Alter Database SCC
Remove Filegroup newgroup

3.修改文件组与文件

(1)格式

复制代码
ALTER DATABASE 数据库名
MODIFY FILE
( 
    NAME= '文件的逻辑名称',
    SIZE=文件的初始大小,
    MAXSIZE=文件的最大容量|UNLIMITED,
    FILEGROWTH=文件的每次增长量 
)

(2)示例

扩充 SCC 数据库的数据文件 SCC_data1(初始 10MB→目标 20MB)、事务日志文件 SCC_log1(初始 8MB→目标 16MB)。

复制代码
-- 扩充SCC_data1文件容量至20MB
Alter Database SCC
Modify file
( 
    NAME='SCC_data1 ',
    SIZE=20MB
)

-- 扩充SCC_log1文件容量至16MB
Alter Database SCC
Modify file
( 
    NAME='SCC_log1 ',
    SIZE=16MB
)

4.重命名用户数据库

(1)使用alter database语句

复制代码
ALTER DATABASE 原数据库名
MODIFY NAME=新数据库名

(2)调用系统内置存储过程sp_renamede

复制代码
SP_RENAMEDB 原数据库名, 新数据库名

(3)示例

将数据库 Test 重命名为 NewTest

复制代码
ALTER DATABASE Test
MODIFY NAME=NewTest

SP_RENAMEDB Test, NewTest

5.删除用户数据库

(1)格式

复制代码
DROP DATABASE 数据库名

(2)示例

删除名为的 Books 的数据库

复制代码
DROP DATABASE Books
相关推荐
clorisqqq37 分钟前
人工智能现代方法笔记 第1章 绪论(1/2)
人工智能·笔记
charlie11451419138 分钟前
嵌入式现代C++教程: 构造函数优化:初始化列表 vs 成员赋值
开发语言·c++·笔记·学习·嵌入式·现代c++
wjs202441 分钟前
Bootstrap5 消息弹窗
开发语言
资生算法程序员_畅想家_剑魔1 小时前
Kotlin常见技术分享-02-相对于Java 的核心优势-协程
java·开发语言·kotlin
IDC02_FEIYA1 小时前
SQL Server 2025数据库安装图文教程(附SQL Server2025数据库下载安装包)
数据库·windows
IT=>小脑虎1 小时前
C++零基础衔接进阶知识点【详解版】
开发语言·c++·学习
辞砚技术录1 小时前
MySQL面试题——联合索引
数据库·面试
nbsaas-boot1 小时前
Go vs Java 的三阶段切换路线图
java·开发语言·golang
码农小韩2 小时前
基于Linux的C++学习——指针
linux·开发语言·c++·学习·算法
微露清风2 小时前
系统性学习C++-第十九讲-unordered_map 和 unordered_set 的使用
开发语言·c++·学习