Yii framwork crud 深入YII DAO 笔记三

本文介绍了YIIDAO中数据库操作的基本方法,包括SELECT、FROM、WHERE等子句的构建方式,以及JOIN、GROUP BY、HAVING等高级用法。通过实例展示了如何使用这些方法进行复杂查询。
YII DAO有很多的现成的方法可以帮助我们,当然在使用之前我们首先要得到一个实例化的对象,比如:
$command = Yii::app()->db->createCommand();注意参数留空了,现在我们就可以通过对象$command
调用这些方法了,还有一点要说一下就是$command可以多次使用,但是在重复使用之前需要reset()一下
就可以了,下面我先罗列一些可供我们使用的方法:

->select()               SELECT子句
->selectDistinct() 并保持了记录的唯一性
->from():                构建FROM子句
->where():             构建WHERE子句
->join():                 在FROM子句中构建INNER JOIN 子句
->leftJoin():           在FROM子句中构建左连接子句
->rightJoin():         在FROM子句中构建右连接子句
->crossJoin():       添加交叉查询片段(没用过)
->naturalJoin():    添加一个自然连接子片段
->group():             GROUP BY子句
->having():           类似于WHERE的子句,但要与GROUP BY连用
->order():              ORDER BY子句
->limit():                LIMIT子句的第一部分
->offset():              LIMIT子句的第二部分
->union():             appends a UNION query fragment

select() //function select($columns='*')
select('username, email');//指定列        select('tbl_user.id');//使用表限定
select('username name');//使用别名     select(array('id', 'count(*) as num'));// 或使用数组作为参数

form() //function from($tables)
from('tbl_user,tbl_profile');//像sql那样   
from('tbl_user u, public.tbl_profile p');//使用表别名, 还可以使用完整的数据库限定名

WHERE  //function where($conditions, $params=array())
where(array('and', 'id=:id', 'username=:username'), array(':id'=>$id, ':username'=>$username);// 在where()中使用 AND
where( array('and', 'type=1', array('or', 'id=:id','username=abc') ),array(':id'=>$id));//在where()中使用 OR 与 AND用法相同
where(array('in', 'id', array(1,2,3)))// IN 操作符用法
where( array('like','name', '%tester%') );// LIKE 用法
where( array('like','name', array('%test%', '%sample%')) )//等于name LIKE '%test%' AND name LIKE '%sample%

// 添加了这么多,你都不知道合成后的SQL长啥样了,可以使用->text查看
join() //function join($table, $conditions, $params=array())
leftJoin() //function leftJoin($table, $conditions, $params=array())
rightJoin() //function rightJoin($table, $conditions, $params=array())
crossJoin() //function crossJoin($table)
naturalJoin() //function naturalJoin($table)
join('tbl_user', 'user_id=:id',array(":id"=>$id))// JOIN `tbl_profile` ON user_id=id(绑定叁数)
leftJoin('tbl_post p', 'p.user_id=id AND type=1')// LEFT JOIN `tbl_post` `p` ON p.user_id=id AND type=1

group() //function group($columns)
group('name, id')// GROUP BY `name`, `id`      group(array('tbl_user.name', 'id'))// GROUP BY `tbl_user`.`name`, `id`


having() //function having($conditions, $params=array())
having('id=:id',array(":id"=>$id))// HAVEING id=$id   having('id=1 or id=2')// HAVING id=1 or id=2
having(array('or', 'id=1', 'id=2'))// HAVING id=1 OR id=2

order() //function order($columns)
order('name, id desc')// ORDER BY `name`, `id` DESC
order(array('tbl_profile.name', 'id desc'))// ORDER BY `tbl_profile`.`name`, `id` DESC

limit() //function limit($limit, $offset=null) and offset() //function offset($offset)
limit(10)// LIMIT 10    limit(10, 20)// LIMIT 10 OFFSET 20    offset(20)// OFFSET 20

union() //function union($sql)执行指定的sql语句
union('select * from tbl_profile')// UNION (select * from tbl_profile)


总之就是YII DAO使用起来可能有些繁琐,所以适用于处理复杂的数据库操作,当然DAO的操作不止这些因为我在整理CRUD
所以就记录了这些,如果有兴趣大家可以直接查看这方面的

原文http://blog.youkuaiyun.com/lucifer_qiao/article/details/8763959 手册http://www.yiichina.com/api/CDbCommand

基于径向基函数神经网络RBFNN的自适应滑模控制学习(Matlab代码实现)内容概要:本文介绍了基于径向基函数神经网络(RBFNN)的自适应滑模控制方法,并提供了相应的Matlab代码实现。该方法结合了RBF神经网络的非线性逼近能力和滑模控制的强鲁棒性,用于解决复杂系统的控制问题,尤其适用于存在不确定性和外部干扰的动态系统。文中详细阐述了控制算法的设计思路、RBFNN的结构与权重更新机制、滑模面的构建以及自适应律的推导过程,并通过Matlab仿真验证了所提方法的有效性和稳定性。此外,文档还列举了大量相关的科研方向和技术应用,涵盖智能优化算法、机器学习、电力系统、路径规划等多个领域,展示了该技术的广泛应用前景。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的研究生、科研人员及工程技术人员,特别是从事智能控制、非线性系统控制及相关领域的研究人员; 使用场景及目标:①学习和掌握RBF神经网络与滑模控制相结合的自适应控制策略设计方法;②应用于电机控制、机器人轨迹跟踪、电力电子系统等存在模型不确定性或外界扰动的实际控制系统中,提升控制精度与鲁棒性; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,深入理解算法实现细节,同时可参考文中提及的相关技术方向拓展研究思路,注重理论分析与仿真验证相结合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值