Laravel查询构造器简介
数据表
CREATE TABLE IF NOT EXISTS students(
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '姓名',
`age` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',
`sex` TINYINT UNSIGNED NOT NULL DEFAULT 10 COMMENT '性别',
`created_at` INT NOT NULL DEFAULT 0 COMMENT '新增时间',
`updated_at` INT NOT NULL DEFAULT 0 COMMENT '修改时间'
)ENGINE=InnoDB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1001 COMMENT='学生表';
一、查询构造器简介
Laravel查询构造器(query builder)提供方便、流畅的接口,用来建立及执行数据库查找语法
使用PDO参数绑定,以保护应用程序免于SQL注入。因此传入的参数不需额外转义特殊字符
基本可以满足所有的数据库操作,而且在所有支持的数据库系统上都可以执行
二、使用查询构造器新增数据
<?php
/**
* Created by PhpStorm.
* User: chuang
* Date: 17-1-14
* Time: 下午4:29
*/
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
//新增数据
public function insert(){
//返回一个布尔值
//table内传入表名
$bool = DB::table('students')->inster(
//将参数以数组的形式传入
[
'name'=>'bigz',
'age'=>18
]
);
var_dump($bool);
//插入并返回id
$id = DB::table('students')->insertGetId(
[
'name'=>'bigz',
'age'=>19
]
);
var_dump($id);
//一次插入多条数据
$bools = DB::table('students')->insert(
[
['name'=>'bigz','age'=>18],
['name'=>'zbig','age'=>21]
]
);
var_dump($bools);
}
}
三、使用查询构造器更新数据
<?php
/**
* Created by PhpStorm.
* User: chuang
* Date: 17-1-14
* Time: 下午4:29
*/
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
//更新数据
/*
* 更新主要有两方面内容
* 1、更新指定内容
* 2、自增和自减
*/
public function update(){
//1、更新指定内容
//返回影响行数
$num = DB::table('students')
->where('name','bigz')//更新条件
->update(['age'=>22]);//更新内容
var_dump($num);
//2、自增,自减
//自增,默认值是1,返回影响行数
$num = DB::table('students')->increment('age');
var_dump($num);
//自定义自增数值
$num = DB::table('students')->increment('age',3);
var_dump($num);
//自减,默认值是1, 返回影响行数
$num = DB::table('students')->decrement('age');
var_dump($num);
//带条件的自增与自减
$num = DB::table('students')
->where('name','bigz')
->increment('age');
var_dump($num);
//自增,自减时同时修改其他字段
$num = DB::table('students')
->where('id',1)
->increment('age',['name'=>'BigZ']);
var_dump($num);
}
}
三、使用查询构造器删除数据
<?php
/**
* Created by PhpStorm.
* User: chuang
* Date: 17-1-14
* Time: 下午4:29
*/
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
//删除数据
public function delete(){
//删除全表
$num = DB::table('students')
->delete();
var_dump($num);
//删除指定数据
$num = DB::table('students')
->where('id',1)
->delete();
var_dump($num);
//删除id大于等于6的数据
$num = DB::table('students')
->where('id','>=',6)
->delete();
var_dump($num);
//清空数据表,不返回任何数据
DB::table('students')->turncate();
}
}
四、使用查询构造器查询数据
<?php
/**
* Created by PhpStorm.
* User: chuang
* Date: 17-1-14
* Time: 下午4:29
*/
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
//查询数据
public function query(){
//get()获取所有数据
$students = DB::table('students')->get();
dd($students);
//first()获取结果集中的第一条数据
$student = DB::table('students')->first();
dd($student);
$student = DB::table('students')->orderBy('age','desc')->first();
dd($student);
//where()
//返回年龄大于18的所有数据
$students = DB::table('students')
->where('age','>',18)
->get();
dd($student);
//多条件查询
$students = DB::table('students')
->whereRaw('id >= ? and age > ?',[20, 18])
->get();
dd($students);
//pluck() 返回结果集中指定的字段
$names = DB::table('students')
->pluck('name');
dd($names);
//lists() 返回结果集中指定的字段
$names = DB::table('students')
->lists('name');
dd($names);
$names = DB::table('students')
// 指定id作为数组的key
->lists('name','id');
dd($names);
//select() 查询指定的字段
$students = DB::table('students')
->select('id','name','age')
->get();
dd($students);
//chunk() 限制每次查询数据的个数
DB::table('students')->chunk(1000,function ($students){
//把每次查询的数据打印出来
dd($students);
//想要在指定的条件下停止此语句只需
return false;
});
}
}
五、查询构造器中的聚合函数
<?php
/**
* Created by PhpStorm.
* User: chuang
* Date: 17-1-14
* Time: 下午4:29
*/
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
//聚合函数
public function funcs(){
//count() 返回数据条数
$num = DB::table('students')->count();
var_dump($num);
//max()
//返回数据表中最大的年龄数值
$max = DB::table('students')->max('age');
var_dump($max);
//min() 同 max()
//avg() 用法同 max() 返回平均数
//sum() 用法同max() 返回总和
}
}
Laravel查询构造器简介的更多相关文章
- laravel 查询构造器2
//查询构造器 public function query() { //获取所有的数据 $student = DB::table('student')->get(); var_dump($stu ...
- laravel 查询构造器
//查询构造器public function query(){ $bool = DB::table('student')->insert([ ['name' => '王五', 'age' ...
- laravel查询构造器DB还是ORM,这两者有什么区别,各该用在什么场景中
解答一: 我们所有操作都是走的orm,因为操作简单 直观明了 好维护,性能是低一些 但还没有多致命,真有并发需要优化了 用DB也不一定能解决问题.还是要了解orm每个方法的意思,不然你可能一不小心就会 ...
- laravel查询构造器中别名的问题
Laravel框架对数据库的封装是比较完善的,用起来也比较方便.但之前有一个问题一直困扰着我,就是利用laravel作查询时.如果想给表名或是字段名起别名是比较麻烦的事.但翻阅它的文档不难发现,它提供 ...
- Laravel查询构造器的使用方法整理
1.结果集 1.1从一张表获取所有行,get方法获取所有行 $users = DB::table('users')->get(); 获取列的值 foreach ($users as $user) ...
- Laravel框架使用查询构造器实现CURD
一.什么是查询构造器? ①Laravel 查询构造器(query Builder)提供方便,流畅的接口,用来建立及执行数据库查找语法 ②使用PDO参数绑定,以保护应用程序免于SQL注入因此传入的参数不 ...
- [Laravel框架学习二]:Laravel的CURD和查询构造器的CURD,以及聚合函数
public function index() { //return Member::getMember();//这是调用模型的方法 return view('lpc',[ 'age'=>18, ...
- laravel中通过查询构造器,实现数据的curd
//查询构造器: public function query1(){ //利用查询构造器,插入数据: /*$num=DB::table('student')->insert( ['name'=& ...
- laravel 数据库操作之 DB facade & 查询构造器 & Eloquent ORM
<?php namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class S ...
随机推荐
- ELK(Logstash+Elasticsearch+Kibana)的原理和详细搭建
一. Elastic Stack Elastic Stack是ELK的官方称呼,网址:https://www.elastic.co/cn/products ,其作用是“构建在开源基础之上, Elast ...
- Hbase 学习(二)补充 自定义filter
本来这个内容是不单独讲的,但是因为上一个页面太大,导致Live Writer死机了,不能继续编辑了,所以就放弃了 这里要讲的是自定义filter,从FilterBase继承 public class ...
- svn cleanup失败
今天用SVN的时候出现被锁定的情况,既不能更新代码也不能提交. 解决方法如下: 1. 在被锁定的文件夹上点右键,找到并点击Clean up菜单项 2. 在Cleanup对话框中勾选“Break loc ...
- MFC——CDC
CDC类定义的是设备上下文对象的类,有称设备环境对象类. Windows使用与设备无关的图形设备环境(DC:Device Context)进行显示. 说到CDC类就不能不提一下GdiObject——图 ...
- Struts2,Spring,Hibernate框架的优缺点
Struts2,Spring,Hibernate框架的优缺点 Struts2框架(MVC框架)的优点如下: 1) 实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现: ...
- 安卓程序代写 网上程序代写[原]BluetoothAdapter解析
这篇文章将会详细解析BluetoothAdapter的详细api, 包括隐藏方法, 每个常量含义. 一 BluetoothAdapter简介 1.继承关系 该类仅继承了Object类; 2.该类作用 ...
- javascript小技巧[转]
总的来说,如果你要找js 的东西,而不看这两篇的话,肯定要多花好多时间!!哈哈!! 如果你找的javascript的东西的话,建议你 ctrl+F 直接在这个页上找,因为这里80%有你要找的,但是要 ...
- Qt中如何根据类名来实例化对象
对于Qt 来说,是可以做到运行时,根据对象的类名字(字符串)来获得对象的实例的,这点和一些语言的反射机制是一样的. 但是在Qt中,我们需要所额外的一步,就是注册.只要做到了注册,我们就可以 自由的创建 ...
- 如何将Mac系统OS X Yosemite装到外部磁盘?(转)
有Mac用户想了解是否可以将 OS X Yosemite 装到替代的外部磁盘,答案是肯定的,有需求的用户,可以按照本篇教程逐步进行. 前面我已经写过一篇文章介绍了如何安装 OS X Yosemite ...
- missing gradle project information
需要在android studio 中配置gradle的代理,当然是用goagent了.打开setting->gradle->Gradle VM Options:-Dhttp.proxyH ...