本文将提到:

1.原生查询操作的读操作:query()

2.原生查询操作的写操作:insert/update/delete,execute()

3.查询构造器

4.where()函数:可以根据其他字段查询

5.order(),limit()函数


对于数据库的配置在框架中app\config\database.php中已经配置好了,所以下面将默认已经连接上了数据库

作为例子展示的数据表:


1.原生查询操作的读操作:query()

public function demo1()
{
$sql = "SELECT `userName` FROM `admin` WHERE `id`=:id ";
$map = ['id' => 1];
$res = Db::query($sql, $map);
dump($res);//打印查询结果$res
}

2.原生查询操作的写操作:insert/update/delete,execute()

public function demo2()
{
$sql = "UPDATE `admin` SET `status`=:status WHERE `id`=:id ";
$map = ['id' => 1, 'status' => 0];
$res = Db::execute($sql, $map);
return '成功更新了'.$res.'条记录';
}

数据表中 id=1 的 status从1变为0


3.查询构造器

① find() : 返回满足条件的第一条记录,单条记录;无返回null

//table():设置数据表
//field():设置查询字段列表
public function demo3()
{
$res = Db::table('admin')
->field('id, userName, phone')
->find(2);//支持将主键作为参数:WHERE `id` = 2
dump($res);
}

②select() : 返回满足条件的多条记录

public function demo4()
{
$res = Db::table('admin')
->field('id, userName, phone')
//注:select(2, 3)只返回第一条;select([2, 3])应放入数组中
->select();//同上
dump($res);
}

4 . where()函数:可以根据其他字段查询

设置查询条件 主要类型:字符串,表达式,数组

(1)字符串

public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段 //1.字符串
->where('status > 0')
->select();
dump($res);
}

(2)表达式

public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段 //2.表达式:推荐
->where('id','between',[1,3])//参数格式:字段,操作符,值
->select();
dump($res);
}

(3)数组

①关联数组:等值查询,AND

public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段 // ①关联数组
->where(['id' => 1, 'phone' => 123])
->select();
dump($res);
}

打印sql语句看一下(在where()和select()中间插入下面代码)

->fetchSql(true)

②索引数组:批量查询

public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段 //②索引数组
->where([
// ‘0=>’ 索引值可以忽略,默认值
0 => ['id','between',[1,3]],
1 => ['status','>',0]
]) ->select();
dump($res);
}

5.order(),limit()函数

①单字段排序

//order(),limit()
public function demo6()
{
$res = Db::table('admin')
->field('id, userName, phone') //单字段排序
->order('id', 'desc')//默认升序asc,desc:降序
->limit(2,2)//从第2行开始的2条数据,常用于分页查询 ->select();
dump($res);
}

②多字段排序,用数组参数

讲单字段排序中order()一行改为以下代码即可

->order(['id'=>'asc', 'phone'=>'desc'])

Thinkphp6框架学习:有关数据库的基本操作的更多相关文章

  1. Android 学习笔记之AndBase框架学习(五) 数据库ORM..注解,数据库对象映射...

    PS:好久没写博客了... 学习内容: 1.DAO介绍,通用DAO的简单调度过程.. 2.数据库映射关系... 3.使用泛型+反射+注解封装通用DAO.. 4.使用AndBase框架实现对DAO的调用 ...

  2. Thinkphp6框架学习:($this->error()undefined)Call to undefined method app\index\controller\Admin::error()

    最近在使用Thinkphp6框架的时候,想做一个初始化来验证登录状态. 当没有Session::get(‘adminUid’)的时候就应该跳转到admin\adminLogin的方法中,和以前Tp5的 ...

  3. spring框架学习之--数据库操作增删改查

    基于spring的NamedParameterJdbcTemplate操作数据库 首先在 resources 文件夹下添加数据库配置文件jdbc.properties 配置常用的数据库信息 consu ...

  4. ThinkPhp框架对“数据库”的基本操作

    框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是 ...

  5. TP框架对数据库的基本操作

    数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作,一步步的讲述一下框架对数据库的操作 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找 ...

  6. 大数据学习day26----hive01----1hive的简介 2 hive的安装(hive的两种连接方式,后台启动,标准输出,错误输出)3. 数据库的基本操作 4. 建表(内部表和外部表的创建以及应用场景,数据导入,学生、分数sql练习)5.分区表 6加载数据的方式

    1. hive的简介(具体见文档) Hive是分析处理结构化数据的工具   本质:将hive sql转化成MapReduce程序或者spark程序 Hive处理的数据一般存储在HDFS上,其分析数据底 ...

  7. ORM数据库框架 SQLite 常用数据库框架比较 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. Hadoop学习笔记—18.Sqoop框架学习

    一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...

  9. MySQL(一) 数据表数据库的基本操作

    序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...

随机推荐

  1. net start mysql

    net start mysql 解决的方法: 如何以管理员身份打开黑窗口 左下角开始菜单,找到小娜,cmd 回车, 命令提示符右击,以管理员身份打开 依次输入下面两行代码 mysqld -instal ...

  2. Code signing is required for product type 'Unit Test Bundle' in SDK 'iOS 11.0.1'

    Code signing is required for product type 'Unit Test Bundle' in SDK 'iOS 11.0.1' 进入 projects and lis ...

  3. import 和from…import

    import 和from-import 一.import模块名 import time print(time.time()) import首次导入模块发生了3件事: 使用import time导入的时 ...

  4. 如何使用 Skywalking Agent ?

    如何使用 Skywalking Agent ? 如果你还不知道 Skywalking agent 是什么,请点击这里查看 Probe 或者这里查看快速了解agent,由于我这边大部分都是 JAVA 服 ...

  5. Oracle - 获取当前周别函数

    CREATE OR REPLACE FUNCTION GET_WEEK (V_RQ in DATE) return varchar2 as str varchar2(); str1 varchar2( ...

  6. dataGrip连接数据库失败[08001]的一种可能原因

      我使用的是mac系统,并且由于机型较老,容量不高,为减轻系统负荷,没有设置开机自动启动MYSQL服务.这导致我在一次重启后,重新开启服务,然后就出现了dataGrip连接不上数据库: 在网上查找相 ...

  7. Win10安装Linux系统

    windows系统安装虚拟机,常见的是利用VMware Workstation这款软件来进行安装.在未接触Docker之前,我一直通过这款软件来进行管理的.docker是运行在linux环境下的,那怎 ...

  8. HTML(三)链接,<head>,css样式

    HTML链接 HTML 超链接 一个未访问过的链接显示为蓝色字体并带有下划线 访问过的链接显示为紫色并带有下划线 点击链接时,链接显示为红色并带有下划线 注意:如果为这些超链接设置了 CSS 样式,展 ...

  9. P3810 【模板】三维偏序(陌上花开)cdq分治

    传送门:https://www.luogu.org/problemnew/show/P3810 cdq分治的模板题,第一层外部排序,第二层cdq归并排序,这个时候不用考虑第一次的顺序,第三次用树状数组 ...

  10. CF - 1108 E 枚举上界+线段树维护

    题目传送门 枚举每个点作为最大值的那个点.然后既然是作为最大值出现的话,那么这个点就是不需要被减去的,因为如果最小值也在这个区间内的话,2者都减去1,对答案没有影响,如果是最小值不出现在这个区间内的话 ...