在命令式编程语言中,您可以在任何需要整数的位置放置表达式。为什么在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。
答案 0 :(得分:3)
CREATE TABLE
是DDL (Data Definition Language),即SELECT
为DML (Data Manipulation Language)时定义数据库的架构结构,即使用架构中存储的数据。
您不能在一个查询中混合使用DDL和DML。