📅  最后修改于: 2023-12-03 15:32:33.849000             🧑  作者: Mango
Laravel是一款流行的PHP框架,它提供了许多方便的方法来执行SQL查询。本文将介绍Laravel中的SQL查询,包括基本查询、条件查询、聚合查询、连接查询和原始查询。
Laravel中执行基本查询非常简单,只需要使用DB
类即可。例如,下面代码将查询users表中的所有数据。
$users = DB::table('users')->get();
在上面的代码中,DB::table('users')
创建一个查询构建器,get()
方法会执行查询并获取所有数据,返回一个集合对象。
如果只需要查询一条记录,可以使用first()
方法。
$user = DB::table('users')->where('id', 1)->first();
在上面的代码中,where()
方法指定查询条件,first()
方法获取第一条满足条件的记录。
Laravel中执行条件查询也很简单,可以使用where()
方法指定查询条件,也可以使用orWhere()
方法指定或条件。例如,下面代码将查询age大于18的users表中的所有数据。
$users = DB::table('users')->where('age', '>', 18)->get();
在上面的代码中,where('age', '>', 18)
指定查询条件,查询age
大于18的记录。
可以使用多个where()
方法指定多个查询条件,每个条件之间默认使用AND连接。
$users = DB::table('users')
->where('age', '>', 18)
->where('gender', 'male')
->get();
在上面的代码中,查询age
大于18并且gender
为male的记录。
还可以使用orWhere()
方法指定或条件。
$users = DB::table('users')
->where('age', '>', 18)
->orWhere('gender', 'male')
->get();
在上面的代码中,查询age
大于18或gender
为male的记录。
Laravel支持多种聚合查询函数,包括count()
、max()
、min()
、avg()
和sum()
。例如,下面代码将查询users表中的总记录数。
$count = DB::table('users')->count();
在上面的代码中,count()
函数返回满足条件的记录数。
$max_age = DB::table('users')->max('age');
在上面的代码中,max()
函数返回age列中的最大值。
其他的聚合查询函数用法类似。
Laravel支持多种连接查询方式,包括内联、左连接、右连接和全连接。例如,下面代码将查询users表和orders表中的所有记录,并按照orders表中的user_id字段进行内联查询。
$users = DB::table('users')
->join('orders', 'users.id', '=', 'orders.user_id')
->get();
在上面的代码中,join()
方法指定连接方式和连接条件。
如果需要进行左连接,可以使用leftJoin()
方法。
$users = DB::table('users')
->leftJoin('orders', 'users.id', '=', 'orders.user_id')
->get();
在上面的代码中,leftJoin()
方法指定左连接方式和连接条件。
右连接和全连接用法类似。
Laravel中也支持原始的SQL查询。例如,下面代码将执行一条原始的SELECT查询。
$results = DB::select('select * from users where id = ?', [1]);
在上面的代码中,DB::select()
方法执行原始的SELECT查询,并返回查询结果。
需要注意的是,使用原始查询需要自行处理SQL注入等安全问题。
Laravel中的SQL查询非常方便,支持基本查询、条件查询、聚合查询、连接查询和原始查询等多种查询方式。熟练掌握这些查询方式可以提高开发效率。