一般来说,我们将网站分为前端和后端。前端主要负责页面的展示,后端则是业务逻辑的实现,后端是由一些实现业务逻辑的Java代码和数据库组成。

Javaweb做后端,数据库方面需要掌握到哪种程度?我把我能想到的技能点给大家简单罗列了一下,希望能对大家的工作和学习有所帮助(可能不够完善,欢迎大家随时补充):

· 需要对Mysql、Oracle、SqlServer这三个常用的数据库熟悉了解。

· 在数据量比较大或者请求数比较高的情况下,需要了解一些特定数据库针对性优化。

· 熟悉表、字段、记录、索引等概念。

· 熟悉SQL的约束,非空、默认值、唯一值等约束。熟悉主键、外键、检查约束等。

· 熟悉数据类型,文本,数字,日期/时间,二进制等。

· 熟练使用数据操作语言 (DML),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。

· 了解数据库系统层级的优化方案。