Laravel学习记录--查询构造器
查询
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+X web中级 Laravel学习笔记——查询构造器简介及新增、更新、删除、查询数据
一.新增数据 插入多条数据: 二.更新数据 更新某条数据: 自增某字段的值: 自减某字段的值: 自增的同时改变其他字段的值: 三.删除数据 四.查询 查面构造器查面数据 有以下几种方法 get() f ...
- Laravel学习记录--访问器与修改器
简介 当你在Eloquent模型实例中获取或设置某些属性值的时候,访问器和修改器允许你对Eloquent属性值进行格式化,访问器可在将要读取的数据进行处理后在返回给调用方,而修改器可在数据要被保存到数 ...
- Laravel学习记录--LaravelDebugbar
laravel 调试工具 Debugbar 安装及使用 1.使用composer 安装 composer require barryvdh/laravel-debugbar 2.在app\Provid ...
- 十二、PHP框架Laravel学习笔记——构造器的查询表达式
一.select 查询 select()方法可以制定你想要的列,而不是所有列: //设置显示的列,设置列别名 $users = DB::table('users')->select('usern ...
- php 查询构造器,Laravel框架查询构造器常见用法总结
本文实例讲述了Laravel框架查询构造器常见用法.分享给大家供大家参考,具体如下: 查询构造器也是我们使用laravel框架的一项必备技能,上一篇文章我们讲到了如何使用原生增删改查,这一篇我们就来讲 ...
- MySQL8单表记录多少_mysql学习笔记之8(单表数据记录查询)_mysql
mysql学习笔记之八(单表数据记录查询) 查询数据记录,就是指从数据库对象中获取所要求的数据记录.mysql中提供了各种不同方式的数据查询方法. 一.简单数据记录查询 select field1,f ...
- MySQL学习记录 (二) ----- SQL数据查询语句(DQL)
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- MySQL学习记录04where条件子句、联表查询、子查询
文章目录 MySQL学习记录04where条件子句.联表查询.子查询 4.1DQL 4.2指定查询字段 4.3where条件子句 4.4联表查询 4.5分页和排序 4.6子查询 MySQL学习记录04 ...
- QQ邮箱 接受 天气查询 阿里云自动运行学习记录
QQ邮箱 接受 天气查询 阿里云自动运行学习记录 学习记录 QQ邮箱 接受 天气查询 阿里云自动运行学习记录 前言 一.对于天气的查询 1.中华万年历API接口,获取天气信息 二.qq邮箱的使用步骤 ...
- Laravel Database——查询构造器与语法编译器源码分析 (上)
前言 在前两个文章中,我们分析了数据库的连接启动与数据库底层 CRUD 的原理,底层数据库服务支持原生 sql 的运行.本文以 mysql 为例,向大家讲述支持 Fluent 的查询构造器 query ...
最新文章
- is this mysql server_远程连接MySQL数据库报错:is not allowed to connect to this MYSQL server的解决办法...
- windows命令行下访问linux,Windows支持直接访问Linux子系统文件:你的下一台Linux何必是Linux...
- Joda-Time中两个日期之间的天数
- Android 操作系统为什么不启用swap?
- C 语言 普通基本数据类型 以及 其储存形式
- 计算机视觉课_计算机视觉教程—第4课
- java sbyte_Java Byte parseByte()方法
- java配u型你,泛型方法上的多个通配符使Java编译器(还有我!)很迷茫
- 《学习OpenCV3》第10章 滤波与卷积
- vector java 复制_Java性能优化必知的40个细节(珍藏版):Jvm调优+MySQL+Tomcat
- SIMD与NEON概念理解
- 基于FaceNet人脸识别的人脸对比认证(一) -- 环境部署、认证实验
- AI(Adobe illustrator)修改所有字体
- 在VirtualBox中安装WindowsXP
- Python练习数据结构笔记
- 唐珂:国外农业物联网技术发展及对我国的启示
- sequence与sequencer
- springboot 实现 订单 和 微信扫码支付 功能
- python分数约分_python分数的四则运算
- 图像处理之K-Means算法演示