贝博恩创新科技网

SQL Server 2025教程如何快速上手?

SQL Server 2025 使用教程

目录

  1. 第一部分:准备工作 - 安装与配置

    SQL Server 2025教程如何快速上手?-图1
    (图片来源网络,侵删)
    • 1 系统要求
    • 2 下载安装文件
    • 3 安装步骤详解
    • 4 安装后验证
  2. 第二部分:核心工具 - 熟悉管理工具

    • 1 SQL Server Management Studio (SSMS)
    • 2 SQL Server 配置管理器
    • 3 其他工具简介
  3. 第三部分:基础入门 - 数据库与表操作

    • 1 数据库基本概念
    • 2 创建与管理数据库
    • 3 创建与管理表
    • 4 约束
  4. 第四部分:数据操作 - 增删改查

    • 1 数据查询语言
    • 2 数据操作语言
    • 3 实战演练:学生信息管理
  5. 第五部分:进阶技巧 - 视图、存储过程与函数

    SQL Server 2025教程如何快速上手?-图2
    (图片来源网络,侵删)
    • 1 视图
    • 2 存储过程
    • 3 用户定义函数
  6. 第六部分:高级特性 - 事务、索引与性能优化

    • 1 事务
    • 2 索引
    • 3 执行计划与性能分析
  7. 第七部分:安全与维护

    • 1 身份验证与登录
    • 2 数据库备份与恢复
  8. 总结与资源


第一部分:准备工作 - 安装与配置

在开始之前,你需要正确安装 SQL Server 2025。

SQL Server 2025教程如何快速上手?-图3
(图片来源网络,侵删)

1 系统要求

确保你的计算机满足 SQL Server 2025 的最低系统要求:

  • 操作系统:
    • Windows 7 SP1 (x64)
    • Windows 8/8.1 (x64)
    • Windows Server 2008 R2 SP1 (x64)
    • Windows Server 2012/2012 R2 (x64)
  • 处理器: 1.4 GHz 或更快的 x64 处理器
  • 内存:
    • Express 版: 最少 512 MB,推荐 1 GB 或更多
    • 其他版本: 最少 1 GB,推荐 4 GB 或更多
  • 硬盘空间:
    • Express 版: 最少 6 GB 可用空间
    • 其他版本: 最少 8 GB 可用空间
  • .NET Framework: 3.5 SP1 (必须安装)

2 下载安装文件

访问 Microsoft 官方下载页面,选择你需要的版本,对于初学者,SQL Server 2025 Express 版本是免费的,功能齐全,非常适合学习。

  • SQL Server 2025 Developer Edition (注意:虽然标题是2025,但这是官方提供的最新开发者版本,功能最全,且可免费用于开发和测试,是更好的选择)
  • SQL Server 2025 Express with Tools: 包含数据库引擎和 SSMS。

下载完成后,你会得到一个 .iso 文件,你需要使用虚拟光驱软件(如 Daemon Tools)或直接解压来运行 setup.exe

3 安装步骤详解

  1. 运行安装程序: 双击 setup.exe,启动 SQL Server 安装中心。
  2. 选择安装类型:
    • “全新SQL Server独立安装或向现有安装添加功能”: 这是最常用的选项,用于首次安装或添加组件。
  3. 产品密钥: 如果你有密钥,请输入,对于 Express 版,直接点击“下一步”即可。
  4. 许可条款: 勾选“我接受许可条款”,然后点击“下一步”。
  5. 安装程序支持文件: 安装程序会检查先决条件,点击“安装”以安装所需的组件。
  6. 安装程序支持规则: 等待检查完成,确保所有规则都通过,如果有错误,根据提示解决。
  7. 功能选择: 这是关键步骤,默认选择“数据库引擎服务”、“管理工具 - 完整”和“客户端工具连接”,对于初学者,使用默认配置即可。
    • 数据库引擎服务: 核心数据库功能。
    • 管理工具 - 完整: 包含 SSMS 等管理工具。
    • 客户端工具连接: 允许其他客户端连接到此 SQL Server 实例。
  8. 配置实例: 选择默认实例或命名实例,初学者建议使用默认实例。
  9. 服务器配置: 为 SQL Server 服务指定账户,使用默认的 NT AUTHORITY\NETWORK SERVICE 即可。
  10. 数据库引擎配置:
    • 身份验证模式:
      • Windows 身份验证模式: 只能使用 Windows 用户账户登录,最安全。
      • 混合模式: 可以使用 Windows 身份验证,也可以使用 SQL Server 身份验证(用户名和密码)。对于学习,建议选择混合模式,这样你就可以在任何地方通过 SSMS 连接。
    • 指定管理员: 点击“添加当前用户”按钮,将你的 Windows 用户添加为 sysadmin(系统管理员)角色。
  11. Analysis Services 配置: 保持默认设置,点击“下一步”。
  12. Data Quality Services 配置: 保持默认设置,点击“下一步”。
  13. 错误报告与安装规则: 确认无误后,点击“下一步”。
  14. 安装进度: 等待安装完成,这可能需要一些时间。
  15. 完成: 安装完成后,点击“下一步”,然后关闭安装向导。

4 安装后验证

  1. 打开“开始”菜单,找到并启动 SQL Server Management Studio
  2. 在“连接到服务器”窗口中:
    • 服务器类型: 数据库引擎
    • 服务器名称: (点号,代表本地默认实例) 或 localhost
    • 身份验证: 如果选择了混合模式,选择“SQL Server 身份验证”,并输入你设置的 sa 用户密码,如果选择了 Windows 身份验证,则无需输入密码。
  3. 点击“连接”,如果成功,你将看到 SSMS 的主界面,左侧有“对象资源管理器”,表示安装成功。

第二部分:核心工具 - 熟悉管理工具

1 SQL Server Management Studio (SSMS)

这是你日常使用最多的工具,一个集查询分析、数据库管理、服务器配置于一体的集成环境。

  • 对象资源管理器: 左侧面板,用于浏览和管理所有数据库对象(表、视图、存储过程等)、登录名、作业等。
  • 查询编辑器: 中间的主要区域,用于编写和执行 T-SQL 代码。
  • 已注册的服务器: 可以保存和管理你经常连接的服务器列表。
  • 模板资源管理器: 提供了各种 T-SQL 代码模板,方便快速编写。

2 SQL Server 配置管理器

用于管理 SQL Server 服务和网络配置。

  • SQL Server 服务: 启动、停止、暂停、重启 SQL Server 相关服务(如 SQL Server (MSSQLSERVER))。
  • SQL Server 网络配置: 配置 SQL Server 如何监听客户端连接(如 TCP/IP、Named Pipes),默认情况下,TCP/IP 是启用的。

3 其他工具简介

  • SQL Server Profiler: 一个图形化工具,用于捕获和分析数据库引擎的跟踪事件,主要用于性能诊断和故障排查。
  • 数据库引擎优化顾问: 帮助你选择和创建索引、视图和分区等,以改进数据库查询性能。

第三部分:基础入门 - 数据库与表操作

1 数据库基本概念

  • 数据库: 存储数据的仓库。
  • : 数据库中存储数据的结构化对象,由行和列组成。
  • : 表中的一条记录。
  • : 表中的一个字段,定义了数据的类型。
  • 主键: 唯一标识表中每一行的列或列组合,不能为空且必须唯一。
  • 外键: 用于关联两个表的列,确保表之间的引用完整性。

2 创建与管理数据库

在 SSMS 中,你可以通过图形界面或 T-SQL 语句来创建数据库。

使用图形界面 (SSMS)

  1. 在“对象资源管理器”中,右键点击“数据库”文件夹。
  2. 选择“新建数据库”。
  3. 输入数据库名称(如 MySchoolDB),设置其他选项(如文件路径、初始大小),然后点击“确定”。

使用 T-SQL (推荐) 在查询编辑器中输入以下代码并执行:

-- 创建一个名为 MySchoolDB 的新数据库
-- 主数据文件逻辑名 MySchoolDB_dat,物理路径为默认,初始大小 5MB,自动增长 1MB
-- 日志文件逻辑名 MySchoolDB_log,物理路径为默认,初始大小 1MB,自动增长 10%
CREATE DATABASE MySchoolDB
ON PRIMARY
(
    NAME = MySchoolDB_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MySchoolDB.mdf',
    SIZE = 5MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 1MB
)
LOG ON
(
    NAME = MySchoolDB_log,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MySchoolDB.ldf',
    SIZE = 1MB,
    MAXSIZE = 2048MB,
    FILEGROWTH = 10%
);
GO

GO 是批处理分隔符,表示前面的 T-SQL 语句作为一个批次执行。

常用管理语句:

-- 使用数据库
USE MySchoolDB;
GO
-- 查看当前数据库中的所有表
SELECT * FROM INFORMATION_SCHEMA.TABLES;
-- 删除数据库 (谨慎操作!)
-- DROP DATABASE MySchoolDB;

3 创建与管理表

创建表 我们为 MySchoolDB 创建两个表:Students (学生) 和 Courses (课程)。

USE MySchoolDB;
GO
-- 创建 Students 表
CREATE TABLE Students
(
    StudentID INT PRIMARY KEY, -- 主键
    StudentName NVARCHAR(50) NOT NULL,
    Age INT,
    Gender NVARCHAR(10),
    EnrollmentDate DATE
);
GO
-- 创建 Courses 表
CREATE TABLE Courses
(
    CourseID INT PRIMARY KEY,
    CourseName NVARCHAR(100) NOT NULL,
    Credits INT
);
GO
  • INT: 整数类型。
  • NVARCHAR(50): 可变长度的 Unicode 字符串,最多50个字符,用于支持中文等语言。
  • DATE: 日期类型。
  • PRIMARY KEY: 定义主键。
  • NOT NULL: 约束该列不能为空。

修改表

-- 添加一列
ALTER TABLE Students
ADD Email NVARCHAR(100);
GO
-- 修改列的数据类型
ALTER TABLE Students
ALTER COLUMN Age TINYINT; -- TINYINT 是 0-255 的整数
GO
-- 删除一列
ALTER TABLE Students
DROP COLUMN Email;
GO

4 约束

约束是保证数据完整性的规则。

  • PRIMARY KEY: 主键约束。
  • FOREIGN KEY: 外键约束。
  • UNIQUE: 唯一约束,确保列中的所有值都是唯一的,但允许有空值。
  • NOT NULL: 非空约束。
  • CHECK: 检查约束,确保列中的值满足特定条件。
  • DEFAULT: 默认值约束。

添加外键约束

-- 假设我们有一个 Enrollments (选课) 表来关联学生和课程
CREATE TABLE Enrollments
(
    EnrollmentID INT PRIMARY KEY,
    StudentID INT,
    CourseID INT,
    Grade DECIMAL(4, 2),
    FOREIGN KEY (StudentID) REFERENCES Students(StudentID), -- 外键,关联到 Students 表的 StudentID
    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)  -- 外键,关联到 Courses 表的 CourseID
);
GO

第四部分:数据操作 - 增删改查

这是 SQL 的核心,分为 DML (Data Manipulation Language) 和 DQL (Data Query Language)。

1 数据查询语言

SELECT 语句 SELECT 是最复杂的 SQL 语句,基本结构为 SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...

-- 1. 查询所有学生的所有信息
SELECT * FROM Students;
GO
-- 2. 查询指定列
SELECT StudentName, Age FROM Students;
GO
-- 3. 使用 WHERE 子句进行条件查询
-- 查询年龄大于18岁的学生
SELECT StudentName, Age FROM Students WHERE Age > 18;
GO
-- 查询名字叫'张三'的学生 (注意:NVARCHAR 类型需要用 N 前缀)
SELECT * FROM Students WHERE StudentName = N'张三';
GO
-- 4. 使用 AND 和 OR
-- 查询年龄大于18岁且是女生的学生
SELECT * FROM Students WHERE Age > 18 AND Gender = N'女';
GO
-- 5. 使用 LIKE 进行模糊查询
-- 查询名字以'李'开头的学生
SELECT * FROM Students WHERE StudentName LIKE N'李%';
-- 查询名字中包含'伟'的学生
SELECT * FROM Students WHERE StudentName LIKE N'%伟%';
GO
-- 6. 使用 ORDER BY 排序
-- 按年龄升序排列
SELECT * FROM Students ORDER BY Age ASC;
-- 按年龄降序排列
SELECT * FROM Students ORDER BY Age DESC;
GO
-- 7. 使用聚合函数
-- COUNT(): 计算行数
SELECT COUNT(*) AS TotalStudents FROM Students;
-- SUM(): 求和
-- AVG(): 平均值
-- MAX(): 最大值
-- MIN(): 最小值
GO
-- 8. 使用 GROUP BY 分组
-- 统计每个性别的学生人数
SELECT Gender, COUNT(*) AS CountOfGender
FROM Students
GROUP BY Gender;
GO
-- 9. 使用 HAVING 筛选分组
-- 统计每个性别的学生人数,并只显示人数大于2的性别
SELECT Gender, COUNT(*) AS CountOfGender
FROM Students
GROUP BY Gender
HAVING COUNT(*) > 2;
GO

2 数据操作语言

INSERT (插入数据)

-- 向 Students 表插入一条新记录
INSERT INTO Students (StudentID, StudentName, Age, Gender, EnrollmentDate)
VALUES (1, N'张三', 20, N'男', '2025-09-01');
GO
-- 插入部分列 (其他列有默认值或可为空)
INSERT INTO Students (StudentID, StudentName)
VALUES (2, N'李四');
GO

UPDATE (更新数据) ⚠️ 警告:UPDATE 操作前务必先使用 SELECT 检查条件是否正确!

-- 将 StudentID 为 1 的学生的年龄改为 21
UPDATE Students
SET Age = 21
WHERE StudentID = 1;
GO

DELETE (删除数据) ⚠️ 警告:DELETE 操作前务必先使用 SELECT 检查条件是否正确!

-- 删除 StudentID 为 2 的学生记录
DELETE FROM Students
WHERE StudentID = 2;
GO

3 实战演练:学生信息管理

假设我们有以下数据:

-- 清空表并插入示例数据
DELETE FROM Students;
INSERT INTO Students VALUES
(1, N'张三', 20, N'男', '2025-09-01'),
(2, N'李四', 21, N'女', '2025-09-01'),
(3, N'王五', 19, N'男', '2025-09-01'),
(4, N'赵六', 22, N'女', '2025-09-01');
DELETE FROM Courses;
INSERT INTO Courses VALUES
(101, N'数据库原理', 4),
(102, N'计算机网络', 3),
(103, N'操作系统', 4);
DELETE FROM Enrollments;
INSERT INTO Enrollments VALUES
(1, 1, 101, 90.5),
(2, 1, 102, 85.0),
(3, 2, 101, 92.0),
(4, 3, 103, 88.5);
GO

查询任务:

  1. 查询所有选修了“数据库原理”课程的学生姓名和成绩。

    SELECT s.StudentName, e.Grade
    FROM Students s
    JOIN Enrollments e ON s.StudentID = e.StudentID
    JOIN Courses c ON e.CourseID = c.CourseID
    WHERE c.CourseName = N'数据库原理';
    • JOIN 用于连接多个表,ON 指定连接条件。
  2. 查询每个学生选修的课程数量。

    SELECT s.StudentName, COUNT(e.CourseID) AS CourseCount
    FROM Students s
    LEFT JOIN Enrollments e ON s.StudentID = e.StudentID
    GROUP BY s.StudentName;
    • LEFT JOIN 会返回左表(Students)的所有记录,即使右表(Enrollments)中没有匹配项。

第五部分:进阶技巧 - 视图、存储过程与函数

这些是封装复杂逻辑、提高代码复用性的重要工具。

1 视图

视图是基于一个或多个表的虚拟表,不存储数据,只存储查询定义。

创建视图

-- 创建一个视图,显示学生姓名和他们选修的课程名称
CREATE VIEW vw_StudentCourses
AS
SELECT s.StudentName, c.CourseName, e.Grade
FROM Students s
JOIN Enrollments e ON s.StudentID = e.StudentID
JOIN Courses c ON e.CourseID = c.CourseID;
GO

使用视图

-- 像查询普通表一样查询视图
SELECT * FROM vw_StudentCourses WHERE Grade > 90;
GO

2 存储过程

存储过程是一组预编译的 T-SQL 语句,可以接受参数、返回结果,并可以包含逻辑控制语句(如 IF/ELSE, WHILE)。

创建存储过程

-- 创建一个存储过程,用于添加新学生
CREATE PROCEDURE sp_AddStudent
    @StudentID INT,
    @StudentName NVARCHAR(50),
    @Age INT = 18, -- 带默认值的参数
    @Gender NVARCHAR(10) = N'未知'
AS
BEGIN
    SET NOCOUNT ON; -- 不受影响的行数消息
    INSERT INTO Students (StudentID, StudentName, Age, Gender)
    VALUES (@StudentID, @StudentName, @Age, @Gender);
    PRINT N'学生添加成功!';
END
GO

执行存储过程

-- 执行存储过程,不提供有默认值的参数
EXEC sp_AddStudent @StudentID = 5, @StudentName = N'钱七';
GO
-- 执行存储过程,提供所有参数
EXEC sp_AddStudent @StudentID = 6, @StudentName = N'孙八', @Age = 23, @Gender = N'男';
GO

3 用户定义函数

函数类似于存储过程,但必须返回一个值(可以是标量值或表)。

创建标量值函数

-- 创建一个函数,根据学生ID获取学生姓名
CREATE FUNCTION dbo.fn_GetStudentName (@StudentID INT)
RETURNS NVARCHAR(50)
AS
BEGIN
    DECLARE @Name NVARCHAR(50);
    SELECT @Name = StudentName FROM Students WHERE StudentID = @StudentID;
    RETURN @Name;
END
GO

使用函数

-- 在查询中调用函数
SELECT StudentID, dbo.fn_GetStudentName(StudentID) AS StudentName FROM Students;
GO

第六部分:高级特性 - 事务、索引与性能优化

1 事务

事务是一个工作单元,其中的所有操作要么全部成功,要么全部失败回滚,它遵循 ACID 原则(原子性、一致性、隔离性、持久性)。

事务语法

BEGIN TRANSACTION; -- 开始事务
-- 执行一系列操作
UPDATE Students SET Age = Age + 1 WHERE StudentID = 1;
UPDATE Students SET Age = Age - 1 WHERE StudentID = 2;
-- 检查操作是否成功
IF @@ERROR = 0
BEGIN
    COMMIT TRANSACTION; -- 提交事务,所有更改永久生效
    PRINT N'事务提交成功。';
END
ELSE
BEGIN
    ROLLBACK TRANSACTION; -- 回滚事务,所有更改撤销
    PRINT N'事务发生错误,已回滚。';
END
GO

@@ERROR 是一个全局变量,如果上一条 T-SQL 语句执行失败,它不为 0。

2 索引

索引是提高查询性能的关键,它就像一本书的目录,可以快速定位数据。

  • 聚集索引: 表中数据的物理存储顺序与索引顺序相同,一个表只能有一个聚集索引。
  • 非聚集索引: 独立于数据行的物理顺序,包含指向数据行的指针,一个表可以有多个非聚集索引。

创建索引

-- 在 Students 表的 StudentName 列上创建一个非聚集索引
CREATE INDEX IX_Students_StudentName ON Students(StudentName);
GO

查看索引

-- 查看指定表的索引信息
EXEC sp_helpindex 'Students';
GO

3 执行计划与性能分析

查看执行计划 在 SSMS 的查询编辑器中,选中你的 T-SQL 语句,然后点击工具栏上的“显示估计的执行计划”或“包括实际的执行计划”按钮。

执行计划会以图形化方式显示 SQL Server 如何执行你的查询,包括是否使用了索引、表扫描的成本等,这是优化查询性能最强大的工具。


第七部分:安全与维护

1 身份验证与登录

SQL Server 有两种身份验证模式,在安装时已设置。

  • Windows 身份验证: 使用 Windows 账户登录。
  • SQL Server 身份验证: 使用 sa 账户或你创建的 SQL 登录账户。

创建新的 SQL 登录账户

  1. 在“对象资源管理器”中,展开“安全性” -> “登录名”。
  2. 右键点击“登录名”,选择“新建登录名”。
  3. 在“常规”页面,选择“SQL Server 身份验证”,输入登录名和密码。
  4. 在“用户映射”页面,选择该登录账户可以访问的数据库,并指定在该数据库中的角色成员身份(如 db_owner 拥有所有权限)。

2 数据库备份与恢复

备份数据库

  1. 在“对象资源管理器”中,右键点击你的数据库名(如 MySchoolDB)。
  2. 选择“任务” -> “备份”。
  3. 在“常规”页面,选择备份类型(完整)、备份目标(默认)。
  4. 点击“确定”开始备份。

使用 T-SQL 备份

-- 将数据库备份到指定文件
BACKUP DATABASE MySchoolDB
TO DISK = 'C:\Backup\MySchoolDB.bak'
WITH NAME = 'Full Database Backup',
     DESCRIPTION = 'Full backup of MySchoolDB',
     COMPRESSION, -- 压缩备份
     STATS = 10, -- 每完成10%的备份进度显示一次
     CHECKSUM; -- 执行校验和
GO

恢复数据库 恢复是备份的逆操作,过程类似,在“对象资源管理器”中右键点击“数据库” -> “任务” -> “还原” -> “数据库...”,然后选择备份文件进行恢复。


总结与资源

本教程涵盖了 SQL Server 2025 从入门到进阶的主要内容,要成为一名熟练的 SQL Server 开发者或 DBA,还需要在实践中不断探索和学习。

推荐学习资源

  • Microsoft 官方文档: 最权威、最准确的资料。
  • SQL Server Central: 全球最大的 SQL Server 社区之一,有大量文章、脚本和论坛讨论。
  • Stack Overflow: 当你遇到具体问题时,这里是寻找答案的最佳去处。
  • 书籍:
    • 《SQL Server 2012 T-SQL Fundamentals》 (Ben Forta) - 经典入门书籍,虽然版本是2012,但 T-SQL 核心内容变化不大。
    • 《Microsoft SQL Server 2025 T-SQL Fundamentals》 (Itzik Ben-Gan) - 更新到2025版的权威著作。

后续学习方向

  • 高级 T-SQL: 窗口函数、透视/逆透视、XML/JSON 处理。
  • Business Intelligence (BI): 学习 SQL Server Integration Services (SSIS)、SQL Server Analysis Services (SSAS) 和 SQL Server Reporting Services (SSRS)。
  • 高可用性与灾难恢复: AlwaysOn 可用性组、数据库镜像、日志传送。
  • 性能调优: 深入学习执行计划、索引优化、查询优化等。

希望这份教程能帮助你顺利开启 SQL Server 2025 的学习之旅!

分享:
扫描分享到社交APP
上一篇
下一篇