第3章 SQL 習題 - 3.13、3.14
阿新 • • 發佈:2018-11-19
3.13 寫出對應於圖3-18中模式的SQL DDL。在資料型別上做合理的假設,確保宣告主碼和外碼。
可以參考習題3.4.
3.14 考慮圖3-18中的保險公司資料庫,其中加下劃線的是主碼。對這個關係資料庫構造如下的SQL查詢:
a.找出和"John Smith"的車有關的交通事故數量。
在做習題3.4的時候,我們插入自己的資料,基本上是一人一輛車,我們現在找出和“張三”的車有關的交通事故數量吧。
select count(*) from participated where licence in ( select licence from person natural join owns where name = '張三' );
count
-------
1
(1 row)
b.對事故報告編號為"AR2197"中的車牌是“AABB2000”的車輛損壞保險費用更新到3000美元。
這裡事故編號是varchar型別的,我們設計的時候用的是int型的,這樣按照我們的資料,把題目修改為更新事故編號為1的車牌為1的費用更新到3000元。
我們先來看看它之前的費用是多少:
select * from participated where (report_number, licence) = (1, 1);
report_number | licence | driver_id | damage_amount ---------------+---------+-----------+--------------- 1 | 1 | 1 | 1000 (1 row)
原來費用是1000,現在更新到3000:
update participated set damage_amount = 3000 where (report_number, licence) = (1, 1);
再看看更新後的費用:
report_number | licence | driver_id | damage_amount
---------------+---------+-----------+---------------
1 | 1 | 1 | 3000
(1 row)