SQL数据库面试题 急急急

假设有如下三个关系模式:商场表:store(MNO,MNAME,CITY) 各属性含义依次为商场号、商场名和商场所在城市;主键为商场号;商品表:gds(PNO,PNAME,CITY,COLOR)各属性含义依次为商品号、商品名、产地和商品颜色;主键为商品号;销售表:sale(MNO,PNO,QTY,COST,SALE)各属性含义依次为商场号、商品号、销售数量、销售成本和销售金额。基于以上关系模式回答以下问题:
a) 试用SQL语句写出下列查询:检索上海市所有商店各种商品的平均销售量、平均销售成本、平均销售、总销售量、总销售成本、总销售额。

b) 如果Sale表的外键是gds表中PNO,现在想要删除gds表,应该如何操作?

2、 数据库的表和视图有什么异同

a)select pname as '商品名',avg(qty) as 平均销售量 from s,p,m where m.city='上海' and s.mno=m.mno and p.pno=s.pno,select p.Pno,p.pname,sum(s.qty)
from s left join p on s.pno=p.pno left join m on p.Mno=m.Mno
where m.city='上海市'
group by p.Pno,p.pname,p.city,p.color
b)、先删除Sale表的外键PNO,再删除gds表。

c)联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系
区别:1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改
5、表是内模式,视图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-29
select
*
from
学员表
left
outer
join
成绩表on
(学员ID=
成绩表的学员ID)
where
成绩
is
null
就这么一局就可以显示没有考试的学员,。如果想全部显示。而没有考试的学员成绩为null不要
where条件就好了
select
*
from
学员表
left
outer
join
成绩表on
学员ID=
成绩表的学员ID