MSSQL 使用教程:从入门到实践
本教程将分为以下几个主要部分:

- 第一部分:准备工作 - 安装与配置
- 第二部分:核心概念 - 数据库、表与数据类型
- 第三部分:数据操作 - T-SQL 基础
- 第四部分:进阶管理 - 索引、视图与存储过程
- 第五部分:工具与生态 - SSMS 与其他工具
- 第六部分:最佳实践与学习资源
第一部分:准备工作 - 安装与配置
在开始之前,你需要一个可以运行 SQL Server 的环境。
选择 SQL Server 版本
- SQL Server Developer Edition(开发者版):功能最全的版本,免费,但只能用于开发和测试,不能用于生产环境。强烈推荐初学者使用此版本。
- SQL Server Express Edition(Express 版):免费的轻量级版本,有数据库大小和内存使用的限制,适合小型应用和个人学习。
- SQL Server Evaluation Edition(评估版):免费试用 180 天,拥有所有企业版功能,适合体验完整功能。
- Azure SQL Database:微软云上的数据库服务,无需安装,按需付费,适合云端应用。
安装 SQL Server
以最常用的 SQL Server Developer Edition 为例:
-
下载安装程序:
- 访问 Microsoft SQL Server Developer Edition 下载页面。
- 选择合适的版本(Developer Edition)并下载安装程序。
-
运行安装程序:
(图片来源网络,侵删)- 双击运行下载的
SQLServer2025-x64-DEV.iso或解压后的setup.exe。 - 选择“安装” -> “SQL Server 2025 (或你下载的版本) 的全新安装或向现有安装添加功能”。
- 双击运行下载的
-
产品密钥:
选择“具有免费许可证的 SQL Server 开发人员”。
-
安装程序支持文件:
点击“安装”,等待检测完成。
-
功能选择:
- 这是关键步骤,对于初学者,勾选以下核心组件即可:
- 数据库引擎服务:核心组件,负责存储和处理数据。
- SQL Server Management Studio:图形化管理工具,用于编写查询、管理数据库。
- SQL Server Data Tools:用于开发商业智能和数据库项目。
- 点击“下一步”。
- 这是关键步骤,对于初学者,勾选以下核心组件即可:
-
配置实例:
- 实例 ID:默认是
MSSQLSERVER(默认实例),如果只安装一个,保持默认即可,如果需要安装多个,可以命名一个命名实例(如SQL2025)。 - 服务器配置:设置服务账户,保持默认即可(
NT AUTHORITY\SYSTEM)。 - 数据库引擎配置:
- 身份验证模式:
- Windows 身份验证模式:只能使用 Windows 用户登录,最安全。
- 混合模式:可以使用 Windows 用户和 SQL Server 用户(如
sa)登录,初学者为了方便,可以选择此模式,并为sa用户设置一个强密码。
- 数据目录:可以修改数据文件和日志文件的默认存储位置。
- 身份验证模式:
- 点击“下一步”。
- 实例 ID:默认是
-
安装规则与准备:
系统会自动检查,确保所有规则都通过,点击“下一步”。
-
安装:
等待安装过程完成,这可能需要一些时间,完成后,点击“下一步”,完成”。
连接与验证
安装完成后,我们需要连接到数据库服务器。
-
启动 SQL Server Management Studio (SSMS):
开始菜单中找到并打开 "Microsoft SQL Server Management Studio"。
-
连接到服务器:
- 服务器类型:默认
数据库引擎即可。 - 服务器名称:如果是本地默认实例,输入 或
(local)或localhost,如果是命名实例,输入localhost\实例名(如localhost\SQL2025)。 - 身份验证:如果之前选择了“混合模式”,选择
SQL Server 身份验证,然后输入用户名sa和你设置的密码,如果选择“Windows 身份验证”,则无需输入密码。 - 点击“连接”。
- 服务器类型:默认
-
成功标志:
连接成功后,你会看到一个名为 "对象资源管理器" 的窗口,左侧列出了服务器上的所有数据库、安全性、服务器对象等。
第二部分:核心概念 - 数据库、表与数据类型
想象一个图书馆,SQL Server 就是整个图书馆管理系统。
- SQL Server (实例):整个图书馆。
- 数据库:图书馆里的一个书架,专门存放某一类书籍(如“历史书架”、“科技书架”)。
- 表:书架上的某一本书,书里的每一章都是一个主题。
- 行:书中的每一行文字,代表一条完整的信息。
- 列:书中的每一列,代表信息的一个属性(如作者、标题、出版日期)。
- 数据类型:规定了列中能存放什么类型的数据(如文字、数字、日期)。
创建数据库
在 SSMS 中,我们可以用图形界面或代码来创建。
使用图形界面 (SSMS)
- 在 "对象资源管理器" 中,展开服务器节点。
- 右键点击 "数据库" -> "新建数据库"。
- 输入数据库名称,
MySchoolDB。 - 点击 "确定"。
使用 T-SQL 代码
- 在 SSMS 中,点击 "新建查询" 按钮,打开一个查询编辑器窗口。
- 输入以下代码:
CREATE DATABASE MySchoolDB;
- 点击 "执行" (或按 F5),在 "对象资源管理器" 中刷新,就能看到新创建的数据库。
创建表
表是存储数据的基本结构,创建表前,需要先指定要在哪个数据库中操作。
-- 1. 切换到要操作的数据库
USE MySchoolDB;
GO
-- 2. 创建一个 Students 表
CREATE TABLE Students (
StudentID INT PRIMARY KEY, -- 学号,整数类型,主键(唯一且非空)
StudentName NVARCHAR(50) NOT NULL, -- 姓名,可变长度字符串,不能为空
Gender CHAR(1), -- 性别,固定长度字符
BirthDate DATE, -- 出生日期,日期类型
EnrollmentDate DATETIME -- 入学日期,日期时间类型
);
GO
常用数据类型:
INT:整数。BIGINT:大整数。DECIMAL(p,s):精确的小数,p 是总位数,s 是小数位数。FLOAT:浮点数。NVARCHAR(n)/VARCHAR(n):可变/固定长度的 Unicode 字符串。NVARCHAR能存储多语言字符(如中文),推荐使用。CHAR(n):固定长度的字符串。DATE:仅日期。DATETIME/DATETIME2:日期和时间。BIT:布尔值(0 或 1)。
约束:
PRIMARY KEY:主键,唯一标识表中的每一行,不能为空且不能重复。NOT NULL:约束列不能为空值。UNIQUE:约束列中的值必须唯一。DEFAULT:为列设置默认值。
第三部分:数据操作 - T-SQL 基础
T-SQL (Transact-SQL) 是 SQL Server 的核心语言,用于与数据库交互。
插入数据
使用 INSERT INTO 语句。
USE MySchoolDB;
GO
-- 插入单条数据
INSERT INTO Students (StudentID, StudentName, Gender, BirthDate, EnrollmentDate)
VALUES (1, '张三', '男', '2000-05-15', '2025-09-01 09:00:00');
-- 插入多条数据
INSERT INTO Students (StudentID, StudentName, Gender, BirthDate, EnrollmentDate)
VALUES
(2, '李四', '女', '2001-08-20', '2025-09-01 09:00:00'),
(3, '王五', '男', '2000-11-30', '2025-09-01 09:00:00');
GO
查询数据
使用 SELECT 语句,这是最常用的操作。
USE MySchoolDB; GO -- 查询所有列的所有数据 SELECT * FROM Students; -- 查询指定列的数据 SELECT StudentName, BirthDate FROM Students; -- 使用 WHERE 子句进行条件筛选 -- 查询所有男生的姓名 SELECT StudentName FROM Students WHERE Gender = '男'; -- 查询 2000 年出生的学生 SELECT * FROM Students WHERE YEAR(BirthDate) = 2000; -- 使用 ORDER BY 排序 -- 按出生日期升序排列 SELECT * FROM Students ORDER BY BirthDate ASC; -- 按入学日期降序排列 SELECT * FROM Students ORDER BY EnrollmentDate DESC; -- 使用 TOP 限制结果数量 -- 查询年龄最小的3名学生 SELECT TOP 3 * FROM Students ORDER BY BirthDate DESC;
更新数据
使用 UPDATE 语句。⚠️ 警告:务必使用 WHERE 子句,否则会更新整个表的所有行!
USE MySchoolDB; GO -- 将学号为 1 的学生的姓名更新为 '张三丰' UPDATE Students SET StudentName = '张三丰' WHERE StudentID = 1;
删除数据
使用 DELETE 语句。⚠️ 警告:务必使用 WHERE 子句,否则会删除整个表的所有数据!
USE MySchoolDB; GO -- 删除学号为 3 的学生记录 DELETE FROM Students WHERE StudentID = 3;
第四部分:进阶管理
索引
索引就像一本书的目录,可以极大地提高查询速度,但索引会占用存储空间,并在数据增删改时降低性能。
- 主键索引:在定义
PRIMARY KEY时,SQL Server 会自动创建一个聚集索引。 - 非聚集索引:提高特定列的查询速度。
-- 在 StudentName 列上创建一个非聚集索引 CREATE INDEX IX_Students_StudentName ON Students(StudentName);
视图
视图是一个虚拟表,其结果集由存储的查询定义,它简化了复杂查询,并提供了数据安全层(只暴露部分列)。
-- 创建一个只显示学生姓名和入学日期的视图 CREATE VIEW v_StudentEnrollment AS SELECT StudentName, EnrollmentDate FROM Students; GO -- 像查询普通表一样查询视图 SELECT * FROM v_StudentEnrollment;
存储过程
存储过程是一组为了完成特定功能的预编译 SQL 语句集合,它可以接收参数、返回结果,并提高性能和安全性。
-- 创建一个存储过程,用于根据学号查询学生信息
CREATE PROCEDURE sp_GetStudentByID
@StudentIDParam INT -- 参数
AS
BEGIN
SELECT * FROM Students WHERE StudentID = @StudentIDParam;
END;
GO
-- 执行存储过程
EXEC sp_GetStudentByID 1;
第五部分:工具与生态
SQL Server Management Studio (SSMS)
我们已经使用过,是管理和开发 SQL Server 的主要图形工具。
Azure Data Studio
一个跨平台的现代数据管理工具,支持 SQL Server、Azure SQL、PostgreSQL 等,界面更简洁,集成了 Jupyter Notebook 等功能,适合数据科学家和开发者。
Visual Studio Code (VS Code) + SQL Server 扩展
对于喜欢轻量级编辑器的开发者,可以在 VS Code 中安装 "SQL Server (mssql)" 扩展,直接在代码中连接数据库、编写和执行查询。
.NET、Python、Java 等编程语言
你可以使用这些语言通过 ADO.NET、PyODBC、JDBC 等驱动程序连接到 SQL Server,在应用程序中操作数据库。
第六部分:最佳实践与学习资源
最佳实践
- 命名规范:使用清晰、一致的命名规范(如
CamelCase或snake_case)。 - 备份:定期备份数据库! 这是数据库管理的生命线,可以在 SSMS 中设置维护计划来自动备份。
- 安全:
- 使用强密码,并定期更换。
- 遵循最小权限原则,只授予用户必要的权限。
- 及时安装安全更新。
- 性能:
- 为常用查询的列创建索引。
- 避免在
WHERE子句中对列使用函数,这会导致索引失效。 - 使用
EXPLAIN或 SSMS 的 “包含实际的执行计划” 功能来分析查询性能。
学习资源
- 官方文档:
- SQL Server 文档 - Microsoft Learn:最权威、最全面的学习资料。
- 在线课程:
- Coursera / edX:搜索 "Introduction to Databases" 或 "SQL for Data Science" 等课程。
- Udemy:有大量高质量的 SQL Server 课程,如 "Microsoft SQL Server for Beginners"。
- 练习平台:
- LeetCode:有大量 SQL 面试题目。
- HackerRank:提供 SQL 练习。
- SQLZOO:非常适合初学者互动式学习。
- 社区:
- Stack Overflow:遇到问题时,这里是寻找答案的最佳去处。
- CSDN / 博客园:国内有很多优秀的技术博主分享 MSSQL 使用经验。
这份教程为你铺开了一条学习 MSSQL 的路径,从安装配置开始,到掌握核心的增删改查,再到了解索引、视图等进阶概念,最后熟悉了工具和最佳实践。
关键在于动手实践,不要只看不练,立即安装 SQL Server,创建自己的数据库,尝试插入、查询、修改数据,随着你不断地使用,你会越来越熟练,祝你学习顺利!
