第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 文件组名:指定其后的辅数据文件属于该自定义文件组。
  • 文件单位:默认单位为 MB;未指定 MAXSIZE 或用 UNLIMITED 时,文件大小仅受物理存储空间限制。
  • 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
相关推荐
YOU OU10 小时前
Redis基础常识与命令
数据库·redis·缓存
Scott9999HH10 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社11 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海11 小时前
python 列表、元组、集合和字典
开发语言·python
克里斯蒂亚诺更新11 小时前
ruoyi角色权限的对应关系
笔记
萧瑟余晖12 小时前
JDK 26 新特性详解
java·开发语言
Database_Cool_12 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
爱写代码的阿森13 小时前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
马优晨13 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
Database_Cool_13 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql