MySQL-delete tableName from ...

前言

今天刷SQL题的时候遇到一个没见过的SQL写法:delete tableName from ..., 看到这个写法脑子突然有点痒了,接着就是一系列疑问。这个写法学过吗?我不是刚学完基础语法吗?我怎么没见过这个写法?这个能运行吗?这个语法是意思?不应该是 delete from tableName...吗?

一、有没有这个语法?

由于刚复习完基础语法,我的第一反应就是没有这个语法。所以我又在学习笔记了找了找了确实没有这个介绍这个语法,那别的同学有记录吗?找了几位同学的博客发现也没有。那么就实锤了在学基础语法的时候这个语法根本就没有介绍。

**二、**这个语法是意思?

没学过,不知道是什么意思,所以问了一下AI,还真有解释还挺详细。

实例:196. 删除重复的电子邮箱 - 力扣(LeetCode)

这里官方使用了自连接查询进行删除数据,用到了一下SQL:

sql 复制代码
DELETE p1 
FROM Person p1,
     Person p2
WHERE
    p1.Email = p2.Email AND p1.Id > p2.Id
1. DELETE p1 的含义
  • DELETE 是 SQL 的删除命令。
  • p1Person 表的别名 (在 FROM 子句中定义)。
  • DELETE p1 明确表示:只删除来自别名为 p1 的表(即 Person 表)的行

关键点 :这里 p1p2 都指向同一个物理表 Person,但通过别名,我们将其视为两个逻辑上的"副本"来进行自连接操作。DELETE p1 指定的是删除 p1 这个"副本"所代表的行。


总结

DELETE p1 在这个语句中,是 MySQL 特有的语法,用于指定在多表(或自连接)操作中,具体要删除哪个表(或其别名)的行

相关推荐
专注API从业者6 小时前
淘宝商品 API 接口架构解析:从请求到详情数据返回的完整链路
java·大数据·开发语言·数据库·架构
学嵌入式的小杨同学6 小时前
【嵌入式 C 语言实战】栈、队列、二叉树核心解析:存储原理 + 应用场景 + 实现思路
linux·c语言·网络·数据结构·数据库·后端·spring
Mr -老鬼6 小时前
MySQL 8+ ibd文件恢复表结构实战:从ibd2sdi解析到数据重建
数据库·mysql
摇滚侠6 小时前
Public Key Retrieval is not allowed 连接 MySQL 提示这个
数据库·mysql
xj7573065336 小时前
python中的序列化
服务器·数据库·python
源码获取_wx:Fegn08956 小时前
计算机毕业设计|基于springboot + vue网上超市系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring·课程设计
码农水水6 小时前
阿里Java面试被问:Online DDL的INSTANT、INPLACE、COPY算法差异
java·服务器·前端·数据库·mysql·算法·面试
小天源6 小时前
Oracle Database 11g Express Edition (XE) 11.2.0.2 在离线银河麒麟 V10 上的部署手册
数据库·oracle·express·麒麟v10·oracle11g·oracle-xe-11g
二等饼干~za8986686 小时前
Geo优化源码开发:关键技术解析与实践
数据库·sql·重构·mybatis·音视频
木易双人青7 小时前
redis面试八股文总结
数据库·redis·面试