Oracle数据库试题 下载本文

001 010 056 DEPT

部门号 01 02 03 张山 王宏达 马林生 部门名 业务部 销售部 服务部 02 01 02 2000 1200 1000 地址 1号楼 2号楼 3号楼 执行如下操作:select a.empno,a.empname,a.deptid,a.salary,b.deptid,b.deptname from emp a right outer join dept b on a.deptid=b.deptid

请问执行结果中有( )条记录。 A.1 B.2 C.3 D.4

正确答案:D

139.从货物定单数据表(order)中查询出其中定单金额(order_price)在1000和5000之间的定单的详细信息,并按照定单金额(order_price)升序排列。正确的语句是( )。

A. Select * from order where order_price between 1000 and 5000 order by order_price ASC

B. Select * from order where order_price between 1000 and 5000 order by order_price DESC

C. Select * from order where 1000

140.有如下两个关系,其中雇员信息表关系EMP的主键是雇员号,部门信息表关系DEPT的主键是部门号。 EMP

雇员号 001 010 056 101 DEPT

部门号 01 02 03 04 部门名 业务部 销售部 服务部 财务部 地址 1号楼 2号楼 3号楼 4号楼 雇员名 张山 王宏达 马林生 赵敏 部门号 02 01 02 04 工资 2000 1200 1000 1500 若执行下面列出的操作,哪个操作不能成功执行( )。 A.从DEPT中删除部门号=‘03’的行 B.在DEPT中插入行(‘06’,‘计划部’,‘6号楼’)

C.将DEPT中部门号=‘02’的部门号改为‘10’ D.将DEPT中部门号=‘01’的地址改为‘5号楼’ 正确答案:C

141.评估下列CREATE TABLE命令:

CREATE TABLE orders

(ord_no NUMBER(2) CONSTRAINT ord_pk PRIMARY KEY, ord_date DATE,

cust_id NUMBER(4)); CREATE TABLE ord_items (ord_no NUMBER(2), item_no NUMBER(3),

qty NUMBER(3) CHECK (qty BETWEEN 100 AND 200), expiry_date date CHECK (expiry_date > SYSDATE), CONSTRAINT it_pk PRIMARY KEY (ord_no,item_no),

CONSTRAINT ord_fk FOREIGN KEY(ord_no) REFERENCES orders(ord_no));

当执行上述命令时失败,原因是什么?( ) A.SYSDATE不能用于CHECK约束。

B.BETWEEN子句不能用于CHECK约束。

C.CHECK约束不能放在具有DATE数据类型的列。

D.ORD_NO和ITEM_NO不能用于复合主键因为ORD_NO也是外键。 正确答案:A

142.检查下列SQL语法,用PRODUCTS表,你需要生成名字,当前价格列表,及打折扣25%后小于$10的所有的这些产品。

SQL>SELECT prod_name, prod_list_price,

prod_list_price - (prod_list_price * .25) \FROM products

WHERE discounted_price < 10;

此查询执行时发生一个错误。此错误的原因是什么?( ) A.括号应包含整个表达式。

B.双引号应该从列别名被删除。

C.在WHERE子句的表达式应被替换。

D.列别名应为大写且在WHERE子句中用双引号括起来。 正确答案:C

143.查看表MARKS结构:

name Null Type

----------------------------------------------------------- STUDENT_ID NOT NULL VARCHAR2(4) STUDENT_NAME VARCHAR2(25) SUBJECT1 NUMBER(3) SUBJECT2 NUMBER(3) SUBJECT3 NUMBER(3)

哪两个SQL语句能执行成功?( )[选两项]

A.SELECT student_name,subject1 FROM marks WHERE subject1 > AVG(subject1);

B.SELECT student_name,SUM(subject1) FROM marks WHERE student_name LIKE 'R%'; C.SELECT SUM(subject1+subject2+subject3) FROM marks WHERE student_name IS NULL;

D.SELECT SUM(DISTINCT NVL(subject1,0)), MAX(subject1) FROM marks WHERE subject1 > subject2; 正确答案:CD

144.查看表PRODUCTS结构:

name Null Type

PROD_ID NOT NULL NUMBER(4) PROD_NAME VARCHAR2(20) PROD_STATUS VARCHAR2(6) QTY_IN_HAND NUMBER(8,2) UNIT_PRICE NUMBER(10,2)

你想显示总价最高的产品的名称。哪个SQL语句能得到正确的结果?( ) A.SELECT prod_name FROM products

WHERE (unit_price * qty_in_hand) = (SELECT MAX(unit_price * qty_in_hand) FROM products);

B.SELECT prod_name FROM products

WHERE (unit_price * qty_in_hand) = (SELECT MAX(unit_price * qty_in_hand) FROM products GROUP BY prod_name); C.SELECT prod_name FROM products GROUP BY prod_name

HAVING MAX(unit_price * qty_in_hand) = (SELECT MAX(unit_price * qty_in_hand) FROM products GROUP BY prod_name); D.SELECT prod_name FROM products

WHERE (unit_price * qty_in_hand) = (SELECT MAX(SUM(unit_price * qty_in_hand)) FROM products) GROUP BY prod_name; 正确答案:A

145.查看表PROMOTIONS的下列数据:

你需要显示所有的促销种类但不包括PROMO_SUBCATEGORY为'discount'的。 下列哪两个SQL语句得到正确的结果?( )[选两项] A.SELECT promo_category FROM promotions MINUS

SELECT promo_category FROM promotions WHERE promo_subcategory = 'discount'; B.SELECT promo_category FROM promotions INTERSECT

SELECT promo_category FROM promotions WHERE promo_subcategory = 'discount'; C.SELECT promo_category FROM promotions MINUS

SELECT promo_category FROM promotions WHERE promo_subcategory <> 'discount'; D.SELECT promo_category FROM promotions INTERSECT

SELECT promo_category FROM promotions WHERE promo_subcategory <> 'discount'; 正确答案:AD

146.查看下列SQL语句:

SELECT cust_id, cust_last_name \UNION

SELECT cust_id CUST_NO, cust_last_name FROM customers WHERE country_id = 30; 对于上面的查询哪个ORDER BY子句是有效的?( )[选三项] A.ORDER BY 2,1

B.ORDER BY CUST_NO C.ORDER BY 2,cust_id D.ORDER BY \E.ORDER BY \正确答案:ACE

147.OE和SCOTT是数据库用户,ORDERS表被OE所拥有。DBA执行以下操作会导致:( )

CREATE ROLE r1?

GRANT SELECT, INSERT ON oe.orders TO r1? GRANT r1 TO scott?

GRANT SELECT ON oe.orders TO scott? REVOKE SELECT ON oe.orders FROM scott? A.SCOTT能查询OE.ORDERS; B.SCOTT不能查询OE.ORDERS;

C.REVOKE命令回收了SCOTT和R1的SELECT权限; D.REVOKE命令会发生错误,因为SELECT权限已被授予R1。 正确答案:A

148.在表PRODUCTS和ORDER_ITEMS中,执行以下语句查询PRODUCT_NAME和商品被订购的次数,执行该语句将导致:( )