数据库学习路径

张开发
2026/6/10 4:22:44 15 分钟阅读
数据库学习路径
一第一阶段宏观认识1.DBMS数据库管理系统是最底层的数据库服务一个后台服务进程没有前台界面。专业的开发软件服务。开发人员要开发东西的时候需要用到。我们日常使用的APP的数据库都在服务器上。当我们说“SQL Server”时指的就是微软开发的这款数据库管理系统DBMS。它就像Oracle是甲骨文公司的 DBMSMySQL是 Oracle 旗下的 DBMSPostgreSQL是开源的 DBMS2.SQL Server客户端工具1.官方客户端工具SSMSSQL Server Management Studio专门用来操作微软的SQL ServerWindow专属定位SQL Server 官方旗舰客户端Windows 专属特点功能最全支持图形化操作 SQL 编写适合开发、运维、DBA适用场景本地调试、建表、写存储过程、管理服务器上位机开发必备优点和 SQL Server 100% 适配免费更新及时Azure Data Studio定位微软新一代跨平台客户端支持 Windows / Mac / Linux特点轻量、开源支持 SQL Server、Azure SQL、PostgreSQL、MySQL 等多数据库适用场景跨平台开发、云数据库管理、轻量查询优点跨平台、插件丰富适合现代开发流程sqlcmd命令行工具定位SQL Server 自带的命令行客户端随 DBMS 一起安装特点无图形界面纯命令行操作适合脚本自动化、服务器运维适用场景批量执行 SQL、定时任务、远程服务器无界面操作优点轻量、无需额外安装服务器必备bcp批量复制工具定位专门用来批量导入 / 导出数据的命令行工具特点速度极快适合大数据量迁移适用场景数据备份、迁移、ETL 作业2.第三方通用客户端支持多数据库不止SQL ServerDBeaver定位开源免费的通用数据库客户端支持几乎所有主流数据库特点跨平台Windows/Mac/Linux功能强大免费开源适用场景同时管理 SQL Server、MySQL、Oracle 等多数据库优点免费、跨平台、多数据库支持适合开发者Navicat Premium定位商业级通用数据库客户端界面友好功能全面特点支持 SQL Server、MySQL、PostgreSQL 等图形化操作简单适用场景可视化管理、数据同步、报表生成优点界面美观、操作简单适合新手DataGrip定位专业级数据库 IDE适合开发者特点智能补全、代码重构、多数据库支持跨平台适用场景专业开发、复杂 SQL 编写、数据库调试优点智能提示强、生态好适合程序员HeidiSQL定位开源免费的轻量客户端支持 SQL Server、MySQL、MariaDB 等特点体积小、启动快适合快速查询适用场景轻量操作、快速调试优点免费、轻量、无广告3.SQL 语句的分类1.DDLDefinition定义语言的2.DMLManipulate操作语言的3.DQLQuery查询语言的二第二阶段结构定义1.数据类型数据库里的格子必须规定只能放哪种东西数字类INT整数、DECIMAL(18,2)精确的小数存钱必选。字符类VARCHAR(50)可变长度省空间、NVARCHAR支持中文更友好。时间类DATETIME。2.五大约束约束是为了保证数据不乱套的“紧箍咒”主键 (Primary Key)一张表只能有一个。它必须是唯一的像身份证不能为空。外键 (Foreign Key)跨表引用的纽带。比如“成绩表”里存一个“学生ID”这个 ID 必须在“学生表”里真实存在。非空 (NOT NULL)这列数据必填。唯一 (UNIQUE)虽然不是主键但也不能重复比如手机号。默认值 (DEFAULT)如果你不填数据库自动填比如注册时间默认当前时间。3.自动编号在 SQL Server 中我们常给主键设置IDENTITY(1,1)意思是第一行从 1 开始每加一行自动加 1。你插数据时不需要管这个 ID。三第三阶段增删改表建好了就需要处理一条条的数据了1.增加-- 标准写法指定列名对应值最安全 INSERT INTO 表名(列1, 列2, 列3...) VALUES(值1, 值2, 值3...); -- 简写不写列名必须按表结构顺序给所有列赋值不推荐容易出错 INSERT INTO 表名 VALUES(值1, 值2, 值3...); -- 批量插入一次加多条数据 INSERT INTO 表名(列1, 列2) VALUES(值1,值2), (值3,值4), (值5,值6);示例-- 插入1条学生数据 INSERT INTO Student(Id, Name, Age, Class) VALUES(1, N张三, 18, N高一(1)班); -- 批量插入3条 INSERT INTO Student(Id, Name, Age, Class) VALUES (2, N李四, 17, N高一(1)班), (3, N王五, 18, N高一(2)班), (4, N赵六, 17, N高一(2)班);2.改-- 核心必须加WHERE条件否则会修改全表所有数据灾难级操作 UPDATE 表名 SET 列1新值1, 列2新值2... WHERE 筛选条件;示例-- 把张三的年龄改成19 UPDATE Student SET Age 19 WHERE Name N张三; -- 同时修改多个列把赵六的班级改成高一(3)班年龄改成18 UPDATE Student SET Class N高一(3)班, Age 18 WHERE Id 4; -- 批量修改把高一(1)班所有学生的年龄1 UPDATE Student SET Age Age 1 WHERE Class N高一(1)班;3.删-- 核心同样必须加WHERE条件否则会清空全表 DELETE FROM 表名 WHERE 筛选条件; -- 清空全表的两种写法区别很大 DELETE FROM 表名; -- 逐行删除会记录日志可回滚慢 TRUNCATE TABLE 表名; -- 直接清空表不记录日志不可回滚极快DDL操作示例-- 删除Id5的学生数据 DELETE FROM Student WHERE Id 5; -- 删除高一(3)班所有学生 DELETE FROM Student WHERE Class N高一(3)班; -- 清空整个Student表谨慎使用 TRUNCATE TABLE Student;四第四阶段核心查询1. 基础查询与过滤SELECT选哪些列。WHERE选哪些行。支持AND,OR,IN在某些值中,BETWEEN在范围中,LIKE模糊匹配。2. 排序与分页ORDER BY默认ASC升序DESC降序。TOP N只取前几行。3. 聚合函数 (Aggregates)数据库的“计算器”COUNT(): 统计行数。SUM(): 总和。AVG(): 平均值。MAX() / MIN(): 最大/最小值。4. 分组 (Group By)当你需要“每个班级的平均分”时就需要按班级GROUP BY。口诀只要 SELECT 后面出现了聚合函数以外的列这列就必须出现在 GROUP BY 后面。五第五阶段关系连接多表连查在数据库里为了减少数据冗余我们会把数据分散在不同的表。查询时再拼起来。表关系1:N (一对多)比如一个班级对应多个学生。最常见。N:M (多对多)比如一个学生选多门课一门课被多个学生选。需要一个“中间表”来连接。内连接 (INNER JOIN)只有两张表都匹配上的数据才显示。左连接 (LEFT JOIN)左边表的数据全要右边表没配上的显示为 NULL非常常用。六建议

更多文章