美文网首页
laravel5.8(三)数据库相关操作及配置

laravel5.8(三)数据库相关操作及配置

作者: camellias__ | 来源:发表于2020-11-06 09:33 被阅读0次

    数据库相关的操作,大概看下laravel封装的增删改查的数据库操作方法以及laravel对原生sql的支持。

    一:执行原生sql

    1:查询select

    $results = DB::select('select * from users where id = ‘{$id}’');
    
    

    2:写入

    $result = DB::insert('insert into users (id, name) values (‘{$id}’, ‘{$name}’)');
    
    

    3:修改,该方法返回受更新语句影响的行数:

    $affected = DB::update('update users set votes = 100 where name = ‘{$name}’');
    
    

    4:删除,该语句返回被删除的行数:

    $deleted = DB::delete('delete from users');
    
    

    5:执行一些没有返回值的语句,比如新增表,修改表,删除表等

    DB::statement('drop table users');
    
    

    二:数据库事务

    1:开启事务

    DB::beginTransaction();
    
    

    2:回滚事务

    DB::rollBack();
    
    

    3:提交事务

    DB::commit();
    
    

    三:laravel封装的数据库方法

    1:查询

    太复杂的查询建议直接写原生SQL。

    (1):只查一条数据first()方法

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

    (2):查询结果集

    $users = DB::table('users')->get();
    
    

    (3):查询指定字段的结果集

    $users = DB::table('users')->select('name', 'email as user_email')->get();
    
    

    (4):聚合函数

    $users = DB::table('users')->count();
    
    

    (5):distinct 方法允许你强制查询返回不重复的结果集:

    $users = DB::table('users')->distinct()->get();
    
    

    (6):内连接

    $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();
    
    

    (7):左/右链接

    $users = DB::table('users')
                ->leftJoin('posts', 'users.id', '=', 'posts.user_id')
                ->get();
    
    $users = DB::table('users')
                ->rightJoin('posts', 'users.id', '=', 'posts.user_id')
                ->get();
    
    

    (8):交叉链接

    $users = DB::table('sizes')
            ->crossJoin('colours')
            ->get();
    
    

    (9):where查询(多个条件并联查询直接拼接就可以)

    $users = DB::table('users')
                ->where('votes', '>=', 100)
                ->where(id, '>=', 100)
                ->get();
    
    

    (10):where查询 或者OR

    $users = DB::table('users')
                    ->where('votes', '>', 100)
                    ->orWhere('name', 'John')
                    ->get();
    
    

    (11):排序orderBy

    $users = DB::table('users')
            ->orderBy('name', 'desc')
            ->get();
    
    

    (12):分组groupBy

    $users = DB::table('users')
            ->groupBy('account_id')
            ->get();
    
    

    2:写入数据

    (1):单条写入

    DB::table('users')->insert(
        ['email' => 'john@example.com', 'votes' => 0]
    );
    
    

    (2):多条写入

    DB::table('users')->insert([
        ['email' => 'taylor@example.com', 'votes' => 0],
        ['email' => 'dayle@example.com', 'votes' => 0]
    ]);
    
    

    (3):写入并获取自增id

    $id = DB::table('users')->insertGetId(
        ['email' => 'john@example.com', 'votes' => 0]
    );
    
    

    3:更新数据

    (1):更新

    DB::table('users')
        ->where('id', 1)
        ->update(['votes' => 1]);
    
    

    (2):更新或写入

    DB::table('users')
        ->updateOrInsert(
            ['email' => 'john@example.com', 'name' => 'John'],
            ['votes' => '2']
        );
    
    

    4:删除

    (1):清空整张表

    DB::table('users')->delete();
    
    

    (2):指定条件删除

    DB::table('users')->where('votes', '>', 100)->delete();
    
    

    (3):清空整张表并设置自增id为0

    在这里插入代码片
    
    

    数据库的操作,大概就是这些。

    有好的建议,请在下方输入你的评论。

    原文链接:https://guanchao.site/index/article/articledetail.html?artid=4oNH1sLPG

    相关文章

      网友评论

          本文标题:laravel5.8(三)数据库相关操作及配置

          本文链接:https://www.haomeiwen.com/subject/vanzvktx.html