MySQL 超新手入门(1)从新开始

三国演义

三国演义是一部在华人世界很是普及的历史小说,是由罗贯中根据元朝的三国志平话改编,他以东汉末年魏、蜀、吴三国斗争为主题,收集历史资料和说书人的故事,成为这一部你们都很是熟悉的故事。或许咱们如今以为这些历史已经跟咱们没什么关系了,不过你们都知道关公过五关斩六将,刘备三顾茅芦,诸葛孔明的空城记。这些老掉牙的故事,老是不断的出如今电影、电视剧和各类平台的游戏,一代又一代的传承下去。这应该是由于三国演义的确是一个好故事,不少很精采的好故事,就像美国畅销做家史帝芬金所说的,一个好故事是不会寂寞的。mysql

三国演义的普及,让人认为里面讲的故事其实就是真的历史,罗贯中在编这本书的时候,大概是为了让它能够比较戏剧化一些,采用了不少当时说书人的内容,这些内容是在民间流传或由说书人编造的,跟历史并不同。例如你们熟悉的关公斩华雄,在三国演义中是一段很是的精采故事,做者使用很短的内容让关云长的豪勇,简单、清楚并且很是震憾的呈现给读者。不过根据史料的考证,其实华雄的头是被孙坚砍掉的。这也是为何清朝的时候就有人评论三国演义是「七实三虚,惑乱观者」。sql

提倡白话文的胡适之,对三国演义的批评更是激烈,他认为三国演义把诸葛亮的神机妙算写成一个呼风唤雨的妖道;张飞在历史上实际上是一个颇有君子风度的武将,但是却被写成粗鲁的莽夫。虽然有不少精采的故事,但是没有通过更好的整理,因此三国演义在华人古典文学上的地位,一直不如红楼梦(注),甚至连水浒传都比不上。segmentfault

MySQL与SQL

MySQL在资讯应用的角色,好像跟三国演义这本著做有点相似。MySQL是目前最普及的资料库伺服器,但是你们也最不在乎它,可能由于它是一套免费的软体,若是不要对它太过份,它会默默的在电脑中为你服务,在通常状况下都不太会出问题。MySQL跟其它通常的资料库同样,一样支援ANSI SQL92,也加入少量MySQL本身特别的指令。不管是网页或应用程式的开发人员,当你第一次接触资料库,学习SQL这种古老的指令,应该不会以为太难。若是你正要进入开发应用程式的领域,在学习的路上,你会分配给SQL的时间应该也不会太多,由于它跟程式语言比较起来是比较单纯一些的。oracle

由于MySQL和SQL几乎是最多见的应用,并且你们也以为它们是简单的,固然就不会在它们身上花太多时间。因此慢慢的咱们会发现一些状况,有一些应用程式发生的问题,实际上是来自MySQL资料库伺服器和应用程式中的SQL叙述,这些问题相对是比较单纯的,只是你们忽略了。框架

例如MySQL提供方便好用的「LIMIT」子句,在应用程式中让开发人员能够很容易完成一些特定的功能,例如网页应用程式中的分页查询。不过LIMIT子句是MySQL才有的,若是应用程式更换资料库伺服器,例如Oracle,应用程式就会产生一堆错误了。还有资料库的交易(transaction)管理,MySQL预设的MYISAM储存引擎并无支援交易管理,由于比较简单一些,因此运做的效率也会比较好;若是应用程式须要执行交易管理,就要在创建资料库的时候指定储存引擎为InnoDB。工具

各类关于MySQL资料库管理和SQL的问题,开发人员一般在遇到错误的时候,才会开始寻求解决问题的方法。这彷佛也是MySQL的宿命,由于咱们虽然一直在使用它,但是却不过重视它,也认为这原本就是合理的,开发人员不该该分配太多时间给它。有一个很明显的状况,在逛书局的时候,你应该已经看不到只有讨论关于MySQL和SQL的书籍了。学习

OCP MySQL 5 Developer

在咱们台湾这里,跟开发人员相关的认证考试,这应该算是最冷门的OCP认证科目之一。这个认证考试的主要内容是MySQL的SQL,经过这个考试的人,表示它具有在应用程式中使用SQL的技能。你应该会觉的这是一个有点诡异的认证考试,它好像没有存在的必要。对一个有经验的开发人员来讲,使用SQL的技能就像是原本就应该存在的,你甚至已经忘记当初是怎么学会SQL;对一个新手来讲,不会有人建议你去买一本关于SQL的书籍来学习这方面的技能,由于可能也买不到了,不过有各类网站提供SQL的学习,认识一些基础的叙述后,遇到问题再说吧!网站

SQL在目前的环境下,愈来愈不受到开发人员的关爱,尤为是如今各类关于资料库应用的框架,例如Hibernate和MyBatis,它们的任务就是要杀死SQL这只远古巨兽,让开发人员不用受到SQL的煎熬。我也认为开发应用程式一直是一件很困难的事情,各类愈来愈进步的科技让生活更方便,但是应用程式开发技术却愈来愈复杂,开发人员必须具有的技能也更多,若是真的能有一种技术能够彻底消灭SQL,那绝对是一件很是美好的事情。不过目前的状况应该仍是有不少困难,就以大约十年前的应用程式来讲,SQL仍是一个必要的成员,除非放弃原来已经运做正常的程式,不然你仍是要面对这些冗长的SQL叙述。spa

这就是「MySQL超新手入门」系列文章的目的,内容的范围涵盖OCP MySQL 5 Developer认证考试,由于它的范围也是一个开发人员必须具有的SQL技能。从安装MySQL资料库与相关的工具程式开始,到学习全部MySQL提供的SQL,虽然是针对MySQL资料库撰写的,不过绝大部份都符合ANSI SQL92的标准,也就是在其它资料库产品也能够正确的运做。code

内容规划为19章:

  1. 资料库概论与 MySQL 安装
  2. SELECT 基础查询
  3. 运算式与函式
  4. JOIN 与 UNION 查询
  5. CRUD 与资料维护
  6. 字元集与资料库
  7. 储存引擎与资料型态
  8. 表格与索引
  9. 子查询
  10. Views
  11. Prepared Statements
  12. Stored Routines入门
  13. Sotred Routines的变数与流程
  14. Stored Routines进阶
  15. Triggers
  16. 资料库资讯
  17. 错误处理与查询
  18. 汇入与汇出资料
  19. 效率

在第一章介绍基本的资料库概念与安装须要的软体后,第二章到第五章讨论基本的新增、修改、删除和查询;第六章到第八章讨论资料库、表格和索引的创建与管理,这个部份的内容会有比较多MySQL独有的特点;第九章是子查询;第十章到第十五章讨论资料库进阶的应用,这些在其它资料库产品都会提供相似的技术,例如Oracle的PL/SQL;第十六章到第十九章讨论的内容比较偏向于资料库管理和效率的进阶应用,这些也是一个开发人员须要了解的。

注: 红楼梦在文学上的重视让它演变成一门「红学」,但是红楼梦的故事与人物对通常人来讲,却不如三国演义来得熟悉

参考资料:

  • 三国演义校注,罗贯中原著,吴小林校注,里仁书局
  • 三国演义的文学特质及其悲剧艺术,罗龙治
  • http://www.oracle.com

via codedata

相关文章
相关标签/搜索