📜  laravel sql 查询 - SQL (1)

📅  最后修改于: 2023-12-03 15:32:33.849000             🧑  作者: Mango

Laravel SQL查询 - SQL

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查询非常方便,支持基本查询、条件查询、聚合查询、连接查询和原始查询等多种查询方式。熟练掌握这些查询方式可以提高开发效率。