杰瑞科技汇

SQL Server实例教程如何快速上手?

SQL Server 完整实例教程

目录

  1. 第一部分:SQL Server 是什么?

    SQL Server实例教程如何快速上手?-图1
    (图片来源网络,侵删)
    • 1 什么是 SQL Server?
    • 2 核心组件简介
    • 3 SQL Server 的版本与版本选择
  2. 第二部分:安装与环境准备

    • 1 版本选择:SQL Server Developer Edition
    • 2 系统要求检查
    • 3 下载安装程序
    • 4 安装步骤详解
    • 5 安装验证与连接工具
  3. 第三部分:核心概念与工具

    • 1 核心概念:实例、数据库、表、行、列
    • 2 管理工具:SQL Server Management Studio (SSMS)
    • 3 查询编辑器
    • 4 对象资源管理器
  4. 第四部分:SQL 基础语法入门

    • 1 数据定义语言
      • CREATE DATABASE
      • CREATE TABLE
      • ALTER TABLE
      • DROP TABLE
    • 2 数据操作语言
      • INSERT INTO
      • UPDATE
      • DELETE
    • 3 数据查询语言
      • SELECT (核心中的核心)
      • WHERE (条件筛选)
      • ORDER BY (排序)
      • JOIN (连接多表)
  5. 第五部分:进阶主题与实践

    SQL Server实例教程如何快速上手?-图2
    (图片来源网络,侵删)
    • 1 数据类型
    • 2 约束
    • 3 索引
    • 4 视图
    • 5 存储过程
  6. 第六部分:实战演练

    • 1 创建一个简单的学生信息管理系统
    • 2 需分析与表设计
    • 3 创建数据库和表
    • 4 实现增删改查操作
  7. 第七部分:学习资源与总结

    • 1 官方文档
    • 2 在线课程
    • 3 社区与论坛
    • 4 总结与下一步

第一部分:SQL Server 是什么?

1 什么是 SQL Server?

SQL Server 是由微软开发的关系型数据库管理系统,它使用 SQL (Structured Query Language,结构化查询语言) 作为其标准查询语言,用于存储、检索、管理和修改数据。

你可以把它想象成一个高度结构化的电子表格系统,但它功能更强大、更安全、性能更高,专为处理海量数据而设计,它是企业级应用、网站、数据分析等场景中最常用的数据库之一。

SQL Server实例教程如何快速上手?-图3
(图片来源网络,侵删)

2 核心组件简介

  • 数据库引擎:这是 SQL Server 的核心,负责处理数据的存储、安全、查询处理、事务管理等所有核心任务。
  • SQL Server Management Studio (SSMS):这是主要的图形化管理工具,让你通过图形界面和编写脚本来管理 SQL Server 实例。
  • Transact-SQL (T-SQL):SQL Server 对标准 SQL 的扩展,增加了变量、流程控制、错误处理等编程语言特性,功能更强大。
  • Analysis Services (SSAS):用于在线分析处理和数据挖掘,支持商业智能。
  • Reporting Services (SSRS):用于创建和管理各种格式的报表。
  • Integration Services (SSIS):用于数据集成和ETL (Extract, Transform, Load) 过程。

作为初学者,我们主要关注 数据库引擎SSMS

3 SQL Server 的版本与版本选择

SQL Server 提供了多个版本,以满足不同规模和需求的用户:

  • Enterprise (企业版):功能最全,性能最强,授权成本最高,适用于大型企业关键业务应用。
  • Standard (标准版):功能精简,性能良好,授权成本适中,适用于中小型企业。
  • Web (Web版):专为托管 Web 应用程序设计,功能和成本介于 Express 和 Standard 之间。
  • Developer (开发版)【推荐初学者使用】 功能与企业版完全相同,但仅限开发、测试和演示使用,不能用于生产环境免费
  • Express (Express版):功能最基础的免费版本,有数据库大小和内存使用的限制,适合个人学习或极小型应用。

对于学习和开发,SQL Server Developer Edition 是最佳选择,因为它提供了最完整的功能,且完全免费。


第二部分:安装与环境准备

1 版本选择:SQL Server Developer Edition

我们将安装 SQL Server 2025 Developer Edition (或你选择的最新版本)。

2 系统要求检查

确保你的电脑满足以下基本要求(以 Windows 10/11 为例):

  • 操作系统:Windows 10/11 (64-bit)
  • 处理器:1.4 GHz 或更快的 x64 处理器
  • 内存:至少 4 GB RAM (推荐 8 GB 或更多)
  • 硬盘空间:至少 6 GB 可用空间

3 下载安装程序

  1. 访问微软官方下载页面:SQL Server Developer Edition 下载
  2. 选择 "Developer" 版本,然后点击 "下载"。
  3. 你需要登录一个微软账户(如 Hotmail, Outlook 等)。
  4. 下载 SQLServer2025-x64-DEV.iso 文件(这是一个光盘映像文件)。

4 安装步骤详解

  1. 挂载 ISO 文件:下载完成后,右键点击 .iso 文件,选择“装载”,这会创建一个虚拟光盘驱动器。
  2. 运行安装程序:打开虚拟光盘,双击运行 setup.exe
  3. 安装中心:选择“从媒体安装”或“安装 SQL Server 2025”,通常直接点击“安装”即可。
  4. 产品密钥:选择“免费版”,然后点击“下一步”。
  5. 安装程序支持规则:等待检查完成,确保所有项目都通过,如果有失败的,通常不影响 Developer 版本的安装。
  6. 安装类型:选择“执行 SQL Server 2025 的全新安装”,然后点击“下一步”。
  7. 产品更新:可以直接点击“下一步”,跳过可选的更新。
  8. 安装规则:再次等待检查,然后点击“下一步”。
  9. 功能选择:这是最关键的一步,对于初学者,至少要勾选以下两项
    • 数据库引擎服务:核心组件。
    • SQL Server Management Studio:管理工具。
    • 你也可以勾选 Tools (工具) 和 SDKs (软件开发包)。
    • 勾选后,点击“下一步”。
  10. 数据库引擎配置
    • 账户设置:选择“混合模式”,这意味着你可以使用 Windows 身份验证和 SQL Server 身份验证。
    • 输入密码:为 sa 用户(SQL Server 的系统管理员)设置一个强密码,并务必记住
    • 将 SQL Server 服务帐户设置为内置系统帐户:选择 NT AUTHORITY\SYSTEM
    • 点击“下一步”。
  11. Analysis Services 配置Reporting Services 配置:直接点击“下一步”,使用默认配置。
  12. 准备安装:检查摘要信息,确认无误后点击“安装”。
  13. 安装进度:等待安装完成,这可能需要 10-30 分钟。
  14. 完成:安装成功后,点击“关闭”。

5 安装验证与连接工具

安装完成后,我们需要一个工具来连接和管理数据库。

  1. 启动 SSMS:开始菜单 -> 搜索 "SQL Server Management Studio" 并打开它。
  2. 连接到服务器
    • 服务器类型:默认为 "数据库引擎"。
    • 服务器名称:默认是 localhost(local),这表示连接到你本机安装的 SQL Server 实例,如果你的实例有自定义名称,请输入它。
    • 身份验证:选择 "SQL Server 身份验证"。
    • 登录名:输入 sa
    • 密码:输入你在安装时为 sa 设置的密码。
  3. 连接:点击“连接”,如果成功,你会看到 SSMS 的主界面,左侧是“对象资源管理器”,可以展开看到你的服务器、数据库等。

第三部分:核心概念与工具

1 核心概念

  • 实例:一个 SQL Server 服务可以管理一个或多个数据库,这个服务本身就是一个“实例”,默认安装的实例名称是 MSSQLSERVER,你可以把它想象成一个 SQL Server 的“副本”或“运行环境”。
  • 数据库:一个用于存储相关数据的容器,一个公司的销售数据可以放在一个名为 SalesDB 的数据库里。
  • :数据库中数据的集合,由行和列组成,类似于 Excel 表格。Customers 表存储所有客户信息。
  • :表中的一条记录。Customers 表中的一行代表一个客户。
  • :表中的一个字段,定义了数据的类型。Customers 表中的 CustomerName 列存储客户姓名。

2 管理工具:SQL Server Management Studio (SSMS)

SSMS 是你与 SQL Server 交互的主要窗口,它集成了查询编辑器、对象资源管理器、模板资源管理器等多个强大的工具。

3 查询编辑器

这是你编写和执行 T-SQL 代码的地方。

  • 打开 SSMS,点击工具栏上的 "新建查询" 按钮。
  • 一个新的查询窗口会打开,你可以在其中编写代码。
  • F5 或点击 "执行" 按钮来运行代码。

4 对象资源管理器

位于 SSMS 左侧的面板,以树状结构展示了你的服务器、所有数据库、表、视图、存储过程等所有数据库对象。

  • 你可以右键点击对象,通过图形界面进行创建、修改、删除等操作。
  • 对于学习来说,建议先使用图形界面理解概念,然后逐步过渡到编写 T-SQL 脚本,因为脚本更具可移植性和自动化能力。

第四部分:SQL 基础语法入门

我们将使用 T-SQL 在查询编辑器中操作数据库。

1 数据定义语言

创建数据库

CREATE DATABASE MySchoolDB;
GO -- GO 是一个批处理分隔符,表示前面的一批语句已经完成

使用数据库

USE MySchoolDB;
GO

创建表

CREATE TABLE Students (
    StudentID INT PRIMARY KEY, -- 主键,唯一标识每一行
    StudentName NVARCHAR(50) NOT NULL, -- 非空字符串
    Age INT,
    EnrollmentDate DATE
);
GO
CREATE TABLE Courses (
    CourseID INT PRIMARY KEY,
    CourseName NVARCHAR(100) NOT NULL,
    Credits INT
);
GO

修改表 (添加列)

ALTER TABLE Students
ADD Email NVARCHAR(100);
GO

删除表

DROP TABLE Courses;
GO

2 数据操作语言

向表中插入数据

INSERT INTO Students (StudentID, StudentName, Age, EnrollmentDate, Email)
VALUES (1, '张三', 20, '2025-09-01', 'zhangsan@example.com');
INSERT INTO Students (StudentID, StudentName, Age, EnrollmentDate)
VALUES (2, '李四', 21, '2025-09-01'); -- Email 为 NULL
GO

更新数据

UPDATE Students
SET Age = 21
WHERE StudentName = '张三';
GO

删除数据

DELETE FROM Students
WHERE StudentID = 2;
GO

警告DELETE 操作非常危险,一定要确保 WHERE 条件正确,否则会删除所有数据!

3 数据查询语言

SELECT - 查询所有数据

SELECT * FROM Students;
GO

WHERE - 条件筛选

-- 查找年龄大于20岁的学生
SELECT StudentName, Age FROM Students
WHERE Age > 20;
GO
-- 查找名字是'张三'的学生
SELECT * FROM Students
WHERE StudentName = '张三';
GO

ORDER BY - 排序

-- 按年龄升序排列
SELECT * FROM Students
ORDER BY Age ASC; -- ASC 是升序 (默认),DESC 是降序
GO
-- 按入学日期降序排列
SELECT * FROM Students
ORDER BY EnrollmentDate DESC;
GO

JOIN - 连接多表 假设我们重新创建了 Courses 表,并创建了一个 Enrollments 表来记录学生选课情况。

CREATE TABLE Courses (
    CourseID INT PRIMARY KEY,
    CourseName NVARCHAR(100) NOT NULL
);
GO
CREATE TABLE Enrollments (
    EnrollmentID INT PRIMARY KEY,
    StudentID INT,
    CourseID INT,
    FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);
GO
-- 插入一些示例数据
INSERT INTO Courses VALUES (101, '数据库原理');
INSERT INTO Courses VALUES (102, '计算机网络');
INSERT INTO Enrollments VALUES (1, 1, 101);
INSERT INTO Enrollments VALUES (2, 1, 102);
GO
-- 查询“张三”选修了哪些课程
SELECT
    s.StudentName,
    c.CourseName
FROM
    Students AS s -- 使用 AS 给表起别名
INNER JOIN
    Enrollments AS e ON s.StudentID = e.StudentID
INNER JOIN
    Courses AS c ON e.CourseID = c.CourseID
WHERE
    s.StudentName = '张三';
GO

第五部分:进阶主题与实践

1 数据类型

  • 数值型INT (整数), DECIMAL(p,s) (精确小数), FLOAT (浮点数)
  • 字符串型CHAR(n) (定长), VARCHAR(n) (变长), NVARCHAR(n) (支持Unicode,如中文)
  • 日期时间型DATE (仅日期), DATETIME (日期+时间), DATETIME2 (更高精度)
  • 其他BIT (布尔值), UNIQUEIDENTIFIER (唯一标识符)

2 约束

  • PRIMARY KEY:主键,唯一且非空。
  • FOREIGN KEY:外键,用于维护表间关系的完整性。
  • UNIQUE:唯一约束,列值不能重复,但可以为空。
  • NOT NULL:非空约束,列必须有值。
  • CHECK:检查约束,列值必须满足特定条件。
    ALTER TABLE Students
    ADD CONSTRAINT CK_Age CHECK (Age > 0 AND Age < 120);
    GO

3 索引

索引是提高查询性能的关键,它就像一本书的目录,让数据库能快速找到数据,而无需扫描整个表。

  • 主键和唯一约束会自动创建索引
  • 对于经常用于 WHEREJOINORDER BY 的列,手动创建索引可以大大提升速度。
    CREATE INDEX IX_Students_Name ON Students(StudentName);
    GO

4 视图

视图是一个虚拟表,其结果集来自一个或多个表的查询,它简化了复杂查询,并可以隐藏数据表的底层结构。

CREATE VIEW v_StudentCourses AS
SELECT s.StudentName, c.CourseName
FROM Students s
INNER JOIN Enrollments e ON s.StudentID = e.StudentID
INNER JOIN Courses c ON e.CourseID = c.CourseID;
GO
-- 像查询普通表一样使用视图
SELECT * FROM v_StudentCourses;
GO

5 存储过程

存储过程是一组为了完成特定功能的预编译 SQL 语句集合,它像数据库中的一个函数,可以接收参数、执行逻辑并返回结果。

CREATE PROCEDURE sp_GetStudentByID
    @StudentID INT
AS
BEGIN
    SELECT StudentName, Age, Email
    FROM Students
    WHERE StudentID = @StudentID;
END;
GO
-- 执行存储过程
EXEC sp_GetStudentByID @StudentID = 1;
GO

第六部分:实战演练

1 创建一个简单的学生信息管理系统

我们将创建一个包含学生、课程和成绩的数据库,并实现基本的增删改查。

2 需分析与表设计

  • 学生表:存储学生基本信息。
  • 课程表:存储课程信息。
  • 成绩表:存储每个学生每门课程的成绩。

表结构设计:

  • Students (StudentID, StudentName, Gender, BirthDate)
  • Courses (CourseID, CourseName, Teacher)
  • Scores (ScoreID, StudentID, CourseID, ScoreValue)

3 创建数据库和表

在 SSMS 的查询编辑器中执行以下脚本:

-- 1. 创建数据库
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'SchoolDB')
BEGIN
    CREATE DATABASE SchoolDB;
END
GO
-- 2. 使用数据库
USE SchoolDB;
GO
-- 3. 创建学生表
CREATE TABLE Students (
    StudentID INT PRIMARY KEY IDENTITY(1,1), -- IDENTITY 自动递增
    StudentName NVARCHAR(50) NOT NULL,
    Gender CHAR(1), -- 'M' 或 'F'
    BirthDate DATE
);
GO
-- 4. 创建课程表
CREATE TABLE Courses (
    CourseID INT PRIMARY KEY IDENTITY(1,1),
    CourseName NVARCHAR(100) NOT NULL,
    Teacher NVARCHAR(50)
);
GO
-- 5. 创建成绩表
CREATE TABLE Scores (
    ScoreID INT PRIMARY KEY IDENTITY(1,1),
    StudentID INT NOT NULL,
    CourseID INT NOT NULL,
    ScoreValue DECIMAL(5, 2) NOT NULL CHECK (ScoreValue >= 0 AND ScoreValue <= 100),
    FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);
GO

4 实现增删改查操作

插入数据

-- 插入学生
INSERT INTO Students (StudentName, Gender, BirthDate) VALUES ('王五', 'M', '2002-05-15');
INSERT INTO Students (StudentName, Gender, BirthDate) VALUES ('赵六', 'F', '2003-01-20');
-- 插入课程
INSERT INTO Courses (CourseName, Teacher) VALUES ('高等数学', '钱老师');
INSERT INTO Courses (CourseName, Teacher) VALUES ('大学英语', '孙老师');
-- 插入成绩
INSERT INTO Scores (StudentID, CourseID, ScoreValue) VALUES (1, 1, 85.50);
INSERT INTO Scores (StudentID, CourseID, ScoreValue) VALUES (1, 2, 92.00);
INSERT INTO Scores (StudentID, CourseID, ScoreValue) VALUES (2, 1, 78.00);
GO

查询数据

-- 查询所有学生
SELECT * FROM Students;
-- 查询所有课程
SELECT * FROM Courses;
-- 查询所有成绩
SELECT * FROM Scores;
-- 查询“王五”的各科成绩
SELECT
    s.StudentName,
    c.CourseName,
    sc.ScoreValue
FROM
    Scores sc
JOIN
    Students s ON sc.StudentID = s.StudentID
JOIN
    Courses c ON sc.CourseID = c.CourseID
WHERE
    s.StudentName = '王五';
GO

更新数据

-- 将“王五”的高等数学成绩更新为 88.00
UPDATE Scores
SET ScoreValue = 88.00
FROM Scores sc
JOIN Students s ON sc.StudentID = s.StudentID
WHERE s.StudentName = '王五' AND sc.CourseID = (SELECT CourseID FROM Courses WHERE CourseName = '高等数学');
GO

删除数据

-- 删除“赵六”的所有成绩记录
DELETE FROM Scores
WHERE StudentID = (SELECT StudentID FROM Students WHERE StudentName = '赵六');
-- 然后删除“赵六”的学生记录
DELETE FROM Students
WHERE StudentName = '赵六';
GO

第七部分:学习资源与总结

1 官方文档

2 在线课程

  • Udemy: 搜索 "SQL Server" 或 "T-SQL",有很多高质量的付费和免费课程。
  • Coursera / edX: 提供来自知名大学的数据库相关课程。
  • Bilibili: 有大量国内开发者分享的免费 SQL Server 教程。

3 社区与论坛

4 总结与下一步

恭喜你!通过这份教程,你已经掌握了 SQL Server 的基础安装、核心概念、基本语法和实战操作。

下一步你可以:

  1. 深入 T-SQL:学习更复杂的查询技巧,如子查询、公用表表达式、窗口函数等。
  2. 学习数据库设计:了解数据库范式、索引优化、事务和锁等高级主题。
  3. 探索商业智能:学习使用 SSIS、SSAS 和 SSRS 进行数据集成和分析。
  4. 学习其他数据库:如 MySQL, PostgreSQL, Oracle,对比它们的异同,拓宽视野。

SQL 是一门实践性很强的技术,多写多练是掌握它的不二法门,祝你学习顺利!

分享:
扫描分享到社交APP
上一篇
下一篇