现在主流的 Java 开发人员一般都需要会主流数据库. 开发人员需要对 MySQL,Oracle,SqlServer 这三个常用的熟悉了解. 在数据量比较大或者请求数比较高的情况下, 需要了解一些特定数据库针对性优化. SQL 相关入门熟悉表, 字段, 记录, 索引等概念.
Java
熟悉 SQL 的约束, 非空, 默认值, 唯一值等约束. 熟悉主键, 外键, 检查约束等. 熟悉数据类型, 文本, 数字, 日期 / 时间, 二进制等. 熟练使用数据操作语言, SELECT,UPDATE,DELETE,INSERT INTO 等语句, 这些数据操作语法, 在多数功能需求中, 是基本组成部分. 熟练使用数据定义语言 (DDL),DATABASE 的 CREATE ,ALTER;DATABASE 的 CREATE ,ALTER;TABLE 的 CREATE ,ALTER,DROP;INDEX 的 CREATE,DROP. 是系统的数据库设计必须的定义语法. 也会是系统迭代升级阶段常常进行的数据结构变更操作. 熟悉 SQL 连接的使用, INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL JOIN,UNION,UNION ALL. 熟悉聚集函数的使用, sum,avg,count,max,min, 以及 group by 和 having 的配合. 以及 DISTINCT 去重.
熟练使用子查询. 掌握数据库规范化, 熟悉第一范式 (1NF), 第二范式 (2NF), 第三范式 (3NF). 熟悉数据库理论中数据模型, 及关系模型. 完成模块功能需求的数据库设计. 熟练使用 index 优化查询性能. 了解存储过程, 自定义函数, 触发器, 视图的使用. 熟悉程序对数据库事务处理. 了解各数据库对数字, 字符串, 时间的处理函数. 熟练使用 PowerDesigner 进行表结构设计. 熟练进行系统数据库设计. 了解各数据库对数据类型处理上的差异. 优化表的设计提高性能需求. 熟练使用分表分区等特性. 了解索引机制及类型. 熟练运用数据控制 (DCL),GRANT,REVOKE. 熟练使用 explain 分析 SQL 的执行计划. 数据库系统相关, 主要针对常用的数据库, MySQL,oracle,SQLServer. 当然其它数据库的要求也类似. 入门开发环境的数据库的安装配置. 熟练使用数据库对应的客户端, MySQL 常用 SQLyog,oracle 常用的是 PL/SQL Developer,SQLServer 自带的客户端. 另外通用的客户端 navicat 和 Toad 都比较强大.
掌握了解各数据库系统的组成部分. MySQL 了解 innodb 文件组成, 及结构. oracle 的文件, 表空间, 数据块, 区, 段等. 了解各数据库的 SQL 的执行过程. 熟练熟悉各数据库的体系结构. 熟悉分表分库的方案. 了解集群的部署. 如 Oracle 的 RAC, MySQL 集群的各种方案. 了解读写分离的方案 (主备), 了解 binlog. 了解数据库系统层级的优化方案. MySQL 了解它的一些基本运维操作. Oracle 了解一些调优参数.
来源: http://www.jianshu.com/p/81d9d1ec983f