开心一刻

  晚上,女儿眼噙泪水躺在床上

  女儿:你口口声声说爱我,说陪我,却天天想着骗我零花钱,你是我亲爹吗?

  我:你想知道真相

  女儿:想!

  我:那你先给爸爸两百块钱!

环境准备

  MySQL 不同版本

  利用 docker 搭建了 7 个不同版本的 MySQL

   5.5.62

   5.6.51

   5.7.36

   8.0.15

   8.0.16

   8.0.17

   8.0.30

    当下最新版本

  库与表

Table aliases

  关于表别名,相信大家都不陌生;指定表别名是为了简化 SQL ,使可读性更强

  语法如下

   AS 可以省略

  应用到 tbl_user 上则是

  不仅表可以指定别名,列也可以指定别名,这里就不展开了

DELETE

  对于 DELETE ,相信大家已经非常熟悉了

  单表语法如下

  多表语法如下

DELETE + Table aliases

   SELECT 的时候,我们经常用表的别名

  单表查询的时候

  尤其是在连表查询的时候

  那么 DELETE 的时候可以用别名吗,我们来试试

  单表删除

  通常情况下,删除语句这么写的

  如果加上别名了,该怎么写

  可能大家觉得很简单,楼主也觉得是如下这么写的

  很有可能执行报错,提示如下信息

  我们来看下在 MySQL 各个版本的执行情况

  可以看到,在 8.0.16 之前是会报错的

  那 8.0.16 之前的正确写法应该是怎样的了,如下所示

  当然, 8.0.16 及之后也是支持这两种写法的

  也许是因为呼声太高,从 8.0.16 开始支持如下写法

  官方说明delete

  连表删除

  和单表删除基本一致,语法格式如下

  删除 zhangsan 的登录日志,可以这么写

   8.0.16 及之后是不是还可以这么写?

  大家去试试,然后想想为什么

总结

  1、单表删除的时候就别用别名了, SQL 更精简

  2、如果要用别名,推荐用如下其中一种

    更具通用性,方便迁移,而

    需要 8.0.16 及之后版本才支持

  3、连表删除的最后那个问题,大家可以从 从哪些表删除 来思考,对比下官方给的案例

    应该就能想到答案了

参考

  DELETE Statement

当 SQL DELETE 邂逅 Table aliases,会擦出怎样的火花的更多相关文章

  1. 小程序与WebRTC联姻能擦出怎样的火花?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯视频云终端团队发表于云+社区专栏 腾讯视频云终端技术总监,rexchang(常青), 2008 年毕业加入腾讯,一直从事客户端研发 ...

  2. [置顶] Android 关于BottomDialogSheet 与Layout擦出爱的火花?

    今天上班做那个类似于ios拍照的那种效果图 就是个垂直布局然后里面textview+分割线+textview+button 当然也可以用button+分割线+button 方法有很多,选择适合自己的就 ...

  3. Android 关于BottomDialogSheet 与Layout擦出爱的火花?

    今天上班做那个相似于ios拍照的那种效果图 就是个垂直布局然后里面textview+切割线+textview+button 当然也能够用button+切割线+button 方法有非常多,选择适合自己的 ...

  4. 当Spring Cloud Alibaba Sentinel碰上Spring Cloud Sleuth会擦出怎样的火花

    前言 今年主要会做一个比较完整的微服务项目开源出来.目前已经开始了,刚兴趣的先Star一个吧. 项目:https://github.com/yinjihuan/kitty-cloud 基础框架:htt ...

  5. Could not execute JDBC batch update; SQL [delete from role where roleId=?]; constraint [null]; neste

    今天在写多个删除功能的时候出现了这么一个错误:意思是删除操作的时候,没有找到对应的外键. Cannot delete or update a parent row: a foreign key con ...

  6. SQL DELETE 语句详解

    SQL DELETE 语句详解   DELETE 语句 DELETE 语句用于删除表中的行. 语法 DELETE FROM 表名称 WHERE 列名称 = 值 Person: LastName Fir ...

  7. SQL Server中Table字典数据的查询SQL示例代码

    SQL Server中Table字典数据的查询SQL示例代码 前言 在数据库系统原理与设计(第3版)教科书中这样写道: 数据库包含4类数据: 1.用户数据 2.元数据 3.索引 4.应用元数据 其中, ...

  8. sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) Cannot add a NOT NULL column with default value NULL [SQL: u'ALTER TABLE address_scopes ADD COLUMN ip_version INTEGER NOT NULL']

    root@hett-virtual-machine:~# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neu ...

  9. OpenStack安装keyston 错误BError: (pymysql.err.InternalError) (1071, u‘Specified key was too long; max key length is 767 bytes‘) [SQL: u‘\nCREATE TABLE migrate_ver

    折腾了两天的错误,BError: (pymysql.err.InternalError) (1071, u‘Specified key was too long; max key length is ...

随机推荐

  1. yearning_sql审核平台搭建

    Yearning SQL 审计平台 基于Vue.js与Django的整套mysql-sql审核平台解决方案.提供基于Inception的SQL检测及执行. GitHub:https://github. ...

  2. zabbix监控mysql主从同步

    获取主从复制sql线程和I/O线程状态是否为yes #!/bin/bash HOSTNAME="数据库IP" PORT="端口" USERNAME=" ...

  3. 用console画条龙?

    相识 console一定是各位前端er最熟悉的小伙伴了,无论是console控制台,还是console对象,做前端做久了,打开一个网页总是莫名自然的顺手打开控制台,有些调皮的网站还会故意在控制台输出一 ...

  4. 用Python实时获取Steam特惠游戏数据,我看看谁的钱包还有钱

    前言 大家好鸭, 我是小熊猫 Steam大家应该不陌生吧?不知道的话就让我们来了解一下吧~(一下简称"S") S是由美国电子游戏商Valve于2003年9月12日推出的数字发行平台 ...

  5. Python实现中文字幕雨+源代码

    写在前面的一些P话: 最近浏览了很多关于用Python和Pygame实现代码雨的案例,发现很多都是没有深入讲解代码的整个实现过程,从0到1教会你制作中文文字雨. 然后在介绍的过程中,我也将深入介绍Py ...

  6. 抓包整理外篇——————autoResponder、composer 、statistics [ 三]

    前言 经过了前文的介绍的部分已经能够为自己抓包提供一个舒适的环境了,但是舒服的拿到我们的包后,可能有些需求还是难以搞定,fiddler 提供了我们一些其他模块,让我们工作轻松,请往下看. 正文 aut ...

  7. 静态static关键字修饰成员方法和静态static的内存图

    当 static 修饰成员方法时,该方法称为类方法 .静态方法在声明中有 static ,建议使用类名来调用,而不需要 创建类的对象.调用方式非常简单 ~类方法:使用 static关键字修饰的成员方法 ...

  8. 2019 CSP-S 初赛解析

    因为我不会设置用博客园显示Markdown语法,所以在洛谷也写了一份:传送门 一起讨论的这套卷.题干 然后还有一些可以借鉴一下的解析 选择: T1. 注意运算顺序: a%3=1 --> (int ...

  9. java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver at java.net.URLClassLoader.findCla ...

  10. SSH远程登录:两台或多台服务器之间免密登录设置

    有两台(或多台)同局域网的服务器A:192.168.2.21,B:192.168.2.25.让A,B这两台服务器之间能两两互相免密登录,并且每台服务器都可以自我免密登录(自我免密登录即:ssh loc ...