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

简介: 数据库相关的操作,大概看下laravel封装的增删改查的数据库操作方法以及laravel对原生sql的支持。一:执行原生sql1:查询selectphp复制代码$results = DB::select('select * from users where id = ‘{$id}’');2:写入php复制代码$result = DB::insert('insert into users (id, name) values (‘{$id}’, ‘{$name}’)');3:修改,该方法返回受更新语句影响的行数:

数据库相关的操作,大概看下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

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”

目录
相关文章
|
16天前
|
存储 监控 安全
数据库多实例的部署与配置方法
【10月更文挑战第23天】数据库多实例的部署和配置需要综合考虑多个因素,包括硬件资源、软件设置、性能优化、安全保障等。通过合理的部署和配置,可以充分发挥多实例的优势,提高数据库系统的运行效率和可靠性。在实际操作中,要不断总结经验,根据实际情况进行调整和优化,以适应不断变化的业务需求。
|
8天前
|
消息中间件 资源调度 关系型数据库
如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理
本文介绍了如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理。主要内容包括安装Debezium、配置Kafka Connect、创建Flink任务以及启动任务的具体步骤,为构建实时数据管道提供了详细指导。
28 9
|
8天前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
21 3
|
12天前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
14天前
|
Java 数据库连接 数据库
如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面
本文介绍了如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面。通过合理配置初始连接数、最大连接数和空闲连接超时时间,确保系统性能和稳定性。文章还探讨了同步阻塞、异步回调和信号量等并发控制策略,并提供了异常处理的最佳实践。最后,给出了一个简单的连接池示例代码,并推荐使用成熟的连接池框架(如HikariCP、C3P0)以简化开发。
32 2
|
15天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
59 2
|
30天前
|
前端开发 Java 数据库连接
javamvc配置,增删改查,文件上传下载。
【10月更文挑战第4天】javamvc配置,增删改查,文件上传下载。
37 1
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
61 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
应用服务中间件 数据库连接 网络安全
网站连接数据库配置错误
网站连接数据库配置错误
|
17天前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
41 0