4、参见如下表结构
出版社:
出版社代码 char(2),
出版社名称 varchar2(32)
图书:
图书编号 char(8),
图书名称 varchar2(128),
出版社代码 char(2),
作者代号 char(4),
图书简介 varchar2(128)
作者:
作者代号 char(4),
作者名称 varchar2(10),
性别 char(1),
年龄 number(3),
文学方向 varchar2(64)
获奖名单:
获奖日期 date,
获奖人员 char(4)
编写SQL语句,找出“作者”库中没有出现在“获奖名单”库中所有作者信息的SQL语句(提示:使用not in、not exists以及外关联三种方法,并说明哪种方法最优)。
1、select * from 作者 where 作者.作者名称 not in(select 获奖人员 from 获奖名单)
2、select * from 作者 where not exists(select 获奖人员 from 获奖名单 where 作者.作者名称=获奖名单.获奖人员)
3、slect * from 作者 left join 获奖名单 on 作者.作者名称=获奖名单.获奖人员 where 获奖名单.获奖人员 is null
数据库的优化:外连接性能优于not exists,not exists优于not in
出版社:
出版社代码 char(2),
出版社名称 varchar2(32)
图书:
图书编号 char(8),
图书名称 varchar2(128),
出版社代码 char(2),
作者代号 char(4),
图书简介 varchar2(128)
作者:
作者代号 char(4),
作者名称 varchar2(10),
性别 char(1),
年龄 number(3),
文学方向 varchar2(64)
获奖名单:
获奖日期 date,
获奖人员 char(4)
编写SQL语句,找出“作者”库中没有出现在“获奖名单”库中所有作者信息的SQL语句(提示:使用not in、not exists以及外关联三种方法,并说明哪种方法最优)。
1、select * from 作者 where 作者.作者名称 not in(select 获奖人员 from 获奖名单)
2、select * from 作者 where not exists(select 获奖人员 from 获奖名单 where 作者.作者名称=获奖名单.获奖人员)
3、slect * from 作者 left join 获奖名单 on 作者.作者名称=获奖名单.获奖人员 where 获奖名单.获奖人员 is null
数据库的优化:外连接性能优于not exists,not exists优于not in