后端开发工程师需要了解的数据库知识

作为一为 Java 开发工程师,写数据的查询 SQL 是必备的技能。在 日常生活中,是否统计过读数据和写数据的频率。以来开发经验来说,查询数据的操作语言是多于写数据的。 有的信息系统,数据只初始化一次,甚至是服务一辈子。

接触过很多的 web 开发系统,都是为了管理数据而生存的。要产生数据,才能管理数据。数据从何而来,人造能行,可以,但是要相信他。在现在,还是未来,采集数据的方式是多种多样的。服务器是提供数据服务的,而客户端是获取数据服务的。反过来说,客户端是获取数据(做数据采集),而服务端是提供数据(做数据存储)。现代社会,什么都是数字化的,请小心得手机。

客户端和服务端相互作用,相互依存,数据在两者之间流转。客户端是服务端,服务端也是客户端,只因为数据而生存。 只要明白一点,数据分布多种多样,能量没了所有都没了。

做程序开发,程序员需要对需求进行深入的理解。每次遇到一个新的系统,需要在最短的时间内熟悉系统到底是做什么的,在有限的原型或者是测试页面中找到应有的答案。接下要做的就是熟悉源码,不要重复造轮子。使用公司现有的配件做相应的生产,是工人, 即使是工程师,也不能心由相生。

做需求,理解需求是重要的第一步。看原型,知道需要完成什么效果。熟悉需求文档,确定 后台接口需要涉及的数据库,数据库表,查询 sql(怎么查询产生相应的数据)。

对于一个原生的项目,建表是第一步。怎么建表,主从表,左右表,主键外键的确立,各种 表字段的确立,表之间的关联关系(一对多,多对多,一对一)。数据量大的话,要考虑是否使用分布式存储,索引库的建立。

后台工程师写查询 SQL 是做开发的第一步,写存储过程 plsql 那更难。难的东西性能都更好, 因为简单。计算机科学底层的东西组件相当简单,但是使用起来却十分艰难。见过现在科学家使用 CPU 指令进行编程的好像很少,但是能放弃他写 SQL 查询一般是需要确立业务逻辑需要管理的业务表,首先熟悉各张表的字段逻辑,关联关系。确定那张表是主

表,哪张表是从表。写代码的规则是,主表关联从表,调用基础 api,where 过滤,group by 分组。难一点是 case when 的使用,因为这是 sql 语句内在的算法(相当于 Java 的 if)。SQL有数据结构有的是,只不过不提供给调用。子查询是相当于新建了张表。当基础 api 不够的时候,提供了一个新的存储过程库 plsql。这就是语言,要熟练地使用他,适用他, 掌握他,可以为提供很多的好处。

数据库是一本书,也是一座图书馆,很大,盖起来都难。