grizz-it/dbal-sql

实现SQL操作的数据库抽象层包

1.0.1 2021-05-31 20:07 UTC

This package is auto-updated.

Last update: 2024-08-29 06:12:51 UTC


README

Build Status

GrizzIT DBAL SQL

GrizzIT DBAL SQL为GrizzIT DBAL提供SQL实现。此包仅实现查询组装部分。

安装

要安装包,请运行以下命令

composer require grizz-it/dbal-sql

使用方法

使用过滤器

某些查询接受过滤器。过滤器用于缩小返回结果的数量。这些过滤器基于grizz-it/dbal包中的QueryFilterInterface

过滤器可以分组在QueryFilterGroup对象中。此组内的所有过滤器都通过AND语句分隔。如果一个查询对象接受多个过滤器组,则过滤器组将通过OR语句分隔。

实例化后可以向组中添加过滤器

use GrizzIt\Dbal\Sql\Component\Filter\QueryFilterGroup;
use GrizzIt\Dbal\Sql\Component\Filter\ComparatorFilter;
use GrizzIt\Dbal\Sql\Common\ComparatorEnum;

// Create the filter group
$filterGroup = new QueryFilterGroup;

//Create the filter "column='value'"
$filter = new ComparatorFilter(
    'column',
    'value',
    ComparatorEnum::EQ()
);

//Add the filter
$filterGroup->addFilter($filter);
  • ComparatorFilter:使用标准比较器将列与值进行比较。
  • ExistsFilter:添加一个包含子查询的EXISTS语句作为过滤器。
  • QueryInFilter:将默认比较器与子查询连接起来作为过滤器。
  • QueryOperatorFilter:与比较器结合创建一个ANY或ALL过滤器。
  • RelationalComparatorFilter:创建一个直接值注入过滤器。此过滤器不使用参数,但操作类似于ComparatorFilter

创建查询

通过实例化和配置对象,然后将其传递到连接,来创建查询。

特性

某些查询具有共享逻辑,因此实现了常见特性。

枚举

某些选项和查询对可以传递给对象的选项有限制。因此使用枚举

查询

查询按其影响的目标排序。还有一些不符合任何类别的标准查询。

  • BatchQuery:将多个查询合并为单行执行。
  • RawQuery:如果没有任何查询对象符合要求,可以使用此对象执行自定义查询。
上下文
数据
数据库

列操作通过

视图
索引

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTINGCODE_OF_CONDUCT以获取详细信息。

MIT许可

版权(c)GrizzIT

特此授予任何获得此软件和相关文档副本(“软件”)的个人,免费使用该软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,以及允许向软件提供者提供软件的个人这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的质量保证,明示或暗示的,包括但不限于适销性、特定目的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是由合同、侵权或其他行为引起的,无论是源于、源于或与软件或其使用或其他处理有关。