数据库查询操作

            一、table方法查询数据

// 查询所有数据
// SELECT * FROM `user`
$data=Db::table("user")->select();

// 查询一条数据
// SELECT * FROM `user` LIMIT 1
$data=Db::table("user")->find();

            二、name方法查询数据
// 与配置文件有关
// name 会自动添加配置文件中的表前缀
$data=Db::name("user")->select();
$data=Db::name("user")->find();

    三、助手函数

# SELECT * FROM `user`
$data=db("user")->select();

# SELECT * FROM `user` LIMIT 1
$data=db("user")->find();

    四、where条件匹配

// SELECT * FROM `user` WHERE `id` > 25
$data=Db::table("user")->where("id",">",25)->select();

// SELECT * FROM `user` WHERE ( `id` > 25 AND `id` < 28 )
$data=Db::table("user")->where("id",">",25)->where("id","<",28)->select();

// SELECT * FROM `user` WHERE `name` LIKE '%user1%'
$data=Db::table("user")->where("name","like","%user1%")->select();

// SELECT * FROM `user` WHERE `name` = 'user3' AND `pass` = 'qwe'
$data=Db::table("user")->where("name","user3")->where("pass",'qwe')->select();

// SELECT * FROM `user` WHERE ( id > 25 and id <28 ) 使用字符串
$data=Db::table("user")->where("id > 25 and id <28")->select();

// SELECT * FROM `user` WHERE `id` > 25 AND `name` = 'user10' 使用数组
$data=Db::table("user")->where(["id"=>[">",25],"name"=>'user10'])->select();

// SELECT * FROM `user` WHERE ( `id` > 25 AND `id` < 28 )  使用数组
$data=Db::table("user")->where(["id"=>[">",25]])->where(['id'=>["<",28]])->select();

    五、whereOr 或者匹配

// SELECT * FROM `user` WHERE `id` <= 23 OR `id` >= 28
$data=Db::table("user")->where("id","<=",23)->whereOr("id",">=",28)->select();

                        // SELECT * FROM `user` WHERE `name` LIKE '%user1%' OR `name` LIKE '%user2%'
$data=Db::table("user")->where("name","like","%user1%")->whereOr("name","like","%user2%")-                                    >select();

    六、limit 截取数据

// SELECT * FROM `user` LIMIT 5
$data=Db::table("user")->limit(5)->select();

// SELECT * FROM `user` LIMIT 5,5
$data=Db::table("user")->limit(5,5)->select();

    七、Order 排序
// SELECT * FROM `user` ORDER BY `id`
$data=Db::table("user")->order("id")->select();

// SELECT * FROM `user` ORDER BY `id` desc
$data=Db::table("user")->order("id","desc")->select();

    八、field 设置查询字段

// 设置查询字段
// SELECT `name`,`pass` FROM `user`
$data=Db::table("user")->field("name,pass")->select();
$data=Db::table("user")->field(['name','pass'])->select();

// 起别名
// SELECT name uname,`pass` FROM `user`
$data=Db::table("user")->field("name uname,pass")->select();
$data=Db::table("user")->field(['name'=>"uname",'pass'])->select();

// sql 的系统函数
// SELECT count(*) as tot FROM `user`
$data=Db::table("user")->field("count(*) as tot")->select();
$data=Db::table("user")->field(['count(*)'=>"tot"])->select();

// 排除字段
// SELECT `id`,`age` FROM `user`
$data=Db::table("user")->field("name,pass",true)->select();
$data=Db::table("user")->field(["name",'pass'],true)->select();

    九、Page 实现分页效果

// SELECT * FROM `user` LIMIT 5,5
$data=Db::table("user")->page("1,5")->select();

    十、Group分组聚合

// SELECT `pass`,count(*) tot FROM `user` GROUP BY pass

$data=Db::table("user")->field("pass,count(*) tot")->group("pass")->select();

    十一、having 过滤

// 只能结合分组使用
// SELECT `pass`,count(*) tot FROM `user` GROUP BY pass HAVING tot >=2

$data=Db::table("user")->field("pass,count(*) tot")->having("tot >=2")->group("pass")->select();

    十二、多表查询

// select goods.*,type.name tname from type,goods where goods.cid=type.id
$data=Db::query("select goods.*,type.name tname from type,goods where goods.cid=type.id");

// 内联实现数据库链接
// SELECT `goods`.*,type.name tname FROM `goods` INNER JOIN `type` `type` ON `goods`.`cid`=`type`.`id`
$data=Db::table("goods")->field("goods.*,type.name tname")->join("type","goods.cid=type.id")->select();

// 右链接
// SELECT `goods`.*,type.name tname FROM `goods` RIGHT JOIN `type` `type` ON `goods`.`cid`=`type`.`id`
$data=Db::table("goods")->field("goods.*,type.name tname")->join("type","goods.cid=type.id",'right')->select();

// 左链接
$data=Db::table("goods")->field("goods.*,type.name tname")->join("type","goods.cid=type.id",'left')->select();

    十三、别名使用-给表起别名

// SELECT `g`.*,t.name tname FROM `goods` `g` LEFT JOIN `type` `t` ON `g`.`cid`=`t`.`id`
$data=Db::table("goods")->alias("g")->field("g.*,t.name tname")->join("type t","g.cid=t.id",'left')->select();


    十四、union集合

// SELECT `name` FROM `user` UNION select name from goods
$data=Db::field("name")->table("user")->union("select name from goods")->select();


    十五、参数绑定(bind) 为了防止sql注入

# DELETE FROM `user` WHERE `id` = 25
$id=input("id");就收地址栏id
$data=Db::table("user")->where("id",":id")->bind(["id"=>[$id,\PDO::PARAM_INT]])->delete();


    十六、数据统计

// SELECT MAX(age) AS tp_max FROM `user` LIMIT 1
$data=Db::table("user")->max("age");

// SELECT MIN(age) AS tp_min FROM `user` LIMIT 1
$data=Db::table("user")->min("age");

// SELECT AVG(age) AS tp_avg FROM `user` LIMIT 1
$data=Db::table("user")->avg("age");

// SELECT SUM(age) AS tp_sum FROM `user` LIMIT 1
$data=Db::table("user")->sum("age");

// SELECT COUNT(age) AS tp_count FROM `user` LIMIT 1
$data=Db::table("user")->count("age");

    十七、视图查询

$data=Db::view("goods","id,name,price")
->view("type",'name tname',"type.id=goods.cid")
->select();
// SELECT `goods`.`id`,`goods`.`name`,`goods`.`price`,type.name tname FROM `goods` `goods` INNER JOIN `type` `type` ON `type`.`id`=`goods`.`cid`


$data=Db::view("goods","id,name,price")
->view("type",'name tname',"type.id=goods.cid","left")
->select();

// SELECT `goods`.`id`,`goods`.`name`,`goods`.`price`,type.name tname FROM `goods` `goods` LEFT JOIN `type` `type` ON `type`.`id`=`goods`.`cid`;




猜你喜欢

转载自blog.csdn.net/Shaoyanlun/article/details/80631792