Oracle 051题库解析:CREATE TABLE语句的影响

需积分: 9 1 下载量 199 浏览量 更新于2024-07-19 收藏 2.76MB DOCX 举报
"Oracle 051题库是针对Oracle数据库管理认证(OCP)的一份练习题集,其中包含了关于数据库结构、表间关系以及SQL语句创建等方面的考题。" 在描述中提到的题库可能包含了一系列与Oracle数据库相关的实践问题,特别是涉及外键约束和数据默认值设置等内容。在提供的部分题目中,我们看到一个关于`CREATE TABLE AS SELECT`语句的问题。 在`CREATE TABLE AS SELECT`语句中,可以根据已存在的表创建一个新的表,并且可以直接从一个或多个表中选择数据插入新表。在这个例子中,用户尝试从`SALES`表中选取`prod_id`, `cust_id`, 和`time_id`列来创建一个新的`NEW_SALES`表。然而,`ORDER_DATE`列在新表定义中被设置为默认当前日期(`DEFAULT SYSDATE`)。 关于题目选项的分析: A. 错误。Oracle允许在`CREATE TABLE AS SELECT`中指定默认值,所以这个陈述是不正确的。 B. 正确。根据Oracle SQL的规定,`NOT NULL`约束会传递到新创建的表中,除非在`CREATE TABLE`语句中明确指定可以为空(`NULL`)。 C. 错误。题目中的列名在`CREATE TABLE`命令和`SELECT`子句中是一致的,因此这不是导致创建新表失败的原因。 D. 错误。外键约束不会自动传递到新创建的表中。若要在新表中保持这些约束,需要在`CREATE TABLE`语句中显式定义它们。 因此,正确答案是B。`NEW_SALES`表将被创建,所有在指定列上定义的`NOT NULL`约束都会传递到新表,但`FOREIGN KEY`约束不会自动保留。 这个题目的解答揭示了对Oracle数据库基本操作的理解,包括数据表的结构、外键约束的作用以及如何使用`CREATE TABLE AS SELECT`来创建新表。在准备Oracle OCP考试时,理解这些概念是非常重要的,因为它们涉及到数据库的日常管理和维护。