第一部分:SQL Server 2008 简介
什么是 SQL Server?
SQL Server 是由微软公司开发的一款关系型数据库管理系统,它使用 Transact-SQL(T-SQL)作为其主要查询语言,你可以把它想象成一个高度组织化的电子表格仓库,但功能强大得多,可以存储、管理和检索海量数据。

SQL Server 2008 的主要版本
SQL Server 2008 提供了多个版本,以满足不同规模和需求的用户:
- 企业版: 功能最全,性能最高,适用于大型关键业务应用。
- 标准版: 功能齐全,适用于中小型企业。
- 工作组版: 功能精简,适用于部门或分支机构。
- Web 版: 专为托管 Web 应用程序而设计。
- 开发者版: 包含企业版的所有功能,但只能用于开发和测试,不能用于生产环境。
- 免费版: SQL Server Express,功能有限(例如数据库最大 10GB,CPU 限制),但对于学习、小型应用和桌面软件来说完全足够,是初学者的首选。
核心组件
- 数据库引擎: 核心服务,负责存储、处理和保护数据,这是我们打交道最多的部分。
- SQL Server Management Studio (SSMS): 主要的管理工具,一个图形化界面,让你可以编写查询、管理数据库、备份数据等。这是你每天都要用的工具。
- Business Intelligence Development Studio (BIDS): 用于创建商业智能解决方案,如 Integration Services (数据转换)、Analysis Services (数据分析) 和 Reporting Services (报表)。
- SQL Server Agent: 一个自动化任务调度工具,可以定期执行备份、数据库维护等作业。
第二部分:环境搭建与基础操作
下载与安装
由于 SQL Server 2008 已是较老的版本,建议从微软的官方存档页面下载。
- 下载地址: Microsoft SQL Server 2008 Service Pack 4 (SP4) 下载
- 安装步骤:
- 下载
SQLServer2008SP4_x64_ENU.iso或SQLServer2008SP4_x86_ENU.iso文件。 - 使用虚拟光驱或解压软件打开 ISO 文件。
- 运行
setup.exe。 - 进入“安装” -> “全新 SQL Server 独立安装或向现有安装添加功能”。
- 按照向导进行操作,通常选择“默认值”即可。
- 关键步骤: 在“功能选择”界面,至少勾选 “数据库引擎服务” 和 “管理工具 - 完整”(后者包含了 SSMS)。
- 设置身份验证模式:
- Windows 身份验证模式: 只能使用 Windows 用户登录。
- 混合模式: 可以使用 Windows 用户登录,也可以使用你设置的
sa用户和密码登录。初学者建议选择混合模式,并设置一个强密码给sa用户。
- 完成安装。
- 下载
连接与使用 SQL Server Management Studio (SSMS)
- 从开始菜单找到并打开 "Microsoft SQL Server Management Studio"。
- 首次连接,会弹出“连接到服务器”对话框。
- 服务器类型: 默认为“数据库引擎”即可。
- 服务器名称: 如果是本地安装,可以输入 (点)、
(local)或你的计算机名。 - 身份验证: 如果你选择了混合模式,就选择“SQL Server 身份验证”,然后输入用户名
sa和你设置的密码。
- 点击“连接”,成功后会看到一个类似 Visual Studio 的界面,这就是你的工作台。
SSMS 界面简介
- 对象资源管理器: 左侧面板,显示所有已连接的服务器、数据库、表、视图等对象,你可以在这里右键点击进行创建、修改、删除等操作。
- 查询编辑器: 中间的主要区域,用于编写和执行 T-SQL 代码。
- 属性窗口: 右侧面板,显示选中对象的详细属性。
第三部分:T-SQL 基础语法
T-SQL 是 SQL Server 的语言,用于与数据库交互。
数据定义语言
用于定义和管理数据库结构。

-
创建数据库:
CREATE DATABASE MySchoolDB; GO -- GO 是批处理分隔符,表示执行上面的语句
-
使用数据库:
USE MySchoolDB; GO
-
创建表:
CREATE TABLE Students ( StudentID INT PRIMARY KEY, -- 主键,唯一标识每一行 StudentName NVARCHAR(50) NOT NULL, -- 不允许为空 Age INT, Gender CHAR(1), EnrollmentDate DATETIME DEFAULT GETDATE() -- 默认值为当前时间 ); GO -
修改表 (添加列):
(图片来源网络,侵删)ALTER TABLE Students ADD Email NVARCHAR(100); GO
-
删除表:
DROP TABLE Students; GO
数据操作语言
用于操作表中的数据。
-
插入数据:
INSERT INTO Students (StudentID, StudentName, Age, Gender) VALUES (1, '张三', 20, '男'); -- 插入多行 INSERT INTO Students (StudentID, StudentName, Age, Gender) VALUES (2, '李四', 21, '女'), (3, '王五', 22, '男'); GO
-
查询数据:
-- 查询所有列和所有行 SELECT * FROM Students; -- 查询特定列 SELECT StudentName, Age FROM Students; -- 带条件的查询 SELECT * FROM Students WHERE Age > 20; -- 模糊查询 SELECT * FROM Students WHERE StudentName LIKE '张%'; -- 排序 SELECT * FROM Students ORDER BY Age DESC; -- DESC 降序, ASC 升序 (默认) GO
-
更新数据:
UPDATE Students SET Age = 21 WHERE StudentName = '张三'; GO
-
删除数据:
DELETE FROM Students WHERE StudentID = 3; GO
重要提示: 在执行
UPDATE和DELETE操作时,WHERE子句至关重要!如果忘记写WHERE,将会更新或删除表中的所有数据!建议先写SELECT语句确认要操作的数据,确认无误后再将SELECT改为UPDATE或DELETE。
第四部分:进阶主题
约束
确保数据库中数据的完整性和准确性。
-
PRIMARY KEY(主键): 唯一标识表中的每一行,不能为空,不能重复。 -
FOREIGN KEY(外键): 用于在两个表之间建立链接,实现参照完整性。-- 假设有一个 Courses 表 CREATE TABLE Courses ( CourseID INT PRIMARY KEY, CourseName NVARCHAR(100) ); -- 在 Students 表中添加外键,引用 Courses 表 ALTER TABLE Students ADD CourseID INT, CONSTRAINT FK_Students_Courses FOREIGN KEY (CourseID) REFERENCES Courses(CourseID); -
UNIQUE(唯一约束): 确保列中的所有值都是唯一的,但允许有空值。 -
CHECK(检查约束): 确保列中的值满足特定条件。ALTER TABLE Students ADD CONSTRAINT CHK_Age CHECK (Age > 15 AND Age < 30);
-
DEFAULT(默认约束): 如果插入数据时没有提供该列的值,则使用默认值。
视图
视图是一个虚拟表,其结果集由存储的查询定义,它不存储数据,只存储查询语句。
- 用途: 简化复杂查询、限制数据访问(只显示用户需要看到的列)。
- 创建视图:
CREATE VIEW v_StudentInfo AS SELECT StudentID, StudentName, CourseName FROM Students JOIN Courses ON Students.CourseID = Courses.CourseID; GO
- 使用视图:
SELECT * FROM v_StudentInfo WHERE CourseName = '数据库原理';
存储过程
存储在数据库中的一组预编译的 T-SQL 语句,可以接受参数和返回结果。
- 用途: 封装业务逻辑、提高性能(预编译)、减少网络流量。
- 创建存储过程:
CREATE PROCEDURE sp_GetStudentByID @StudentIDParam INT -- 定义参数 AS BEGIN SELECT * FROM Students WHERE StudentID = @StudentIDParam; END GO - 执行存储过程:
EXEC sp_GetStudentByID 1;
触发器
一种特殊的存储过程,它会在特定事件(如 INSERT, UPDATE, DELETE)发生时自动执行。
-
用途: 实现复杂的业务规则、进行数据审计。
-
示例: 在删除学生时,自动记录日志。
CREATE TABLE StudentDeleteLog ( LogID INT IDENTITY(1,1) PRIMARY KEY, DeletedStudentID INT, DeleteTime DATETIME ); CREATE TRIGGER tr_StudentDelete ON Students AFTER DELETE -- 在删除操作之后触发 AS BEGIN INSERT INTO StudentDeleteLog (DeletedStudentID, DeleteTime) SELECT d.StudentID, GETDATE() FROM deleted d; END GO
第五部分:维护与管理
备份数据库
数据是宝贵的,定期备份至关重要。
- 在 SSMS 的“对象资源管理器”中,右键点击你的数据库。
- 选择“任务” -> “备份”。
- 在“备份数据库”窗口中,选择备份类型(完整差异)、备份目标(通常选择“磁盘”)。
- 点击“确定”开始备份。
恢复数据库
当数据库损坏或数据丢失时,使用备份进行恢复。
- 确保 SQL Server 服务正在运行。
- 右键点击“数据库”文件夹,选择“还原数据库”。
- 选择“源设备”,然后浏览并选择之前备份的文件。
- 在“选择用于还原的备份集”中,选择要恢复的备份。
- 点击“确定”开始恢复。
学习资源推荐
-
官方文档 (虽然是旧版,但最权威):
-
在线教程:
- W3Schools: 提供非常简洁的 SQL 语法参考和在线示例。
- Runoob (菜鸟教程): 中文教程,内容易懂,适合入门。
- MSDN (微软开发者网络): 有大量的技术文章和示例代码。
-
视频教程:
- 在 Bilibili 或 YouTube 上搜索 "SQL Server 2008 教程",有很多中文和英文的系列视频课程。
-
实践项目:
- 学生信息管理系统: 创建学生、课程、成绩表,实现增删改查。
- 博客系统: 创建文章、分类、评论、用户表。
- 电商系统: 创建商品、订单、用户、购物车表。
总结与建议
- 多动手,少看: 数据库是实践性极强的技术,不要只看教程,一定要亲手敲代码,创建数据库和表,插入数据,并尝试各种查询。
- 理解概念: 深刻理解主键、外键、范式、事务等核心概念,这比记住语法更重要。
- 从简单开始: 先掌握
SELECT,INSERT,UPDATE,DELETE四个基本操作,再逐步学习连接、子查询、存储过程等高级功能。 - 善用 SSMS: 学会使用 SSMS 的图形化工具来创建和管理对象,同时也要习惯在查询编辑器中写代码,两者结合效率最高。
希望这份教程能帮助你顺利入门 SQL Server 2008!祝你学习愉快!
