• laravel基础课程---13、数据库基本操作2(lavarel数据库操作和tp对比)


    laravel基础课程---13、数据库基本操作2(lavarel数据库操作和tp对比)

    一、总结

    一句话总结:

    非常非常接近:也是分为两大类,原生SQL数据库链式操作
    学习方法:使用时 多看手册即可 ,【和tp的区别不大,功能增加了很多,文档更加完善

    1、数据最基础的链式操作?

    注意这里找表是table方法:DB::table("user")->where("id",'=',3)->first();

    2、lavarel数据库操作中如何获取某列的值?

    $titles = DB::table('roles')->pluck('title');

    若你想要获取一个包含单个字段值的数组,你可以使用 pluck 方法。在这个例子中,我们将取出 roles 数据表 title 字段的数组:

    $titles = DB::table('roles')->pluck('title');
    
    foreach ($titles as $title) {
        echo $title;
    }

    你也可以在返回的数组中指定自定义的键值字段:

    $roles = DB::table('roles')->pluck('title', 'name');
    
    foreach ($roles as $name => $title) {
        echo $title;
    }

    3、lavarel数据库操作中如何从数据表中获取单个列或行?

    value方法获取单个字段:$email = DB::table('users')->where('name', 'John')->value('email');
    first方法获取单行数据:$user = DB::table('users')->where('name', 'John')->first();

    若你只需从数据表中取出单行数据,则可以使用 first 方法。这个方法会返回单个 StdClass 对象:

    $user = DB::table('users')->where('name', 'John')->first();
    
    echo $user->name;

    若你不想取出完整的一行,则可以使用 value 方法来从单条记录中取出单个值。这个方法会直接返回字段的值:

    $email = DB::table('users')->where('name', 'John')->value('email');

    4、lavarel数据库操作中如何 取出 id为1的一条数据?

    find(1):发现ID是1的数据

    5、lavarel数据库操作中如何 操作数千条数据库记录(结果分块)及实例?

    使用 chunk 方法。这个方法一次只取出一小「块」结果,并会将每个区块传给一个闭包进行处理:
    分块实例:比如每次处理 100 条记录:DB::table('users')->orderBy('id')->chunk(100, function($users) {

    若你需要操作数千条数据库记录,则可考虑使用 chunk 方法。这个方法一次只取出一小「块」结果,并会将每个区块传给一个闭包进行处理。这个方法对于要编写处理数千条记录的 Artisan 命令 非常有用。例如,让我们将整个 users 数据表进行分块,每次处理 100 条记录:

    DB::table('users')->orderBy('id')->chunk(100, function($users) {
        foreach ($users as $user) {
            //
        }
    });

    你可以从闭包中返回 false,以停止对后续分块的处理:

    DB::table('users')->orderBy('id')->chunk(100, function($users) {
        // Process the records...
    
        return false;
    });

    6、lavarel数据库操作中如何 取某个字段两个之间的值?

     where+数组条件:DB::table("user")->where([['id','>=',2],['id','<=',5]])->get();
     whereBetween:$data=DB::table("User")->whereBetween('id',[10,15])->get();

    7、lavarel数据库操作中如何 判断字段是否为空?

    whereNull方法+get方法:$data=DB::table("User")->whereNull("pass")->get();
    whereNull 和 whereNotNull
        $data=DB::table("User")->whereNull("pass")->get();
        $data=DB::table("User")->whereNotNull("pass")->get();

    8、lavarel数据库操作中如何 判断字段是否在某个数组中?

    whereIn方法:$data=DB::table("User")->whereIn("id",[2,5,12,15])->get();
    whereIn 和 whereNotIn
        $data=DB::table("User")->whereIn("id",[2,5,12,15])->get();
        $data=DB::table("User")->whereNotIn("id",[2,5,12,15])->get();

    9、lavarel数据库操作中如何 获取某个表所有数据?

    get方法:$users = DB::table('users')->get();
        public function index()
        {
            $users = DB::table('users')->get();
    
            return view('user.index', ['users' => $users]);
        }

    10、lavarel数据库操作中如何 使用mysql原生函数?

    DB:raw方法:表达式会被当作字符串注入到查找:DB::table("User")->select(DB::raw("count(*) tot"))->first();

    11、lavarel数据库操作中如何 查询特定字段?

    select方法:有点相当于tp的field字段:->select('users.*', 'contacts.phone', 'orders.price')
    $users = DB::table('users')
                ->join('contacts', 'users.id', '=', 'contacts.user_id')
                ->join('orders', 'users.id', '=', 'orders.user_id')
                ->select('users.*', 'contacts.phone', 'orders.price')
                ->get();

    12、lavarel数据库操作中如何 从数据库 指定偏移处截取多少个?

    offset方法:表示偏移
    limit方法:表示截取几个

     13、lavarel数据库删除操作中 where条件和update的位置关系 ?

    where要放在update前面,不然可能出错
    DB::table('users')
                ->where('id', 1)
                ->update(['votes' => 1]);

    二、内容在总结中

     
  • 相关阅读:
    JAVA日报
    剑指 Offer 31. 栈的压入、弹出序列
    剑指 Offer 30. 包含min函数的栈
    剑指 Offer 29. 顺时针打印矩阵
    20210426日报
    20210423日报
    20210422日报
    20210421日报
    20210420日报
    20210419日报
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10852811.html
Copyright © 2020-2023  润新知