文档详情

SQL第三章复习题.doc

发布:2016-05-19约6.44千字共7页下载文档
文本预览下载声明
1. 现有关系数据库如下: 学生(学号,姓名,性别,专业,奖学金)。 课程(课程号,名称,学分)。 学习(学号,课程号,分数)。 检索不学课程号为C135课程的学生信息,包括学号,姓名和专业。 SELECT FROM 学生 WHERE 学号 NOT IN (SELECT 学号 FROM 学习 WHERE 课程号=C135); (2)检索至少学过课程号为C135和C219的学生信息,包括学号、姓名和专业。 SELECT FROM 学生 WHERE 学号 IN (SELECT X. 学号 FROM 学习 AS X, 学习AS Y WHERE X. 学号=Y. 学号 AND X. 课程号=C135 AND X 课程号=’C219’); (3)从学生表中删除成绩出现过0分的所有学生信息。 DELETE FROM WHERE 学号 IN (SELECT 学号 FROM 学习 WHERE 分数=0); (4)定义英语专业学生所学课程的信息视图AAA,包括学号、姓名、课程号和分数。 CREATE VIEW AAA() AS SELECT 学号,姓名,课程号,分数 FROM 学生,学习 WHERE 学生. 学号 =学习. 学号 AND 专业=’英语’; (5) 检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业。 SELECT . 学号,姓名,专业 FROM 学生,学习 WHERE 学生. 学号=学习. 学号 AND 学习. 课程号=课程. 课程号 AND 奖学金=0 AND 分数95; (6) 检索没有任何一门课程成绩在80分以下的所有学生的信息,包括学号、姓名和专业。 SELECT FROM 学生 WHERE 学号 NOT IN (SELECT 学号 FROM 学习 WHERE 分数80); (7)对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000元。 UPDATE SET 奖学金=1000 WHERE 奖学金=0 AND 学号 IN (SELECT 学号 FROM 学习 WHERE 分数=100); (8) 定义学生成绩得过满分(100分)的课程视图AAA,包括课程号、名称和学分。 CREATE VIEW AAA() AS SELECT 课程号,名称,学分 FORM 课程 WHERE 课程号 IN (SELECT 课程号 FROM 学习 WHERE 分数=100); 假设数据库中有以下关系: CUSTOMERS(cid,cname,city,discnt) PRODUCTS(pid,pname,city,quantity,price) AGENTS(aid,aname,city,percent) ORDERS(ordno,month,cid,aid,pid,qty,dollars) 以下题目除非特别声明,都是对应于上面的四个关系。 检索至少被两位顾客购买的产品号。 成对的检索出在同一个城市的顾客。 检索出购买某个产品,并且这个产品被经销商a06经销的顾客编号。 检索出通过在城市“DULUTH”或者城市“DALLA”购买产品的顾客编号。 检索出所有通过在城市“DULUTH”或者城市“DALLA“购买产品的顾客的名字和所获得的折扣。 检索出购买p05产品的顾客。 检索出被“DULUTH”城市的顾客通过“NEW YORK“城市的经销商定货的订单。 检索出和在城市‘BOSTON‘的顾客有相同的折扣的所有顾客。 检索出折扣比在城市‘BOSTON‘的所有顾客的折扣都要低的顾客。 检索出通过经销商a05订货的所有顾客。 检索出没有通过经销商a05订货的所有顾客。 检索出被所有在城市‘BOSTON‘的顾客订购的产品。 答案: SELECT DISTINCT X1.PID FROM ORDERS AS X1,ORDERS AS X2 WHERE X1.PID=X2.PID AND XI.CIDX2.CID; 2.SELECT C1.CID,C2.CID FROM CUSTOMERS AS CI, CUSTOMERS AS C2 WHERE CI.CITY=C2.CITY AND C1.CIDC2.CID; 3.SELECT DISTINCT Y.CID FROM ORDERS AS X,ORDERS AS Y WHERE Y.PID=X.PID AND X.AID=’A06’; 4.SELECT DISTINCT CID FROM ORDERS WHERE AID IN(SELECT AID FROM AGENTS WHERECITY=’DULUTH’ OR CITY=’DALLA’); 5.SELECT CNAME,DISCNT
显示全部
相似文档