(精品仓库管理)数据库sql查询语句练习2_习题_结果(单世民)仓库_习题
- 格式:doc
- 大小:127.00 KB
- 文档页数:5
SQL数据库习题及答案1.模型中,同一个关系中的不同属性,其属性名不能相同。
2.数据库系统由数据库、DBMS、DBA、支持数据库系统的硬件环境和操作系统环境及说明书组成3.计算机数据管理技术的发展可以划分为三个阶段,在某个阶段数据是以文件形式长期存储在辅助存储器中,程序和数据之间具有相对的独立性,数据不再属于某个特定的应用程序,数据可以重复使用,该阶段是文件管理阶段4.在数据库的三级体系结构中,数据库的模式对应于数据库的概念视图5.在数据库的三级体系结构中,数据的逻辑独立性是通过外模式-模式映射来实现的。
6.三层C/S结构包括客户机、应用服务器和数据库服务器三部分。
7.DDL是指数据描述语言,DML是指数据操纵-查询语言,DBMS是指数据库管理系统,DD是指数据字典。
8.数据库的三层模式结构分别是外模式、概念模式和存储模式。
9.数据的独立性包括物理独立性和逻辑独立性两个方面。
10.实体集之间的联系有三种,分别是一对一的联系,一对多的联系,多对多的联系11.试说明数据管理的数据库阶段的主要特点。
答:数据库管理的数据库阶段主要特点是:1、数据共享性;2、具有较高的数据与程序的独立性;3、便于对数据实行集中统一的控制。
12.试说明DBMS的组成。
答:DBMS是由一系列软件构成的复杂系统,一般来说DBMS 由下列三类软件组成:语言系统;控制数据库运行的程序;数据库维护程序;13.数据模型的三要素是什么?答:数据模型的三要素是数据结构、数据操作、数据的约束条件。
14.关系模型有什么特点?答:关系模型有什么特点:1、关系模型与非关系模型不同,它是建立在严格的数学概念基础上的;2、关系模型的概念单一,无论实体或实体之间的联系都用关系表示3、存取路径对用户透明。
4、关系必须是规范化的关系。
第二章关系数据库基本理论1.下列不属于关系代数运算的是 A 。
A.查询B.投影C.选择D.联结2.在关系数据模型中,利用关系运算对两个关系进行操作,得到的结果是B。
------------------------------------------------------------------------- ------------------------------------------------------------------------- ------------------------------------------------------------------------- ---------------------------------答案------------------------------------ ------------------------------------------------------------------------- ------------------------------------------------------------------------- ---------------------------------------------------------------------------20131431班—--2013143120—--田润旭—------------------------------------------------------------------------- ------------------------------------------------------------------------- ------------------------------------------------------------------------- --------------------------------新建数据库------------------------------- ------------------------------------------------------------------------- ------------------------------------------------------------------------- ---------------------------------------------------------------------------新建数据库“s”--create database s------------------------------------------------------------------------- ------------------------------------------------------------------------- ------------------------------------------------------------------------- ----------------------------------新建表--------------------------------- ------------------------------------------------------------------------- ------------------------------------------------------------------------- ---------------------------------------------------------------------------学生信息表--create table student(sno char(10)not null,sname char(8)not null,sex char(2)not null,sbirthday datetime,class char(5))insert into student values('108','曾华','男','1977-09-01','95033')insert into student values('105','匡明','男','1975-10-02','95031')insert into student values('101','王丽','女','1976-01-23','95033')insert into student values('107','李军','男','1976-02-20','95033')insert into student values('109','王芳','女','1975-02-10','95031')insert into student values('103','陆君','男','1974-06-03','95031')--课程表--create table course (cno char(10),cname varchar(10),Tno char(10))insert into course values('3-105','计算机导论','825')insert into course values('3-245','操作系统','804')insert into course values('6-166','数字电路','856')insert into course values('9-888','高等数学','831')--成绩表--create table score(sno char(10)not null,cno char(10)not null,degree decimal(4,1))insert into score values('103','3-245',86)insert into score values('105','3-245',75)insert into score values('109','3-245',68)insert into score values('103','3-105',92)insert into score values('105','3-105',76)insert into score values('109','3-105',76)insert into score values('101','3-105',64)insert into score values('107','3-105',91)--教师信息表--create table teacher(tno char(10)not null,tname char(8)not null,tsex char(2)not null,tbirthday datetime,prof char(10),depart char(10))insert into teacher values('804','李诚','男','1958-12-01','副教授','计算机系')insert into teacher values('856','张旭','男','1969-10-02','讲师','电子工程系')insert into teacher values('825','王萍','女','1972-01-23','助教','计算机系') insert into teacher values('831','刘冰','女','1977-02-20','助教','电子工程系')------------------------------------------------------------------------- ------------------------------------------------------------------------- ------------------------------------------------------------------------- ----------------------------------查看表--------------------------------- ------------------------------------------------------------------------- ------------------------------------------------------------------------- ---------------------------------------------------------------------------查看所有表信息--select*from studentselect*from scoreselect*from courseselect*from teacher------------------------------------------------------------------------- ------------------------------------------------------------------------- ------------------------------------------------------------------------- ----------------------------------作业---------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------- -------------------------------------------------------------------------select*from studentselect*from scoreselect*from courseselect*from teacher--1、查询Student表中的所有记录的Sname、Ssex和Class列。
sql查询语句学习测试答案第⼀部分SQL 查询语句的学习单表查询1、--查询订购⽇期在1996年7⽉1⽇⾄1996年7⽉15⽇之间的订单的订购⽇期、订单ID 、客户ID 和雇员ID 等字段的值use eee SELECT订购⽇期,订单ID ,客户ID ,雇员ID FROM 订单WHERE 订购⽇期BETWEEN '1996-7-1 00:00:00' AND '1996-7-15 23:59:59'2、--查询“Northwind”⽰例数据库中供应商的ID 、公司名称、地区、城市和电话字段的值。
条件是“地区等于华北”并且“联系⼈头衔等于销售代表”。
use eeeSELECT 供应商ID ,公司名称,地区,城市,电话FROM 供应商WHERE 地区='华北'AND 联系⼈职务='销售代表' 3、--查询“Northwind”⽰例数据库中供应商的ID 、公司名称、地区、城市和电话字段的值。
其中的⼀些供应商位于华东或华南地区,另外⼀些供应商所在的城市是天津use eeeSELECT 供应商ID ,公司名称,地区,城市,电话FROM 供应商WHERE 地区IN('华东', '华南') OR 城市='天津'可保障各类管路习题到位。
在管路敷设过程中,要加强看护关于管路⾼调控试验;对设备进⾏调整使其在正常⼯况下与过度⼯作下都可以正常需要在最⼤限度内来确保机组⾼中资料试卷安全,并且尽可能地缩⼩故4、--查询“Northwind”⽰例数据库中位于“华东”或“华南”地区的供应商的ID、公司名称、地区、城市和电话字段的值use eeeSELECT供应商ID,公司名称,地区,城市,电话FROM供应商WHERE地区IN('华东','华南'),要加强看护关于管路⾼中资料试卷连接管⼝处理⾼中资料试卷弯扁度与过度⼯作下都可以正常⼯作;对于继电保护进⾏整核对定值,审核与安全,并且尽可能地缩⼩故障⾼中资料试卷破坏范围,或者对某些异常多表查询5、--查询订购⽇期在1996年7⽉1⽇⾄1996年7⽉15⽇之间的订单的订购⽇期、订单ID 、相应订单的客户公司名称、负责订单的雇员的姓⽒和名字等字段的值,并将查询结果按雇员的“姓⽒”和“名字”字段的升序排列,“姓⽒”和“名字”值相同的记录按“订单 ID”的降序排列use eee SELECT 订购⽇期,订单ID ,公司名称,姓⽒,名字FROM 订单,雇员,客户WHERE 订购⽇期BETWEEN '1996-7-1 00:00:00' AND '1996-7-15 23:59:59'AND 订单.雇员ID = 雇员.雇员IDAND 订单.客户ID = 客户.客户ID ORDER BY 姓⽒,名字ASC ,订单ID DESC 通过管线敷设技术不仅可以解决吊顶层配置不规范⾼中资料试卷问题,⽽且可保障各类管路习题到位。
数据库 sql 查询语句练习 2_习题_结果 ( 单世民 ) 仓库 _习题数据库结构如下:仓库(仓库号 , 城市 , 面积)订购单(职工号 , 供应商号 , 订购单号 , 订购日期)供应商(供应商号 , 供应商名 , 地址)职工(仓库号 , 职工号 , 工资)具体数据如下:仓库表:仓库号城市面积WH1北京370WH2上海500WH3广州200WH4武汉400订购单表:职工号供应商号订购单号订购日期E3S7OR6706/23/01E1S4OR7307/28/01E5S4OR7605/25/01E6S6OR7705/26/01E3S4OR7906/13/01 E1S2OR8008/29/01 E3S3OR9009/01/01 E3S3OR9107/13/01供应商表:供应商号供应商名地址S2名硕电子公司苏州S3振华电子厂西安S4华通电子公司北京S6607 厂郑州S7爱华电子厂北京职工表:仓库号职工号工资WH2E11220WH1E31210WH2E41250WH3E51230WH1E61250使用 SQL 语句完成:DDL1.写出创建上述表的语句命令:create table仓库 ( 仓库号varchar( 8) primary key ,城市 varchar( 8),面积int );create table订购单 ( 订购单号varchar( 8 )primary key, 职工号varchar (8 ), 供应商号 varchar( 8 ),订购日期nchar( 8 ))create table供应商 ( 供应商号varchar( 8)primary key ,供应商名varchar( 18 ),地址 varchar( 8 ))create table职工 ( 职工号varchar( 8 )primary key , 仓库号 varchar( 8 ),工资int ) DML2.给出插入上述数据的 insert 语句命令:insert into仓库 values( 'WH1', ' 北京 ' , 370 )insert into仓库 values( 'WH2', ' 上海 ' , 500 )insert into仓库 values( 'WH3', ' 广州 ' , 200 )insert into仓库 values( 'WH4', ' 武汉 ' , 400 )insert into订购单 values( 'OR67', 'E3', 'S7', '06/23/01')insert into订购单 values( 'OR73', 'E1', 'S4', '07/28/01')insert into订购单 values( 'OR76', 'E5', 'S4', '05/25/01')insert into订购单 values( 'OR77', 'E6', 'S6', '05/26/01')insert into订购单 values( 'OR79', 'E3', 'S4', '06/13/01')insert into订购单 values( 'OR80', 'E1', 'S2', '08/29/01')insert into订购单 values( 'OR90', 'E3', 'S3', '09/01/01')insert into订购单 values( 'OR91', 'E3', 'S7', '07/13/01')insert into供应商 values( 'S2', ' 名硕电子公司 ' , '苏州 ' )insert into供应商 values( 'S3', ' 振华电子厂 ' , ' 西安 ' )insert into供应商 values( 'S4', ' 华通电子公司 ' , '北京 ' )insert into供应商 values( 'S6', '607厂 ' , '郑州 ' )insert into供应商 values( 'S7', ' 爱华电子厂' , ' 北京 ' )insert into职工 values( 'E1', 'WH2', 1220)insert into职工 values( 'E3', 'WH1', 1210)insert into职工 values( 'E4', 'WH2', 1250)insert into职工 values( 'E5', 'WH3',1230)insert into职工 values( 'E6', 'WH1',1250)单表查询3.检索职工关系中的所有信息命令: select* from职工结果:4.检索供应商关系中的所有信息命令: select* from供应商结果:5.检索六月之后的所有订单命令:SELECT * FROM 订购单WHERE DATEDIFF ( MONTH, '2001-06-01 00: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面积> 400union select城市from仓库where仓库号='WH2'and面积> 400结果:9.找出仓库面积在 400 到 600 的仓库命令: select* from仓库where面积between 400 and 600结果:10.找出名中包含“厂”的所有供应商的名命令: select供应商名from供应商where供应商名like'% 厂 %'结果:11.找出不在西安的供应商命令: select* from供应商except select* from供应商where地址= '西安 '或者:select* from供应商where not地址= ' 西安 '结果:12.找出不在北京的仓库命令: select* from仓库except select* from仓库where城市= '北京'结果:13.按工资降序排列出所有职工的信息命令: select* from职工order by工资desc结果:14.先按仓库号升序排列,再按工资降序排列命令: select* from职工order by仓库号asc , 工资desc结果:15.在仓库表中统计一下有几个仓库命令: select COUNT(*)仓库数from仓库结果:16.在职工表中统计一下有几个仓库命令: select COUNT( distinct仓库号)仓库数from职工结果:17.求总的仓库面积命令: select sum ( 面积 )总面积from仓库结果:聚合查询18.每个职工的订单数命令: select职工号, count(*)订单数from订购单group by职工号结果:19.订单数大于 3 的职工命令:select职工号, COUNT(*)订单数from订购单group by职工号having COUNT(*)> 3结果:多表查询20.找出在面积大于 400 的仓库中工作的职工命令: select职工号from职工join仓库on职工.仓库号=仓库.仓库号where 面积 > 400结果:21.找出在北京工作的职工和他们的工资情况命令: select职工号,工资from职工join仓库on职工.仓库号=仓库.仓库号where 仓库 . 城市 =' 北京 '结果:22.找出工资大于 1215 的职工和他们所在的城市命令: select职工号,城市from职工join仓库on职工.仓库号=仓库.仓库号where 工资 > 1215结果:子查询23.哪些城市至少有一个订单(从仓库角度考虑)命令: select distinct城市from订购单join职工on订购单.职工号=职工 . 职工号join仓库on职工.仓库号=仓库.仓库号结果:24.找出没有任何订单的城市命令: select城市from仓库except select distinct城市from订购单join职工on订购单.职工号=职工.职工号join仓库on 职工 . 仓库号 =仓库 . 仓库号结果:25.找出和 E4 有同样工资的所有职工命令: select b . 职工号 , b. 仓库号 , b . 工资from职工 a join职工 b on a .工资 = b . 工资where a . 职工号 ='E4'结果:26.找出仓库面积大于 400 的仓库的所有职工命令:select 职工 . 职工号 , 职工 . 仓库号 , 职工 . 工资 from 职工 join 仓库 on 职工 . 仓库号 = 仓库 . 仓库号 where 面积 >400结果:27.找出供应商在西安的职工和他们的工资情况命令:select职工.职工号,工资from供应商join订购单on 供应商 . 供应商号 = 订购单 . 供应商号join职工on订购单.职工号=职工.职工号where地址= '西安'结果:28.找出不在北京仓库里工作的职工命令: select职工号,工资from职工join仓库on职工.仓库号=仓库.仓库号except select职工号,工资from职工join仓库on职工.仓库号=仓库.仓库号where 城市 = ' 北京 '结果:29.找出在北京仓库里工作的职工命令: select职工号,工资from职工join仓库on职工.仓库号=仓库.仓库号where 城市 = ' 北京 '结果:30.求广州和上海仓库职工的总工资命令:select SUM( 工资 )总工资from职工join仓库on职工.仓库号=仓库.仓库号where城市= '广州'or城市= '上海'结果:31.求所有职工工资都大于 1210 的仓库的平均面积命令: select avg ( 面积 )平均面积from ( select仓库号from职工except select仓库号from职工where工资<1210 ) a join仓库on a . 仓库号 = 仓库 . 仓库号结果:32.求上海仓库中职工的最高工资命令: select MAX( 工资 )最高工资from职工join仓库on职工.仓库号=仓库 . 仓库号where城市= '上海'结果:33.订单数大于或等于 2 的职工的工资命令:select a .工资from( select职工 .职工号,工资from职工join订购单on职工 .职工号= 订购单 .职工号group by职工 .职工号 ,工资having COUNT(*)>= 2 ) a结果:。
习题1请根据给出的数据库表结构来回答相应问题:DEPT (DEPTNO INT, DNAME VARCHAR(14),LOC VARCHAR(13));EMP (EMPNO INT,ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT);BONUS (ENAME VARCHAR(10), JOB VARCHAR(9), SAL INT, COMM INT); SALGRADE ( GRADE INT, LOSAL INT, HISAL INT);其中表中包含如下数据:DEPT表:EMP表:SALGRADE表:BONUS表:无数据根据上面描述完成下面问题:(注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL1.写出上述表的建表语句。
此外,在DEPT上创建名为”PK_DEPT”的主键约束,在EMP表上创建名为”PK_EMP”的主键约束以及指向表DEPT 的外键约束”FK_DEPTNO”。
命令:Create table DEPT(DEPTNO INT NOT NULL,DNAME VARCHAR(14),LOC VARCHAR(13));Alter table DEPTadd constraint PK_DEPT PRIMARY KEY (DEPTNO);create table EMP(EMPNO INT NOT NULL,ENAME VARCHAR(10),JOB VARCHAR(9), MGR INT,HIREDATE DATE,SAL FLOAT,COMM FLOAT,DEPTNO INT);alter table EMPadd constraint PK_EMP PRIMARY KEY (EMPNO);alter table EMPadd constraint FK_DEPTNO foreign key(DEPTNO)references DEPT(DEPTNO); DML2.给出相应的INSERT语句来完成题中给出数据的插入。
SQL语句练习及参考答案编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(SQL语句练习及参考答案)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为SQL语句练习及参考答案的全部内容。
SQL 语句练习1。
设学生选课数据库有关系S (sno ,sname ,age ,sex )、SC (sno ,cno ,grade )和C (cno,cname,teacher ),分别表示学生、选课和课程,sno 代表学号,sname 代表学生姓名,age 代表年龄,sex 代表性别,grade 代表成绩,cno 代表课程号,teacher 代表任课教师。
试完成表示下列查询。
(1)检索年龄大于21的男学生学号(sno )和姓名(sname)。
(2)建立性别只能为“男”、“女"的约束。
(3)创建一个视图v1,该视图用来查询学生的选课情况,要求包含:学生姓名(sname),课程名(cname),任课教师teacher 和成绩grade 。
(4)检索选修课程号为k1和k5的学生学号(sno ). (5)检索全部学生都选修的课程的课程号(cno)和课程名(cname )。
(6)删除所有男同学的选课记录。
1。
(1)select sno ,snae from s where sex=’男' and age 〉21(2)alter table s add constraint c1 check sex in (‘男’,’女')(3)create view v1 as select sname ,cname,teacher,grade from s ,sc ,c where s 。
SQL查询语句巩固及练习结果SQL巩固测试题1.找出供应商名称,所在城市select 公司名称,城市from 供应商2.找出华北地区能够供应海鲜的所有供应商列表。
select 公司名称from 供应商aleft join 产品b on a.供应商ID = b.供应商IDleft join 类别c on b.类别ID = c.类别IDwhere a.地区= '华北' and c.类别名称= '海鲜'3.找出订单销售额前五的订单是经由哪家运货商运送的。
select c.订单ID,a.公司名称,round(c.单价*c.数量*(1-c.折扣),2) as 销售额from 运货商a left join 订单b on a.运货商ID = b.运货商left join 订单明细c on b.订单ID = c.订单IDorder by 销售额desc limit 54.找出按箱包装的产品名称。
select 产品名称from 产品where 单位数量like'%箱%'5.找出重庆的供应商能够供应的所有产品列表。
select 产品名称from 产品where 供应商ID in(select 供应商ID from 供应商where 城市= '重庆')6.找出雇员郑建杰所有的订单并根据订单销售额排序。
select a.订单ID,round(sum(a.单价*a.数量*(1-a.折扣)),2) as 销售额from 订单明细a left join 订单b on a.订单ID = b.订单ID left join 雇员c on b.雇员ID = c.雇员IDwhere c.姓⽒= '郑' and c.名字= '建杰'group by 订单IDorder by 销售额desc7.找出订单10284的所有产品以及订单⾦额,运货商。
SqlServer数据库查询语句练习题含答案第三章综合练习1.创建⼀个数据库,数据库名字edu,数据⽂件逻辑名字edu_data,初始⼤⼩10M,最⼤为1024M,增长⽐例为每次1M;⽇志⽂件逻辑名字为edu_log,初始⼤⼩5M,最⼤为100M,按10%⽐例增长,这些⽂件都存储到E盘根⽬录下,并且物理⽂件名与逻辑⽂件名全部相同。
CREATE DATABASE eduON PRIMARY( NAME = N'educ_data', FILENAME = N'e:\educ_data.mdf' , SIZE = 10240KB , MAXSIZE = 1024M , FILEGROWTH = 1M) LOG ON( NAME = N'educ_log', FILENAME = N'e:\educ_log.ldf' , SIZE = 5M , MAXSIZE = 100M , FILEGROWTH = 10% )2.在edu数据库⾥创建⼀个架构,架构名字为⾃⼰名字的汉语拼⾳。
create schema zhangsan; --⾃⼰名字的汉语拼⾳3.在创建的架构中,创建如下表:表1 student表(学⽣信息表)表3 student_course表(学⽣选课成绩表)表4 teacher表(教师信息表)表6 department表(院系息表)创建表的时候必须建⽴主、外键关系。
create table zhangsan.department( dno char(6) primary key,dname char(8) not null,dhome varchar(40),dzipcode char(6),dtel varchar(40))create table zhangsan.student(sno char(8) not null primary key, sname char(8) not null,sex char(2),[native] char(20),birthday datetime,pno char(4),dno char(6),classno char(4),entime datetime,home varchar(40),tel varchar(40)foreign key(dno) references department(dno) )create table zhangsan.course(cno char(10) primary key,cname char(20) not null,cpno char(10),experiment tinyint,lecture tinyint,semester tinyint,credit tinyint,foreign key (cpno) references course(cno))create table zhangsan.student_course(sno char(8),cno char(10),score tinyint,primary key(sno,cno),foreign key(sno) references student(sno), foreign key(cno) references course(cno) )create table zhangsan.teacher(tno char(8) primary key,tname char(8) not null,sex char(2),birthday datetime,dno char(6),pno tinyint,home varchar(40),zipcode char(6),tel varchar(40),email varchar(40),foreign key(dno) references department(dno))create table zhangsan.teacher_course(tcid smallint primary key,tno char(8),classno char(4),cno char(10) not null,semester char(6),schoolyear char(10),classtime varchar(40),classroom varchar(40),weektime tinyint,foreign key(tno) references teacher(tno),foreign key(cno) references course(cno))4.建⽴、删除索引(1)在student表的sname列建⽴唯⼀降序索引;create unique index IX_STUDENT_SNAME on zhangsan.student(sname desc)(2)在course表的credit列上建⽴升序索引;create index IX_COURSE_CREDIT on zhangsan.course(credit)(3)在student_course表的sno列上建⽴聚集索引。
(精品仓库管理)数据库sql查询语句练习2_习题_结果(单世民)仓库_习题数据库结构如下:仓库(仓库号,城市,面积)订购单(职工号,供应商号,订购单号,订购日期)供应商(供应商号,供应商名,地址)职工(仓库号,职工号,工资)具体数据如下:仓库表:仓库号,城市,面积WH1,北京,370WH2,上海,500WH3,广州,200WH4,武汉,400订购单表:职工号,供应商号,订购单号,订购日期E3,S7,OR67,06/23/01E1,S4,OR73,07/28/01E5,S4,OR76,05/25/01E6,S6,OR77,05/26/01E3,S4,OR79,06/13/01E1,S2,OR80,08/29/01E3,S3,OR90,09/01/01E3,S3,OR91,07/13/01供应商表:供应商号,供应商名,地址S2,名硕电子公司,苏州S3,振华电子厂,西安S4,华通电子公司,北京S6,607厂,郑州S7,爱华电子厂,北京职工表:仓库号,职工号,工资WH2,E1,1220WH1,E3,1210WH2,E4,1250WH3,E5,1230WH1,E6,1250使用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查询举例(含答案)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(sql查询举例(含答案))的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为sql查询举例(含答案)的全部内容。
查询练习一、简单查询(无条件查询):1、查询“学生档案”表中所有的记录SELECT * FORM 学生档案2、查询“学生档案”表中全体学生的姓名、学号、家庭地址SELECT 姓名,学号,家庭地址 FROM 学生档案二、有条件查询1、查询“成绩管理”表中语文成绩在80分以下的学生的学号。
SELECT 学号 FROM 成绩管理 WHERE 语文<802、查询“成绩管理”表中语文成绩在80分到90分之间的学生的学号,语文,数学,英语成绩。
SELECT 学号,语文,数学,英语FROM成绩管理WHERE 语文 >= 80 AND 语文<=90==(语文 BETWEEN 80 AND 90)3、查询“成绩管理”表中数学成绩不在75分到85分之间的学生的学号,语文,数学,英语成绩.SELECT 学号,语文,数学,英语FROM 成绩管理WHERE 数学 NOT BETWEEN 75 AND 854、查询“学生档案”表中李成刚,刘艺梅,郑莉三名学生的信息。
SELECT *FROM 学生档案WHERE 姓名 IN (“李成刚”,“刘艺梅",“郑莉”)==(姓名 =“李成刚” OR 姓名=“刘艺梅” OR 姓名=“郑莉”)5、查询“学生档案"表中所有姓张的学生的姓名、学号和性别SELECT 姓名,学号,性别 FROM学生档案WHERE 姓名 LIKE “张*"6、查询“学生档案”表中所有姓张且全名为三个汉字的学生的姓名SELECT 姓名FROM 学生档案WHERE姓名 LIKE “张??"7、查询“学生档案"表中第二个字符为“建"字的学生的学号和姓名SELECT 学号,姓名FROM 学生档案WHERE姓名 LIKE “?建*”8、查询“学生档案”表中家庭住址为“人民路"和“育才路"的学生学号,姓名,性别和家庭住址.SELECT 学号,姓名,性别,家庭住址FROM 学生档案WHERE家庭住址 LIKE “人民路*" OR家庭住址 LIKE “育才路*"9、查询“学生档案”表中所有团员的学生班级和姓名.SELECT 班级,姓名FROM 学生档案WHERE是否团员=yes10、查询“学生档案”表中1995年4月1日以前出生,女同学或团员的学生记录。
sql习题参考答案SQL习题参考答案SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。
在学习SQL时,练习习题是非常重要的,它们可以帮助我们巩固所学的知识,并提供实践的机会。
本文将为大家提供一些SQL习题的参考答案,以便读者们在学习过程中参考和对照。
1. 查询所有学生的姓名和年龄```sqlSELECT name, ageFROM students;```2. 查询所有学生的姓名和年龄,并按年龄降序排列```sqlSELECT name, ageFROM studentsORDER BY age DESC;```3. 查询所有学生的姓名和年龄,并按年龄升序排列,年龄相同时按姓名升序排列```sqlSELECT name, ageFROM studentsORDER BY age ASC, name ASC;```4. 查询所有学生的姓名和成绩,并显示成绩大于80分的学生```sqlSELECT name, scoreFROM studentsWHERE score > 80;```5. 查询所有学生的姓名和成绩,并显示成绩在70到90之间的学生```sqlSELECT name, scoreFROM studentsWHERE score BETWEEN 70 AND 90;```6. 查询所有学生的姓名和成绩,并显示成绩不在70到90之间的学生```sqlSELECT name, scoreFROM studentsWHERE score NOT BETWEEN 70 AND 90;```7. 查询所有学生的姓名和成绩,并按成绩分组,显示每个分数段的学生数量 ```sqlSELECT score, COUNT(*)FROM studentsGROUP BY score;```8. 查询所有学生的姓名和成绩,并按成绩分组,显示每个分数段的学生数量,并按数量降序排列```sqlSELECT score, COUNT(*)FROM studentsGROUP BY scoreORDER BY COUNT(*) DESC;```9. 查询所有学生的姓名和成绩,并显示成绩在每个分数段的平均成绩```sqlSELECT score, AVG(score)FROM studentsGROUP BY score;```10. 查询所有学生的姓名和成绩,并显示成绩在每个分数段的最高成绩```sqlSELECT score, MAX(score)FROM studentsGROUP BY score;```以上是一些常见的SQL习题及其参考答案。
SQL查询练习参考答案1.分别查询学生表和学生修课表中的全部数据.select * from studentselect * from sc2.查询计算机系的学生的姓名、年龄。
select 姓名,年龄from student where 所在系='计算机系'3.查询选修了c01号课程的学生的学号和成绩。
select 学号,成绩from sc where 课程号='c01'4.查询成绩在70到80分之间的学生的学号,课程号和成绩.select 学号,课程号,成绩from sc where 成绩between 70 and 805.查询计算机系年龄在18到20之间且性别为"男"的学生的姓名和年龄.select 姓名,年龄from student where 所在系='计算机系' and 性别='男' and 年龄between 18 and 206.查询9512101号学生的修课情况.select * from sc where 学号='9512101'7.查询c01号课程成绩最高的分数.select max(成绩) 最高分from sc where 课程号='c01'select 学号,课程号,成绩最高分from sc where 成绩=(select max(成绩) from sc where 课程号='c01')8.查询学生都修了哪些课程,要求列出课程号select distinct 课程号from sc9.查询Northwind 数据库中orders表的OrderID,CustomerID和OrderDate,并奖最新的订购日期(OrderDate)列在前面.use Northwindselect OrderDate,OrderID,CustomerID from orders10.查询Northwind 数据库中orders表的ShipCountry列以B,C,D,F开始且第三个字符为"a"的OrderID,CustomerID和ShipCountry信息.select OrderID,CustomerID,ShipCountry from orders where ShipCountry like '[BCDF]_a%'11.查询Northwind 数据库中orders表的ShipCountry列不以A,B,C,D,E,F开始且最后一个字母是"a"的OrderID,CustomerID和ShipCountry信息.select OrderID,CustomerID,ShipCountry from orders where ShipCountry like '[^ABCDEF]%A' 12.查询学生数据库中学生的最大年龄和最小年龄.use sqllxselect max(年龄) 最大年龄,min(年龄) 最小年龄from student13.查询修了c02号课程的所有学生的平均成绩,最高成绩,最低成绩.select avg(成绩) 平均成绩,max(成绩) 最高成绩,min(成绩) 最低成绩from sc where 课程号='c02'14.统计每个系的学生人数.select 所在系, count(*) 人数from student group by 所在系15.统计每门课程的修课人数和考试最高分.select 课程号,count(*) 修课人数,max(成绩) 最高分from sc group by 课程号16.统计每个学生的选课门数,并按选课门数的递增顺序显示结果select 学号,count(课程号) 选课门数from sc group by 学号order by count(课程号)17.统计各系的修课的学生总数和考试的平均成绩.select 所在系,count(*) 学生总数,avg(成绩) 平均成绩from student st join sc on st.学号=sc.学号group by 所在系18.查询选课门数超过两门的学生的平均成绩和选课门数.select 学号,count(课程号) 选课门数,avg(成绩) 平均成绩from sc group by 学号having count(课程号)>219.列出总成绩超过200分的学生,要求列出学号,总成绩select 学号,sum(成绩) 总成绩from sc group by 学号having sum(成绩)>20020.平均价格超过12.0元的书的类型(type),平均价格,要求只计算有确定价格的图书的情况。
数据库中SQL查询语句习题含答案查询问题:设教学数据库Education 有三个关系:学⽣关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME)(1)检索计算机系的全体学⽣的学号,姓名与性别; (2)检索学习课程号为C2的学⽣学号与姓名; (3)检索选修课程名为“DS ”的学⽣学号与姓名; (4)检索选修课程号为C2或C4的学⽣学号;(5)检索⾄少选修课程号为C2与C4的学⽣学号; (6)检索不学C2课的学⽣姓名与年龄; (7)检索学习全部课程的学⽣姓名;(8)查询所学课程包含学⽣S3所学课程的学⽣学号。
(1)检索计算机系的全体学⽣的学号,姓名与性别; SELECTSno,Sname,Sex FROM SWHERE Sdept =’CS ’;(2)检索学习课程号为C2的学⽣学号与姓名;分别(1)⾸先在C 表中找出“DS ”课程的课程号Cno;(2)然后在SC 表中找出Cno 等于第⼀步给出的Cno 集合中的某个元素Cno;(3)最后在S 关系中选出Sno 等于第⼆步中Sno 集合中某个元素的元组,取出Sno 与Sname 送⼊结果表列。
SELECTSno,Sname FROM SWHERE Sno IN (SELECT Sno FROM SCWHERE Cno IN (SELECT Cno FROM CWHERE Cname=‘DS ’));(4)检索选修课程号为C2或C4的学⽣学号; SELECT Sno FROM SCWHERE Cno=‘C2’ OR Cno=‘C4’;(5)检索⾄少选修课程号为C2与C4的学⽣学号; SELECT SnoFROM SC X,SC YWHERE X 、Sno=Y 、Sno AND X 、Cno=‘C2’ AND Y 、Cno=‘C4’ ;(6)检索不学C2课的学⽣姓名与年龄; ,学。
数据库sql查询语句练习2_习题_结果(单世民)现在有一教学管理系统,具体的关系模式如下:Student(no,name,sex,birthday,class)Teacher(no,name,sex,birthday,prof,depart)Course(cno,cname,tno)Score(no,cno,degree)其中表中包含如下数据:Course表:Score表:Student表:Teacher表:根据上面描述完成下面问题:(注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL1.写出上述表的建表语句。
命令:create table Student(no int,name varchar(14),sex varchar(2),birthday date,class int);create table Teacher(no int,name varchar(14),sex varchar(2),birthday date,prof varchar(10),depart varchar(10));create table Course(cno varchar(8),cname varchar(14),tno int);create table Score(no int,cno varchar(8),degree int);DML2.给出相应的INSERT语句来完成题中给出数据的插入。
命令:insert into Student values(5001,'李勇','男','1987-7-22',95001);insert into Student values(5002,'刘晨','女','1987-11-15',95002); insert into Student values(5003,'王敏','女','1987-10-5',95001); insert into Student values(5004,'李好尚','男','1987-9-25',95003); insert into Student values(5005,'李军','男','1987-7-17',95004); insert into Student values(5006,'范新位','女','1987-6-18',95005); insert into Student values(5007,'张霞东','女','1987-8-29',95006); insert into Student values(5008,'赵薇','男','1987-6-15',95007); insert into Student values(5009,'钱民将','女','1987-6-23',95008); insert into Student values(5010,'孙俪','女','1987-9-24',95002); insert into Student values(108,'赵里','男','1987-6-15',95007);insert into Student values(109,'丘处机','男','1987-6-23',95008);insert into Student values(107,'杨康','男','1987-9-24',95001);insert into Teacher values(1,'李卫','男','1957-11-5','教授','电子工程系'); insert into Teacher values(2,'刘备','男','1967-10-9','副教授','math'); insert into Teacher values(3,'关羽','男','1977-9-20','讲师','sc'); insert into Teacher values(4,'李修','男','1957-6-25','教授','elec'); insert into Teacher values(5,'诸葛亮','男','1977-6-15','教授','计算机系'); insert into T eacher values(6,'殷素素','女','1967-1-5','副教授','sc'); insert into Teacher values(7,'周芷若','女','1947-2-23','教授','sc'); insert into Teacher values(8,'赵云','男','1980-6-13','副教授','计算机系'); insert into T eacher values(9,'张敏','女','1985-5-5','助教','sc'); insert into T eacher values(10,'黄蓉','女','1967-3-22','副教授','sc');insert into Teacher values(11,'张三','男','1967-3-22','副教授','sc');insert into Course values('3-101','数据库',1);insert into Course values('5-102','数学',2);insert into Course values('3-103','信息系统',3);insert into Course values('3-104','操作系统',4);insert into Course values('3-105','数据结构',5);insert into Course values('3-106','数据处理',5);insert into Course values('4-107','pascal语言',6);insert into Course values('4-108','C++',7);insert into Course values('4-109','java',8);insert into Course values('3-245','数据挖掘',10);insert into Course values('3-111','软件工程',11);insert into Score values(5001,'3-105',69);insert into Score values(5001,'5-102',55);insert into Score values(5003,'4-108',85);insert into Score values(5004,'3-105',77);insert into Score values(5005,'3-245',100);insert into Score values(5006,'3-105',53);insert into Score values(5003,'4-109',45);insert into Score values(5008,'3-105',98);insert into Score values(5004,'4-109',68);insert into Score values(5010,'3-105',88);insert into Score values(5003,'3-105',98);insert into Score values(5005,'4-109',68);insert into Score values(5002,'3-105',88);insert into Score values(107,'3-105',98);insert into Score values(108,'4-109',68);insert into Score values(109,'3-105',88);insert into Score values(109,'4-109',80);insert into Score values(107,'3-111',88);insert into Score values(5003,'3-111',80);单表查询3.以class降序输出student的所有记录(student表全部属性)命令:select*from Student order by class desc;4.列出教师所在的单位depart(不重复)。
数据库面查询语句试题
数据库查询语句是用来从数据库中检索数据的命令。
下面我将从不同角度给出一些关于数据库查询语句的试题。
1. 简单查询,请写出一个简单的SQL查询语句,从名为"students"的表中选择所有学生的信息。
2. 条件查询,请写出一个SQL查询语句,从名为"employees"的表中选择员工姓名和薪水,要求薪水大于5000。
3. 聚合函数,请写出一个SQL查询语句,计算名为"orders"的表中订单总数。
4. 连接查询,请写出一个SQL查询语句,从名为"orders"和"customers"的表中选择订单号、订单日期和客户姓名,要求根据订单表中的客户ID和客户表中的ID进行连接。
5. 子查询,请写出一个SQL查询语句,从名为"products"的表中选择价格最高的产品。
6. 排序和限制,请写出一个SQL查询语句,从名为"students"的表中选择学生姓名和分数,并按分数降序排列,只显示前10名学生。
以上是关于数据库查询语句的一些试题,希望能够帮助你更好地掌握数据库查询语句的基本知识。
如果你有任何疑问或者需要更详细的解答,请随时告诉我。
数据库sql课后练习题及答案解析第一篇:数据库sql课后练习题及答案解析先创建下面三个表:(book表)(borrow表)(reader表)1)找出姓李的读者姓名(NAME)和所在单位(COMPANY)。
2)列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。
3)查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。
4)查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。
5)查找书名以”计算机”开头的所有图书和作者(WRITER)。
6)检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。
##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。
8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。
9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。
##10)* 找出借阅了一书的借书证号。
11)找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。
12)查询2006年7月以后没有借书的读者借书证号、姓名及单位。
#13)求”科学出版社”图书的最高单价、最低单价、平均单价。
##14)* 求”信息系”当前借阅图书的读者人次数。
#15)求出各个出版社图书的最高价格、最低价格和总册数。
#16)分别找出各单位当前借阅图书的读者人数及所在单位。
17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。
18)分别找出借书人次数多于1人次的单位及人次数。
19)找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。
20)查询经济系是否还清所有图书。
如果已经还清,显示该系所有读者的姓名、所在单位和职称。
1.以图5-1的数据库为例,用SQL完成以下检索:1)检索在北京的供应商的名称。
SELECT * FROM 供应商WHERE 地址=’北京’2)检索发给供应商S6的订购单号。
SELECT 订购单号FROM 订购单WHERE 供应商号=’S6’3)检索出职工E6发给供应商S6的订购单信息。
SELECT * FROM 订购单WHERE 供应商号=’S6’ AND 职工号=’E6’4)检索出向供应商S3发过订购单的职工的职工号和仓库号。
SELECT 职工号,仓库号FROM 职工WHERE 职工号IN( SELECT 职工号FROM 订购单WHERE 供应商号=’S3’ )5)检索出目前与S3供应商没有联系的职工信息。
SELECT * FROM 职工WHERE 职工号NOT IN( SELECT 职工号FROM 订购单WHERE 供应商号=’S3’ )6)检索出目前没有任何订购单的供应商信息。
SELECT * FROM 供应商WHERE NOT EXISTS( SELECT * FROM 订购单WHERE 供应商号=供应商.供应商号)7)检索出和职工E1、E3都有联系的北京的供应商信息。
SELECT * FROM 供应商WHERE 地址=‘北京’and供应商号IN ( SELECT 供应商号FROM 订购单WHERE 职工号=’E1’ )AND 供应商号IN( SELECT 供应商号FROM 订购单WHERE 职工号=’E3’ )8)检索出目前和华通电子公司有业务联系的每个职工的工资。
SELECT 职工号,工资FROM 职工WHERE 职工号IN(SELECT 职工号FROM 订购单WHERE 供应商号IN(SELECT 供应商号FROM 供应商WHERE 供应商名=’华通电子公司’))9)检索出与工资在1220元以下的职工没有联系的供应商的名称。
SELECT 供应商名FROM 供应商WHERE 供应商号NOT IN(SELECT 供应商号FROM 订购单WHERE 职工号IN(SELECT 职工号FROM 职工WHERE 工资< 1220))10)检索出向S4供应商发出订购单的仓库所在的城市。
(精品仓库管理)数据库sql查询语句练习2_习题_结果(单世民)仓库_习题数据库结构如下:仓库(仓库号,城市,面积)订购单(职工号,供应商号,订购单号,订购日期)供应商(供应商号,供应商名,地址)职工(仓库号,职工号,工资)具体数据如下:仓库表:仓库号,城市,面积WH1,北京,370WH2,上海,500WH3,广州,200WH4,武汉,400订购单表:职工号,供应商号,订购单号,订购日期E3,S7,OR67,06/23/01E1,S4,OR73,07/28/01E5,S4,OR76,05/25/01E6,S6,OR77,05/26/01E3,S4,OR79,06/13/01E1,S2,OR80,08/29/01E3,S3,OR90,09/01/01E3,S3,OR91,07/13/01供应商表:供应商号,供应商名,地址S2,名硕电子公司,苏州S3,振华电子厂,西安S4,华通电子公司,北京S6,607厂,郑州S7,爱华电子厂,北京职工表:仓库号,职工号,工资WH2,E1,1220WH1,E3,1210WH2,E4,1250WH3,E5,1230WH1,E6,1250使用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结果:。