數據庫-鏈式查詢
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
- LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
- RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
- FULL JOIN: 只要其中一個表中存在匹配,就返回行
union
UNION操作用於合並兩個或多個 SELECT 語句的結果集。
distinct
DISTINCT 方法用於返回唯一不同的值 。
lock
Lock方法是用於數據庫的鎖機制,如果在查詢或者執行操作的時候使用:
cache
cache方法用於查詢緩存操作,也是連貫操作方法之一。
cache可以用於select
、find
value
和column
方法,以及其衍生方法,使用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
設置查詢數據為空時是否需要拋出異常,如果不傳入任何參數,默認為開啟,用於select
和find
方法,
sequence
sequence
方法用於pgsql
數據庫指定自增序列名,其它數據庫不必使用,用法為:
Db::name(‘user‘)->sequence(‘id‘)->insert([‘name‘=>‘thinkphp‘]);
數據庫-鏈式查詢