mysql 基础知识初步学习

原创 2018-11-22 13:03:20 192
摘要: <?php /** * Created by PhpStorm. * User: Administrator * Date: 2018-11-22 * Time: 12:51 */ //Connection.php 数据库连接器类 (三大核心主键) //Query.php&nbs
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018-11-22
* Time: 12:51
*/

//Connection.php 数据库连接器类 (三大核心主键)
//Query.php  查询类
//Buider.php 生成器类


//日常业务必用的知识,重要!!!!
public function select()
{
   //查询满足条件的多条记录 
   $res = Db::table('staff')
       ->field(['name'=>'姓名','salary'=>'工资'])
       ->where('salary','>',3000)
       //order()支持字符串 如:
       //->order('salary DESC') //TEST OK!
       //order()也支持数组 如:
       ->order('salary','DESC')
       ->limit(5)   //记录数
       ->select();

   dump($res);
}

public function insert()
{
   //新增单条记录 insert()
   //新增数据不需要进行前置查询操作

   //以关联数组的形式插入数据
   $data = [
       'name' => '曹操',
       'sex' => 0,
       'age' => 49,
       'salary' => 5300
   ];
   
   //老师推荐使用data()方法将要新增的记录打包,尽量不要在最终方法中传入参数
   $num = Db::table('staff')->data($data)->insert();
   $id = Db::getLastInsID();
   return $num ? '添加成功,id='.$id : '没有记录被添加';


   //新增多条记录 insertAll() 
   //测试新增多条记录,返回新增记录的数量
   $data = [
       ['name' => '张飞','sex' => 0,'age' => 50,'salary' => 6000],
       ['name' => '刘备','sex' => 0,'age' => 55,'salary' => 5000],
       ['name' => '关羽','sex' => 0,'age' => 40,'salary' => 7000],
   ];
   $num = Db::table('staff')->data($data)->insertAll();
   return $num ? '添加成功'.$num.'条记录~~' : '没有记录被添加';

}


public function update()
{
   //更新操作必须是基于前置查询,不允许无条件更新!!!!
   //更新操作使用的是update()方法

   //TEST: 将工资小于等于4000的,加薪1000
   $num = Db::table('staff')
       ->where('salary','<=',4000)
       //工资这里要引用原salary字段的值,所以要用到 Db::raw() 引用原始数据,不能直接字符串操作,否则为0!!!!!
       ->data(['salary'=> Db::raw('salary+1000')])
       ->update();


   $num = Db::table('staff')
       //如果更新记录中存在主键,则直接根据主键更新
       ->update(['sex'=>1,'staff_id'=>19]);
   return $num ? '更新成功'.$num.'条记录~~' : '没有记录被更新';
}

public function delete()
{
   //删除也更新操作一样,也必须是基于前置查询,绝不允许无条件删除
   //删除操作使用:delete()方法

   
   $num = Db::table('staff')->where('salary','>',10000)->delete();

   //如果想删除全部记录,可直接给delete()方法传入true: delete(true)
   $num = Db::table('staff')->delete(true);   

   return $num ? '删除成功'.$num.'条记录~~' : '没有记录被删除';

   
}
}


//此课程知识基本掌握,期待后边的使用模型来实现数据库操作课程

批改老师:天蓬老师批改时间:2018-11-22 13:35:05
老师总结:代码写得非常规范,注释也很完整,具备成了一个合格码农的条件,加油

发布手记

热门词条