SQL Server 2012 综合教程
本教程将分为以下几个部分,帮助你系统地学习 SQL Server 2012:

-
- 什么是 SQL Server?
- 安装 SQL Server 2012
- 熟悉管理工具 (SSMS)
- 数据库核心概念
-
- 数据定义语言
- 数据操作语言
- 数据查询语言 -
SELECT语句详解 - 数据控制语言
-
- 数据类型
- 约束
- 索引
- 视图
- 存储过程与函数
-
(图片来源网络,侵删)- 备份与恢复
- 安全性
- 作业与自动化
-
- 官方文档与推荐书籍
- 实践建议
第一部分:基础入门
什么是 SQL Server?
SQL Server 是由微软开发的关系型数据库管理系统,它使用结构化查询语言 作为其核心语言,用于存储、检索、管理和保护数据,除了核心的数据库引擎,SQL Server 还集成了商业智能、数据分析等多种服务。
安装 SQL Server 2012
在开始之前,你需要一个运行环境。
- 下载地址:你可以从微软的官方存档页面或第三方可信赖的资源(如 MSDN Subscriber Downloads)下载 SQL Server 2012 的安装文件。
- 版本选择:对于学习,推荐安装 Express 版本,它是免费的,功能足够满足大部分学习需求,你也可以安装 Developer 版本,它拥有企业版的所有功能,仅限开发、测试和学习使用,不能用于生产环境。
- 安装步骤:
- 运行
setup.exe。 - 选择“安装” -> “全新 SQL Server 独立安装或向现有安装添加功能”。
- 在“产品密钥”界面,选择适当的版本(如 Developer Edition)。
- 在“功能选择”界面,至少勾选 “数据库引擎服务” 和 “管理工具 - 基本” (Management Tools - Basic),后者包含了我们最重要的工具 SSMS。
- 后续按照向导提示完成安装即可。
- 运行
熟悉管理工具 - SQL Server Management Studio (SSMS)
SSMS 是 SQL Server 的主要管理工具,一个功能强大的图形界面客户端。

- 启动 SSMS:安装完成后,从开始菜单找到并启动它。
- 连接到服务器:
- 服务器类型:通常选择“数据库引擎”。
- 服务器名称:对于本地安装,输入 (点) 或
localhost或(local)。 - 身份验证:
- Windows 身份验证:使用你当前 Windows 系统的用户登录,最简单。
- SQL Server 身份验证:需要你安装时设置的
sa用户名和密码。
- 点击“连接”。
- SSMS 界面简介:
- 对象资源管理器:左侧面板,用于浏览和管理服务器上的所有数据库、表、视图、存储过程等对象。
- 查询编辑器:中间的主要区域,用于编写和执行 T-SQL 语句。
- 属性窗口:右键点击任何对象,选择“属性”可以查看其详细设置。
数据库核心概念
- 数据库:数据的集合,用于存储特定业务相关的所有表、视图、索引等。
- 表:数据库中最基本的对象,由行和列组成,类似于一个电子表格。
- 行:表中的一条记录,代表一个实体。
- 列:表中的一个字段,定义了记录的某个属性(如姓名、年龄)。
- 主键:表中唯一标识每一行记录的列或列组合,不能为空,且值必须唯一。
第二部分:核心语言 - T-SQL
T-SQL (Transact-SQL) 是 SQL Server 对标准 SQL 的扩展,增加了变量、流程控制、函数等编程特性。
数据定义语言
用于定义和管理数据库结构。
- 创建数据库:
CREATE DATABASE MySchoolDB; GO -- GO 是一个批处理分隔符,告诉 SSMS 将其之前的语句作为一个批次执行。
- 使用数据库:
USE MySchoolDB; GO
- 创建表:
CREATE TABLE Students ( StudentID INT PRIMARY KEY, -- 主键 Name NVARCHAR(50) NOT NULL, -- 非空 Age INT, EnrollmentDate DATE ); GO - 修改表:
-- 添加一列 ALTER TABLE Students ADD Gender CHAR(1); GO
- 删除表:
DROP TABLE Students; GO
数据操作语言
用于操作表中的数据。
- 插入数据:
INSERT INTO Students (StudentID, Name, Age, EnrollmentDate) VALUES (1, '张三', 20, '2025-09-01'); GO
- 更新数据:
UPDATE Students SET Age = 21 WHERE Name = '张三'; GO
- 删除数据:
DELETE FROM Students WHERE Name = '张三'; GO
数据查询语言 - SELECT 语句
这是 SQL 中最核心、最常用的部分。
-
基本查询:
-- 查询所有学生的所有信息 SELECT * FROM Students; GO -- 查询学生的姓名和年龄 SELECT Name, Age FROM Students; GO
-
WHERE子句 (过滤):-- 查询年龄大于20岁的学生 SELECT * FROM Students WHERE Age > 20; GO -- 查询名字是'李四'的学生 SELECT * FROM Students WHERE Name = '李四'; GO
-
ORDER BY子句 (排序):-- 按年龄升序排列 SELECT * FROM Students ORDER BY Age ASC; GO -- 按年龄降序排列 SELECT * FROM Students ORDER BY Age DESC; GO
-
JOIN子句 (连接多表): 假设我们还有一个Courses表。CREATE TABLE Courses ( CourseID INT PRIMARY KEY, CourseName NVARCHAR(100) ); GO -- 内连接:只返回在两个表中都匹配的行 SELECT S.Name, C.CourseName FROM Students S INNER JOIN Courses C ON S.StudentID = C.StudentID; -- 假设 Courses 表有关联字段 GO -
聚合函数:
-- 计算学生总数 SELECT COUNT(*) AS TotalStudents FROM Students; GO -- 计算平均年龄 SELECT AVG(Age) AS AverageAge FROM Students; GO
-
GROUP BY子句:-- 按性别分组,并计算每组的人数 SELECT Gender, COUNT(*) AS Count FROM Students GROUP BY Gender; GO
数据控制语言
用于控制数据库的访问权限。
- 授予权限:
GRANT SELECT ON Students TO MyUser; GO
第三部分:数据库设计与高级对象
数据类型
定义列可以存储的数据类型。
- 数值类型:
INT,BIGINT,DECIMAL(p,s),FLOAT - 字符串类型:
CHAR(n),VARCHAR(n),NVARCHAR(n)(用于存储 Unicode 字符,如中文) - 日期时间类型:
DATE,DATETIME,DATETIME2 - 其他类型:
BIT(布尔值),UNIQUEIDENTIFIER(GUID)
约束
用于强制表中的数据完整性。
PRIMARY KEY:主键约束。FOREIGN KEY:外键约束,确保两个表之间的关系。UNIQUE:唯一约束,确保列中的所有值都是唯一的。NOT NULL:非空约束,确保列不能有 NULL 值。CHECK:检查约束,确保列中的值满足特定条件。
索引
类似于书的目录,可以极大地提高数据查询的速度,主键和唯一约束会自动创建索引。
视图
一个虚拟的表,其结果集由存储的查询定义,它简化了复杂查询,并可以隐藏数据的底层结构。
CREATE VIEW v_StudentInfo AS SELECT StudentID, Name, Age FROM Students WHERE Age > 18; GO -- 使用视图 SELECT * FROM v_StudentInfo; GO
存储过程与函数
-
存储过程:一组为了完成特定功能的预编译 SQL 语句集合,可以接受参数和返回状态值,用于封装业务逻辑,提高性能和安全性。
CREATE PROCEDURE sp_GetStudentByID @StudentID INT AS BEGIN SELECT * FROM Students WHERE StudentID = @StudentID; END; GO -- 执行存储过程 EXEC sp_GetStudentByID 1; GO -
用户定义函数:类似存储过程,但必须返回一个值或表。
第四部分:管理与维护
备份与恢复
数据安全至关重要。
- 备份数据库:
- 在 SSMS 的“对象资源管理器”中,右键点击你的数据库。
- 选择“任务” -> “备份”。
- 在弹出的窗口中,设置备份目标和类型,然后点击“确定”。
- 恢复数据库:
- 右键点击“数据库”文件夹。
- 选择“还原数据库”。
- 选择要恢复的备份文件,然后点击“确定”。
安全性
- 登录名:允许连接到 SQL Server Server 的账户。
- 用户:在特定数据库中拥有身份的账户,一个登录名可以在不同的数据库中映射为不同的用户。
- 角色:一组权限的集合,可以将角色分配给用户,简化权限管理。
作业与自动化
使用 SQL Server Agent 可以创建作业,在指定时间或特定事件发生时自动执行任务,如定期备份数据库。
第五部分:学习资源与总结
官方文档与推荐书籍
- 官方文档 (英文):Microsoft Docs - SQL Server 2012 Documentation,这是最权威的资料。
- 经典书籍:
- 《SQL Server 2012 高级程序设计》
- 《T-SQL 查询》
实践建议
- 动手是最好的老师:不要只看不练,跟着教程一步步操作,自己尝试创建数据库、表,编写各种查询。
- 从简单到复杂:先熟练掌握
SELECT、INSERT、UPDATE、DELETE,再学习JOIN、子查询、存储过程等高级主题。 - 理解“为什么”:不仅要学会怎么做,还要理解为什么要这么做,为什么要建索引?什么是范式?
- 利用 SSMS:多使用 SSMS 的图形化工具,比如设计表、查看执行计划等,这能帮助你直观地理解数据库结构。
SQL Server 2012 是一个非常强大且经典的数据库系统,通过本教程,你已经掌握了从安装、基本操作到高级概念的核心知识,继续深入学习、不断实践,你将能够熟练地使用 SQL Server 解决各种数据管理问题,祝你学习顺利!
