--- title: "03-数据库的管理" created: 2025-11-25 tags: - 项目筑基 --- # 数据库的管理 开始实操 ## 方法 ### SSMS(SQL Sever Management Studio) ![[image-c6957033.png]] ### SQL语言 数据查询语言(Data Query Language,DQL): 按一定的查询条件从数据库对象中检索符合条件的数据。 数据定义语言(Data Definition Language,DDL): 用于定义数据的逻辑结构以及数据项之间的关系。 数据操纵语言(Data Manipulation Language,DML): 用于更改数据库,包括增加新数据、删除旧数据、修改已有数据等。 数据控制语言(Data Control Language,DCL): 用于控制其对数据库中数据的操作,包括基本表和视图等对象的授权、完整性规则的描述、事务开始和结束控制语句等。 ### T-SQL(Transact-SQL) 对SQL的扩展主要包含如下3个方面: 增加了流程控制语句。 加入了局部变量、全局变量等许多新概念,可以写出更复杂的查询语句。 增加了新的数据类型,处理能力更强。 ## 视图(组成) ![[image-99f4ac65.png]] ![[image-2443b912.png]] (没有主数据文件就不能有日志文件) ## 数据库的创建 (只用T-SQL语句的方法) ### 单条语句建 ![[image-1ee24266.png]] ![[image-a8ab498d.png]] ### 指定地址建 ![[image-77a54d65.png]] (ON PRIMARY 可以省略 默认在这个地方) ![[image-1aff0ea0.png]] 注意点: 关键词可以用小写,但用大写比较美观 逻辑名称要与物理名称一致(直接拷贝下来) 只有PRIMARY中的第一个为.mdf 其他都是.ndf 日志文件全是.ldf 日志文件不写的时候 也会自动生成一个(日志文件必定有一个或一个以上) 先打两个括号再回车输入内容 第二行先打个空格 对齐 美观 除最后一行外,基本要加逗号(注意中英文输入法) 引用地址的地方是英文模式下的单引号 引用地址时 直接打开文件夹拷贝 以免出错 可以多次打开文件夹进行观察 名称变化 ![[image-563eec79.png]] ### 限制值建 ![[image-712d5a77.png]] ON不能省略 只能省略PRIMARY ![[image-67bcce42.png]] SIZE 初始大小 MAXSIZE 最大大小 FILEGROWTH 增长速度(可以为常数也可以为分数) SIZE\MAXSIZE\FILEGROWTH属性不带单位的时候默认是MB,如果不是MB的话要带单位。 ### 初始化日志文件 ![[image-f5277468.png]] ![[image-9daea108.png]] 基本同理 注意要加LOG ON ![[image-26d14196.png]] ### 利用文件组知识 ![[image-f2445afd.png]] ``` CREATE DATABASE 复习4 ON PRIMARY (NAME=复习4_主夹主, FILENAME='D:\SQL\复习4_主夹主.mdf', SIZE=5, MAXSIZE=100, FILEGROWTH=5% ), (NAME=复习4_主夹次1, FILENAME='D:\SQL\复习4_主夹次1.ndf', SIZE=5, MAXSIZE=100, FILEGROWTH=5% ), (NAME=复习4_主夹次2, FILENAME='D:\SQL\复习4_主夹次2.ndf', SIZE=5, MAXSIZE=100, FILEGROWTH=5% ), FILEGROUP 次文件夹1 (NAME=复习4_次夹次1, FILENAME='D:\SQL\复习4_次夹次1.ndf', SIZE=5, MAXSIZE=100, FILEGROWTH=5% ), (NAME=复习4_次夹次2, FILENAME='D:\SQL\复习4_次夹次2.ndf', SIZE=5, MAXSIZE=100, FILEGROWTH=5% ), FILEGROUP 次文件夹2 (NAME=复习4_次2夹次1, FILENAME='D:\SQL\复习4_次2夹次1.ndf', SIZE=5, MAXSIZE=100, FILEGROWTH=5% ), (NAME=复习4_次2夹次2, FILENAME='D:\SQL\复习4_次2夹次2.ndf', SIZE=5, MAXSIZE=100, FILEGROWTH=5% ) LOG ON (NAME=复习4_log1, FILENAME='D:\SQL\复习4_log1.ldf', SIZE=5, MAXSIZE=25, FILEGROWTH=5 ), (NAME=复习4_log2, FILENAME='D:\SQL\复习4_log2.ldf', SIZE=5, MAXSIZE=25, FILEGROWTH=5 ) ``` ![[image-3e6432cb.png]] ![[image-e740f94d.png]] ![[image-db07c1ca.png]] 注意事项: 可以在一个文件组里插入多个文件 同时也可以建立多个文件组 里面也能有多个文件 但是只有主文件组里的主文件是mdf 其他添加的一律为ndf 日志文件也可以不止一个 都是ldf 语法上有一个注意的地方 一个文件组里面 每个两个文件间的括号 ),( 之间需要逗号隔开 两个不同的文件组之间同样需要逗号隔开 但是在日志文件的LOG ON前面是不需要逗号的 无论前面跟着的是主文件组还是次文件组 日志文件里面的每个文件又需要逗号隔开 总之 除了LOG ON上面不需要逗号 其他都要逗号 ## 数据库的修改 打句招呼 ALTER DATABASE (名字) 记几个单词 Alter 改变 Modify 纠正、修改 Add 添加 Remove 去除 Default 系统默认值 Drop 丢失 ### 修改数据库名称 ![[image-e07ae96d.png]] ![[image-357c5036.png]] ### 添加操作 #### 添加新文件 ![[image-79fd2786.png]] 默认是在PRIMARY里面的 ![[image-b2ff3587.png]] #### 添加新文件组并添加文件 ![[image-08578d4f.png]] ![[image-58a5aa91.png]] ![[image-d480f6e1.png]] 用TO FILEGROUP指定要加入某个文件组 #### 添加新日志文件 日志文件不属于任何文件组 不适用TO FILEGROUP的写法 ![[image-0098a4a0.png]] ![[image-6bc080be.png]] 直接用ADD LOG TILE添加 具体的括号里的语法与创建时一致 添加文件时也可以去限制三值 这里省略了 ### 修改数据库内的文件名 MODIFY FILE() 三种类型文件都能改 记得写逗号! ![[image-2aaa144f.png]] ![[image-cc90b1b1.png]] ![[image-021ccbe3.png]] ![[image-589aab55.png]] ![[image-132d198a.png]] ### 删除文件 REMOVE FILE (名字) #### 删除一个新增文件 ![[image-e205b4d3.png]] 当属性一栏打开的时候 是不能删除的 因为正在用 ![[image-f1cdf740.png]] #### 试试同时删多个文件 ![[image-58b9b8f2.png]] 不太可行 只能一个一个来 #### 试试删除主数据文件和主日志文件 可不可以删主数据文件和主日志文件? 好像说过 数据库有且只有一个主数据文件 和至少一个日志文件 ![[image-bab128bb.png]] ![[image-f259816d.png]] 还是得有点原则的 ### 更改默认文件组 ALTER DATABASE (数据库名字) MODIFY FILEGROUP (文件组名称)DEFAULT 原: ![[image-136aad90.png]] 修改: ![[image-399291fe.png]] 现: ![[image-339d79c7.png]] ## 删除数据库 DROP DATABASE 1, 2 删除不同于改名 可以同时删除多个 ### 删除一个数据库 删除前: ![[image-c70280ec.png]] 进行删除操作 ![[image-9cd4c846.png]] 删除后 ![[image-a9e232a5.png]] ### 批量删除数据库 ![[image-b91c7983.png]] ![[image-51b66b31.png]] --- ⬅️ [[02-数据库的管理技术及其发展|02-数据库的管理技术及其发展]] 🏠 [[00-数据库|00-数据库]] ➡️ [[04-设计数据库|04-设计数据库]]