SQL Server 2025 综合操作使用教程

第一部分:入门与准备工作

什么是 SQL Server?

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

sql 2025操作使用教程
(图片来源网络,侵删)

环境准备:安装 SQL Server 2025

在开始之前,你需要安装 SQL Server,最常用的版本是 SQL Server Developer Edition,它功能齐全且免费,仅供开发、测试和学习使用。

安装步骤:

  1. 下载安装程序

  2. 挂载 ISO 并运行安装器

    sql 2025操作使用教程
    (图片来源网络,侵删)
    • 挂载下载的 ISO 文件,找到并运行 setup.exe
  3. 选择安装类型

    • 在安装向导中,选择 “全新 SQL Server 独立安装”
  4. 产品密钥

    • 选择 “指定免费版产品密钥”,然后输入 DEV2025(或者直接选择 Developer Edition,它本身就是免费的)。
  5. 接受许可条款

    勾选“我接受许可条款”,然后点击“下一步”。

    sql 2025操作使用教程
    (图片来源网络,侵删)
  6. 功能选择

    • 这是关键步骤,勾选你需要安装的功能,对于初学者,建议至少选择:
      • 数据库引擎服务:这是 SQL Server 的核心,负责数据的存储、处理和安全管理。
      • 管理工具 - 基本配置工具:包含 SQL Server Management Studio (SSMS),这是我们用来管理数据库的主要图形界面工具。
      • 客户端工具连接:提供命令行工具等连接能力。
    • 你也可以选择 “全选”,但这会占用较多磁盘空间。
  7. 配置实例

    • 实例 ID:默认是 MSSQLSERVER,这是默认实例,如果不确定,保持默认即可。
    • 服务器配置:为服务账户设置用户名和密码,对于开发环境,可以使用内置的 NT AUTHORITY\NETWORK SERVICELocal System 账户。
  8. 数据库引擎配置

    • 身份验证模式
      • Windows 身份验证模式:仅使用 Windows 用户账户登录,更安全,推荐用于生产环境。
      • 混合模式:同时允许 Windows 身份验证和 SQL Server 身份验证(即使用用户名和密码 sa 登录)。初学者建议选择混合模式,方便后续连接。
    • 指定 sa 登录密码:如果选择了混合模式,必须为 sa 用户设置一个强密码。
    • 数据目录:可以修改数据库文件存放的位置,保持默认即可。
  9. 完成安装

    检查摘要信息,确认无误后点击“安装”,安装过程可能需要 15-30 分钟。

  10. 安装 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

警告DELETETRUNCATE 都会删除数据,但 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

第五部分:学习资源与最佳实践

官方文档

最佳实践

  1. 命名规范:为数据库、表、列、存储过程等使用清晰、一致的命名规范(如 PascalCase 或 snake_case)。
  2. 注释:为复杂的 SQL 代码和存储过程添加注释,方便自己和他人理解。
  3. 安全
    • 生产环境务必使用 Windows 身份验证 或强密码的 SQL 身份验证。
    • 谨慎授予用户权限,遵循最小权限原则。
    • 定期更新 SQL Server 和操作系统补丁。
  4. 性能
    • 为常用用于查询条件的列创建索引。
    • 避免 SELECT *,只查询需要的列。
    • 对大表进行分页查询时,使用 OFFSET-FETCHWHERE + ORDER BY + TOP 的组合。
  5. 备份策略:制定并执行定期的备份计划(如每天全备,每小时差异备份)。

这份教程为你提供了 SQL Server 2025 从安装到高级操作的完整路线图,学习数据库是一个循序渐进的过程,最好的方法就是 动手实践,建议你跟着教程一步步操作,尝试自己创建数据库、表,插入各种数据,并编写复杂的查询语句,随着实践的深入,你会逐渐掌握这个强大的工具,祝你学习愉快!