SQL语句习题.docx

上传人:牧羊曲112 文档编号:3166212 上传时间:2023-03-11 格式:DOCX 页数:9 大小:40.29KB
返回 下载 相关 举报
SQL语句习题.docx_第1页
第1页 / 共9页
SQL语句习题.docx_第2页
第2页 / 共9页
SQL语句习题.docx_第3页
第3页 / 共9页
SQL语句习题.docx_第4页
第4页 / 共9页
SQL语句习题.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《SQL语句习题.docx》由会员分享,可在线阅读,更多相关《SQL语句习题.docx(9页珍藏版)》请在三一办公上搜索。

1、SQL语句习题设某商业集团关于商店销售商品的数据库中有三个基本表: 商店 SHOP 其属性是商店编号,商店名称,区域名,经理姓名。 销售 SALE 其属性是商店编号,商品编号,销售数量。 商品 GOODS 其属性是商品编号,商品名称,单价。 36试写出下列查询的关系代数表达式、元组表达式和关系逻辑规则: 检索销售“冰箱”的商店的编号和商店名称。 37试写出上面第36题的SELECT语句表达形式。并写出该查询的图示形式。 38试写出下列操作的SQL语句: 从SALE表中,把“开开商店”中销售单价高于1000元的商品的销售元组全部删除。 39写一个断言,要求区域名为“EAST”的商店里销售商品的单

2、价不能低于100元。 40试写出下列操作的SQL语句: 统计区域名为“EAST”的所有商店销售的每一种商品的总数量和总价值。 要求显示,其属性为商品编号、商品名称、销售数量、销售价值。 37解:SELECT语句如下: SELECT A.S#,SNAME FROM SHOP A,SALE B,GOODS C WHERE A.S#=B.S# AND B.G#=C.G# AND GNAME=冰箱; 该查询语句的图示形式如下: SHOP S# SNAME AREA MGR_NAME P_X P. SALE S# G# QUANTITY GOODS G# GNAME PRICE _X _Y _Y 冰箱

3、38解:DELETE FROM SALE WHERE S# IN AND G# IN; 39解:CREATE ASSERTION ASSE8 CHECK ); 或 CREATE ASSERTION ASSE8 CHECK ); 40解:SELECT C.G#,GNAME,SUMAS SUM_QUANTITY, PRICE*SUMAS SUM_VALUE FROM SHOP A,SALE B,GOODS C WHERE A.S#=B.S# AND B.G#=C.G# AND AREA=EAST GROUP BY C.G#,GNAME; 36设数据库中有两个基本表: 职工表 EMP, 其属性分别表

4、示职工工号、姓名、年龄、工资和工作部门的编号。 部门表 DEPT, 其属性分别表示部门编号、部门名称和部门经理的职工工号。 试指出每个表的主键和外键。并写出每个表创建语句中的外键子句。 37 在第36题的两个基本表中,写出下列查询的关系代数表达式和SQL语句: 检索每个部门经理的工资,要求显示其部门编号、部门名称、经理工号、经理姓名和经理工资。 36答:EMP表的主键为E#,外键为D#。 DEPT表的主键为D#,外键为MGR# 在EMP表的创建语句中,可写一个外键子句: FOREIGN KEY D# REFERENCES DEPT; 在DEPT表的创建语句中,可写一个外键子句: FOREIGN

5、 KEY MGR# REFERENCES EMP; 37答:关系表达式为:DEPT.D#,DNAME,MGR#,ENAME,SALARY SELECT语句为: MGR#=E# SELECT DEPT.D#,DNAME,MGR#,ENAME,SALARY FROM DEPT,EMP WHERE MGR#=E#; 31设某商业集团为仓库存储商品设计了三个基本表: 仓库 STORE,其属性是仓库编号、仓库名称和地址。 存储 SG,其属性是仓库编号、商品编号和数量。 商品 GOODS, 其属性是商品编号、商品名称和单价 现检索仓库名称为“莘庄”的仓库里存储的商品的编号和名称。试写出相应的关系代数表达式

6、、元组表达式、关系逻辑规则和SELECT语句。 32在第31题的基本表中,检索存储全部种类商品的仓库的编号及名称。试写出相应的关系代数表达式、元组表达式、关系逻辑规则和SELECT语句。 33在第31题的基本表中,检索每个仓库存储商品的总价值。试写出相应的SELECT语句。要求显示,其属性为仓库编号及该库存储商品的总价值。 34在第31题的基本表中,写一个断言,规定每个仓库存储商品的单价为1万元以上的商品种类最多为20种。 31解:关系代数表达式为:G#,GNAME) 元组表达式为: t | ($u) ($v) ($w) (GOODS(u)SG(v)STORE u1=v2v1=w1w2= 莘庄

7、t1=u1t2=u2) 关系逻辑规则如下: WGOODSSGSTORE SELECT语句为: SELECT A.G#,GNAME FROM GOODS AS A,SG AS B,STORE AS C WHERE A.G#=B.G# AND B.S#=C.S# AND SNAME= 莘庄; 32解:关系代数表达式为: S#,SNAMEG#) 元组表达式为: t | ($u) (v) ($w) (STORE(u) GOODS SG(w) w1=u1 w2=v1 t1=u1 t2=u2) 关系逻辑规则如下: W STOREGOODSSG SELECT语句为: SELECT S#,SNAME FROM

8、 STORE WHERE NOT EXISTS ); 33解:SELECT语句为: SELECT S#,SUMAS SUM_VALUE FROM SG,GOODS WHERE SG.G#=GOODS.G# GROUP BY S#; 34解:CREATE ASSERTION ASSE6 CHECK FROM SG,GOODS WHERE SG.G#=GOODS.G# AND PRICE10000 GROUP BY S#); 现有关系数据库如下: 部门 员工(员工编号,姓名,性别,部门编号,职务) 项目(项目编号,项目名称,预算) 施工(员工编号,项目编号,工时) 用关系代数表达式实现下列12小题

9、: 1检索“王小毛”的员工的部门编号和职务; 2检索工时超过100小时的项目名称和员工的姓名; 用SQL语言实现下列37小题: 3查询每个员工的姓名,并按职称降序排列; 4查询总工时在480小时以上的员工编号和总工时; 5检索职称为“高级工程师”,同时至少参加了一预算在100万以上的项目的员工的姓名和部门名称; 6定义一个工作量视图,包含的属性有员工编号、姓名、项目名称和工时。 7对项目名称为“高教新区项目”的施工工时增加50小时; 1.部门编号,职务 (姓名=王小毛(员工) 2. 项目名称,姓名(工时)100(施工)项目员工) 3.SELECT 姓名 FROM 员工 ORDER BY 职称

10、DESC 4SELECT 员工编号,SUM FROM 施工 GROUP BY 员工编号 HAVING SUM=480 5. SELECT 姓名,部门名称 FROM 员工,部门,项目,施工 WHERE 部门.部门编号=员工.部门编号 AND 员工.员工编号=施工.员工编号 AND 施工.项目编号=项目.项目编号 AND 职称=高级工程师 AND 预算1000000 6. CREATE VIEW 工作量( 员工编号,姓名,项目名称,工时) AS SELECT员工.员工编号,姓名,项目名称,工时 FROM 员工,项目,施工 WHERE员工.员工编号=施工.员工编号AND 施工.项目编号=项目.项目编

11、号 7.UPDATE 施工SET 工时=工时+50 WHERE 项目编号 IN (SELECT 项目编号FROM 项目WHERE 项目名称=高教新区项目) 37. 图书出版管理数据库中有两个基本表: 图书 (书号,书名,作者编号,出版社,出版日期) 作者 (作者编号,作者名,年龄,地址) 试用SQL语句写出下列查询:检索年龄低于作者平均年龄的所有作者的作者名、书名和出版社。 39. 学校有多名学生,财务处每年要收一次学费。为财务处收学费工作设计一个数据库,包括两个关系: 学生 (学号,姓名,专业,入学日期) 收费 (学年,学号,学费,书费,总金额) 假设规定属性的类型:学费、书费、总金额为数值

12、型数据;学号、姓名、学年、专业为字符型数据;入学日期为日期型数据。列的宽度自定义。试用SQL语句定义上述表的结构。(定义中应包括主键子句和外键子句) 37. SELECT 作者名,书名,出版社 FROM 图书,作者 WHERE 图书 . 作者编号 = 作者 . 作者编号 AND 年龄 = (SELECT AVG (年龄) FROM 作者); 39. CREATE TABLE 学生 (学号 CHAR (8), 姓名 CHAR (8), 专业 CHAR (13), 入学日期 DATE, PRIMARY KEY (学号); CREATE TABLE 收费 (学年 CHAR (10), 学号 CHAR

13、 (8), 学费 NUMERIC (4), 书费 NUMERIC (5,2), 总金额 NUMERIC (7,2), PRIMARY KEY (学年,学号), FOREIGN KEY (学号) REFERENCES 学生 (学号); 现有关系数据库如下:学生(学号,姓名,性别,专业,奖学金)课程(课程号,名称,学分)学习(学号,课程号,分数) 5.检索不学课程号为“C135”课程的学生信息,包括学号,姓名和专业; 6.检索至少学过课程号为“C135”和“C219”的学生信息,包括学号、姓名和专业; 7.从学生表中删除成绩出现过0分的所有学生信息; 8.定义“英语”专业学生所学课程的信息视图AA

14、A,包括学号、姓名、课程号和分数。 5.SELECT 学号,姓名,专业 FROM 学生WHERE 学号 NOT IN(SELECT 学号FROM 学习WHERE 课程号=C135) 6.SELECT 学号,姓名,专业FROM 学生WHERE 学号 IN(SELECT X. 学号 FROM 学习 X, 学习 YWHERE X.学号=Y.学号 AND X.课程号=C135 AND Y.课程号=C219) 7.DELETE FROM 学生WHERE 学号 IN(SELECT 学号FROM 学习WHERE 分数=0) 8.CREATE VIEW AAA(学号,姓名,课程号,分数)AS SELECT 学

15、号,姓名,课程号,分数FROM 学生,学习WHERE 学生.学号 =学习.学号 AND 专业=英语 1 用SQL的有关语句定义 1) 学生关系Student,包括学号Sno、姓名SN、年龄SA; 2) 课程关系Course,包括课程号Cno、课程名CN、任课教师CT; 3) 学生选课关系,包括Sno、Cno和成绩G。 注意:说明主键码和外键码,并在键码属性上建立索引。 2 按题1的学生关系模式,用SQL的有关语句 1) 授予赵华对学生关系Student的插入和修改权限; 2) 插入任意3个学生的完整信息; 3) 修改所有学生的年龄。 3 结合题1定义的学生选课数据库,用SQL语句查询计算机系学

16、生数据库课的成绩,输出学生姓名和成绩,按成绩排序,若成绩相同,再按学号排序。 11) CREATE TABLE Student( Sno INT PRIMARY KEY, SN CHAR(30), SA INT ); 2) CREATE TABEL Course( Cno INT PRIMARY KEY, CN CHAR(30), CT CHAR(30) ); 3) CREATE TABEL SC( Sno INT, Cno INT, G INT, PRIMAYR KEY(Sno,Cno), FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN K

17、EY(Cno) REFERENCES Course(Cno) ); 2 1) GRANT INSERT, UPDATE, ON Student TO 赵华; 2) INSERT INTO Student (TABLE (01001,赵华,19), (01002,李芳,18), (01003,刘红,20), ); 3) UPDATE Student SET SA=SA+1; 3 SELECT SN,G FROM Student,Course,SC WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno AND Course.CN=数据库ORDER BY G DESC,Sno;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号