前面介绍了使用insert实现新增和修改记录的使用姿势,接下来我们看一下另外一个简单的使用方式,如何删除数据


1. delete 语句



delete的官方语法如下


DELETE FROM <measurement_name> WHERE [<tag_key>='<tag_value>'] | [<time interval>]
复制代码


delete语句和我们常见sql语法有点像,但是注意一下上面的where中的条件,只允许根据tag和时间来进行删除操作


下面给出几个简单的例子


case1 根据时间删除


> select * from add_test
name: add_test
time                age boy  email            name  phone user_id
----                --- ---  -----            ----  ----- -------
1564149327925320596 19  true bangzewu@126.com YiHui 110   0
1564149920283253824 18  true bangzewu@126.com YiHui 110   21
1564150279123000000 18  true bangzewu@126.com YiHui 110   22
> delete from add_test where time>=1564150279123000000
> select * from add_test
name: add_test
time                age boy  email            name  phone user_id
----                --- ---  -----            ----  ----- -------
1564149327925320596 19  true bangzewu@126.com YiHui 110   0
1564149920283253824 18  true bangzewu@126.com YiHui 110   21
复制代码


case2 根据tag删除


注意name为保留名,因此需要用双引号括起来


> show tag keys from add_test
name: add_test
tagKey
------
phone
> delete from add_test where "name"='YiHui'
> select * from add_test
复制代码


2. 不同保存策略的数据删除



从前面的语法定义中,没有看到指定保留策略的情况,那么如果需要删除某个保存策略的数据,应该怎样?


> insert add_test,name=YiHui,phone=110 boy=true,age=19i,user_id=2
> insert into "1D" add_test,name=YiHui,phone=110 boy=true,age=19i,user_id=1
> select * from add_test
name: add_test
time                age boy  name  phone user_id
----                --- ---  ----  ----- -------
1564483471390538399 19  true YiHui 110   2
> select * from "1D".add_test
name: add_test
time                age boy  name  phone user_id
----                --- ---  ----  ----- -------
1564483483748916258 19  true YiHui 110   1
> delete from add_test where "name"='YiHui'
> select * from add_test
> select * from "1D".add_test
复制代码


执行上面的case之后,发现根据tag进行删除时,默认策略,和"1D"保存策略中的数据都被删除掉了


下面是另外一个验证


> select * from add_test;
name: add_test
time                age boy  name  phone user_id
----                --- ---  ----  ----- -------
1564483778197609864 19  true YiHui 110   1
> insert into "2_h"  add_test,name=YiHui,phone=110 boy=true,age=19i,user_id=1
> select * from "2_h".add_test;
name: add_test
time                age boy  name  phone user_id
----                --- ---  ----  ----- -------
1564483793280811751 19  true YiHui 110   1
> delete from add_test where time=1564483793280811751
> select * from "2_h".add_test;
> select * from add_test;
name: add_test
time                age boy  name  phone user_id
----                --- ---  ----  ----- -------
1564483778197609864 19  true YiHui 110   1
复制代码


我们在 "2_h" 这个策略中新增了一条数据,直接根据时间进行删除,当前的策略下的数据没有影响, "2_h" 策略中刚添加的数据被删除掉了



数据库原理与应用(SQL Server)教程 主键、外键以及联合主键、复合主键和设置种子数目和增量
数据库原理与应用(SQL Server)教程 主键、外键以及联合主键、复合主键和设置种子数目和增量
在前面的章节中,壹哥 给大家讲解了SpringBoot对Web模块的支持,但是我们开发时还有另一个重头戏,那就是进行数据库的操作。所以从本章开始,我会带大家学习在Spring Boot中实现数据库的操作。 我这里说的数据库,不仅仅有关系型数据库,比如MySQL,还包括非关系型数据库,比如Redis等。 我们现在进行关系型数据库操作时,可以选择的技术框架其实有很多,比如原生的Jdbc,还有Mybatis、JPA等开源框架,接下来我会分别针对这几个技术进行讲解,今天我先讲解在SpringBoot中利用JdbcTemplate实现数据库的CRUD操作。 一. JdbcTemplate SQL 是什么 SQL(发音为字母S-Q-L或sequel)是 Structured Query Language(结构化查询语言)的缩写。SQL 是一种专门用来与数据库沟通的语言。 SQL 的扩展 许多 DBMS 厂商通过增加语句或指令,对 SQL 进行了扩展。这种扩展的目的是提供执行特定操作的额外功能或简化方法。虽然这种扩展很有用,但一般都是针对个别 DBMS 的,很少有两个厂商同时支持这种扩展。标准 ORDER BY alexa LIMIT 3; SQL LIKE 操作符 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。其中 % 替代 0 个或多个字符。_替代一个字符。 通配符 描述 % 替代 0 个或多个字符 _ 替代一个字符 SELECT * FROM Websites WHERE name LIKE 'G%'; '%a' //以a结尾的数据 'a%' //以a开头的 Influx Sql系列教程九:query数据查询基本篇二
前面一篇介绍了influxdb中基本的查询操作,在结尾处提到了如果我们希望对查询的结果进行分组,排序,分页时,应该怎么操作,接下来我们看一下上面几个场景的支持
Influx Sql系列教程八:query数据查询基本篇
前面几篇介绍了InfluxDB的添加,删除修改数据,接下来进入查询篇,掌握一定的SQL知识对于理解本篇博文有更好的帮助,下面在介绍查询的基础操作的同时,也会给出InfluxSql与SQL之间的一些差别
Influx Sql系列教程六:insert 修改数据
在influxdb中没有专门的修改数据的update语句,对于influxdb而言,如果想修改数据,还是得使用我们前面的说到的insert来实现,那么怎么判断一条insert语句是插入还是修改呢?
Influx Sql系列教程四:series/point/tag/field
influxdb中的一条记录point,主要可以分为三类,必须存在的time(时间),string类型的tag,以及其他成员field;而series则是一个measurement中保存策略和tag集构成;
Influx Sql系列教程三:measurement 表
在influxdb中measurement相当于mysql中的表,可以理解为一条一条记录都是存与measurent中的,一个数据库中可以有多个measurement,一个measurement中可以存很多的数据。虽然可将measurement类比为mysql中的表,但是他们之间的差别也挺明显的 首先我们先了解一下measurement的几个常用命令,如何查看、新增删除 Influx Sql系列教程二:retention policy 保存策略
retention policy这个东西相比较于传统的关系型数据库(比如mysql)而言,是一个比较新的东西,在将表之前,有必要来看一下保存策略有什么用,以及可以怎么用
SQL 函数 简介 大多数 SQL 实现支持以下类型的函数。 ❑ 用于处理文本字符串(如删除或填充值,转换值为大写或小写)的文本函数。❑ 用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。 ❑ 用于处理日期和时间值并从这些值中提取特定成分(如返回两个日期之差,检查日期有效性)的日期和时间函数。 ❑ 用于生成美观好懂的输出内容的格式化函数(如用语言形式表达出日期,用货币符号和千分位表示金额)。 ❑ 返回 DBMS 正使用的特殊信息(如返回用户登录信息)的系统函数 SQL 函数不区分大小写。随你的喜好,不过注意保持风格一致