grizz-it / dbal-sql
实现SQL操作的数据库抽象层包
Requires
- php: ^8.0
- grizz-it/dbal: ^1.0
- grizz-it/enum: ^1.1
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-08-29 06:12:51 UTC
README
GrizzIT DBAL SQL
GrizzIT DBAL SQL为GrizzIT DBAL提供SQL实现。此包仅实现查询组装部分。
安装
要安装包,请运行以下命令
composer require grizz-it/dbal-sql
使用方法
使用过滤器
某些查询接受过滤器。过滤器用于缩小返回结果的数量。这些过滤器基于grizz-it/dbal
包中的QueryFilterInterface
。
过滤器可以分组在QueryFilterGroup
对象中。此组内的所有过滤器都通过AND语句分隔。如果一个查询对象接受多个过滤器组,则过滤器组将通过OR语句分隔。
- QueryFilterGroup:大多数查询期望的基本过滤器对象。
实例化后可以向组中添加过滤器
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
。
创建查询
通过实例化和配置对象,然后将其传递到连接,来创建查询。
特性
某些查询具有共享逻辑,因此实现了常见特性。
- FilterableQueryTrait:此特性由支持过滤器的查询实现。
- JoinableQueryTrait:此特性由支持在单个查询中连接多个表的查询实现。
- PageableQueryTrait:此特性由支持分页(带有或不带有
OFFSET
的LIMIT
)的查询实现。 - SortableQueryTrait:此特性由支持排序的查询实现。
枚举
某些选项和查询对可以传递给对象的选项有限制。因此使用枚举。
- ColumnAttributeEnum
- ColumnDefaultEnum
- ColumnTypeEnum
- ComparatorEnum
- IndexTypeEnum
- OperatorEnum
- ShowTypeEnum
- UnionEnum
查询
查询按其影响的目标排序。还有一些不符合任何类别的标准查询。
- BatchQuery:将多个查询合并为单行执行。
- RawQuery:如果没有任何查询对象符合要求,可以使用此对象执行自定义查询。
上下文
数据
数据库
表
列操作通过
视图
索引
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING和CODE_OF_CONDUCT以获取详细信息。
MIT许可
版权(c)GrizzIT
特此授予任何获得此软件和相关文档副本(“软件”)的个人,免费使用该软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,以及允许向软件提供者提供软件的个人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的质量保证,明示或暗示的,包括但不限于适销性、特定目的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是由合同、侵权或其他行为引起的,无论是源于、源于或与软件或其使用或其他处理有关。