数据库-链式查询

Posted 徐锅的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库-链式查询相关的知识,希望对你有一定的参考价值。

where

where方法的用法是Thinkphp查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。

table

table方法主要用于指定操作的数据表。

alias

alias用于设置当前数据表的别名,便于使用其他的连贯操作例如join方法等。

field

field方法属于模型的连贯操作方法之一,主要目的是标识要返回或者操作的字段,可以用于查询和写入操作。

order

order方法属于模型的连贯操作方法之一,用于对操作的结果排序。

limit

limit方法也是模型类的连贯操作方法之一,主要用于指定查询和操作的数量,特别在分页查询的时候使用较多。ThinkPHP的limit方法可以兼容所有的数据库驱动类的。

page

page方法也是模型的连贯操作方法之一,是完全为分页查询而诞生的一个人性化操作方法。

group

GROUP方法也是连贯操作方法之一,通常用于结合合计函数,根据一个或多个列对结果集进行分组 。

having

HAVING方法也是连贯操作之一,用于配合group方法完成从分组的结果中筛选(通常是聚合条件)数据。

join

join通常有下面几种类型,不同类型的join操作会影响返回的数据结果。

  • INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行

union

UNION操作用于合并两个或多个 SELECT 语句的结果集。

distinct

DISTINCT 方法用于返回唯一不同的值 。

lock

Lock方法是用于数据库的锁机制,如果在查询或者执行操作的时候使用:

cache

cache方法用于查询缓存操作,也是连贯操作方法之一。

cache可以用于selectfindvaluecolumn方法,以及其衍生方法,使用cache方法后,在缓存有效期之内不会再次进行数据库查询操作,而是直接获取缓存中的数据,关于数据缓存的类型和设置可以参考缓存部分。

comment

COMMENT方法 用于在生成的SQL语句中添加注释内容,

fetchSql

fetchSql用于直接返回SQL而不是执行查询,适用于任何的CURD操作方法。

force

force 方法用于数据集的强制索引操作,

bind

bind方法用于手动参数绑定,大多数情况,无需进行手动绑定,系统会在查询和写入数据的时候自动使用参数绑定。

partition

partition 方法用于是数据库水平分表

partition($data, $field, $rule);
// $data 分表字段的数据
// $field 分表字段的名称
// $rule 分表规则

strict

strict方法用于设置是否严格检查字段名,

failException

failException设置查询数据为空时是否需要抛出异常,如果不传入任何参数,默认为开启,用于selectfind方法,

sequence

sequence方法用于pgsql数据库指定自增序列名,其它数据库不必使用,用法为:

Db::name(‘user‘)->sequence(‘id‘)->insert([‘name‘=>‘thinkphp‘]);

以上是关于数据库-链式查询的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP学习 --- 08链式查询 --------------09 增删改操作 -----------------学习

thinkphp5 数据库链式操作聚合查询

google firestore 上的链式查询

片段视图返回后执行的 Firebase 查询

你如何在 python 中处理 graphql 查询和片段?

等效于链式 LINQ 扩展方法调用中的 'let' 关键字的代码