3

在命令式编程语言中,您可以在任何需要整数的地方放置表达式。为什么在 SQL 中不是这样?为什么 SQL 不接受这样的东西:

  Create Table Entries (Title Varchar((Select Count(ID) From SomeOtherTable)))

例如,当这有效时:

  Select * From Entries Where id = (Select Count(id) From SomeOtherTable)

现在,当然,这些例子是愚蠢的。我真的不在乎是否可以基于动态信息创建表。我想了解为什么 SQL 在这方面与 C 或 C# 或 Delphi 等不同。在这些语言中,我知道什么会根据直观规则起作用。当我编写查询时,我有点不确定是否会接受某些构造:有时会,有时不会(我还是 SQL 新手,所以这可能是主要原因)。

如果这有一些相关性,我正在使用 Interbase 7.5。

4

1 回答 1

3

CREATE TABLEDDL(数据定义语言),即定义数据库的模式结构,而SELECTDML (数据操作语言),即处理存储在模式中的数据。

您不能在一个查询中混合和匹配 DDL 和 DML。

于 2012-08-01T19:33:57.917 回答