Laravel 5.4是一个流行的PHP框架,它提供了一个强大的查询构造器,可以帮助开发人员轻松地构建和执行数据库查询。在本文中,我们将探讨Laravel 5.4查询构造器的一些重要特性和用法。
1. 基本查询
Laravel 5.4查询构造器提供了一组简单的方法,用于执行基本的SELECT、INSERT、UPDATE和DELETE查询。以下是一些基本查询的示例:
SELECT:
``` $users = DB::table('users')->get(); ```
INSERT:
``` DB::table('users')->insert( ['name' => 'John Doe', 'email' => 'johndoe@example.com'] ); ```
UPDATE:
``` DB::table('users') ->where('id', 1) ->update(['votes' => 1]); ```
DELETE:
``` DB::table('users')->where('id', 1)->delete(); ```
2. 查询条件
Laravel 5.4查询构造器提供了许多方法,用于添加条件到查询中。以下是一些常见的查询条件的示例:
WHERE:
``` $users = DB::table('users') ->where('name', '=', 'John') ->get(); ```
OR WHERE:
``` $users = DB::table('users') ->where('name', '=', 'John') ->orWhere('name', '=', 'Jane') ->get(); ```
BETWEEN:
``` $users = DB::table('users') ->whereBetween('votes', [1, 100]) ->get(); ```
NOT BETWEEN:
``` $users = DB::table('users') ->whereNotBetween('votes', [1, 100]) ->get(); ```
IN:
``` $users = DB::table('users') ->whereIn('id', [1, 2, 3]) ->get(); ```
NOT IN:
``` $users = DB::table('users') ->whereNotIn('id', [1, 2, 3]) ->get(); ```
3. 排序和分组
Laravel 5.4查询构造器提供了一组简单的方法,用于对查询结果进行排序和分组。以下是一些排序和分组的示例:
ORDER BY:
``` $users = DB::table('users') ->orderBy('name', 'desc') ->get(); ```
GROUP BY:
``` $users = DB::table('users') ->groupBy('account_id') ->get(); ```
HAVING:
``` $users = DB::table('users') ->groupBy('account_id') ->having('account_id', '>', 100) ->get(); ```
4. 聚合函数
Laravel 5.4查询构造器提供了一组聚合函数,用于对查询结果进行汇总。以下是一些聚合函数的示例:
COUNT:
``` $users = DB::table('users')->count(); ```
MAX:
``` $users = DB::table('users')->max('votes'); ```
MIN:
``` $users = DB::table('users')->min('votes'); ```
SUM:
``` $users = DB::table('users')->sum('votes'); ```
AVG:
``` $users = DB::table('users')->avg('votes'); ```
5. 连接
Laravel 5.4查询构造器提供了一组简单的方法,用于对多个表进行连接。以下是一些连接的示例:
INNER JOIN:
``` $users = DB::table('users') ->join('contacts', 'users.id', '=', 'contacts.user_id') ->select('users.*', 'contacts.phone', 'contacts.address') ->get(); ```
LEFT JOIN:
``` $users = DB::table('users') ->leftJoin('posts', 'users.id', '=', 'posts.user_id') ->get(); ```
RIGHT JOIN:
``` $users = DB::table('users') ->rightJoin('posts', 'users.id', '=', 'posts.user_id') ->get(); ```
6. 分页
Laravel 5.4查询构造器提供了一组简单的方法,用于对查询结果进行分页。以下是一些分页的示例:
``` $users = DB::table('users')->paginate(10); ```
以上代码将返回一个包含10个用户的分页结果集,每页显示10个用户。
7. 原始查询
Laravel 5.4查询构造器还提供了一组方法,用于执行原始SQL查询。以下是一些原始查询的示例:
``` $users = DB::select('select * from users where id = ?', [1]);
$results = DB::insert('insert into users (id, name) values (?, ?)', [1, 'John']);
$affected = DB::update('update users set votes = 100 where name = ?', ['John']);
$deleted = DB::delete('delete from users where id = ?', [1]); ```
以上是一些使用Laravel 5.4查询构造器的常见用法和特性。使用查询构造器,开发人员可以轻松地构建和执行数据库查询,从而提高应用程序的性能和可维护性。