以下是INVENTORY(库存)表中每一列的详细定义:
Column Name | ID_HUMBER | DESCRIPTION | MANUFACTURER_ID | QUANTITY | PRICE | ORDER_DATE |
Key Type | PK | FK | ||||
Nulls/Unique | HN, U | NN | NN | |||
FK Table | MANUFACTURER | |||||
FK Column | ID_NUMBER | |||||
Datatype | NUM | VARCHAR2 | VARCHAR2 | NUM | HUM | DATE |
Length | 9 | 25 | 26 | 9 | 8, 2 |
A.DELETE FROM
inventory
WHERE
order_date>’25-JUL-1997’
AND
id_number=&id_number;
B.DROP FROM
inventory
WHERE
order_date>TO_DATE(’25-JUL-97’)
AND
id_number=&id_number;
C.DELETE FROM
inventory
WHERE
order_date=>’25-JUL-97’
AND
id_number=’&id_number’;
D.DELETE FROM
inventory
WHERE
order_date>(’25-JUL-1997’)
OR
id_number=&id_number;
E.DELETE FROM
inventory
WHERE
order_date>TO_DATE(’July 25, 1997’, ’DD.MM.YYYY’)
AND
id_number=&id_number;
参考答案:A
解析: 这一题是测试对DELETE语句的理解和熟悉程度。根据本题的要求和INVENTORY表中列的详细定义,可以确定选项A是正确的。
因为Oracle中没有DROP FROM语句,所以选项B肯定是错误的。参阅INVENTORY表中列id_number的定义可知id_number的数据类型为数值型,而在选项C的WHERE子句中id_number=’&id_number’,这显然是错误的(只有字符型和日期型的数据才需要使用单引号括起来),所以选项C肯定也是错误的。因为在选项D的WHERE子句中所用的逻辑运算符是OR,所以在这种情况下即使订货日期不在1997年7月25日之后也有可能满足条件,这与题目的要求不符,所以选项D肯定也是错误的。最后,在选项E的WHERE子句中TO_DATE(’July 25, 1997’,’DD.MM.YYYY’)的格式是错误的,因为DD表示的是两位的数字,显然July无法进行转换。25也无法转换成月份,另外标点符号也不相符,所以选项E肯定是错误的。