SQL Server 2005 综合教程
重要提示: SQL Server 2005 是一个非常古老且早已停止技术支持的版本,它不再接收安全更新,使用它存在巨大的安全风险,本教程仅用于学习历史概念或在特定遗留环境中进行维护。强烈建议您学习和支持的版本,如 SQL Server 2025 或更高版本。

第一部分:SQL Server 2005 简介
1 什么是 SQL Server 2005?
SQL Server 2005 是微软公司于2005年发布的关系型数据库管理系统,它是 SQL Server 2000 的重大升级,引入了许多革命性的新功能,极大地提升了开发人员的生产力、数据库的可靠性和性能。
2 核心新特性(为什么它如此重要?)
SQL Server 2005 的发布标志着微软数据库战略的重大转变,它不仅仅是一个数据库,更是一个数据平台。
-
集成 .NET 公共语言运行时:
- 革命性特性:这是 SQL Server 2005 最重要的特性之一,它允许开发者使用任何 .NET 语言(如 C#, VB.NET)在数据库内部编写存储过程、函数、触发器。
- 优点:可以将复杂的业务逻辑直接放在数据库端执行,提高了性能,并利用了 .NET 强大的类库。
-
SQL Server Management Studio (SSMS):
(图片来源网络,侵删)- 取代了早期版本的企业管理器和查询分析器。
- 提供了一个统一的、功能强大的图形界面,用于数据库管理、开发、调试和报表。
-
Business Intelligence (BI) 套件:
- SQL Server 2005 将 BI 功能深度集成到产品中,主要包括:
- SQL Server Integration Services (SSIS):强大的数据转换和提取、转换、加载工具,用于构建复杂的数据仓库和数据流。
- SQL Server Analysis Services (SSAS):用于创建和管理联机分析处理 数据库和数据挖掘模型。
- SQL Server Reporting Services (SSRS):用于创建、管理和交付各种格式的报表(如 HTML, PDF, Excel)。
- SQL Server 2005 将 BI 功能深度集成到产品中,主要包括:
-
增强的 T-SQL 语言:
- 引入了
TRY...CATCH错误处理机制,替代了之前@@ERROR的繁琐用法。 - 增加了
PIVOT和UNPIVOT操作符,方便地进行数据透视和逆透视。 - 引入了
ROW_NUMBER()等窗口函数,使复杂的数据聚合和排名查询变得更加简单。
- 引入了
-
Service Broker:
一个内置的、可靠的消息队列系统,允许数据库应用程序之间进行异步、可靠的消息传递。
(图片来源网络,侵删)
第二部分:安装与配置
1 系统要求
在安装前,请确保你的系统满足以下要求(以 32 位版为例):
- 处理器:Pentium III 兼容处理器或更高,1 GHz 或更高。
- 内存:至少 512 MB RAM,推荐 1 GB 或更高。
- 硬盘空间:
- 数据库引擎:至少 2 GB。
- Analysis Services:至少 1 GB。
- Reporting Services:至少 1 GB。
- Integration Services:至少 250 MB。
- 操作系统:
- Windows Server 2003 (所有版本)
- Windows XP Professional Service Pack 2
- Windows 2000 Professional Service Pack 4 (不推荐)
2 安装步骤
- 下载安装介质:从微软官方渠道获取 SQL Server 2005 的安装光盘 ISO 文件。
- 运行安装程序:挂载 ISO 或解压后,运行
setup.exe。 - 欢迎使用 SQL Server 安装向导:点击“下一步”。
- 系统检查:向导会检查你的系统是否符合安装要求,如果有警告,请仔细阅读。
- 输入产品密钥:输入你的产品密钥。
- 安装组件:选择要安装的组件,最核心的是:
- 服务器组件、工具、联机丛书和示例:这是最常用的安装选项,包含了数据库引擎、管理工具等。
- 客户端组件:包含连接到 SQL Server 的工具和库。
- 安装规则:等待系统检查通过。
- 错误报告:选择是否向微软发送错误报告。
- 安装类型:
- 默认实例:如果你的电脑上只装一个 SQL Server,选择此项,连接时无需指定实例名。
- 命名实例:如果电脑上需要运行多个 SQL Server 版本(例如同时有 SQL Server 2000 和 2005),必须选择此项,并为其指定一个名称(如
SQL2005)。
- 服务账户:为 SQL Server 服务指定登录账户,通常使用内置的
Network Service账户。 - 身份验证模式:
- Windows 身份验证模式:仅允许 Windows 用户连接,这是最安全、推荐的模式。
- 混合模式:允许 Windows 用户和 SQL Server 用户(如
sa)连接。请务必为sa账户设置一个强密码!
- 排序规则:指定数据库排序和比较数据的规则,通常使用默认值。
- 错误报告:再次确认。
- 准备安装:检查摘要信息,无误后点击“安装”。
- 完成安装:等待所有组件安装完成,点击“下一步”和“完成”。
第三部分:基础 T-SQL 教程
T-SQL (Transact-SQL) 是 SQL Server 的核心查询语言。
1 连接到 SQL Server
安装完成后,打开 SQL Server Management Studio (SSMS)。
- 在“服务器类型”中选择“数据库引擎”。
- 在“服务器名称”中输入你的服务器名(如果是默认实例,通常是 或
localhost;如果是命名实例,是.\实例名)。 - 在“身份验证”中选择你之前设置的模式(Windows 或 SQL Server)。
- 如果是 SQL Server 身份验证,输入用户名(如
sa)和密码。 - 点击“连接”。
2 数据库和表的基本操作
创建数据库
-- 创建一个名为 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,
BirthDate DATE,
Department NVARCHAR(50),
Salary DECIMAL(10, 2) -- 总共10位,小数点后2位
);
GO
插入数据
-- 向 Employees 表中插入数据 INSERT INTO Employees (EmployeeID, FirstName, LastName, BirthDate, Department, Salary) VALUES (1, '张', '三', '1980-05-20', 'IT部', 8500.00); INSERT INTO Employees (EmployeeID, FirstName, LastName, BirthDate, Department, Salary) VALUES (2, '李', '四', '1985-11-15', '财务部', 7500.50); INSERT INTO Employees (EmployeeID, FirstName, LastName, BirthDate, Department, Salary) VALUES (3, '王', '五', '1990-02-28', 'IT部', 9200.00); GO
查询数据
-- 查询所有员工的所有信息 SELECT * FROM Employees; -- 查询所有员工的姓名和薪水 SELECT FirstName, LastName, Salary FROM Employees; -- 查询 IT 部门的所有员工 SELECT * FROM Employees WHERE Department = 'IT部'; -- 查询薪水大于 8000 的员工 SELECT * FROM Employees WHERE Salary > 8000;
更新数据
-- 将员工ID为1的员工薪水更新为 9000 UPDATE Employees SET Salary = 9000.00 WHERE EmployeeID = 1; GO
删除数据
-- 删除员工ID为3的员工记录 DELETE FROM Employees WHERE EmployeeID = 3; GO
3 SQL Server 2005 的 T-SQL 增强
TRY...CATCH 错误处理
BEGIN TRY
-- 这个语句会引发除零错误
DECLARE @Result INT = 1 / 0;
PRINT '计算成功';
END TRY
BEGIN CATCH
-- 捕获错误并打印错误信息
PRINT '发生错误: ' + ERROR_MESSAGE();
END CATCH
GO
使用 ROW_NUMBER() 进行排名
-- 查询所有员工,并按薪水从高到低进行排名
SELECT
EmployeeID,
FirstName,
LastName,
Salary,
ROW_NUMBER() OVER (ORDER BY Salary DESC) AS SalaryRank
FROM Employees;
GO
第四部分:高级主题与工具
1 存储过程
存储过程是一组预编译的 T-SQL 语句,可以带参数,用于封装业务逻辑。
-- 创建一个存储过程,用于根据部门查询员工
CREATE PROCEDURE sp_GetEmployeesByDepartment
@DeptName NVARCHAR(50)
AS
BEGIN
SELECT EmployeeID, FirstName, LastName, Salary
FROM Employees
WHERE Department = @DeptName;
END;
GO
-- 执行这个存储过程
EXEC sp_GetEmployeesByDepartment 'IT部';
GO
2 触发器
触发器是一种特殊的存储过程,在特定事件(如 INSERT, UPDATE, DELETE)发生时自动执行。
-- 创建一个触发器,确保员工薪水不能低于 1000
CREATE TRIGGER trg_CheckSalary
ON Employees
AFTER INSERT, UPDATE
AS
BEGIN
IF EXISTS (SELECT 1 FROM inserted WHERE Salary < 1000)
BEGIN
-- 回滚事务,阻止操作
ROLLBACK TRANSACTION;
RAISERROR ('员工薪水不能低于 1000!', 16, 1);
END
END;
GO
-- 尝试插入一个薪水为 500 的员工,将会失败
-- INSERT INTO Employees (EmployeeID, FirstName, LastName, Salary) VALUES (4, '赵', '六', 500.00);
3 Business Intelligence (BI) 简介
- SSIS:想象成一个数据管道,你可以从不同的数据源(如 Excel 文件、其他数据库、文本文件)抽取数据,然后进行清洗、转换、合并,最后加载到目标数据库(数据仓库)中。
- SSAS:在数据仓库的基础上,创建“数据立方体”,这个立方体允许用户从多个维度(如时间、地区、产品)快速分析和汇总数据,非常适合制作报表和进行商业智能分析。
- SSRS:设计工具,让你可以拖拽数据字段到画布上,创建漂亮的表格、图表、矩阵等报表,然后可以将这些报表部署到报表服务器,通过 Web 浏览器或 SharePoint 进行查看。
第五部分:学习资源与总结
1 官方文档(已归档)
虽然不再更新,但历史文档依然存在,你可以在微软文档档案馆找到 SQL Server 2005 的 Books Online (BOL),这是最权威的参考资料。
- SQL Server 2005 Books Online (英文): https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2005/ms178025(v=sql.90)
2 总结
SQL Server 2005 是一个里程碑式的产品,它奠定了现代 SQL Server 的基础,通过学习它,你可以理解许多核心概念,如 CLR 集成、BI 套件、增强的 T-SQL 等。
再次强调,切勿在任何生产环境中使用 SQL Server 2005,它的安全漏洞和性能瓶颈使其成为一个巨大的风险,如果你是初学者,请直接从 SQL Server 2025 或更高版本 开始学习,它们拥有更好的性能、更强的安全性和更现代的功能。
