您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 数据库sql查询语句练习2_习题_结果(单世民)仓库_习题
数据库结构如下:仓库(仓库号,城市,面积)订购单(职工号,供应商号,订购单号,订购日期)供应商(供应商号,供应商名,地址)职工(仓库号,职工号,工资)具体数据如下:仓库表:仓库号城市面积WH1北京370WH2上海500WH3广州200WH4武汉400订购单表:职工号供应商号订购单号订购日期E3S7OR6706/23/01E1S4OR7307/28/01E5S4OR7605/25/01E6S6OR7705/26/01E3S4OR7906/13/01E1S2OR8008/29/01E3S3OR9009/01/01E3S3OR9107/13/01供应商表:供应商号供应商名地址S2名硕电子公司苏州S3振华电子厂西安S4华通电子公司北京S6607厂郑州S7爱华电子厂北京职工表:仓库号职工号工资WH2E11220WH1E31210WH2E41250WH3E51230WH1E61250使用SQL语句完成:DDL1.写出创建上述表的语句命令:createtable仓库(仓库号varchar(8)primarykey,城市varchar(8),面积int);createtable订购单(订购单号varchar(8)primarykey,职工号varchar(8),供应商号varchar(8),订购日期nchar(8))createtable供应商(供应商号varchar(8)primarykey,供应商名varchar(18),地址varchar(8))createtable职工(职工号varchar(8)primarykey,仓库号varchar(8),工资int)DML2.给出插入上述数据的insert语句命令:insertinto仓库values('WH1','北京',370)insertinto仓库values('WH2','上海',500)insertinto仓库values('WH3','广州',200)insertinto仓库values('WH4','武汉',400)insertinto订购单values('OR67','E3','S7','06/23/01')insertinto订购单values('OR73','E1','S4','07/28/01')insertinto订购单values('OR76','E5','S4','05/25/01')insertinto订购单values('OR77','E6','S6','05/26/01')insertinto订购单values('OR79','E3','S4','06/13/01')insertinto订购单values('OR80','E1','S2','08/29/01')insertinto订购单values('OR90','E3','S3','09/01/01')insertinto订购单values('OR91','E3','S7','07/13/01')insertinto供应商values('S2','名硕电子公司','苏州')insertinto供应商values('S3','振华电子厂','西安')insertinto供应商values('S4','华通电子公司','北京')insertinto供应商values('S6','607厂','郑州')insertinto供应商values('S7','爱华电子厂','北京')insertinto职工values('E1','WH2',1220)insertinto职工values('E3','WH1',1210)insertinto职工values('E4','WH2',1250)insertinto职工values('E5','WH3',1230)insertinto职工values('E6','WH1',1250)单表查询3.检索职工关系中的所有信息命令:select*from职工结果:4.检索供应商关系中的所有信息命令:select*from供应商结果:5.检索六月之后的所有订单命令:SELECT*FROM订购单WHEREDATEDIFF(MONTH,'2001-06-0100:00:00.000',订购日期)=0;结果:6.检索面积大于400的仓库命令:select*from仓库where面积400结果:7.检索哪些职工的工资多于1210命令:select*from职工where工资1210结果:8.检索仓库是“WH1”或“WH2”并且面积大于400的城市命令:select城市from仓库where仓库号='WH1'and面积400unionselect城市from仓库where仓库号='WH2'and面积400结果:9.找出仓库面积在400到600的仓库命令:select*from仓库where面积between400and600结果:10.找出名中包含“厂”的所有供应商的名命令:select供应商名from供应商where供应商名like'%厂%'结果:11.找出不在西安的供应商命令:select*from供应商exceptselect*from供应商where地址='西安'或者:select*from供应商wherenot地址='西安'结果:12.找出不在北京的仓库命令:select*from仓库exceptselect*from仓库where城市='北京'结果:13.按工资降序排列出所有职工的信息命令:select*from职工orderby工资desc结果:14.先按仓库号升序排列,再按工资降序排列命令:select*from职工orderby仓库号asc,工资desc结果:15.在仓库表中统计一下有几个仓库命令:selectCOUNT(*)仓库数from仓库结果:16.在职工表中统计一下有几个仓库命令:selectCOUNT(distinct仓库号)仓库数from职工结果:17.求总的仓库面积命令:selectsum(面积)总面积from仓库结果:聚合查询18.每个职工的订单数命令:select职工号,count(*)订单数from订购单groupby职工号结果:19.订单数大于3的职工命令:select职工号,COUNT(*)订单数from订购单groupby职工号havingCOUNT(*)3结果:多表查询20.找出在面积大于400的仓库中工作的职工命令:select职工号from职工join仓库on职工.仓库号=仓库.仓库号where面积400结果:21.找出在北京工作的职工和他们的工资情况命令:select职工号,工资from职工join仓库on职工.仓库号=仓库.仓库号where仓库.城市='北京'结果:22.找出工资大于1215的职工和他们所在的城市命令:select职工号,城市from职工join仓库on职工.仓库号=仓库.仓库号where工资1215结果:子查询23.哪些城市至少有一个订单(从仓库角度考虑)命令:selectdistinct城市from订购单join职工on订购单.职工号=职工.职工号join仓库on职工.仓库号=仓库.仓库号结果:24.找出没有任何订单的城市命令:select城市from仓库exceptselectdistinct城市from订购单join职工on订购单.职工号=职工.职工号join仓库on职工.仓库号=仓库.仓库号结果:25.找出和E4有同样工资的所有职工命令:selectb.职工号,b.仓库号,b.工资from职工ajoin职工bona.工资=b.工资wherea.职工号='E4'结果:26.找出仓库面积大于400的仓库的所有职工命令:select职工.职工号,职工.仓库号,职工.工资from职工join仓库on职工.仓库号=仓库.仓库号where面积400结果:27.找出供应商在西安的职工和他们的工资情况命令:select职工.职工号,工资from供应商join订购单on供应商.供应商号=订购单.供应商号join职工on订购单.职工号=职工.职工号where地址='西安'结果:28.找出不在北京仓库里工作的职工命令:select职工号,工资from职工join仓库on职工.仓库号=仓库.仓库号exceptselect职工号,工资from职工join仓库on职工.仓库号=仓库.仓库号where城市='北京'结果:29.找出在北京仓库里工作的职工命令:select职工号,工资from职工join仓库on职工.仓库号=仓库.仓库号where城市='北京'结果:30.求广州和上海仓库职工的总工资命令:selectSUM(工资)总工资from职工join仓库on职工.仓库号=仓库.仓库号where城市='广州'or城市='上海'结果:31.求所有职工工资都大于1210的仓库的平均面积命令:selectavg(面积)平均面积from(select仓库号from职工exceptselect仓库号from职工where工资1210)ajoin仓库ona.仓库号=仓库.仓库号结果:32.求上海仓库中职工的最高工资命令:selectMAX(工资)最高工资from职工join仓库on职工.仓库号=仓库.仓库号where城市='上海'结果:33.订单数大于或等于2的职工的工资命令:selecta.工资from(select职工.职工号,工资from职工join订购单on职工.职工号=订购单.职工号groupby职工.职工号,工资havingCOUNT(*)=2)a结果:
本文标题:数据库sql查询语句练习2_习题_结果(单世民)仓库_习题
链接地址:https://www.777doc.com/doc-1248213 .html