写在前面:小编的话
短暂的分别是为了更好的相聚,双节过后,我们的开发者中级课终于与大家见面了。
为便于大家查找所有开发者课程,我们新增了“开发者系列课”菜单,其中包括了已发布的开发者初级课和未来所有的开发者进阶课程。另外,在所有文章的底部也添加了导航菜单,方便课程的切换。
在正式上课之前,我们还是要强调一下如何学习这些课程。我们做的最主要的工作是将Dev Gym上的视频翻译为中文。实际上每一节课包括4部分:
1)看我们翻译的视频,每一集只有几分钟。
2)上Live SQL做配套练习
3)小测验(选择题)
4)进一步学习(参考资料)
这4部分都是精心设计的,特别是第2和3部分,非常有助于对课程内容的理解,而且由于原网站有完整的评分积分,因此我们希望您在看完视频后,仍回到Dev Gym(https://devgym.oracle.com/)网站完成练习和测验,而且最终可以得到结业证书。点击文末“原文链接”可访问原课程页面。
以下为开发者中级课的课程设置:
第1课: NULL(空值)<- 我们在这里
第2课: Subqueries(子查询)
第3课: Order By and Top-N(如何用SQL实现行排序)
第4课: Analytic Functions(分析函数)
第5课: Pivot and Unpivot(Pivot与反向Pivot)
第6课: Union, Minus and Intersect(并集, 差集与交集)
第7课: Hierarchical Queries(层级查询)
第8课: Merge(如何用一个语句同时实现插入和更新)
第9课: Read Consistency(读取一致性)
好了,下面正式开始上课。
Oracle开发者中级第1课:Null
写在后面:小编的话
Null的发明人是英国计算机科学家托尼·霍尔(Tony Hoare),著名的Quicksort算法也是他发明的。1980年,托尼·霍尔凭借程序设计语言的定义与设计获得图灵奖。2011年,由于其在计算机科学和技术上的杰出成就获得约翰·冯诺依曼奖。托尼·霍尔在2009年的QCon的演进中称Null“历来是一个坏主意,是一个十亿美元的错误”(1),这是由于当时发明Null的目的是为了快速运行代码,但同时也开启了允许程序在运行时编译和崩溃的可能性,允许内存泄漏,更糟糕的是,导致代码中的安全问题(2)。无论如何,SQL中已经有Null了,你需要做的就是了解其使用时的注意事项,以避免出现意想不到的结果。
另一个有趣故事的主人公是Robert Barbour。1986年,他去美国机动车辆部申请个性化车牌,他只想从SAILING和BOATING中选择一个,因此第3个选项就填写了NO PLATE,表示如果前两个没选上,就不要个性化车牌了。如他所愿,最终他获得的车牌就是NO PLATE,这正好与警察发现无牌照车辆记录的内容一样。Robert Barbour因此收到了2500张罚单,后来无牌照的汽车就被记录为NONE而不是NO PLATE了(3)。但愿没有倒霉蛋再选择NONE这个个性化车牌了。
最后一个是我自己的故事,与课程中提到的魔数(Magic Number)有关。魔数是指用实际业务中不可能出现的数来表示特殊含义。1999年,我给北京铁路局做客调和大屏显示接口,其中有一项是显示余票。结果火车站的人反映屏幕上一些余票显示为负数。原来是我在程序中使用负数表示一些特殊含义,如无此座席,停运等,但又没有和做大屏的人做沟通。
总之,Null也好,魔数也好,并非说不建议使用,但需要格外小心,了解其注意事项,做好文档说明并充分沟通。
国庆期间去了趟首博,发一张严复写的对联与大家共勉:春发其华秋结其实,行成于思业精于勤。秋天是收获的季节,愿大家辛勤学习,终有所得。下期再见。
编辑,字幕翻译:萧宇
字幕制作&版式设计:Barbara Huang
评论

