SQL Server 2025 综合操作使用教程
第一部分:入门与准备工作
什么是 SQL Server?
SQL Server 是由微软开发的关系型数据库管理系统,它使用标准的 SQL 语言进行数据查询和管理,并提供了强大的数据存储、处理、分析和安全保护功能,SQL Server 2025 是一个里程碑式的版本,引入了诸多新特性,如 JSON 支持、行级安全、高级数据分析服务等。

环境准备:安装 SQL Server 2025
在开始之前,你需要安装 SQL Server,最常用的版本是 SQL Server Developer Edition,它功能齐全且免费,仅供开发、测试和学习使用。
安装步骤:
-
下载安装程序:
- 访问微软官方下载页面:SQL Server 2025 Developer Edition
- 下载 "SQL Server 2025 Developer Edition" 的 ISO 文件。
-
挂载 ISO 并运行安装器:
(图片来源网络,侵删)- 挂载下载的 ISO 文件,找到并运行
setup.exe。
- 挂载下载的 ISO 文件,找到并运行
-
选择安装类型:
- 在安装向导中,选择 “全新 SQL Server 独立安装”。
-
产品密钥:
- 选择 “指定免费版产品密钥”,然后输入
DEV2025(或者直接选择 Developer Edition,它本身就是免费的)。
- 选择 “指定免费版产品密钥”,然后输入
-
接受许可条款:
勾选“我接受许可条款”,然后点击“下一步”。
(图片来源网络,侵删) -
功能选择:
- 这是关键步骤,勾选你需要安装的功能,对于初学者,建议至少选择:
- 数据库引擎服务:这是 SQL Server 的核心,负责数据的存储、处理和安全管理。
- 管理工具 - 基本配置工具:包含 SQL Server Management Studio (SSMS),这是我们用来管理数据库的主要图形界面工具。
- 客户端工具连接:提供命令行工具等连接能力。
- 你也可以选择 “全选”,但这会占用较多磁盘空间。
- 这是关键步骤,勾选你需要安装的功能,对于初学者,建议至少选择:
-
配置实例:
- 实例 ID:默认是
MSSQLSERVER,这是默认实例,如果不确定,保持默认即可。 - 服务器配置:为服务账户设置用户名和密码,对于开发环境,可以使用内置的
NT AUTHORITY\NETWORK SERVICE或Local System账户。
- 实例 ID:默认是
-
数据库引擎配置:
- 身份验证模式:
- Windows 身份验证模式:仅使用 Windows 用户账户登录,更安全,推荐用于生产环境。
- 混合模式:同时允许 Windows 身份验证和 SQL Server 身份验证(即使用用户名和密码
sa登录)。初学者建议选择混合模式,方便后续连接。
- 指定
sa登录密码:如果选择了混合模式,必须为sa用户设置一个强密码。 - 数据目录:可以修改数据库文件存放的位置,保持默认即可。
- 身份验证模式:
-
完成安装:
检查摘要信息,确认无误后点击“安装”,安装过程可能需要 15-30 分钟。
-
安装 SSMS:
- 如果在功能选择中没有安装 SSMS,你需要单独下载安装,下载地址:Download SQL Server Management Studio (SSMS)
- 安装过程非常简单,一路“下一步”即可。
连接到 SQL Server
安装完成后,打开 SQL Server Management Studio (SSMS)。
- 服务器类型:选择“数据库引擎”。
- 服务器名称:如果你的 SQL Server 是默认实例,输入 (点) 或
localhost或(local)都可以,如果是命名实例,格式为localhost\实例名。 - 身份验证:如果你设置了混合模式,选择“SQL Server 身份验证”,然后输入用户名
sa和你设置的密码。 - 点击“连接”。
连接成功后,你会看到一个类似资源管理器的界面,左侧是“对象资源管理器”,显示所有数据库、服务器对象等。
第二部分:核心操作与 T-SQL 语言
SQL Server 的操作主要通过 T-SQL (Transact-SQL) 语言完成,这是 SQL 的微软超集,我们将在 SSMS 的 查询编辑器 中编写和执行 T-SQL 语句。
创建和管理数据库
创建数据库
在查询编辑器中输入以下代码,然后点击“执行”按钮(或按 F5)。
-- 创建一个名为 MySchool 的新数据库
-- ON PRIMARY 指定主数据文件
-- LOG ON 指定日志文件
CREATE DATABASE MySchool
ON PRIMARY
(
NAME = MySchool_Data,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\MySchool_Data.mdf', -- 注意路径可能需要根据你的安装情况修改
SIZE = 5MB,
MAXSIZE = 50MB,
FILEGROWTH = 5MB
)
LOG ON
(
NAME = MySchool_Log,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\MySchool_Log.ldf', -- 注意路径
SIZE = 1MB,
MAXSIZE = 20MB,
FILEGROWTH = 1MB
);
GO
提示:
GO是批处理分隔符,表示前面的语句作为一个批次执行。
使用数据库
在对某个数据库进行操作前,必须先“使用”它。
USE MySchool; GO
删除数据库
警告:此操作不可逆,会永久删除数据库及其所有数据!
USE master; -- 删除数据库前,需要切换到 master 或其他数据库 GO DROP DATABASE MySchool; GO
创建和管理表
表是数据库中存储数据的基本结构,我们需要先定义表的列(字段),包括列名、数据类型、是否允许为空等。
创建表
USE MySchool;
GO
-- 创建 Students 表
CREATE TABLE Students
(
StudentID INT PRIMARY KEY, -- 主键,唯一标识每一行
StudentName NVARCHAR(50) NOT NULL, -- 不允许为空
Gender CHAR(2),
BirthDate DATE,
EnrollmentDate DATETIME DEFAULT GETDATE() -- 默认值为当前时间
);
GO
-- 创建 Courses 表
CREATE TABLE Courses
(
CourseID INT PRIMARY KEY,
CourseName NVARCHAR(100) NOT NULL,
Credits INT
);
GO
数据类型说明:
INT: 整数。NVARCHAR(n): 可变长度的 Unicode 字符串,能存储多国语言文字。CHAR(n): 定长字符串。DATE: 只存储日期。DATETIME: 存储日期和时间。PRIMARY KEY: 主键约束,确保列中的值是唯一的且不为空。NOT NULL: 约束,该列必须有值。DEFAULT: 为列设置默认值。
修改表结构
-- 向 Students 表添加一个 Email 列 ALTER TABLE Students ADD Email NVARCHAR(100); GO -- 删除 Email 列 ALTER TABLE Students DROP COLUMN Email; GO
删除表
DROP TABLE Courses; GO
数据操作语言
这是对表中数据进行增、删、改、查的核心操作。
插入数据
USE MySchool;
GO
-- 插入一行数据
INSERT INTO Students (StudentID, StudentName, Gender, BirthDate)
VALUES (1, '张三', '男', '2000-05-10');
-- 插入多行数据
INSERT INTO Students (StudentID, StudentName, Gender, BirthDate)
VALUES
(2, '李四', '女', '2001-08-22'),
(3, '王五', '男', '1999-12-03');
GO
-- 向 Courses 表插入数据
INSERT INTO Courses (CourseID, CourseName, Credits)
VALUES
(101, '数据库原理', 4),
(102, '计算机网络', 3);
GO
查询数据
查询是使用最频繁的操作。
-- 查询所有学生的所有信息 SELECT * FROM Students; -- 查询特定列 SELECT StudentName, BirthDate FROM Students; -- 使用 WHERE 子句进行条件查询 SELECT * FROM Students WHERE Gender = '女'; -- 使用 AND 和 OR 组合条件 SELECT * FROM Students WHERE Gender = '男' AND BirthDate > '2000-01-01'; -- 使用 ORDER BY 排序结果 SELECT * FROM Students ORDER BY BirthDate DESC; -- DESC 降序,ASC 升序(默认) -- 使用 TOP 限制返回行数 SELECT TOP 2 * FROM Students ORDER BY EnrollmentDate DESC;
更新数据
-- 将学号为 1 的学生的姓名改为 '张三丰' UPDATE Students SET StudentName = '张三丰' WHERE StudentID = 1; -- 更新多列 UPDATE Students SET Gender = '男', BirthDate = '2000-05-09' WHERE StudentID = 2; GO
警告:
UPDATE语句一定要带WHERE条件,否则会更新整个表的所有数据!
删除数据
-- 删除学号为 3 的学生记录 DELETE FROM Students WHERE StudentID = 3; -- 清空表(删除所有行,但保留表结构) -- TRUNCATE TABLE Students; GO
警告:
DELETE和TRUNCATE都会删除数据,但TRUNCATE更快且不记录日志,无法回滚,使用前务必谨慎!
第三部分:进阶功能
索引
索引类似于书籍的目录,可以极大地提高查询速度,主键和唯一约束会自动创建索引。
创建索引
-- 在 Students 表的 StudentName 列上创建一个非聚集索引 CREATE INDEX IX_Students_StudentName ON Students(StudentName); GO
视图
视图是一个虚拟表,其结果集由存储的查询定义,它简化了复杂查询,并可以隐藏底层表的结构。
创建和使用视图
-- 创建一个视图,显示所有女学生的姓名和学号 CREATE VIEW v_FemaleStudents AS SELECT StudentID, StudentName FROM Students WHERE Gender = '女'; GO -- 像查询普通表一样查询视图 SELECT * FROM v_FemaleStudents; GO
存储过程
存储过程是一组为了完成特定功能的预编译 SQL 语句集合,它可以接收参数、返回结果,并提高性能和安全性。
创建和使用存储过程
-- 创建一个存储过程,用于插入新学生
CREATE PROCEDURE sp_InsertStudent
@StudentID INT,
@StudentName NVARCHAR(50),
@Gender CHAR(2)
AS
BEGIN
INSERT INTO Students (StudentID, StudentName, Gender)
VALUES (@StudentID, @StudentName, @Gender);
SELECT '学生插入成功!' AS Message;
END;
GO
-- 执行存储过程
EXEC sp_InsertStudent @StudentID = 4, @StudentName = '赵六', @Gender = '男';
GO
触发器
触发器是一种特殊的存储过程,它在特定事件(如 INSERT, UPDATE, DELETE)发生时自动执行。
创建触发器示例
-- 创建一个触发器,防止删除学生记录
CREATE TRIGGER tr_PreventStudentDeletion
ON Students
FOR DELETE
AS
BEGIN
RAISERROR ('错误:不允许删除学生记录!', 16, 1);
ROLLBACK TRANSACTION; -- 回滚删除操作
END;
GO
-- 尝试删除学生,会发现操作被阻止
DELETE FROM Students WHERE StudentID = 1;
GO
第四部分:备份与恢复
数据安全至关重要,定期备份数据库是必须的。
备份数据库
在 SSMS 中,可以通过图形界面或 T-SQL 备份数据库。
使用 T-SQL 备份
-- 将 MySchool 数据库备份到文件
BACKUP DATABASE MySchool
TO DISK = 'C:\Backup\MySchool.bak'
WITH NAME = 'Full Database Backup', -- 备份集名称
DESCRIPTION = 'Full backup of MySchool database on 2025-10-27',
COMPRESSION, -- 压缩备份
STATS = 10, -- 每完成 10% 的备份就显示一条消息
CHECKSUM; -- 在备份数据时执行校验和
GO
恢复数据库
警告:恢复数据库会覆盖现有数据库!请务必先在测试环境中操作。
-- 从备份文件恢复数据库
RESTORE DATABASE MySchool
FROM DISK = 'C:\Backup\MySchool.bak'
WITH RECOVERY, -- 恢复数据库,使其可以正常使用
REPLACE; -- 如果数据库已存在,则替换它
GO
第五部分:学习资源与最佳实践
官方文档
- SQL Server 2025 文档:Microsoft Docs - SQL Server 2025
这是权威、最全面的学习资料,包含了所有函数、命令和功能的详细说明。
最佳实践
- 命名规范:为数据库、表、列、存储过程等使用清晰、一致的命名规范(如 PascalCase 或 snake_case)。
- 注释:为复杂的 SQL 代码和存储过程添加注释,方便自己和他人理解。
- 安全:
- 生产环境务必使用 Windows 身份验证 或强密码的 SQL 身份验证。
- 谨慎授予用户权限,遵循最小权限原则。
- 定期更新 SQL Server 和操作系统补丁。
- 性能:
- 为常用用于查询条件的列创建索引。
- 避免
SELECT *,只查询需要的列。 - 对大表进行分页查询时,使用
OFFSET-FETCH或WHERE+ORDER BY+TOP的组合。
- 备份策略:制定并执行定期的备份计划(如每天全备,每小时差异备份)。
这份教程为你提供了 SQL Server 2025 从安装到高级操作的完整路线图,学习数据库是一个循序渐进的过程,最好的方法就是 动手实践,建议你跟着教程一步步操作,尝试自己创建数据库、表,插入各种数据,并编写复杂的查询语句,随着实践的深入,你会逐渐掌握这个强大的工具,祝你学习愉快!
