数据表

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. powerdesigner 导出excel

    PD菜单栏中,依次点击 Tools ->Excute Commands->Edit/Run Script.. 填入 '*********************************** ...

  2. SpringCloud 详解配置刷新的原理 使用jasypt自动加解密后 无法使用 springcloud 中的自动刷新/refresh功能

    之所以会查找这篇文章,是因为要解决这样一个问题: 当我使用了jasypt进行配置文件加解密后,如果再使用refresh 去刷新配置,则自动加解密会失效. 原因分析:刷新不是我之前想象的直接调用conf ...

  3. 安卓程序代写 网上程序代写[原]BluetoothServerSocket详解

    一. BluetoorhServerSocket简介 1. 继承关系 public final class BluetoothServerSocket extends Object implement ...

  4. [技术选型] SSH/SSI框架替代品

    1.Nutz 简介:http://blog.csdn.net/u012373523/article/details/16993859 官网:http://www.nutzam.com/ 2.

  5. Should I expose asynchronous wrappers for synchronous methods?

    Lately I've received several questions along the lines of the following, which I typically summarize ...

  6. e822. 监听JScrollPane的滚动

    A scrollbar in a scroll pane fires adjustment events whenever its value changes. // Create a scrolla ...

  7. POI写docx文件table中的单元格水平、垂直对齐

    核心示例代码 垂直对齐 XWPFTableCell cell = table.getRow(i).getCell(j); cell.setVerticalAlignment(XWPFTableCell ...

  8. MYSQL类型与JAVA类型对应表

    MYSQL类型与JAVA类型对应表: 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) VARCHAR L+N VARCHAR java.lang.String 12 CHAR ...

  9. quake3中求1/sqrt(x)的算法源代码

    quake3中求1/sqrt(x)的算法源代码如下(未作任何修改): float Q_rsqrt( float number ) { long i; float x2, y; const float ...

  10. iOS:TabBarController 显示/隐藏第一级页面的TabBar

    - (void)setTabBarHidden:(BOOL)hidden { UIView *tab = self.tabBarController.view; ) { return; } UIVie ...