查询
1.获取单列数据 first() //返回对象的结果集

$res=DB::table('book')->where('bname','数学')->first();

2.获取具体字段值value() value必须指定值 //返回字符串
例:

$res = DB::table('book')->where('bname','数学')->value('bname');

3.获取一列的值 pluck() //pluck 必须指定值 //返回对象的数组 最多查询两个字段 以键值方式显示

$res = DB::table('book')->pluck('tid','test','bname');

常用聚合函数
1.统计
例:

$res = DB::table('book')->count('bid');

2.指定查询的字段
get()方法 返回对象的数组
例:

$res = DB::table('book')->select('bname','bid')->get();

3.查询不重复结果 (这里好像有点问题)
distinct() 方法
例:

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

在已存在的查询添加查询

$res = DB::table('book')->select('bname');
$res = $res->addSelect('bid','tid')->get();

4.执行原生查询 //返回对象的数组
例:

$res = DB::select('select* from book')

对查询构造器加入原生查询

a.使用selectRaw 查询
b.使用whereRaw 条件
c.使用havingRaw

$res = DB::table('book')
->selectRaw('bname as title')
->groupBy('bid')
->havingRaw('bid>1')
->get();

连接查询
1.基本格式
DB::table(‘表1’)
->join(‘表2’,‘表1字段’,’=’,‘表2字段’)
->join(‘表3’,‘表1/表2字段’,’=’,‘表3字段’)

2.左右链接同理

$res = DB::table('book')->join('teacher','book.tid','=','teacher.tid')->join('zhichen','teacher.zid','=','zhichen.zid')->where('book.tid',2)->get();

联合查询
1.联合查询必须保证字段相同

$res1 = DB::table('book')->whereNull('bname');
$res =  DB::table('test')->unionall($res1)->get();

where语句
1.orWhere() 或者…
2.whereBetween(‘字段’,[范围区间]) 判断字段是否介于范围区间

例:whereBetween('age',[1,100])

3.whereNotBetween(‘字段’,[范围区间]) 判断字段不在两值之间
4.whereIn(‘字段’,[‘可选值’]) 判断字段是否在数组内
5.whereNotIn(‘字段’,[‘可选值’]) 判断指定不在数组内
6.whereNull 验证字段值为空
7.whereNotNull 验证字段不为空
8.whereDate(‘字段’,‘2019-9-9’) 比较字段的值和日期
9.whereMonth(‘字段’,‘月份’) 比较字段月份
10.whereDay(‘字段’,‘天’) 比较某一天
11.whereYear(‘字段’,‘年’) 比较年
12.whereTime(‘字段’,’=’,‘时间’) 比较特定时间
13.whereColumn(‘字段1’,‘字段2’) 比较两个字段是否相等

orderby语句
//orderBy(‘name’,‘desc/asc’)

latest() 和 oldest() 方法允许你轻松地按日期对查询结果排序。默认情况下是对 created_at 字段进行排序。

//inRandomOrder():将查询结果随机排序 可用于随机取人
分组groupBy

groupBy('字段')
having('tid','>' ,100)//条件

多个分组

groupBy('字段','字段2')
having('条件')

限制查询
skip(n)指定跳过查询中给定的数量的结果
take(n)指定取查询的几条结果
两个联合使用 案例 跳过3个取两个

DB::table('book')->skip(3)->take(2)->get()

limit/offset 相当于 原生sql “limit start(offset) length(limit)

插入insert
先设置fillable的允许批量添加的值
插入单行

DB::table('book')->insert('key'=>'value',....)

插入多行

insert(
[['email'=>'df']['email'=>'ds']
]
)

插入时获取自增id

DB::table()->insertGetId(['key'=>'value'])//只能插入一个值

更新update

update(['key'=>'value'])

字段自增&自减

DB::table()->increment('字段');//默认加1
DB::table()->increment('字段',3);//指定加3
DB::table()->decrement()//同理

指定条件自增

increment('字段',step,['条件'])

删除delete

->where()->delete()

清理数据表

DB::table()->truncate()

Laravel学习记录--查询构造器相关推荐

  1. 1+X web中级 Laravel学习笔记——查询构造器简介及新增、更新、删除、查询数据

    一.新增数据 插入多条数据: 二.更新数据 更新某条数据: 自增某字段的值: 自减某字段的值: 自增的同时改变其他字段的值: 三.删除数据 四.查询 查面构造器查面数据 有以下几种方法 get() f ...

  2. Laravel学习记录--访问器与修改器

    简介 当你在Eloquent模型实例中获取或设置某些属性值的时候,访问器和修改器允许你对Eloquent属性值进行格式化,访问器可在将要读取的数据进行处理后在返回给调用方,而修改器可在数据要被保存到数 ...

  3. Laravel学习记录--LaravelDebugbar

    laravel 调试工具 Debugbar 安装及使用 1.使用composer 安装 composer require barryvdh/laravel-debugbar 2.在app\Provid ...

  4. 十二、PHP框架Laravel学习笔记——构造器的查询表达式

    一.select 查询 select()方法可以制定你想要的列,而不是所有列: //设置显示的列,设置列别名 $users = DB::table('users')->select('usern ...

  5. php 查询构造器,Laravel框架查询构造器常见用法总结

    本文实例讲述了Laravel框架查询构造器常见用法.分享给大家供大家参考,具体如下: 查询构造器也是我们使用laravel框架的一项必备技能,上一篇文章我们讲到了如何使用原生增删改查,这一篇我们就来讲 ...

  6. MySQL8单表记录多少_mysql学习笔记之8(单表数据记录查询)_mysql

    mysql学习笔记之八(单表数据记录查询) 查询数据记录,就是指从数据库对象中获取所要求的数据记录.mysql中提供了各种不同方式的数据查询方法. 一.简单数据记录查询 select field1,f ...

  7. MySQL学习记录 (二) ----- SQL数据查询语句(DQL)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  8. MySQL学习记录04where条件子句、联表查询、子查询

    文章目录 MySQL学习记录04where条件子句.联表查询.子查询 4.1DQL 4.2指定查询字段 4.3where条件子句 4.4联表查询 4.5分页和排序 4.6子查询 MySQL学习记录04 ...

  9. QQ邮箱 接受 天气查询 阿里云自动运行学习记录

    QQ邮箱 接受 天气查询 阿里云自动运行学习记录 学习记录 QQ邮箱 接受 天气查询 阿里云自动运行学习记录 前言 一.对于天气的查询 1.中华万年历API接口,获取天气信息 二.qq邮箱的使用步骤 ...

  10. Laravel Database——查询构造器与语法编译器源码分析 (上)

    前言 在前两个文章中,我们分析了数据库的连接启动与数据库底层 CRUD 的原理,底层数据库服务支持原生 sql 的运行.本文以 mysql 为例,向大家讲述支持 Fluent 的查询构造器 query ...

最新文章

  1. is this mysql server_远程连接MySQL数据库报错:is not allowed to connect to this MYSQL server的解决办法...
  2. windows命令行下访问linux,Windows支持直接访问Linux子系统文件:你的下一台Linux何必是Linux...
  3. Joda-Time中两个日期之间的天数
  4. Android 操作系统为什么不启用swap?
  5. C 语言 普通基本数据类型 以及 其储存形式
  6. 计算机视觉课_计算机视觉教程—第4课
  7. java sbyte_Java Byte parseByte()方法
  8. java配u型你,泛型方法上的多个通配符使Java编译器(还有我!)很迷茫
  9. 《学习OpenCV3》第10章 滤波与卷积
  10. vector java 复制_Java性能优化必知的40个细节(珍藏版):Jvm调优+MySQL+Tomcat
  11. SIMD与NEON概念理解
  12. 基于FaceNet人脸识别的人脸对比认证(一) -- 环境部署、认证实验
  13. AI(Adobe illustrator)修改所有字体
  14. 在VirtualBox中安装WindowsXP
  15. Python练习数据结构笔记
  16. 唐珂:国外农业物联网技术发展及对我国的启示
  17. sequence与sequencer
  18. springboot 实现 订单 和 微信扫码支付 功能
  19. python分数约分_python分数的四则运算
  20. 图像处理之K-Means算法演示

热门文章

  1. 如何使用分析模型 — 2. 鱼骨图,清晰表达因果关系
  2. oracle存储过程无效字符_ORA-20003 , procedure存储过程失效问题
  3. OkHttp使用及工具类封装
  4. scrapy框架—spiders
  5. 【BZOJ5285】【HNOI2018】寻宝游戏
  6. Nuvoton I91200 语音MCU入门教程
  7. 1.2.2-凑零钱问题(暴力递归+动态规划)
  8. SharedPreferences牛刀小试
  9. Android 宝典:代码规范与命名规范
  10. 20180310华为面试