SQL Server 数据库:使用 SQL 创建、修改和删除数据库
什么是数据库?
数据库是表、视图、存储过程、触发器、函数等对象的集合。
考虑一下现实生活中的几个例子:
- 我们有放书的书柜,
- 我们居住的地方就有家,
- 我们有停车场,车辆停放在那里,例子不胜枚举。
类似地,我们有数据库,它是所有相互关联的表、视图、存储过程等的所在地。
从技术上讲,数据库以井然有序的方式存储数据,以便于访问和检索。在 SQL服务器,有两种类型的数据库:
- 系统数据库:安装 SQL Server 时会自动为您创建系统数据库。它们在服务器中起着至关重要的作用,尤其是在确保数据库对象正确运行方面。SQL Server 系统数据库的示例包括:Master、MSDB、Model、Tempdb、Resource
- 用户数据库: 用户数据库是由像您一样被授予创建数据库权限的数据库用户创建的
创建数据库的规则
首先,我们需要了解创建新数据库的基本规则:
- 数据库名称在 SQL Server 实例内必须是唯一的。
- 数据库名称最多可包含 128 个字符。
- CREATE DATABASE 语句必须在自动提交模式下运行。

有两种方法可以在 SQL 服务器中创建数据库。
- SQL Server Management Studio中
- 事务处理SQL
如何在 SQL Server Management Studio 中创建数据库
以下是创建数据库的分步过程 SQL 服务器管理工作室:
步骤1) 在“对象资源管理器”窗口中右键单击“数据库”,然后选择“新建数据库”。
步骤2) 下面将出现“新数据库”屏幕。输入“数据库名称”。请注意:“逻辑名称”列将自动填充:
- Edu | 文件类型:行和文件组:PRIMARY
- Edu_log | 文件类型:LOG 和文件组:“不适用”
这里:
A)Edu | 文件类型:行和文件组:PRIMARY 是 .mdf 文件
B) Edu_log | 文件类型:LOG 和文件组:“不适用”是 .ldf 文件
步骤3) (可选)对于更复杂的设置,我们可以导航到“选项”和“文件组”。在初学者级别,从常规选项卡创建数据库就足够了。
步骤4) 点击“添加”。
结果: ‘Edu’ 数据库已创建。
我们可以扩展数据库 - “Edu”,它将包含表、视图等。这些最初是空白的,直到用户创建新的表、视图等。
查看源查询:
您可以按如下方式查看新创建的“Edu”数据库的源查询:导航:右键单击数据库名称>脚本数据库为>创建到>新查询编辑器窗口。
查询窗口:
创建脚本:
USE [master] GO CREATE DATABASE [Edu] CONTAINMENT = NONE ON PRIMARY ( NAME = N'Edu', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB ) LOG ON ( NAME = N'Edu_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
使用 T-SQL 创建数据库
另一种方法是编写 T-SQL 查询来创建数据库并执行它。
让我们看一下最简单的数据库创建 T-SQL 查询。
语法:
CREATE DATABASE <Database_name>
查询:
CREATE DATABASE [Edu_TSQL_file]
点击“执行”
结果: 我们可以在 SQL 对象资源管理器中看到创建的 Edu_TSQL。
让我们看一下何时需要使用 .mdf 和 .ldf 文件创建数据库。在这里,我们可以将位置作为查询的隐式部分。
语法:
CREATE DATABASE database_name [ CONTAINMENT = { NONE | PARTIAL } ] [ ON [ PRIMARY ] <filespec> [ ,...n ] [ , <filegroup> [ ,...n ] ] [ LOG ON <filespec> [ ,...n ] ] ];
查询:
CREATE DATABASE [Edu_TSQL_file] CONTAINMENT = NONE ON PRIMARY ( NAME = N'Edu_TSQL_file', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB ) LOG ON ( NAME = N'Edu_TSQL_file_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
如何修改数据库
与创建数据库查询类似,我们也可以更改数据库。我们可以重命名数据库名称、更改文件位置和设置等。
修改新数据库的基本规则:
- ALTER DATABASE 语句必须在自动提交模式下运行。
- 在显式或隐式事务中不允许执行 ALTER DATABASE。
有两种方法可以更改 SQL 服务器中的数据库。
- SQL Server Management Studio中
- Transact-SQL。
如何在 SQL Server Management Studio 中更改数据库
以下是在 SQL Server Management Studio 中更改数据库的步骤:
让我们尝试改变我们预先创建的数据库的名称“Edu”。
步骤 1)重命名数据库
右键单击数据库名称。单击“重命名”。
步骤2)输入新的数据库名称
数据库名称将可编辑。输入新名称并按 Enter。
结果: 数据库现已从“Edu”重命名为“Edu_Alter”。
使用 Transact-SQL 更改数据库
现在让我们使用 T-SQL 来修改数据库
语法:
ALTER DATABASE <Databse_name> MODIFY NAME = <New Name>
查询:
ALTER DATABASE Edu_TSQL MODIFY NAME = Edu_TSQL_Alter;
单击“执行”运行上述查询。
结果: 数据库现已从“Edu_TSQL”重命名为“Edu_TSQL_Alter”。
一般语法:
ALTER DATABASE { database_name | CURRENT } { MODIFY NAME = new_database_name | COLLATE collation_name | <file_and_filegroup_options> | SET <option_spec> [ ,...n ] [ WITH <termination> ] | SET COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 | 90 } } ;
更改 .mdf/.ldf 文件名
查询:
Alter DATABASE Edu_TSQL_Alter; MODIFY FILE ( NAME = Edu_TSQL, NEWNAME = Edu_TSQL_newName );
更改 .mdf/.ldf 文件位置
查询:
Alter DATABASE Edu_TSQL_Alter; MODIFY FILE ( NAME = Edu_TSQL_NewName, FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\New_File\Edu_TSQL_log.ldf' );
删除数据库
有两种方法可以删除 SQL 服务器中的数据库。
- SQL Server Management Studio中
- Transact-SQL。
如何在 SQL Server Management Studio 中删除数据库
以下是在 SQL Server Management Studio 中删除数据库的过程:
让我们尝试删除我们预先创建的数据库“Edu_Alter”。
步骤1) 右键单击数据库。单击“删除”,然后单击“确定”。
结果: ‘Edu_Alter’ 已从‘对象资源管理器’数据库列表中删除。
使用 Transact-SQL 删除数据库
让我们尝试删除我们预先创建的数据库“Edu_TSQL_Alter”。
语法:
DROP DATABASE <Databse_name>
查询:
USE master; GO DROP DATABASE Edu_TSQL_Alter; GO
单击“执行”运行上述查询。
结果: 'Edu_TSQL_Alter' 已从‘对象资源管理器’数据库列表中删除。
在 SQL Server 中恢复数据库
您可以通过恢复之前备份的数据库来创建数据库。可以通过运行 restore database 命令来完成,该命令采用以下语法:
restore Database <database name> from disk = '<Backup file location + filename>
查询应该在查询窗口内执行,就像我们之前的命令一样。例如:
restore database Edu from disk = 'C:\Backup\Edu_full_backup.bak'
您也可以使用 GUI 导航:右键单击数据库>恢复数据库>设备>导入文件>单击确定。
总结
- 我们可以使用 SQL 管理 GUI 和 T-SQL 执行所有这三个操作;创建、更改和删除数据库。
- SQL Server 实例上最多可以指定 32,767 个数据库。
- 系统数据库无法被删除。
- 创建、修改和删除:所有操作均不区分大小写。我们可以使用大写和小写作为语法。