laravel 笔记
  • Introduction
  • 说明
  • Laravel 基础
    • 安装与配置
    • 目录结构
    • 路由配置
    • MVC 配置
    • 数据库操作
      • DB façade 方式
      • 查询构造器方式
      • Eloquent ORM 方式
      • 数据库迁移
      • 数据填充
    • 请求和响应和重定向
    • Session
    • 中间件
    • 其他
      • Artisan 命令行
  • Laraval 源码分析
    • 请求到响应的生命周期
      • 程序启动准备
      • 请求实例化
      • 处理请求
      • 响应的发送与程序终止
    • 路由
    • 补充知识点
      • 反射机制
      • Closure 类
  • 资料
  • 核心思想
    • 服务容器
    • 服务提供者
    • Facades(门脸模式)
  • 开发笔记
  • Artisan 命令
  • yarn
Powered by GitBook
On this page
  • 数据库操作(查询构造器方式)
  • 配置访问路由
  • 控制器

Was this helpful?

  1. Laravel 基础
  2. 数据库操作

查询构造器方式

PreviousDB façade 方式NextEloquent ORM 方式

Last updated 5 years ago

Was this helpful?

参考:

数据库操作(查询构造器方式)

配置访问路由

routes/web.php文件中配置

Route::any('queryAdd', ['uses' => 'StudentController@queryAdd']); // 使用查询构造器添加数据
Route::any('queryUpdate', ['uses' => 'StudentController@queryUpdate']); // 使用查询构造器更新数据
Route::any('queryDelete', ['uses' => 'StudentController@queryDelete']); // 使用查询构造器删除数据
Route::any('queryOthers', ['uses' => 'StudentController@queryOthers']); // 使用查询构造器其他操作
Route::any('queryConverge', ['uses' => 'StudentController@queryConverge']); // 使用查询构造器聚合函数

控制器

文件示例App\Http\Controllers\StudentController

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;


class StudentController extends Controller
{
    // 使用查询构造器添加数据
    public function queryAdd()
    {
//        $bool = DB::table('student')->insert(
//            ['name' => 'imooc', 'age' => 18]
//        );
//        var_dump($bool);

//        $id = DB::table('student')->insertGetId(
//            ['name' => 'sean', 'age' => 18]
//        );
//        var_dump($id);


        $bool = DB::table('student')->insert([
            ['name' => 'name1', 'age' => 20],
            ['name' => 'name2', 'age' => 21],
        ]);
        var_dump($bool);
    }

    // 使用查询构造器更新数据
    public function queryUpdate()
    {

//        $num = DB::table('student')
//            ->where('id', 12)
//            ->update(['age' => 30]);
//        var_dump($num);


        //$num = DB::table('student')->increment('age');
        //$num = DB::table('student')->increment('age', 3);

        //$num = DB::table('student')->decrement('age');
        //$num = DB::table('student')->decrement('age', 3);

//        $num = DB::table('student')
//            ->where('id', 12)
//            ->decrement('age', 3);

        $num = DB::table('student')
            ->where('id', 12)
            ->decrement('age', 3, ['name' => 'iimooc']);
        var_dump($num);

    }

    // 使用查询构造器删除数据
    public function queryDelete()
    {
//        $num = DB::table('student')
//            ->where('id', 15)
//            ->delete();

//        $num = DB::table('student')
//            ->where('id', '>=', 13)
//            ->delete();

//        var_dump($num);


        DB::table('student')->truncate();

    }

    // 其他操作
    public function queryOthers()
    {
            // 批量插入
       $bool = DB::table('student')->insert([
           ['id' => 1001, 'name' => 'name1', 'age' => 18],
           ['id' => 1002, 'name' => 'name2', 'age' => 18],
           ['id' => 1003, 'name' => 'name3', 'age' => 19],
           ['id' => 1004, 'name' => 'name4', 'age' => 20],
           ['id' => 1005, 'name' => 'name5', 'age' => 21],
       ]);
       var_dump($bool);

        // get() 获取所有数据
       $studnets = DB::table('student')->get();

        // first 获取第一条数据
       $student = DB::table('student')
           ->orderBy('id', 'desc')
           ->first();
       dd($student);

        // where 条件查询
       $students = DB::table('student')
           ->where('id', '>=', 1002)
           ->get();

    // 多查询条件
       $students = DB::table('student')
           ->whereRaw('id >= ? and age > ?', [1001, 18])
           ->get();


        // pluck 只返回name列数据
       $names = DB::table('student')
           ->pluck('name');


        //lists 以id值为key,name值为value的数组
       $names = DB::table('student')
           ->lists('name', 'id');


        // select 返回固定字段
       $students = DB::table('student')
           ->select('id', 'name', 'age')
           ->get();


        // chunk 快查询
       echo '<pre>';
       DB::table('student')->chunk(2, function($students) {

           var_dump($students);


           if (你的条件) {
               return false;
           }
       });
        //dd($students);
    }

    // 聚合函数
    public function queryConverge()
    {
       $num = DB::table('student')->count();

       $max = DB::table('student')->max('age');

        $min = DB::table('student')->min('age');

       $avg = DB::table('student')->avg('age');

        $sum = DB::table('student')->sum('age');
        var_dump($sum);
    }

}
Laravel 数据库之:数据库请求构建器