{//学习心得//}Laravel框架:数据库操作【基础】与【实例】

本文详细介绍了Laravel框架中数据库操作的基础和实例,包括使用DB类和模型进行增删改查,执行SQL,进行连接查询,以及一对一、一对多、多对多的关联模型操作。此外,还涵盖了数据表的迁移和填充,帮助开发者掌握在Laravel中高效操作数据库的技巧。
摘要由CSDN通过智能技术生成

文章目录

  前言

  数据库的创建与配置

  使用DB类操作数据库

    使用DB类进行增删改查

    执行SQL

    连接查询

  使用模型操作数据库

    初识模型

    定义模型

    在控制器中使用模型

    使用模型增删改查

  关联模型的使用

    一对一

    一对多

    多对一

    多对多

数据表的迁移和填充

    数据表的迁移

    数据表的填充

       总结


 前言

    这是作者本人在校内学习了laravel框架项目的开发,取出了其中比较重要的数据库操作的学习心得,希望这些知识点能让各位读者在使用laravel框架的过程中能够熟练运用并操作数据库。数据库是程序设计的重要部分,不同数据库的连接方法和查询语句都不同,如果项目后期有更换数据库的需求,就需要在项目中修改所有的查询语句和连接方法,这是一个相当大的工作量。Laravel框架采用统一的接口实现对不同数据库操作的封装,使得对数据库的连接和操作变得非常容易。

数据库的创建与配置

数据库的配置文件是config\database.php,数据库配置相关示例代码。

'mysql' => [
    'driver' => 'mysql',			// 数据库驱动
    'host' => env('DB_HOST', '127.0.0.1'),		// 主机名或IP
    'port' => env('DB_PORT', '3306'),		// 端口
    'database' => env('DB_DATABASE', 'forge'),	// 数据库名
    'username' => env('DB_USERNAME', 'forge'),	// 用户名
    'password' => env('DB_PASSWORD', ''),		// 密码
    'unix_socket' => env('DB_SOCKET', ''),		// socket路径
    'charset' => 'utf8mb4',			// 字符集
    'collation' => 'utf8mb4_unicode_ci',		// 校对集
    'prefix' => '',			// 数据库表前缀
    'strict' => true,			// 使用严格模式
    'engine' => null,			// 指定存储引擎
],

.env文件中的数据库配置信息。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=123456

使用DB类操作数据库

使用DB类前必须在控制器引用DB类

<?php

namespace App\Http\Controllers;

use DB;				// 引入DB类
……(原有代码)

使用DB类进行增删改查

//添加数据的 insert() insertGetId()

//insert()方法:返回值为true或false,表示是否添加成功
//insertGetId()方法:返回值为自动增长的id

DB::table('数据表名')->insert(数据)
DB::table('数据表名')->insertGetId(数据)



//修改数据的 update() increment() decrement()

//update()方法用来修改指定的字段
//increment()方法用来对数字进行递增
//decrement()方法用来对数字进行递减

DB::table('数据表名')->update(数据)
DB::table('数据表名')->increment('数据')
DB::table('数据表名')->decrement('数据')



//查询数据 get() first() select()方法 value()方法

//get()方法,查询多行数据
//first(),查询单行数据
//select(),方法查询指定字段的值
//value()方法,查询某个字段的值
//使用orderBy()方法进行排序,第1个参数指定排序字段,第2个参数指定排序规则,包括asc(升序)或desc//(降序)。
//使用limit()方法和offset()方法实现分页,limit()方法指定每页显示的记录数,offset()方法设置开始的偏移量。

DB::table('数据表名')->get();
DB::table('数据表名')->first();
DB::table('数据表名')->select('字段', '字段')->get();
DB::table('数据表名')->where('字段', '1')->value('name');
$data = DB::table('数据表名')->orderBy('字段', 'desc')->get();
$data = DB::table('数据表名')->limit(3)->offset(2)->get();




//删除数据 delete()方法 truncate()

//使用delete()方法删除指定的记录
//使用truncate()方法清空整个数据表
 
DB::table('数据表名')->where('字段', '1')->delete();
DB::table('数据表名')->truncate();


执行SQL

通过DB类直接执行SQL

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值