前言
在信息管理系统中,SQL语句是非常重要的组成部分。虽然用户不会直接使用SQL语句操作信息管理系统,但是,信息管理系统必须使用SQL语句去响应用户的请求。作为信息管理系统的创造者和维护者,每一位相关IT人员都应该能熟练使用SQL。随着社会的进步以及信息技术的革新,新的信息管理系统业务逻辑变得越来越复杂,业务数据量变得越来越庞大,SQL语句应该引起信息技术从业者的足够重视。好的SQL语句能够帮助信息管理系统更稳健地运行,相反,差的SQL语句则将极大地降低信息管理系统运行的效率,从而影响用户的体验。
编者自2008年从江南大学计算机科学与技术专业毕业后,一直从事医院信息管理系统(HIS)的研发与技术支持工作。在近10年的项目实战中,遇到了无数次由于不合理地使用SQL语句而造成的各种问题。有些性能问题甚至直到系统运行数年,数据量达到一定程度,已经影响用户日常使用了才被发现。项目组中很多技术支持人员及工程人员对SQL语句没有足够的重视,以至于很多不合理的SQL语句年复一年地出现在软件产品中,降低了产品的质量。一个好的程序员不是熟练使用开发语言就可以了,还要对SQL语句乃至数据库知识有深入的了解。编者凭借多年的项目实战经验,并结合扎实的理论知识编写了此书,希望能够帮助更多的读者学会SQL语句,并能正确、高效地使用它,从而保障信息管理系统高质量、高效率地运行。
不同于一些纯理论书,本书在编写过程中一直秉承理论结合实践的原则来介绍SQL语句的应用。并且,用切身体会来分析平常遇到的一些SQL语句的使用误区,以便读者更好地理解SQL语句,也希望能够帮助读者在以后的工作中避免陷入误区。本书所讲的知识完全来自于编者近年来数百次的项目实战。由于本书是一本介绍SQL语句的书籍,一些举例尽量使用标准SQL。标准SQL以外的SQL相关知识,分别以SQL Server数据库的T-SQL和Oracle数据库的PL/SQL来讲解。之所以选择SQL Server数据库和Oracle数据库来讲解,是因为在信息管理系统领域,SQL Server数据库和Oracle数据库具有非常高的市场占有率,而且很多读者平时接触最多的也是SQL Server数据库和Oracle数据库。
本书讲解过程中用到的是Oracle数据库管理系统中SCOTT模式下的关系模型。该关系模型主要包含4张表,分别是EMP(员工表)、DEPT(部门表)、SALGRADE(月薪等级表)以及BONUS(奖金表)。SCOTT模型是Oracle数据库安装过程中默认安装的一个非常精简并且容易理解的关系模型,非常适合SQL语句的学习。本书分别给出了这4张表在SQL Server数据库与Oracle数据库中的建表语句,以及基础数据导入的SQL脚本,后续SQL语句的举例也基本围绕这4张表展开。
本书共分为14章,由易到难,逐步讲解SQL语句的应用。其中,第1章是SQL概述;第2章简单介绍SCOTT模式;第3~6章分别介绍SQL常用的增删改查功能;第7~12章分别介绍常用的数据库对象,包含视图、索引、约束、触发器、存储过程和函数;第13章介绍非常重要的事务知识;第14章通过示例比较SQL Server数据库和Oracle数据库的差异。
本书在编写过程中得到了创业软件股份有限公司多位领导和同事的支持和帮助,感谢高级副总裁沈建苗、人力资源总经理于瑶以及研发中心各位同事。
由于编者的精力和水平有限,书中错误和疏漏之处在所难免,敬请广大读者批评指正。也可将问题以邮件形式发送到编者邮箱:zhangzl@bsoft.com.cn。