## **简介**
我们日常中最常用的就是查询操作。
**1.get():获取所有数据**
```
$users = DB::table('users')->get();
return view('user.index', ['users' => $users]);
```
在模板中输出
```
@foreach ($users as $user)
<p>{{$user->name}}</p>
@endforeach
```
**2.value():获取单一字段一条**
```
DB::table('users')->where('id', '1')->value('email');
```
**3.pluck():获取单一字段多条**
```
DB::table('user')->pluck('name');
```
**4.count():获取数据条数**
```
DB::table('users')->count();
```
**5.max():获取最大值**
```
DB::table('user')->max('age');
```
**6.min():获取最小值**
```
DB::table('user')->min('age');
```
**7.avg():获取平均值**
```
DB::table('user')->avg('age');
```
**8.sum():求和**
```
DB::table('user')->sum('age');
```
**9.select:查询**
```
DB::table('users')->select('name', 'email as user_email')->get();
```
**10.distinct():强制查询返回不重复的结果**
DB::table('users')->distinct()->get();
**11.join查询多表**
内连接
```
DB::table('users')
->join('contacts', 'users.id', '=', 'contacts.user_id')
->select('users.*', 'contacts.phone')
->get();
```
左连接
```
DB::table('users')
->leftJoin('posts', 'users.id', '=', 'posts.user_id')
->get();
```
这里就写这两个吧,有左链接就有右链接rightJoin
**12.where():条件控制**
```
DB::table('users')->where([
['status', '=', '1'],
['subscribed', '<>', '1'],
])->get();
```
我们在传递多个查询参数时会有或的关系,下面看一下orWhere
```
DB::table('users')
->where('votes', '>', 100)
->orWhere('name', 'John')
->get();
```
whereBetween():判断在两个值之间
```
DB::table('users')
->whereBetween('age', [1, 100])
->get();
```
whereNotBetween():判断不在两个值之间
```
DB::table('users')
->whereNotBetween('age', [1, 100])
->get();
```
**13.orderBy():排序,desc倒序,asc正序**
```
DB::table('users')
->orderBy('id', 'desc')
->get();
```
扩展:在我们的使用过程中会有随机抽取一条信息的时候,可以使用inRandomOrder()
```
DB::table('users')
->inRandomOrder()
->first();
```
**14.take()和limit():规定查询条数**
```
DB::table('users')
->limit(5)
->get();
```
**15.paginate():分页**
```
$users = DB::table('users')->paginate(15);
//模板输出
@foreach ($users as $user)
{{ $user->name }}
@endforeach
{{ $users->links() }}
```
paginate()方法有很多,我们可以看一下。
* simplePaginate():简单的显示“下一页”和“上一页”