数据表

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='学生表';

一、查询构造器简介

  1. Laravel查询构造器(query builder)提供方便、流畅的接口,用来建立及执行数据库查找语法

  2. 使用PDO参数绑定,以保护应用程序免于SQL注入。因此传入的参数不需额外转义特殊字符

  3. 基本可以满足所有的数据库操作,而且在所有支持的数据库系统上都可以执行

二、使用查询构造器新增数据

<?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查询构造器简介的更多相关文章

  1. laravel 查询构造器2

    //查询构造器 public function query() { //获取所有的数据 $student = DB::table('student')->get(); var_dump($stu ...

  2. laravel 查询构造器

    //查询构造器public function query(){ $bool = DB::table('student')->insert([ ['name' => '王五', 'age' ...

  3. laravel查询构造器DB还是ORM,这两者有什么区别,各该用在什么场景中

    解答一: 我们所有操作都是走的orm,因为操作简单 直观明了 好维护,性能是低一些 但还没有多致命,真有并发需要优化了 用DB也不一定能解决问题.还是要了解orm每个方法的意思,不然你可能一不小心就会 ...

  4. laravel查询构造器中别名的问题

    Laravel框架对数据库的封装是比较完善的,用起来也比较方便.但之前有一个问题一直困扰着我,就是利用laravel作查询时.如果想给表名或是字段名起别名是比较麻烦的事.但翻阅它的文档不难发现,它提供 ...

  5. Laravel查询构造器的使用方法整理

    1.结果集 1.1从一张表获取所有行,get方法获取所有行 $users = DB::table('users')->get(); 获取列的值 foreach ($users as $user) ...

  6. Laravel框架使用查询构造器实现CURD

    一.什么是查询构造器? ①Laravel 查询构造器(query Builder)提供方便,流畅的接口,用来建立及执行数据库查找语法 ②使用PDO参数绑定,以保护应用程序免于SQL注入因此传入的参数不 ...

  7. [Laravel框架学习二]:Laravel的CURD和查询构造器的CURD,以及聚合函数

    public function index() { //return Member::getMember();//这是调用模型的方法 return view('lpc',[ 'age'=>18, ...

  8. laravel中通过查询构造器,实现数据的curd

    //查询构造器: public function query1(){ //利用查询构造器,插入数据: /*$num=DB::table('student')->insert( ['name'=& ...

  9. laravel 数据库操作之 DB facade & 查询构造器 & Eloquent ORM

    <?php namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class S ...

随机推荐

  1. Android——用Activity和Service实现简单的音乐播放器

    一.只用Activity 容易出现问题 xml <?xml version="1.0" encoding="utf-8"?> <LinearL ...

  2. 如何安装docker-compose

    docker-compose还是挺好用的~~~~~ 这里简单介绍下两种安装docker-compose的方式,第一种方式相对简单,但是由于网络问题,常常安装不上,并且经常会断开,第二种方式略微麻烦,但 ...

  3. 再谈git的http服务-权限控制gitweb版(未成功)

    截至目前,对gitweb的掌握还没达到最终目标,仅仅实现了通过浏览器来浏览项目,通过git命令仍然未能clone项目.但仍然要记录下来,主要是因为打算暂时放弃这条路,而所收获的一些经验还是要记录下来. ...

  4. butterknife 配置了点击和绑定无效

    配置了butterknife 没有报错,但是控件绑定和点击均无效. 问题原因: butterknife配置不完善问题导致. 解决办法: 找到app的module的build.gradle depend ...

  5. sps和pps的简单理解记录

    最近博客写出了日记的既视感... 使用RTP传输H264的时候,需要用到sdp协议描述,其中有两项:Sequence Parameter Sets (SPS) 和Picture Parameter S ...

  6. R语言-分组统计

    分组统计 1.假定有一组成绩数据,要求根据性别进行分组统计: > score    ID   score1 score2 Gender1  101 11.35321    0.9   male2 ...

  7. Python 字符串操作函数一

    #-*- coding:utf-8 -*- strword = "i will fly with you , fly on the sky ." #find print(strwo ...

  8. JAVA中如何用接口实现多继承和多态 (非常好)

    ---------------------------------------------------------------多态1.JAVA里没有多继承,一个类之能有一个父类.而继承的表现就是多态. ...

  9. Ubuntu18.04 + cuda9.0+cudnn7.0

    1 cannot find Toolkit in /usr/local/cuda-8.0 2017年05月27日 17:37:33 阅读数:2754  对于新版本ubuntukylin17.04安装C ...

  10. ABAP--如何创建自定义打印条码

    ABAP--如何创建自定义打印条码 BARCODE in Smartforms: How to create customize BARCODE for Smartforms. 1 Introduct ...