写一个“特殊”的查询构造器 - (八、单...
查询构造器的编写到此结束,这一篇我们说一说 debug、测试相关的问题
查询构造器的编写到此结束,这一篇我们说一说 debug、测试相关的问题
查询语句 (DQL) 的构造功能开发完毕,我们再给查询构造器增加一些对 DML (Data Manipulation Language) 语句的支持,如简单的 insert、update、delete 操作。
关联查询是关系型数据库典型的查询语句,根据两个或多个表中的列之间的关系,从这些表中查询数据。在 SQL 标准中使用 JOIN 和 ON 关键字来实现。
where 相关的子句构造完成后,我们继续构造其它子句。这一篇我们进行聚合函数、分组、排序等子句的构造。
在 SQL 的条件查询中,不只有 where、or where 这些基本的子句,还有 where in、where exists、where between 等复杂一些的子句。而且即使是 where 这种基础的子句,也有多个条件的多种逻辑组合。这篇我们就来讲一下查询构造器如何构造这些复杂的查询语句。
如果单单是执行 SELECT * FROM test_table; 这样的语句,使用原生扩展就好了,使用查询构造器就是杀鸡用牛刀。当然,在实际的业务需求中,大部分的 SQL 都没这么简单,有各种条件查询、分组、排序、连表等操作,尤其是条件查询,占到了查询业务的大多数。
上一篇完成了代码结构的搭建和 PDO 的基础封装,这一篇我们来讲如何构造一个最基本的 SQL 语句并执行得到结果。
本篇开始,正式进入编码实践中。首先,简单的规划下程序的结构。 如上一篇所说的,我们需要一个基类 PDODriver 用来封装 PDO 的一些公用的方法,Mysql 等每个数据库都新建一个类 (这里我们简称为驱动类),均继承自基类。
查询构造器 (query builder),顾名思义,它的目的就是以简便的形式构造、执行 SQL,为查询数据库的业务提供了方便好用的接口,一些知名的 web 框架如 PHP 的 Laravel、CodeIgniter、ThinkPHP 等都提供了好用的查询构造器。