奇怪的数据库问题

时间:2015-02-28 21:07:40

标签: sql database oracle database-design relational-database

CREATE TABLE customers 
(
    cid CHAR(4), 
    cname CHAR(20), 
    PRIMARY KEY(cid)
)

CREATE TABLE orders 
(
    oid CHAR(6), 
    odate CHAR(6), 
    custid CHAR(4),
    PRIMARY KEY(oid), 
    FOREIGN KEY (cusitd) REFERENCES customers(cid) ON DELETE CASCADE
)

如果客户记录数量为10,订单记录数量为15,则在运行以下命令后

DELETE FROM customers C  
WHERE C.cid = '2000'

客户和订单表中所有记录的总和至少和最多等于:

  • 最多24-至少9
  • 最多25-至少9
  • 最多24-至少18
  • 最多25-至少18

我们的TA选择(2)。为什么?这是一个奇怪的问题:)不知道桌子!

1 个答案:

答案 0 :(得分:4)

  

2)最多25-至少9

所有删除的记录总和为10 + 15 = 25 如果没有C.cid =' 2000'的客户,删除命令不会删除任何记录,并且总和保持不变==>最多25条记录 如果客户C.cid =' 2000'存在,并且订单表中的所有记录都由客户C.cid =' 2000'引用,然后删除命令从客户表中删除一条记录,并从订单表(15)中删除所有记录,共16条记录。
25 - 16 = 9,所以至少有9条记录。