问题 单项选择题

以下是INVENTORY(库存)表的定义和所存储的数据:

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  


基于以上INVENTORY表的定义和所存储的数据,如下的哪个语句将成功地执行

A.INSERT INTO
inventory (id_number, description, price)
VALUES

(25029, ’Cotton’);
B.INSERT INTO
inventory (id_number, description, price)
VALUES

(25029, ’Cotton’, 5.60);
C.INSERT INTO
inventory (id_number, description, manufacturer_id, price)
VALUES

(25029, ’Cotton’, ’packex0122’, 5.60);
D.INSERT INTO
inventory (id_number, description, manufacturer_id, price)
VALUES

(K25029, ’Cotton’, packex0122, 5.60);

答案

参考答案:C

解析: 这一题是测试对非空(NOT NULL)约束的理解和熟悉程度,以及对插入语句的理解程度。根据有关INSERT语句的介绍,可知在使用INSERT语句插入一行数据时,日期型和字符型的数据必须用单引号括起来。参阅INVENTORY(库存)表的定义,可以确定选项D是错误的,因为manufacturer_id的数据类型是变成字符型的,而在这个语句的VALUES子句中所输入的manufacturer_id值并未用单引号括起来,而且id_number的数据类型是数字型,所以输入的值中不能包括字母K。
继续参阅INVENTORY表的定义,因为在id_number、description和manufacturer_id这三列上都有非空约束,而在这两个INSERT语句中都缺少manufacturer_id列,必然会造成manufacturer_id列出现空值,所以选项A和B肯定是错误的。实际上,到此为止已经可以确定只有选项C是正确的了。参阅INVENTORY表的定义,在id_number列上除了非空约束外,还有主键和唯一约束,将选项C的VALUES子句中的数据与INVENTORY表的数据进行对比,可以发现在INVENTORY表中并没有id_number为25029的记录,而且其他部分的值也没有问题,所以可以断定选项C确实是正确的。

单项选择题
多项选择题