`
有颜色的猫
  • 浏览: 856 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

还要不要学习 SQL

阅读更多
  今天又翻起《MySQL5 权威指南》的时候,又看到 MySQL 关于 PHP,Java,Perl,等语言的API,看到书中各种语言直连 MySQL 的各种代码,就又想起来 CakePHP,ADODB,ZendFramework,Hibernate 以及 Active Record 等各种各样的 DAO 层,想起来各种教程里关于直连数据库的各种批判。
  各个 DAO 层的公共目标必然都是对底层的抽象,只是抽象的目标与抽象的程度不一样而已,有的仅仅是为了在更换数据库的时候不用更改程序中的 SQL 代码,有的不但为了能更改数据库,而且更改数据表的时候都不需要更改太多的程序代码,而有的,甚至把这个控制的精细程度精细到了字段,在更改字段的时候都不需要更改太多的程序代码,而更甚把数据库这层面都给抽象开,让你不字段你实际在底层操作的究竟是一个数据库,还是一个 XML,还是一个远程资源。
  我曾经听到过别的老师说过这样一个事情:DBA 常常抱怨程序员不懂 SQL,却能使用 Spring 等开发框架开发出来基于数据库的应用,而这些应用的 SQL 必然是未经过优化的,DBA 为了这些 SQL 肯定头大的很。
  我刚开始听到这个故事的时候,我也觉得程序员不懂得 SQL 却去写基于数据库的应用是一个很不好的现象,那简直是一个很不可思议的事情,不过现在想想,其实这也是很正常的,可能程序员在编写代码的时候,根本不知道底层用的是什么数据库,是 MySQL,SQLServer 还是 oracle?各个 DBMS 的方言都不一样,假如程序员都在代码里实现,那从 MySQL 迁移到 oracle 的时候,就需要改很多很多的代码了。这也是那些教材里写的为啥不直连数据库的原因了。既然 DBMS 方言都不一样,我们又需要做很多迁移数据库的工作,上层的 DAO 框架自然而然就需要开发出一套自己的语法,例如 Hibernate 的 HQL,那程序员在了解了 DAO 的框架之后,基本上只需要学习 DAO 层的语法就可以了,而不需要学习太具体的 SQL 语法。
  听起来是不是很没有道理?但是我们退一步来说,每个人是否都必须懂得汇编语言才编写的出让计算机工作的代码?显然不是,我们有很多高级语言,例如 C 语言等,我们不也站在比直接面对计算机硬件更高的程度来编程么?我们可以使用标准 C 来编写出不用管是 PowerPC 的应用还是 Intel 的 PC。
  甚至我们不去用 C,我们去使用 JavaScript 来编写浏览器端的代码,我们都不知道用户的计算机究竟是 IE,还是 Firefox,操作系统是 Windows 还是 Linux ?
  我们甚至直接使用 Rails,Dojo 等 Framework 写出自动跨浏览器兼容的,跨平台的很 Cool 的浏览器应用的 js 代码。
  我们在这个时候关心汇编怎么写了么?我们关心 C 怎么写了么?我们关心 JavaScript 怎么写了么?诚然,可能学会汇编有助于你写出更有效率的 C 语言代码,但是在越来越多的语言可以选择,越来越高级的语言实现来看,自己每层都去学会,那是一件很奢侈的事情。
  自我第一次听说三层架构,到现在分的越来越细的 N 层架构,大家都是为了更好的抽象,都是为了不同层面上,不同分工的程序员做好他自己那层的事情,而不用去关心他上,下几层的事,以达到更好的开发效率。
  在这个工业化的软件开发时代,你不用去关心 SQL 是怎么写的,不用去关心你操作的究竟是一个数据库,还是一个远程资源,用 Java 的接口来说,只要这个资源能实现这样一个接口,你去操作就可以了。就好象你在流水线上的一套工作,你的任务就是拧螺丝,你就把你面前经过的设备的螺丝拧上就行了,你也不用去管你拧的究竟是一个电视机还是一个收音机,甚至是一个笔记本电脑,你只需要拿着十字螺丝刀使劲拧吧。
分享到:
评论

相关推荐

    基于sql server 2005学习sql

    《基于SQL Server 2005学习SQL》 SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,而SQL Server 2005作为微软公司的一款强大的数据库管理系统,为开发者提供了广泛的功能和工具,使其在...

    SQL语句学习资料SQL语句学习资料

    总的来说,深入学习SQL语句,不仅需要理解基本概念,还要通过大量的实践来熟练运用,以提升你在数据管理和分析领域的专业能力。这个压缩包中的"课后练习"文件将是你提升SQL技能的重要资源,务必充分利用。

    sql server学习资料

    此外,还要学习T-SQL(Transact-SQL),这是SQL Server中的编程语言,用于执行查询、插入、更新和删除数据,以及创建和管理数据库对象。 2. **数据库创建与管理**:包括创建数据库、表,以及管理数据类型、主键、...

    学习sql资料

    学习SQL资料的目的是为了让读者掌握基本的SQL语句及其用法,并了解在使用过程中需要注意的一些特点,同时通过实例加深理解数据库的基础概念。 首先,SQL语句的基本组成部分包括数据操纵语言(DML)、数据定义语言...

    学习SQL查询语言的使用语言

    总的来说,"使用SQL查询语言"的学习是一个由浅入深的过程,不仅需要掌握语法,还要理解其背后的逻辑和应用策略。通过理论与实践相结合的方式,学生将能够熟练运用SQL,成为有效的数据库管理员或数据分析师。

    SQL Server 2008完全学习手册视频

    SQL Server 2008是微软推出的一款关系型数据库管理系统,具有强大的数据存储、管理和分析功能,被广泛应用于企业级数据库解决方案。...在学习过程中,不仅应关注理论讲解,还要多动手实践,加深理解和应用。

    SQL语言基础学习笔记

    学习SQL不仅需要掌握这些基本操作,还要理解索引、视图、存储过程、触发器等高级特性,以及如何进行数据库设计和优化。通过不断地实践和学习,可以熟练掌握SQL,从而更好地管理和利用数据库资源。

    sql学习人员练习题

    SQL是Structured Query Language的缩写,是用于管理和...以上就是这个SQL学习练习题中涉及到的主要知识点,每个点都需要具体SQL语句的编写和执行来完成。通过这些练习,可以深入理解和掌握SQL在实际问题解决中的应用。

    sqlservers数据库学习

    学习SQL Server,还要熟悉数据库对象,如表、视图、存储过程和触发器。表是数据存储的基本单位,视图则是虚拟表,由SQL查询定义。存储过程是预编译的SQL语句集合,可以提高性能并简化复杂的操作。触发器则是在特定...

    sqlServer 各种疑难杂症和学习资料.rar

    SQL Server 是一款由微软开发的关系型数据库管理系统,广泛应用于企业级数据存储和管理。...学习时,不仅要理论结合实践,还要不断探索和解决实际问题,这样才能更好地掌握SQL Server这一强大的数据库管理系统。

    SQL语句大全,这是一个很好的学习SQL文档,挺有用的。

    SQL,全称Structured Query Language,是用于管理和处理关系数据库的标准语言。这个文档涵盖了SQL的多个重要方面,包括...学习SQL,不仅要理解基本概念,还要通过实践来熟悉其语法和用法,以便在实际项目中灵活运用。

    SQL争霸赛试题及答案

    这次争霸赛包含了两份试题,分别以文档(.doc)和SQL脚本(.sql)的形式提供,这意味着参与者不仅需要理解理论知识,还要具备实际操作的能力。 第一份试题是"SQL争霸赛.doc",这可能是试题的详细描述和指引,包括...

    网上学习答疑JAVA+SQLSERVER

    学习SQL Server,需要掌握SQL语言,包括SELECT查询、INSERT插入、UPDATE更新和DELETE删除等操作。此外,还要了解数据库的设计原理,如ER模型,以及如何创建和管理数据库、表、索引、视图等数据库对象。在实际项目中...

    sql sever自学教程 pdf格式

    2. 安装与配置:在开始学习之前,你需要了解如何在你的计算机上安装SQL Server。这个过程包括选择合适的版本(如Express、Standard或Enterprise),配置服务器属性,设置安全选项,以及安装客户端工具如SQL Server ...

    sql2005ppt学习资料

    本学习资料集将引导你从基础安装逐步深入到全文检索的启用,全面掌握SQL Server 2005的核心知识。 首先,安装SQL Server 2005是一个重要的起点。在安装过程中,你需要了解不同的版本,如企业版、标准版和开发版,...

    最新SQL SEVER数据库课件

    首先,学习SQL Server,基础语法是入门的关键。SQL(结构化查询语言)是用于管理和操作数据库的标准语言,包括创建、修改和查询数据。SQL Server支持标准的SQL语法,如SELECT语句用于查询数据,INSERT、UPDATE、...

    SQL语句学习入门进阶(测试题含答案).rar

    这个压缩包“SQL语句学习入门进阶(测试题含答案).rar”显然是一个专门为初学者或想要深入理解SQL的人设计的学习资源,包含了测试题目和相应的答案,旨在帮助用户巩固和检验SQL知识。 SQL的基础部分包括以下几个...

    SQL_SERVER_2008升级SQL_SERVER_2008_R2两种办法

    但是“实例”肯定是学习数据库过程中必须熟知的东东!!! 此处,选择你想要升级的实例。下一步就行了。 8、以前安装过的组件(component)都会出现在这里,不用管,以前有的,现在当然也要有,闭着眼睛点击“下...

    数据库 SQL 习题 SQL大全内含完整习题整理,有答案

    数据库SQL是信息系统中不可或缺的一部分,它是Structured Query Language的缩写,用于管理和操作关系型数据库。SQL习题大全通常包括各种类型的...因此,不仅要理解SQL语句的语法,还要通过实际操作去体验和理解其效果。

    SQL语言学习工作总结范文.doc

    通过学习SQL,我们可以对数据库进行数据查询、更新、插入和删除等操作,从而有效地管理和处理大量数据。 在本次的学习过程中,首先通过观看浙江大学的SQL视频教程,我对SQL的基本概念有了初步的认识。视频内容涵盖...

Global site tag (gtag.js) - Google Analytics