数据库相关的操作,大概看下laravel封装的增删改查的数据库操作方法以及laravel对原生sql的支持。
一:执行原生sql
1:查询select
php
复制代码
$results = DB::select('select * from users where id = ‘{$id}’');
2:写入
php
复制代码
$result = DB::insert('insert into users (id, name) values (‘{$id}’, ‘{$name}’)');
3:修改,该方法返回受更新语句影响的行数:
php
复制代码
$affected = DB::update('update users set votes = 100 where name = ‘{$name}’');
4:删除,该语句返回被删除的行数:
php
复制代码
$deleted = DB::delete('delete from users');
5:执行一些没有返回值的语句,比如新增表,修改表,删除表等
php
复制代码
DB::statement('drop table users');
二:数据库事务
1:开启事务
php
复制代码
DB::beginTransaction();
2:回滚事务
php
复制代码
DB::rollBack();
3:提交事务
php
复制代码
DB::commit();
三:laravel封装的数据库方法
1:查询
太复杂的查询建议直接写原生SQL。
(1):只查一条数据first()方法
php
复制代码
$user = DB::table('users')->where('name', '{$name}')->first();
(2):查询结果集
php
复制代码
$users = DB::table('users')->get();
(3):查询指定字段的结果集
php
复制代码
$users = DB::table('users')->select('name', 'email as user_email')->get();
(4):聚合函数
php
复制代码
$users = DB::table('users')->count();
(5):distinct 方法允许你强制查询返回不重复的结果集:
php
复制代码
$users = DB::table('users')->distinct()->get();
(6):内连接
php
复制代码
$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):左/右链接
php
复制代码
$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):交叉链接
perl
复制代码
$users = DB::table('sizes') ->crossJoin('colours') ->get();
(9):where查询(多个条件并联查询直接拼接就可以)
php
复制代码
$users = DB::table('users') ->where('votes', '>=', 100) ->where(id, '>=', 100) ->get();
(10):where查询 或者OR
php
复制代码
$users = DB::table('users') ->where('votes', '>', 100) ->orWhere('name', 'John') ->get();
(11):排序orderBy
php
复制代码
$users = DB::table('users') ->orderBy('name', 'desc') ->get();
(12):分组groupBy
php
复制代码
$users = DB::table('users') ->groupBy('account_id') ->get();
2:写入数据
(1):单条写入
php
复制代码
DB::table('users')->insert( ['email' => 'john@example.com', 'votes' => 0] );
(2):多条写入
php
复制代码
DB::table('users')->insert([ ['email' => 'taylor@example.com', 'votes' => 0], ['email' => 'dayle@example.com', 'votes' => 0] ]);
(3):写入并获取自增id
php
复制代码
$id = DB::table('users')->insertGetId( ['email' => 'john@example.com', 'votes' => 0] );
3:更新数据
(1):更新
php
复制代码
DB::table('users') ->where('id', 1) ->update(['votes' => 1]);
(2):更新或写入
php
复制代码
DB::table('users') ->updateOrInsert( ['email' => 'john@example.com', 'name' => 'John'], ['votes' => '2'] );
4:删除
(1):清空整张表
php
复制代码
DB::table('users')->delete();
(2):指定条件删除
php
复制代码
DB::table('users')->where('votes', '>', 100)->delete();
(3):清空整张表并设置自增id为0
php
复制代码
DB::table('users')->truncate();
数据库的操作,大概就是这些。多说一句,我个人还是不太喜欢用框架封装好的数据库操作方法,一般我都写原生sql,在我看来,维护好维护,写着也方便,当然,这种事情还是见仁见智。
有好的建议,请在下方输入你的评论。
欢迎访问个人博客 guanchao.site
欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”