php聚合查询,Laravel的查询构造器和聚合查询

一、构造器的查询

1. get()方法

获取到满足查询条件的所有数据,返回的是一个对象集合

$data=DB::table('admin')->limit(2)->get();

echo'

';

print_r($data);

dead4d86ee861da5216a21aadede8786.png

方法中传入参数,可以指定获取哪些字段

$data=DB::table('admin')->limit(2)->get(['username','email']);

echo'

';

print_r($data);

555a7ca7dd22f83e8945e4ec75e4c170.png

2. first()方法

获取到满足查询条件的第一条数据(也因为只返回一条数据,所以返回的是一个对象,而不是对象集合)

$data=DB::table('admin')->first();

echo'

';

print_r($data);

019d7970d984de3451c8a0c966a33ac8.png

传入参数,也能指定返回某些字段

// 当只有一个字段时,可以省略中括号

$data=DB::table('admin')->first('id');

当不只一个字段时,必须以数组的方式指定字段

$data=DB::table('admin')->first(['id','username']);

echo'

';

print_r($data);

当然可以结合 where 等语句来书写查询条件

$data=DB::table('admin')->where('uid',1)->first(['id','username']);

echo'

';

print_r($data);

c793e77609943e74e2923b6c7cb8d805.png

3. value()方法

获取某个字段的值,此方法也只会返回满足条件的第一条记录,不同之处在于不会返回对象,返回的直接是字段的值

$data=DB::table('users')->where('uid',1)->value('username');

echo'

';

print_r($data);

0f701085426ec9b944d241552c7c2de1.png

4. find()方法

根据指定的 id 返回一条数据 ,返回的当然是一个对象

$data=DB::table('admin')->find(2);

echo'

';

print_r($data);

66afa6cc6665b6741f6e5afdbdeeae07.png

传入第二个参数,也可以指定返回字段

$data=DB::table('admin')->find(2,['username','email']);

echo'

';

print_r($data);

a9690fb691a12f6de547a705f8bb61c0.png

5. pluck()方法

返回数据表中单列值的集合对象

当只有一个参数时,对象中 items 属性对应的数组是一个索引数组,从0开始

$data=DB::table('admin')->pluck('username');

echo'

';

print_r($data);

3e8cfd022c5b67a79f22c95d5fe0ac5c.png

当传入第二个参数时,可以将数组转为关联数组,可使用数据表中的另一字段来表示数组的键名

$data=DB::table('admin')->pluck('username','email');

echo'

';

print_r($data);

b2a3e94c3f0e1482b18a1e3ce2554b51.png

当然,在实际开发中,多会使用主键id来表示键名

$data=DB::table('users')->pluck('username','id');

echo'

';

print_r($data);

ede07d7c17896cd5f24974a99e00cfeb.png

二、聚合查询

1. max()方法

求字段的最大值

$data=DB::table('admin')->max('age');

var_dump($data);

526be11a7446b60f0ef458b60ca0f99d.png

2. min()方法

求字段的最小值

$data=DB::table('admin')->min('age');

var_dump($data);

3. avg()方法

求字段的平均值,返回的值会转为字符串类型

$data=DB::table('admin')->avg('uid');

var_dump($data);

5b5d02025ae1a435ef084a47c5486d7d.png

4. sum()方法

求字段的值的总和,返回的值也会转为字符串类型

$data=DB::table('admin')->sum('age');

var_dump($data);

d9b6f6904d6f293c1e7d99d63893b926.png

5. count()方法

计算记录总数量,返回的是整型int

实际上count() 方法默认是计算的所有,即 count('*'),你也可以指定其他字段,比如:count('id')、count('age'),但是效果都是一样的,执行效率上讲,也是差不多的,所以直接使用count()即可

$data=DB::table('admin')->count();

计算符合某个查询条件的记录总数量:

$data=DB::table('admin')->where('uid',1)->count();

三、构造器的增删改

1. insert()

插入数据到数据表,注意是使用数组的方式,如果是多条插入,使用二维数组

插入一条记录:

publicfunctioninsert(){

$data=DB::table('admin')->insert([

'username'=>'小明',

'password'=>md5(35453),

'age'=>23,

'email'=>'xiaoming@qq.com',

]);

var_dump($data);

}

bc239113da274eced79997c44687b6e0.png

插入多条记录:

publicfunctioninsert(){

$data=[

['username'=>'小黄','password'=>md5('drts'),'age'=>21,'email'=>'xiaohuang@qq.com'],

['username'=>'小刘','password'=>md5('fghj'),'age'=>25,'email'=>'xiaoliu@qq.com'],

['username'=>'小张','password'=>md5('gfhut'),'age'=>32,'email'=>'xiaozhang@qq.com'],

];

$res=DB::table('admin')->insert($data);

var_dump($res);

}

ff8da389c0891ccd4fa99459f75d0a23.png

2. update()

更新数据,一定要指定更新条件

更新某一列的值:

publicfunctionupdate(){

$data=DB::table('admin')->where('isupdate',null)->update(['isupdate'=>'yes']);

var_dump($data);

}

eb979caf3984d98141db09c34efaf193.png

更新指定数据的字段值:

publicfunctionupdate(){

$data=DB::table('admin')->where('id',12)->update([

'username'=>'我换名字了',

'email'=>'换邮箱了',

]);

var_dump($data);

}

4a7d3d52014f0f3c015b70a525c9f560.png

3. delete()

删除数据,一定要指定删除条件

delete()函数也可以传参,参数是id,所以当我们要根据id删除时,可以不使用where来增加查询条件,但是要根据指定的其他字段删除时,就需要where了

根据id删除数据:

publicfunctiondelete(){

$data=DB::table('admin')->delete(15);

var_dump($data);

}

根据其他字段删除数据:

$data=DB::table('admin')->where('username','小黄')->delete();

删除多条数据:

$data=DB::table('admin')->where('id','>=','12')->delete();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值