SQL Server 2012 完整教程
前言:为什么学习 SQL Server 2012?
虽然 SQL Server 2012 已经不是最新版本,但它依然是许多企业和项目中稳定运行的系统,学习它有助于你维护旧项目,并且其核心概念(如 T-SQL、查询、索引、视图等)与新版 SQL Server(如 2025, 2025, 2025)基本一致,打好坚实的基础后,升级到新版本会非常容易。

第一部分:基础入门
模块 1:SQL Server 简介与环境搭建
1 什么是 SQL Server? SQL Server 是由微软开发的关系型数据库管理系统,它使用结构化查询语言 来存储、检索和修改数据,它不仅是一个数据库引擎,还包含了用于数据分析和商业智能的强大工具。
2 核心组件
- 数据库引擎:核心服务,负责存储、处理和保护数据。
- SQL Server Management Studio (SSMS):主要的集成管理环境,用于配置、管理和编写查询。
- SQL Server Business Intelligence Development Studio (BIDS):用于创建商业智能解决方案,如 Integration Services, Analysis Services, Reporting Services。(在 SQL Server 2012 中,它被替换为 Visual Studio 的一个特定版本)
- Reporting Services:用于创建和管理报表。
- Analysis Services:用于在线分析处理和数据挖掘。
3 安装 SQL Server 2012
- 下载安装程序:从微软官方档案网站下载 SQL Server 2012 的安装文件,你需要选择合适的版本,如 Express(免费)、Developer(开发免费)或 Enterprise。
- 运行安装程序:双击
setup.exe。 - 安装中心:选择“从 SQL Server 2012 安装中心” -> “安装” -> “全新 SQL Server 独立安装或向现有安装添加功能”。
- 产品密钥:选择你的版本。
- 许可条款:接受许可条款。
- 安装程序支持文件:安装必要的支持文件。
- 安装规则:等待检查通过。
- 设置角色:对于初学者,选择 SQL Server 功能安装。
- 功能选择:
- 必须勾选:
数据库引擎服务:核心数据库。客户端工具连接:让你能从其他机器连接到数据库。
- 推荐勾选:
管理工具 - 基本配置:用于配置数据库引擎。管理工具 - SQL Server Management Studio:最重要的管理工具。
- 必须勾选:
- 配置实例:为你的实例命名,默认是
MSSQLSERVER(默认实例)。 - 服务器配置:设置服务账户,对于学习,使用内置账户即可。
- 数据库引擎配置:
- 身份验证模式:选择 混合模式,并设置一个强密码,这允许你使用 Windows 身份验证和 SQL Server 身份验证登录。
- 数据目录:可以保持默认,数据文件将存放在
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\。
- 安装规则:确保所有检查都通过。
- 准备安装:确认选择,点击“安装”。
- 完成:等待安装完成,然后使用 SQL Server Management Studio (SSMS) 进行连接和配置。
第二部分:核心概念与操作
模块 2:T-SQL 基础
1 什么是 T-SQL? T-SQL (Transact-SQL) 是 SQL Server 对 SQL 标准的扩展,它增加了变量、流程控制、函数等编程特性。

2 数据类型
- 数值型:
INT(整数),DECIMAL(p,s)(精确小数),FLOAT(浮点数),MONEY(货币)。 - 字符串型:
CHAR(n)(固定长度),VARCHAR(n)(可变长度),TEXT(大文本)。 - 日期时间型:
DATETIME,DATE,TIME,DATETIME2。 - 二进制型:
BINARY,VARBINARY。 - 其他:
BIT(0或1),UNIQUEIDENTIFIER(全局唯一标识符)。
3 基本语法
- 注释: 单行注释, 多行注释。
- 批处理:使用
GO命令分隔多个 T-SQL 语句。
模块 3:数据操作语言
这是最常用的部分,用于对表中的数据进行增、删、改、查。
1 创建数据库和表

-- 创建一个名为 MyTestDB 的数据库
CREATE DATABASE MyTestDB;
GO
-- 使用新创建的数据库
USE MyTestDB;
GO
-- 创建一个名为 Employees 的表
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY, -- 主键,唯一标识每一行
FirstName NVARCHAR(50) NOT NULL,
LastName NVARCHAR(50) NOT NULL,
HireDate DATE,
Salary DECIMAL(10, 2),
Department NVARCHAR(50)
);
GO
2 插入数据
-- 插入一条新记录
INSERT INTO Employees (EmployeeID, FirstName, LastName, HireDate, Salary, Department)
VALUES (1, 'John', 'Doe', '2025-01-15', 60000.00, 'IT');
-- 插入多条记录
INSERT INTO Employees (EmployeeID, FirstName, LastName, HireDate, Salary, Department)
VALUES
(2, 'Jane', 'Smith', '2025-05-20', 75000.00, 'HR'),
(3, 'Peter', 'Jones', '2025-03-10', 55000.00, 'IT');
GO
3 查询数据
这是 DML 的核心,使用 SELECT 语句。
-- 查询所有列的所有数据 SELECT * FROM Employees; -- 查询特定列 SELECT FirstName, LastName, Department FROM Employees; -- 使用 WHERE 子句进行条件过滤 SELECT * FROM Employees WHERE Department = 'IT'; -- 使用 AND 和 OR 组合条件 SELECT * FROM Employees WHERE Department = 'IT' AND Salary > 58000; -- 使用 ORDER BY 对结果排序 SELECT * FROM Employees ORDER BY HireDate DESC; -- DESC 降序, ASC 升序 (默认) -- 使用 TOP 限制返回的行数 SELECT TOP 2 * FROM Employees ORDER BY Salary DESC; -- 获取薪水最高的前两名
4 更新数据
使用 UPDATE 语句,务必带上 WHERE 条件,否则会更新整张表!
-- 将员工ID为1的员工薪水更新为65000 UPDATE Employees SET Salary = 65000.00 WHERE EmployeeID = 1;
5 删除数据
使用 DELETE 语句,同样务必带上 WHERE 条件!
-- 删除员工ID为3的记录 DELETE FROM Employees WHERE EmployeeID = 3;
模块 4:数据定义语言
用于定义和管理数据库结构。
1 修改表结构
-- 向 Employees 表添加一个新列 'Email' ALTER TABLE Employees ADD Email NVARCHAR(100); -- 修改列的数据类型 ALTER TABLE Employees ALTER COLUMN Salary DECIMAL(12, 2); -- 增加小数位数 -- 删除列 ALTER TABLE Employees DROP COLUMN Email;
2 删除表和数据库
-- 删除表 (如果存在) DROP TABLE IF EXISTS Employees; -- 删除数据库 (如果存在) DROP DATABASE IF EXISTS MyTestDB;
第三部分:进阶主题
模块 5:高级查询
1 聚合函数 对一组值执行计算,返回单个值。
COUNT(): 计数SUM(): 求和AVG(): 平均值MAX(): 最大值MIN(): 最小值
-- 计算员工总数 SELECT COUNT(*) AS TotalEmployees FROM Employees; -- 计算IT部门的总薪资 SELECT SUM(Salary) AS TotalSalaryIT FROM Employees WHERE Department = 'IT'; -- 计算所有员工的平均薪资 SELECT AVG(Salary) AS AverageSalary FROM Employees;
2 GROUP BY 和 HAVING
GROUP BY 将结果集按一个或多个列进行分组,通常与聚合函数一起使用。HAVING 用于
