Oracle 11g OCP考试练习:051题解析与讨论
需积分: 7 192 浏览量
更新于2024-07-19
收藏 98KB DOCX 举报
"Oracle 11g OCP-051考试练习题及解析,包括175题,建议先预览再深入记忆"
在Oracle数据库管理中,`CREATE TABLE AS SELECT`语句是一种非常实用的工具,允许用户基于现有表的数据创建一个新的表。在给定的【部分内容】中,讨论了这样一个语句的应用,并提出了一道关于其行为的考试问题。该问题涉及到`CREATE TABLE AS SELECT`在处理外键约束、默认值以及非空约束时的具体表现。
问题的核心在于,当执行以下命令时会发生什么:
```sql
CREATE TABLE new_sales (prod_id, cust_id, order_date DEFAULT SYSDATE)
AS
SELECT prod_id, cust_id, time_id
FROM sales;
```
选项分析如下:
A. 表`NEW_SALES`不会被创建,因为不能在列定义中指定默认值。这是错误的,因为在Oracle中,可以在`CREATE TABLE AS SELECT`中为列定义默认值。
B. 表`NEW_SALES`会被创建,并且在指定列上定义的所有非空约束都会传递到新表。这是正确的答案,`CREATE TABLE AS SELECT`会保留源表的非空约束,但不包括其他类型的约束,如外键和唯一性约束。
C. 表`NEW_SALES`不会被创建,因为`CREATE TABLE`命令中的列名与`SELECT`子句中的列名不匹配。这同样是错误的,因为这里的列名是匹配的。
D. 表`NEW_SALES`会被创建,并且在指定列上定义的所有外键约束都会传递到新表。这是不正确的,`CREATE TABLE AS SELECT`不会复制源表的外键约束。
正确答案是B,新表`NEW_SALES`将被创建,所有在`SELECT`语句中指定的列(即`prod_id`, `cust_id`, 和`time_id`)将继承源表`sales`上的非空约束。然而,由于没有在`CREATE TABLE`语句中显式声明,`order_date`列的默认值`SYSDATE`将被应用,但外键约束不会被复制到新表。
这道题目揭示了对Oracle SQL语法深入理解的重要性,特别是涉及到数据定义语言(DDL)操作时,如创建表并从现有数据中初始化。在实际数据库设计和管理中,理解这些细节可以帮助避免潜在的问题,确保数据完整性和一致性。在准备Oracle OCP认证考试时,掌握这类问题的解答方法是非常关键的。
2014-06-03 上传
2013-03-04 上传
2018-05-07 上传
2015-03-02 上传
2014-05-15 上传
2018-12-13 上传
2018-02-04 上传
点击了解资源详情
2014-10-09 上传
Elizabeth2017
- 粉丝: 0
- 资源: 1
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录