第3章 SQL 习题 - 3.18、3.19、3.20

3.18 列出两个原因,说明为什么空值可能被引入到数据库中。

1. 非主码属性在没有非空的限制的情况下,被插入了空值。

2. 外码完整性约束中有一项是on delete set null,当外码的元组被删除时,所依赖的关系元组属性也会被置空。

3. 19 证明在SQL中,<>all等价于not in。

可能不够严谨的做法,做个练习也许就能证明。查找所有工资不等于Biology系工资的教师。

select name, salary from instructor 
where salary not in (select salary from instructor 
					where dept_name = 'Biology');
select name, salary from instructor 
where salary <>all (select salary from instructor 
					where dept_name = 'Biology');

结果都一样:

    name    |  salary   
------------+-----------
 Wu         |  90000.00
 Mozart     |  40000.00
 Einstein   |  95000.00
 El Said    |  60000.00
 Gold       |  87000.00
 Califieri  |  62000.00
 Singh      |  80000.00
 Kim        |  80000.00
 Srinivasan |  71500.00
 Katz       |  82500.00
 Brandt     | 101200.00
(11 rows)

3.20 给出图3-20中雇员数据库的SQL模式定义。为每个属性选择合适的域,并为每个关系模式选择合适的主码。

请参考练习3.9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值