多选题
以下是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 | |
要删除1997年7月25目之后的任何一个指定的库存记录(即具有一个特定标识号码的库存记录),请问在如下的语句中使用哪个来完成此项操作?
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肯定是错误的。