我要说的是,关于SQL需要了解两种类型的东西(实际上很多技术都是这样),有一些特定的技术性东西,例如联接,子查询,联合等等,您可以理解或不了解,然后便是像数据库设计和数据建模一样,其中具有一定的技能,例如艺术。随着时间的流逝,您会随着这些柔软的事物而变得更好,但永远不要“知道”它们,因为它们之间没有“它们以这种方式工作”。
就是说,这是我会采用的总体布局,并且绝对可以接受我可能错了的其他人的评论/想法。
初学者
- Where子句(在内部,之间等)
- 更新语法
- 内vs左vs右join的理解和用法
- 更改和创建结构的语法
- 临时表及其用法
- 游标
- 基本概念是什么索引,但不是索引如何工作
- 了解什么是外键以及如何使用它们(级联删除等)
- 了解交易基础
- 了解约束
中间
- 索引如何工作,群集,非群集之间的区别等,页面是什么以及它们的布局
- 了解子查询,并可以通过在联接中和何处使用它们来进行思考
- 枢轴
- 可以通过在相关时对自己的表进行联接来思考
- 可以通过具有汇总功能的分组依据生成复杂的数据报告
- 可以仅以监视/调试功能进行基本配置,例如读取日志
- 了解OLAP和OLTP之间的区别以及何时/何处使用OLAP结构
- 知道如何使用触发器而不使用触发器
- 了解事务并可以将它们分层处理堆栈中的故障
高级
- 可以阅读执行计划,并了解查询的不同部分如何影响它
- 可以在不增加性能的情况下优化具有执行提示的查询(并行提示,索引提示,循环提示等)
- 可以分析和使用跟踪来识别和理解实际负载下的执行统计信息
- 知道磁盘上的数据结构
- 可以使用性能计数器并通过监视它们来了解数据库的负载和行为
- 知道如何设计OLAP多维数据集并使用一个进行高级数据挖掘
- 知道如何使用触发器以及如何安全地使用触发器,并且风险最小
- 知道如何使用分布式事务(即使在层中也是如此)
这就是我能想到的全部。请留下评论,提及我错过的其他人,或者如果我在错误的地方放东西。我还没有足够的先进知识,无法知道很多先进的技术可以放下