SQL Server 数据库:SQL 中创建、修改和删除数据库
什么是数据库?
数据库是对象的集合,例如表、视图、存储过程、触发器、函数等。
举几个现实生活中的例子
- 我们有放书的书架,
- 我们有居住的家,
- 我们有停放车辆的停车场,等等不胜枚举。
同样,我们有数据库,它是一种存放我们所有相互关联的表、视图、存储过程等的“家”。
从技术上讲,数据库以一种有组织的方式存储数据,以便于访问和检索。在SQL Server中,数据库有两种类型:
- 系统数据库:系统数据库在安装 SQL Server 时会自动为您创建。它们在服务器中起着至关重要的作用,尤其是在确保数据库对象正确运行时。SQL Server 系统数据库的例子包括:Master、MSDB、Model、Tempdb、Resource
- 用户数据库:用户数据库是由像您这样的数据库用户创建的,这些用户被授予了创建数据库的权限。
创建数据库的规则
首先,我们需要了解创建新数据库的基本规则
- 数据库名称在 SQL Server 实例中必须是唯一的。
- 数据库名称最多可以包含 128 个字符。
- CREATE DATABASE 语句必须在自动提交模式下运行。
在 SQL Server 中创建数据库有 2 种方法。
- SQL Server Management Studio
- Transact-SQL
如何在 SQL Server Management Studio 中创建数据库
以下是在SQL Server Management Studio中创建数据库的步骤
步骤 1)在“对象资源管理器”窗口中右键单击“数据库”,然后选择“新建数据库”。
步骤 2)将出现“新建数据库”屏幕。输入“数据库名称”。请注意:“逻辑名称”列将自动填充为
- Edu | 文件类型:Rows 和文件组:PRIMARY
- Edu_log | 文件类型:LOG 和文件组:“不适用”
这里
A) Edu | 文件类型:Rows 和文件组: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 Server 中修改数据库有 2 种方法。
- 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 Server 中删除数据库有 2 种方法。
- 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 <database name> from disk = '<Backup file location + filename>
查询应在查询窗口中执行,就像之前的命令一样。例如
restore database Edu from disk = 'C:\Backup\Edu_full_backup.bak'
您也可以使用 GUI 导航:右键单击数据库 > 恢复数据库 > 设备 > 导入文件 > 单击确定。
摘要
- 我们可以使用 SQL Management GUI 和 T-SQL 来执行所有三个操作:创建、修改和删除数据库。
- SQL Server 实例最多可以指定 32,767 个数据库。
- 系统数据库不能被删除。
- 创建、修改和删除:所有操作都对大小写不敏感。我们可以使用大写和小写作为语法。