yii2 如何使用数据库(三) 之使用QueryBulider
来源:互联网 发布:mac打不开google 编辑:程序博客网 时间:2024/05/19 04:51
- 导言
- 什么是QuertBuilder查询构建器
- 如何使用查询构建器
- 构建查询
- select
- 使用字符串或数组来指定要查询的数据
- 使用子查询
- 如果不写select 就相当于select查询所有字段
- from
- from 方法指定了 SQL 语句当中的 FROM 子句例如
- 子查询
- where
- orderBy
- select
- 执行查询
- 构建查询
导言
上几张我讲了如何用ActiveRecord和*CreateCommand*来连接数据库, 今 天我们来了解一下,如何用QueryBulider来建立和数据库之间的关联关系
什么是QuertBuilder查询构建器?
查询构建器建立在 Database Access Objects 基础之上,可让你创建 程序化的、DBMS无关的SQL语句。相比于原生的SQL语句,更易读,更安全
如何使用查询构建器
查询构建器使用分为两个步骤
- 创建一个 yii\db\Query 对象来代表一条 SELECT SQL 语句的不同子句(例如 SELECT, FROM)。
- 执行 yii\db\Query 的一个查询方法(例如:all())从数据库当中检索数据。
形式如下:
$rows = (new \yii\db\Query()) ->select(['id', 'email']) ->from('user') ->where(['last_name' => 'Smith']) ->orderBy(id) ->limit(10) ->indexBy(id) ->all();
构建查询
我们根据上面的例子,一条一条看。
select()
使用字符串或数组来指定要查询的数据
select(['id','name']);//等同select('id,name');
也可以想写原生的sql语句一样写一些select的操作
$query->select(['user.id AS user_id', 'email']);// 等同于:$query->select('user.id AS user_id, email');//或者$query->select(['user.id'=>'user_id', 'email']);//再或$query->select(['user.id AS user_id', 'email']);
使用子查询
$subQuery = (new Query())->select('COUNT(*)')->from('user');// SELECT `id`, (SELECT COUNT(*) FROM `user`) AS `count` FROM `post`$query = (new Query())->select(['id', 'count' => $subQuery])->from('post');
如果不写select 就相当于select(‘*’)查询所有字段
from()
from() 方法指定了 SQL 语句当中的 FROM 子句。例如:
$query->from('user');//也可以想原生的sql语句一样使用别名,和数据库前缀$query->from(['public.user u', 'public.post p']);// 等同于:$query->from('public.user u, public.post p');
子查询
$subQuery = (new Query())->select('id')->from('user')->where('status=1');// SELECT * FROM (SELECT `id` FROM `user` WHERE status=1) u $query->from(['u' => $subQuery]);
where()
用来设定查询条件
以前已经做过介绍了,这里就跳过
orderBy()
执行查询
阅读全文
0 0
- yii2 如何使用数据库(三) 之使用QueryBulider
- yii2 如何使用数据库(二) 之使用ActiveRecord
- Yii2 使用三 使用数据库
- yii2 如何使用数据库(一)之使用createCommand()
- yii2.0 使用数据库
- Yii2之使用javascript
- yii2中如何使用modal弹窗之基本使用
- yii2.0如何使用ActionForm
- Yii2中如何使用CodeCeption
- Yii2如何使用Yii:t()
- yii2.0如何使用ActionForm
- yii2 如何使用数据小部件之DetailView
- Yii2之cache的使用
- yii2使用
- Yii2 使用十六 数据库操作汇总
- Yii2 使用十六 数据库操作汇总
- Yii2 使用十六 数据库操作汇总
- Yii2 使用十六 数据库操作汇总
- yii2 如何使用数据库(一)之使用createCommand()
- 游戏作业
- centos 7安装rabbitmq
- yii2 如何使用数据库(二) 之使用ActiveRecord
- 指数与对数名字的由来
- yii2 如何使用数据库(三) 之使用QueryBulider
- [LeetCode] 647. Palindromic Substrings
- 低层次的努力,注定你过不好这一生
- yii2控制器中附加行为behavior()方法使用
- C++面试总结
- hp电脑开机显示正在准备自动修复,进不了系统
- 内部类与外部类
- yii2 如何使用数据小部件之DetailView
- 开放平台关于获取key时需要填写SHA1安全码的总结