一、链接数据库

  1.配置文件定义  application\database.php

    注意:数据表前缀更改,在文件的prefix选项

  2.类定义

 

二、数据库的基本使用

    namespace app\demo\controller;
use think\Db;
class Ceshi{
public function sql(){
//1.使用系统Db类
$data = Db::table('ceshi')->select();
//2.使用sql语句
$data = Db::query('select * from ceshi');
dump($data);
}
}

三、数据查询

  1.table方式

    查所有  Db::table('ceshi')->select();

    查一条  Db::table('ceshi')->find();

  2.name方式

    查所有  Db::name('ceshi')->select();

    查一条  Db::name('ceshi')->find();

  区别:name方式会在表名前自动加设置的前缀

  3.助手函数

    db('ceshi')->select();

    db('ceshi')->find();

  注意:助手函数同样会加前缀

四、条件查询

  注意:条件的顺序可以随意,如6

  1.范围查询 

    $data = db('ceshi')
->where('id','>','1')
->where('id','<','3')
->select();
dump($data);

  2.多条件查询(并且 where)

    $data = db('ceshi')
->where('id','>','1')
->where('pin','=','lisi')
->select();
dump($data);

  3.多条件查询(或者 whereOr)

    $data = db('ceshi')
->where('id','=','1')
->whereOr('id','=','3')
->select();
dump($data);

  4.模糊查询

    $data = db('ceshi')
->where('id','>','1')
->where('pin','like','li%')
->select();
dump($data);

  5.limit截取查询

    $data = db('ceshi')
->where('id','>','0')
//跳过几条取几条,一个参数为显示几条
->limit(1,2)
->select();
dump($data);

  6.order排序

    $data = db('ceshi')
->where('id','>','0')
//跳过几条取几条,一个参数为显示几条
->limit(1,2)
->order('id','desc')
->select();
dump($data);

  7.field查询字段

    $data = db('ceshi')
->where('id','>','0')
//查询的字段名
->field(['id','pin'])
// //或者,第二种写法
// ->field("id,pin")
->select();
dump($data);

  8.更改字段名

    $data = db('ceshi')
->where('id','>','0')
//将显示的字段名id更改为uid
->field(['id'=>'uid','pin'])
// //或者,第二种写法
// ->field("id uid,pin")
->select();
dump($data);

  9.系统函数

    $data = db('ceshi')
->where('id','>','0')
//将显示的字段名id更改为uid
->field(['count(*)'=>'num','pin'])
// //或者,第二种写法
// ->field("count(*) as num,pin")
->select();

  10.排除字段

    $data = db('ceshi')
->where('id','>','0')
//不显示name字段
->field(['name'],true)
// //或者,第二种写法
// ->field("name",true)
->select();

  11.分页查询

    $data = db('ceshi')
->where('id','>','0')
//显示,第几页的,几条
->page("2,2")
->select();

  12.group 分组查询

    $data = db('ceshi')
->where('id','>','0')
->group('id')
->select();

  13.having 过滤查询

  ->having("id > 2")

  14.多表联查

    $data = db('ceshi')
//查找的字段
->field('ceshi.*,ceshi2.name')
//连表2,on后面的条件,第三参数可不写,left和right为左连接,右连接
->join('ceshi2','ceshi1.pin = ceshi2.pin','left')
->select();

  15.表名起别名 (表名后 空格 别名)

  16.参数绑定

    $data = db('ceshi')
//占位
->where('id',':id')
//参数绑定
->bind(["id"=>"1"])
->select();

  17.数据统计

  ->sum('字段名')

   可选sum max min avg count等

五、数据增加

    $sql = [
['id'=>'5','pin'=>'zhaoliu','name'=>'赵六'],
['id'=>'6','pin'=>'zhaoliu','name'=>'赵六']
]
$data = db('ceshi')
->insertAll($sql);

若插入一条,则$sql 写一维数组, insertAll改为insert

  注意:插入数据的字段名必须和数据库一致

六、数据更新

    $data = db('ceshi')
//等号可不写
->where('id',4)
//更改的数据
->update(['name'=>'a','pin'=>'a']);

  自增

    ->setInc('字段名')

  自减

    ->setDec('字段名',每次减几)

七、删除数据(四种方式,不带字段名的为id主键的值)

  ->where('id',1)->delete()

  ->where("id in(1,2,3)")->delete()

  ->delete([1,2,3])

  ->where("id>2 and id <4")->delete()

tp5数据库操作 Db类的更多相关文章

  1. Discuz!数据库操作DB类和C::t类介绍

    类定义文件 DB类: 文件\source\class\class_core.php class DB extends discuz_database {} discuz_database类定义 文件\ ...

  2. 第三百零七节,Django框架,models.py模块,数据库操作——表类容的增删改查

    Django框架,models.py模块,数据库操作——表类容的增删改查 增加数据 create()方法,增加数据 save()方法,写入数据 第一种方式 表类名称(字段=值) 需要save()方法, ...

  3. 五 Django框架,models.py模块,数据库操作——表类容的增删改查

    Django框架,models.py模块,数据库操作——表类容的增删改查 增加数据 create()方法,增加数据 save()方法,写入数据 第一种方式 表类名称(字段=值) 需要save()方法, ...

  4. 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类

    在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...

  5. nodejs操作mongodb数据库封装DB类

    这个DB类也算是我经历了3个实际项目应用的,现分享出来,有需要的请借鉴批评. 上面的注释都挺详细的,我使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的. 关 ...

  6. nodejs mongodb 数据库封装DB类 -转

    使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的. 关于mongoose的安装就是 npm install -g mongoose 这个DB类的数据库配置是 ...

  7. OSChina底层数据库操作的类(QueryHelper)源代码

    OSChina 使用的是 dbutils 这个JDBC的封装类库来进行数据库操作. 而 QueryHelper 则是在 dbutils 的基础上进行一级简单的封装,提供一些经常使用的数据库操作方法和对 ...

  8. 封装类似thinkphp连贯操作数据库的Db类(简单版)。

    <?php header("Content-Type:text/html;charset=utf-8"); /** *php操作mysql的工具类 */ class Db{ ...

  9. ADO.NET数据库操作助手类

    SQL语句操作增删查改助手类 using System; using System.Collections.Generic; using System.Configuration; using Sys ...

随机推荐

  1. Oracle PL/SQL开发基础(第三十四弹:RAISE_APPLICATION_ERROR)

    RAISE_APPLICATION_ERROR在子程序内部使用时,能从存储子程序中抛出自定义的错误消息.这样就能将错误报告给应用程序而避免范围未捕获异常. 语法如下: RAISE_APPLICATIO ...

  2. 页面footer在底部

    页脚动态贴在底部需要满足以下两个条件: 当主体的内容高度不超过可视区域高度的时候,页脚贴在页面底部. 当主体的内容高度超过可视区域高度的时候,页脚将按正常布局. 方法一:footer高度固定+绝对定位 ...

  3. nutz 自定义sql的使用

    虽然提供了Cnd,但是用起来是觉得有点不方便,然后就直接编写Sql语句.nutz提供了一些方法. Nutz.Dao 的自定义 SQL 部分的解决方案是: // 不推荐使用 用户可以硬编码 SQL 语句 ...

  4. AssemblyInfo.cs 文件信息

    using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices ...

  5. 再谈json

    接上一篇,省市三级联动的例子中,引入了1个QQ网站上的js文件.这个js中构造了一个地址对象,页面上我们所有的操作都跟这个对象关联.今天讨论这种对象怎么构造的问题. 前面写过一篇:浅谈Json数据格式 ...

  6. 路飞学城Python-Day186

    Evernote Export 持续集成 持续集成,简单的说就是持续集成频繁的将代码集成到主干,它的好处主要有1.快速发现错误,没完成一点更新,就集成到主干,可以快速发现错误,定位错误也会比较容易,2 ...

  7. 【路飞学城Day170】算法小结

    Evernote Export 算法的思想是能省则省,内存能少则少,时间运行能少尽量少 堆排序的时间复杂度O(nlogn) 堆排序的内置模块heapq 常用函数 heapify(x) heappush ...

  8. MySQL-字符类型与约束条件

    创建表完整的语法: create table 表名(字段名1 类型[(宽度) 约束条件],字段名2 类型[(宽度) 约束条件],字段名3 类型[(宽度) 约束条件]); 注意事项: 1. 在同一张表中 ...

  9. 【UOJ139】【UER #4】被删除的黑白树

    题意: 很久很久以前,有一棵树加入了 UOJ 群. 这天,在它讨论“一棵树应该怎么旋转”的时候一不小心被删除了,变成了被删除的树. 突然间,它突然发现它失去了颜色,变成了一棵纯白的树.这让它感觉很焦躁 ...

  10. ios高效开发二--ARC跟block那点事

    block是可以捕捉上下文的特殊代码块. block可以访问定义在block外的变量,当在block中使用时,它就会为其在作用域内的每个标量变量创建一个副本. 如果通过self拥有一个block,然后 ...