OCP1z0-047 : 视图――别名

本题的考点是如何创建视图,对于视图的详细知识点,可以参考我的博客:

http://blog.csdn.net/guoyjoe/article/details/8614677

好,接下来我们来做测试,先登录到oe用户,查相关的表。

gyj@OCM> conn oe/oe
Connected.
oe@OCM> select table_name from tabs;  

TABLE_NAME
------------------------------
PRODUCT_REF_LIST_NESTEDTAB
SUBCATEGORY_REF_LIST_NESTEDTAB
PROMOTIONS
ORDERS
PRODUCT_DESCRIPTIONS
WAREHOUSES
PRODUCT_INFORMATION
ORDER_ITEMS
CUSTOMERS
INVENTORIES  

10 rows selected.

一、答案A,很明显是错的,视图的字段与表的字段的个数不一样,操作如下报错:

oe@OCM> CREATE OR REPLACE VIEW ord_vu(order_id,order_date)
  2  AS SELECT o.order_id,o.order_date,COUNT(i.line_item_id) "NO OF ITEMS" FROM orders o JOIN order_items i ON(o.order_id=i.order_id)
  3  GROUP BY o.order_id,o.order_date;
CREATE OR REPLACE VIEW ord_vu(order_id,order_date)
                              *
ERROR at line 1:
ORA-01730: invalid number of column names specified  

在CREATE OR REPLACE VIEW ord_vu(order_id,order_date,ct)添加一列CT,操作如下就没问题:  

oe@OCM> CREATE OR REPLACE VIEW ord_vu(order_id,order_date,ct)
  2  AS SELECT o.order_id,o.order_date,COUNT(i.line_item_id) "NO OF ITEMS" FROM orders o JOIN order_items i ON(o.order_id=i.order_id)
  3  GROUP BY o.order_id,o.order_date;  

View created.

二、答案B是正确的,把视图定义的列名去掉,视图默认这些列名来自select中的显示的列,操作如下:

oe@OCM> CREATE OR REPLACE VIEW ord_vu
  2  AS SELECT o.order_id,o.order_date,COUNT(i.line_item_id) "NO OF ITEMS" FROM orders o JOIN order_items i ON(o.order_id=i.order_id)
  3  GROUP BY o.order_id,o.order_date;  

View created.  

oe@OCM> select * from ord_vu;  

  ORDER_ID ORDER_DATE                                                                  NO OF ITEMS
---------- --------------------------------------------------------------------------- -----------
      2354 15-JUL-08 08.18.23.234567 AM                                                         13
      2361 14-NOV-07 05.34.21.986210 AM                                                          9
      2363 24-OCT-07 07.49.56.346122 AM                                                          9
      2367 28-JUN-08 11.53.32.335522 AM                                                          8
省略结果。。。。。。。。。。。。。。。

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

三、答案C是错的,在创建视图时,对这种使用各种函数,或运算表达式的列,一定要起别名,如没有别名视图创建就会失败,操作如下:

oe@OCM> CREATE OR REPLACE VIEW ord_vu
  2  AS SELECT o.order_id,o.order_date,COUNT(i.line_item_id) FROM orders o JOIN order_items i ON(o.order_id=i.order_id)
  3  GROUP BY o.order_id,o.order_date;
AS SELECT o.order_id,o.order_date,COUNT(i.line_item_id) FROM orders o JOIN order_items i ON(o.order_id=i.order_id)
                                  *
ERROR at line 2:
ORA-00998: must name this expression with a column alias  

把上面的视图改成如下:
oe@OCM> CREATE OR REPLACE VIEW ord_vu
  2  AS SELECT o.order_id,o.order_date,COUNT(i.line_item_id)  CT FROM orders o JOIN order_items i ON(o.order_id=i.order_id)
  3  GROUP BY o.order_id,o.order_date;  

View created.

四、答案D也是错的,错误与答案C一个问题

oe@OCM> CREATE OR REPLACE VIEW ord_vu
  2  AS SELECT o.order_id,o.order_date,COUNT(i.line_item_id)||'NO OF ITEMS' FROM orders o JOIN order_items i ON(o.order_id=i.order_id)
  3  GROUP BY o.order_id,o.order_date
  4  WITH CHECK OPTION;
AS SELECT o.order_id,o.order_date,COUNT(i.line_item_id)||'NO OF ITEMS' FROM orders o JOIN order_items i ON(o.order_id=i.order_id)
                                                        *
ERROR at line 2:
ORA-00998: must name this expression with a column alias  

 把上面的视图改成如下:
oe@OCM> CREATE OR REPLACE VIEW ord_vu
  2  AS SELECT o.order_id,o.order_date,COUNT(i.line_item_id)||'NO OF ITEMS' CT FROM orders o JOIN order_items i ON(o.order_id=i.order_id)
  3  GROUP BY o.order_id,o.order_date
  4  WITH CHECK OPTION;  

View created.

正确答案:B

结总:

在创建视图时,对这种使用各种函数,或运算表达式的列,一定要起别名,如没有别名视图创建就会失败。

定义视图的列名可以省略,来自SELECT定义中的列名,如果定义视图的列名不省略,那个列的个数与SELECT定义中的列的个数要一致。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索replace
, select
, 视图
, create
, vu
order
mysql ocp 1z0 883、1z0 047、ocp 047 解析、ocp047和051的区别、ocp 047,以便于您获取更多的相关知识。

时间: 2024-08-22 14:15:40

OCP1z0-047 : 视图――别名的相关文章

悠哉悠哉,一个复合查询方法

几乎每个完整的应用程序都会需要一个复合查询.建立一个功能强大的复合查询首先必须要能够动态生成查询条件,其次应该能够对查询到的数据进行修改,最后这个复合查询最好能够对一对多的两个表建立条件进行查询. 在VFP里建立查询的方法主要有这么几种:一是使用VFP中自带的SearchClass类:二是建立一个查询:三是建立一个视图,其中包括参数化视图.宏替换Sql语句视图:四是建立一个Grid,将其数据源设置为SQL语句或临时表. 不管哪一种方法,其实质都是使用SQL语句. 这几种方法各有各的优点,也都有缺

一个复合查询方法

几乎每个完整的应用程序都会需要一个复合查询.建立一个功能强大的复合查询首先必须要能够动态 生成查询条件,其次应该能够对查询到的数据进行修改,最后这个复合查询最好能够对一对多的两个表建 立条件进行查询. 在VFP里建立查询的方法主要有这么几种:一是使用VFP中自带的SearchClass类:二是建立一个查询: 三是建立一个视图,其中包括参数化视图.宏替换Sql语句视图:四是建立一个Grid,将其数据源设置为 SQL语句或临时表. 不管哪一种方法,其实质都是使用SQL语句. 这几种方法各有各的优点,

从零开始学Oracle—内建对象(五)

1.序列 查询当前用户下的序列:select * from user_sequences 定义:用来生成唯一.连续的整数的数据库对象,序列通常用来自动生成主键或唯一键的值.可升.可降序排列. 语法:Create sequence 序列名称 //从1开始 每次自动增加1 没有最大值 [star with 值] 指定要生成的第一个序列号,对于升序默认值为最小值.反之... [increment by 值] 间隔数 [maxvalue 值|nomaxvalue] 序列最大值,如果指定为nomaxval

Oracle安全攻防,你可能不知道自己一直在裸奔

主题简介: Backdoor(后门).Rootkit.Vulnerability分别在攻击中扮演的角色. 攻击者可能使用的Oracle Rootkit技术种类. 综述数据库漏扫工具现阶段能识别的Rootkit类型,提出使其识别更多rootkit类型的建议.   一.Vulnerability .Backdoor.Rootkit   一场策划有序的入侵行动中,黑客组织常常会找到网站.操作系统.系统软件上的Vulnerability(弱点),有针对性地开展一系列组合攻击,最终达到控制数据库或操作系统

Oracle hint之DRIVING_SITE

Oracle hint之DRIVING_SITE 日常工作中经常会用到分布式数据库查询,即通过DBLINK同时查询本地表和远程表.分布式查询一般有两种处理方式:一种将远程表数据取回本地,然后和本地表关联查询,获取最终结果:另一种将本地表数据传到远程和远程表关联查询后,再将关联结果取回.前一种处理方式可理解为只有一次网络传输操作比后一种少,也就作为了数据库的默认处理方式:driving_site提示能够指定执行计划在远程还是本地做,使用driving_site,特别是本地小结果集,远程大结果集,最

OCP1z0-047 : 表连接――内联视图当作表使用

用sys用户登录,给oe用户授权dba,以便可以用oe用户查看执行计划: oe@OCM> conn / as sysdba Connected. sys@OCM> grant dba to oe; Grant succeeded. sys@OCM> conn oe/oe Connected. oe@OCM> set autot traceonly; oe@OCM> SELECT p.product_name,i.item_cnt 2 FROM (SELECT product_

mysql 临时表、内存表和视图

虚拟表,顾名思义,就是实际上并不存在(物理上不存在),但是逻辑上存在的表.这样说很抽象,还是看一些实际的例子吧.在MySQL中,存在三种虚拟表:临时表.内存表和视图. 一.mysql临时表1.什么是临时表临时表是建立在系统临时文件夹中的表,如果使用得当,完全可以像普通表一样进行各种操作. 临时表的数据和表结构都储存在内存之中,退出时,其所占的空间会自动被释放.2.创建临时表(1)定义字段CREATE TEMPORARY TABLE tmp_table (        name VARCHAR(

利用C#查询视图字段基于基表的字段

视图     在SQL Server 2000里,通过sysdepends,syscolumns等这些系统表无法找到多层次视图的最基底表字段依赖,特别是在视图采用别名的时候.但在某些环境下,软件系统又希望达到这个目的,所以只好采用在逻辑过程中分析的思路了,这样做,无疑效率是比较低的,但却是一种实现的方法.提供的这段代码的思路是,分析视图的create view .. as select ...from ...这个语句,截取select 和from 之间这段来进行处理,然后找到如dbo.YourT

使用sitemesh建立复合视图 - 2.装饰器 decorator

视图 装饰器  decorator概念 建立可复用的web应用程序,一个通用的方法是建立一个分层系统,如同下面一个普通的web应用: 前端,front-end:JSP和Servlets,或jakarta的velocity 控制层框架 Controller : (Struts/Webwork) 业务逻辑 Business :主要业务逻辑 持久化框架 :hibernate/jdo 可糟糕的是前端的页面逻辑很难被复用,当你在每一个页面中用数之不尽的include来复用公共的header, styles