一、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 HAVING tot >=2
$data=Db::table("user")->field("pass,count(*) tot")->having("tot >=2")->group("pass")->select();
$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 * 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`;