在SQL标准中,不能使用CREATE语句创建的是数据库(DATABASE),因为标准SQL仅定义了CREATE SCHEMA用于创建模式,而数据库是更高层次的概念,通常由数据库管理系统提供创建命令而非标准SQL。此外,SQL语句也无法创建数据库实例、数据库连接、事务和锁等非持久化对象。了解这一点有助于正确理解SQL的DDL能力范围。

【常见问题】
问题1:SQL语句能创建数据库吗?
回答1:在主流数据库如MySQL、SQL Server、Oracle中,可以使用CREATE DATABASE语句创建数据库,但该语句并非SQL标准的一部分。严格遵循SQL标准的实现不支持直接创建数据库,而是通过CREATE SCHEMA来组织表对象。因此,是否可以创建数据库取决于具体数据库系统。
问题2:SQL语句不能创建哪些常见对象?
回答2:除了数据库本身(标准SQL下),SQL语句也不能创建数据库实例、数据库连接、事务、锁、用户会话等运行时或系统级对象。这些通常由数据库管理系统或应用程序管理,而不能通过CREATE DDL语句实现。
问题3:SQL语句中的CREATE能创建什么?
回答3:SQL的CREATE语句可以创建表、视图、索引、存储过程、函数、触发器、模式(SCHEMA)、序列、同义词、用户定义类型等数据库对象,这些都是标准SQL或主流数据库扩展支持的。


