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天前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
192 93
|
4月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
142 1
|
16天前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
193 7
|
16天前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
208 4
|
7月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
7月前
|
数据库
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
|
6月前
|
安全 Linux 网络安全
YashanDB数据库服务端SSL连接配置
YashanDB支持通过SSL连接确保数据传输安全,需在服务端生成根证书、服务器证书及DH文件,并将根证书提供给客户端以完成身份验证。服务端配置包括使用OpenSSL工具生成证书、设置SSL参数并重启数据库;客户端则需下载根证书并正确配置环境变量与`yasc_env.ini`文件。注意:启用SSL后,所有客户端必须持有根证书才能连接,且SSL与密码认证独立运行。
|
4月前
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
287 3
Jasypt加密数据库配置信息
|
3月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
279 0