杰瑞科技汇

SQLServer基础教程该怎么学?

SQL Server 基础教程

目录

  1. 第一部分:入门准备

    SQLServer基础教程该怎么学?-图1
    (图片来源网络,侵删)
    • 什么是 SQL Server?
    • 什么是 SQL?
    • 安装 SQL Server (简化版:使用 SQL Server Express LocalDB)
    • 安装和管理工具 (SSMS - SQL Server Management Studio)
  2. 第二部分:核心概念

    • 数据库
    • 行 和 列
    • 数据类型
  3. 第三部分:SQL 语言核心

    • SQL 语言简介
    • SELECT - 从表中查询数据
    • WHERE - 过滤查询结果
    • ORDER BY - 对结果排序
    • INSERT INTO - 向表中插入新数据
    • UPDATE - 更新表中的数据
    • DELETE - 删除表中的数据
  4. 第四部分:进阶操作

    • JOIN - 连接多张表
    • GROUP BY 和聚合函数 (COUNT, SUM, AVG, MAX, MIN)
    • 创建和管理表 (CREATE TABLE, ALTER TABLE, DROP TABLE)
  5. 第五部分:总结与下一步

    SQLServer基础教程该怎么学?-图2
    (图片来源网络,侵删)

第一部分:入门准备

什么是 SQL Server?

SQL Server 是由微软开发的一个关系型数据库管理系统,你可以把它想象成一个高度专业化、非常安全的“数字文件柜”,专门用于存储、管理和检索结构化数据,它被广泛应用于企业级应用程序、网站、桌面软件等各个领域。

什么是 SQL?

SQL (Structured Query Language,结构化查询语言) 是与 SQL Server 等关系型数据库沟通的标准语言,无论你使用的是 SQL Server、MySQL、PostgreSQL 还是 Oracle,你写的 SQL 语句都非常相似,SQL 是你用来告诉数据库“存什么数据”、“怎么取数据”的工具。

安装 SQL Server (简化版)

对于初学者,我们推荐安装 SQL Server Express 版本,它是免费的,功能也足够学习使用。

  • 最简单的方式:安装 LocalDB LocalDB 是 SQL Server Express 的一个轻量级版本,它不需要复杂的配置,会作为 Windows 服务的一部分自动启动,非常适合本地开发和学习。

    SQLServer基础教程该怎么学?-图3
    (图片来源网络,侵删)
    1. 访问微软官方下载页面:SQL Server Express 下载
    2. 选择 "Express" 版本,然后选择 "Download SQL Server 2025 Express LocalDB"。
    3. 下载后运行安装程序,按照向导提示完成即可,通常只需要点击“下一步”直到结束。

安装和管理工具 (SSMS)

安装完数据库引擎后,你需要一个图形化工具来管理它,这就是 SQL Server Management Studio (SSMS)

  • 下载 SSMS: 访问 SSMS 下载页面,下载并安装最新版本。
  • 连接到数据库
    1. 打开 SSMS。
    2. 在“连接到服务器”窗口中:
      • 服务器类型:默认为“数据库引擎”即可。
      • 服务器名称:输入 (localdb)\MSSQLLocalDB,这是 LocalDB 的默认名称。
      • 身份验证:选择“Windows 身份验证”,这意味着使用你的 Windows 用户名和密码登录,最简单。
      • 连接:点击连接。

连接成功后,你会看到一个对象资源管理器,左侧列出了你的服务器、数据库等信息。


第二部分:核心概念

在写 SQL 之前,必须理解数据库的基本结构。

  • 数据库:一个数据库就是一个完整的数据集合,就像一个 Excel 文件,一个 SQL Server 实例(你的 LocalDB)可以包含多个数据库。
  • :数据库中存储数据的基本单位,它类似于 Excel 文件中的一张工作表,每个表都有一个特定的主题,学生表”、“产品表”。
  • :表中的一条记录,学生表”中的一行就代表一个学生的所有信息(学号、姓名、年龄等)。
  • :表中的一个字段,学生表”中的“姓名”列,存储了所有学生的姓名。
  • 数据类型:定义列可以存储什么类型的数据。
    • INT:整数 (如年龄、学号)
    • VARCHAR(n):可变长度的字符串 (如姓名、地址)
    • DATETIME:日期和时间 (如出生日期、订单时间)
    • DECIMAL(p,s):精确的十进制数 (如价格、工资)

第三部分:SQL 语言核心

所有 SQL 语句都以一个命令动词开头,后跟子句,我们将在 SSMS 的“新建查询”窗口中编写和执行这些语句。

SELECT - 查询数据

这是最常用的命令,用于从表中检索数据。

-- 语法:SELECT 列名 FROM 表名;
-- 示例1:查询 "Students" 表中所有学生的所有信息
SELECT * FROM Students;
-- 示例2:只查询 "Students" 表中所有学生的姓名和年龄
SELECT StudentName, Age FROM Students;

提示: 是一个通配符,表示“所有列”,在实际项目中,应尽量避免使用 SELECT *,而是明确写出所需的列名,这样可以提高查询性能和代码可读性。

WHERE - 过滤数据

WHERE 子句用于根据指定条件过滤结果,只返回满足条件的行。

-- 语法:SELECT 列名 FROM 表名 WHERE 条件;
-- 示例:查询年龄大于 20 的学生
SELECT StudentName, Age FROM Students WHERE Age > 20;
-- 示例:查询名字叫 "张三" 的学生
SELECT * FROM Students WHERE StudentName = '张三'; -- 字符串用单引号括起来
-- 示例:查询年龄在 18 到 22 之间的学生 (包括18和22)
SELECT * FROM Students WHERE Age BETWEEN 18 AND 22;
-- 示例:查询名字是 "李四" 或 "王五" 的学生
SELECT * FROM Students WHERE StudentName IN ('李四', '王五');

常用运算符

  • (等于), 或 <> (不等于)
  • > (大于), < (小于), >= (大于等于), <= (小于等于)
  • BETWEEN ... AND ... (在...之间)
  • IN (value1, value2, ...) (在列表中)
  • LIKE (模式匹配,WHERE Name LIKE '张%' 查找所有姓张的人)
  • AND (, OR (或者)

ORDER BY - 排序结果

ORDER BY 子句用于将查询结果按一个或多个列进行升序 (ASC) 或降序 (DESC) 排列,默认是升序。

-- 语法:SELECT 列名 FROM 表名 WHERE 条件 ORDER BY 列名 [ASC|DESC];
-- 示例:按年龄升序排列所有学生
SELECT StudentName, Age FROM Students ORDER BY Age ASC;
-- 示例:按年龄降序排列所有学生
SELECT StudentName, Age FROM Students ORDER BY Age DESC;
-- 示例:先按年龄升序,如果年龄相同,再按姓名降序排列
SELECT StudentName, Age FROM Students ORDER BY Age ASC, StudentName DESC;

INSERT INTO - 插入数据

用于向表中添加新的行。

-- 语法1:为所有列插入数据
INSERT INTO 表名 VALUES (值1, 值2, ...);
-- 语法2:为指定列插入数据(推荐)
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
-- 示例:向 Students 表中插入一个新学生
INSERT INTO Students (StudentName, Age, Gender) 
VALUES ('赵六', 21, '男');

UPDATE - 更新数据

用于修改表中已存在的数据。非常重要UPDATE 语句一定要配合 WHERE 使用,否则会更新表中的所有行!

-- 语法:UPDATE 表名 SET 列名1 = 新值1, 列名2 = 新值2 WHERE 条件;
-- 示例:将学号为 1 的学生的年龄改为 22
UPDATE Students SET Age = 22 WHERE StudentID = 1;

DELETE - 删除数据

用于从表中删除行。同样重要DELETE 语句一定要配合 WHERE 使用,否则会清空整个表!

-- 语法:DELETE FROM 表名 WHERE 条件;
-- 示例:删除名字为 "赵六" 的学生记录
DELETE FROM Students WHERE StudentName = '赵六';

第四部分:进阶操作

JOIN - 连接多张表

在实际应用中,数据通常被分散在不同的表中,以减少冗余。JOIN 操作用于根据两个或多个表之间的相关列,将这些表的行组合起来。

假设我们有另一张表 Scores: | ScoreID | StudentID | Subject | Score | | :--- | :--- | :--- | :--- | | 1 | 1 | 数学 | 95 | | 2 | 2 | 数学 | 88 | | 3 | 1 | 英语 | 90 |

-- 示例:查询每个学生的姓名和他们数学的分数
SELECT 
    s.StudentName, 
    sc.Subject, 
    sc.Score
FROM 
    Students AS s -- 给表起别名,方便引用
INNER JOIN 
    Scores AS sc ON s.StudentID = sc.StudentID -- 连接条件:学生ID相等
WHERE 
    sc.Subject = '数学';

INNER JOIN 只返回两个表中匹配的行,如果某个学生没有数学成绩,他/她就不会出现在结果中。

GROUP BY 和聚合函数

聚合函数对一组值执行计算,并返回单个值。GROUP BY 子句通常与聚合函数一起使用,将结果集按一个或多个列进行分组。

-- 常用聚合函数:
-- COUNT(): 计数
-- SUM(): 求和
-- AVG(): 平均值
-- MAX(): 最大值
-- MIN(): 最小值
-- 示例:计算每个学生的平均分
SELECT 
    s.StudentName,
    AVG(sc.Score) AS AverageScore -- 使用 AS 给列起别名
FROM 
    Students AS s
INNER JOIN 
    Scores AS sc ON s.StudentID = sc.StudentID
GROUP BY 
    s.StudentName; -- 按 StudentName 分组

创建和管理表

你可以使用 SQL 语句来创建、修改和删除表。

-- 创建一个新表
CREATE TABLE Courses (
    CourseID INT PRIMARY KEY, -- 主键,唯一标识每一行
    CourseName VARCHAR(100) NOT NULL, -- NOT NULL 表示此列不能为空
    Credit INT
);
-- 修改表:添加一个新列
ALTER TABLE Courses
ADD Description VARCHAR(255);
-- 删除表 (危险操作!)
-- DROP TABLE Courses;

第五部分:总结与下一步

恭喜你!你已经掌握了 SQL Server 的基础知识和核心 SQL 操作。

回顾一下我们学了什么:

  • 环境准备:安装了 LocalDB 和 SSMS。
  • 核心概念:理解了数据库、表、行、列和数据类型。
  • CRUD 操作:学会了如何创建、读取 (SELECT)、更新 (UPDATE) 和删除 (DELETE) 数据。
  • 进阶查询:学会了如何过滤 (WHERE)、排序 (ORDER BY)、连接 (JOIN) 表和使用聚合函数 (GROUP BY)。

下一步可以学习什么?

  1. 索引:学习如何创建索引来大幅提升查询速度。
  2. 视图:学习如何创建虚拟表,简化复杂查询。
  3. 存储过程:学习如何将一组 SQL 语句封装成一个可重复调用的单元。
  4. 事务:学习如何确保一组操作要么全部成功,要么全部失败,保证数据一致性。
  5. SQL Server 高级功能:如触发器、用户定义函数等。

学习编程最好的方法就是多动手实践,尝试自己创建几张表,插入一些数据,然后练习各种查询语句,祝你学习顺利!

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