为什么SQL总是不接受表达式代替整数?

时间:2012-08-01 19:05:59

标签: sql

在命令式编程语言中,您可以在任何需要整数的位置放置表达式。为什么在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。

1 个答案:

答案 0 :(得分:3)

CREATE TABLEDDL (Data Definition Language),即SELECTDML (Data Manipulation Language)时定义数据库的架构结构,即使用架构中存储的数据。

您不能在一个查询中混合使用DDL和DML。