SQLserver: delete语句没有From,为什么可以执行
在 SQL Server 中,DELETE 语句确实不需要使用 FROM 子句来指定要删除的表。这与其他 SQL 语法稍有不同,但是 SQL Server 遵循了 ANSI SQL 标准的规定。
DELETE 语句结构
通常,DELETE 语句的基本结构是这样的:
sqlDELETE FROM table_name
WHERE condition;
在 SQL Server 中,你可以省略 FROM 子句,直接写条件来指定要删除的数据,如下所示:
sqlDELETE table_name
WHERE condition;
原因和解释
ANSI SQL 标准:根据 ANSI SQL 标准,DELETE 语句的语法是允许省略 FROM 子句的。这意味着数据库管理系统(包括 SQL Server)在执行 DELETE 语句时会识别并正确处理不带 FROM 子句的语法。
语法简化:省略 FROM 子句可以简化 DELETE 语句的编写,特别是在你已经明确知道要删除哪个表中的数据时,可以直接在 DELETE 关键字后面指定表名和条件。
语法的灵活性:SQL Server 的设计考虑到了不同的 SQL 编写习惯和需求,因此在 DELETE 语句中允许了这种简化的语法形式,使得语句更加灵活和易于理解。
使用例子
例如,假设你有一个名为 Employees
的表,你想删除年龄小于 25 岁的员工记录,可以这样写 DELETE 语句:
sqlDELETE Employees
WHERE Age < 25;
这条语句直接删除了 Employees
表中年龄小于 25 岁的员工记录,没有使用 FROM 子句。
总结关键字
SQL Server, DELETE语句, FROM子句省略, ANSI SQL