(仓库管理)数据库查询语句练习_习题_结果(单世民)仓库_习题

合集下载

2023 SQL 数据库查询练习题及答案

2023 SQL 数据库查询练习题及答案

2023 SQL 数据库查询练习题及答案数据库查询是数据管理和处理的重要环节,熟练的SQL查询技巧对于数据库工程师和数据分析师来说至关重要。

为了提升大家的SQL 查询能力,以下是一些2023年的SQL数据库查询练习题及答案,希望能够对大家的学习和实践有所帮助。

练习题1:学生成绩表考虑一个学生成绩表(Students)和课程信息表(Courses),请使用SQL查询语句完成以下操作。

1. 查询所有学生的姓名和学号;2. 查询所有参加了"C3"课程的学生的姓名和学号;3. 查询所有选择了至少两门课程的学生的姓名和学号;答案1:SELECT 学号, 姓名FROM 学生成绩表;答案2:SELECT 学生成绩表.学号, 学生成绩表.姓名FROM 学生成绩表, 课程信息表WHERE 学生成绩表.课程编号 = 课程信息表.课程编号AND 课程信息表.课程名称 = "C3";答案3:SELECT 学号, 姓名FROM 学生成绩表GROUP BY 学号, 姓名HAVING COUNT(*) >= 2;练习题2:库存管理考虑一个库存管理系统的数据库,包含了商品表(Products)、仓库表(Warehouses)和库存表(Inventory)。

请使用SQL查询语句完成以下操作。

1. 查询商品表中单价不低于100元的商品的名称和单价;2. 查询所有位于“北京”仓库中的商品的名称和库存量;3. 查询库存量最多的商品的名称和库存量;答案1:SELECT 名称, 单价FROM 商品表WHERE 单价 >= 100;答案2:SELECT 商品表.名称, 库存表.库存量FROM 商品表, 仓库表, 库存表WHERE 商品表.商品ID = 库存表.商品IDAND 仓库表.仓库ID = 库存表.仓库IDAND 仓库表.所在地 = "北京";答案3:SELECT 商品表.名称, 库存表.库存量FROM 商品表, 库存表WHERE 商品表.商品ID = 库存表.商品IDORDER BY 库存表.库存量 DESCLIMIT 1;练习题3:订单管理考虑一个订单管理系统的数据库,包含了客户表(Customers)、订单表(Orders)和订单详情表(OrderDetails)。

仓库管理查询答案

仓库管理查询答案

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供应商发出订购单的仓库所在的城市。

数据库习题与答案

数据库习题与答案

数据库习题与答案一、选择题1、以下哪个不是数据库的特征?A.共享性B.安全性C.完整性D.随意性答案:D.随意性解释:数据库具有共享性、安全性、完整性等特征,但随意性并不是数据库的特征。

2、下列哪个是关系型数据库的优点?A.易于使用和管理B.支持复杂查询C.可以存储大量数据D.以上都是答案:D.以上都是解释:关系型数据库具有易于使用和管理、支持复杂查询、可以存储大量数据等优点。

3、SQL是下列哪个数据库系统的标准语言?A. OracleB. MySQLC. SQL ServerD. DB2答案:A. Oracle解释:SQL是Oracle数据库系统的标准语言。

4、下列哪个是数据库系统的组成部分?A.数据库B.操作系统C.应用程序D.以上都是答案:D.以上都是解释:数据库系统由数据库、操作系统、应用程序等组成。

5、下列哪个是对数据库系统的正确描述?A.数据库系统可以取代文件系统B.数据库系统与文件系统完全不同C.数据库系统是一个层次结构D.数据库系统是一个客户-服务器结构答案:D.数据库系统是一个客户-服务器结构解释:数据库系统是一个客户-服务器结构,它由多个组成部分组成,包括数据库、操作系统、应用程序等。

与文件系统相比,数据库系统可以提供更高效、更可靠的数据存储和管理。

二、填空题1、________是指数据的结构化程度。

关系型数据库中的数据是按照__________组织的。

答案:数据结构化;表格形式解释:数据的结构化程度是指数据之间关系的清晰程度和组织方式。

在关系型数据库中,数据是按照表格形式组织的,每个表格由行和列组成,行表示记录,列表示字段。

2、SQL语言中,可以使用_________关键字来创建一个新的表格。

____________用于向表格中插入数据。

答案:CREATE TABLE;INSERT INTO解释:在SQL语言中,可以使用CREATE TABLE关键字来创建一个新的表格。

INSERT INTO用于向表格中插入数据。

数据库-查询练习1~52(含参考答案)

数据库-查询练习1~52(含参考答案)

查询练习题第一部分:【1】从fruits表中检索所有字段的数据Select * from fruits;【2】查询fruits表中f_name列所有水果名称Select f_name from fruits;【3】从fruits表中获取f_name和f_price两列Select f_name,f_price from fruits;【4】查询价格为10.2元的水果的名称Select f_name from fruits where f_price=10.2;【5】查找名称为“apple”的水果的价格Select f_price from fruits where f_name=’apple’;【6】查询价格小于10的水果的名称Select f_name from fruits where f_peice<10;【7】s_id为101和102的记录Select * from fruits where s_id=101 or s_id=102;【8】查询所有s_id不等于101也不等于102的记录Select * from fruits where s_id!=101 and s_id!=102;【9】查询价格在2.00元到10.20元之间的水果名称和价格Select f_name,f_price from fruits where f_price>2.00 and f_price<10.20;【10】查询价格在2.00元到10.20元之外的水果名称和价格Select f_name,f_price from fruits where f_price<2.00 or f_price>10.20;【11】查找所有以’b’字母开头的水果Select f_name from fruits where f_name like ‘b%’;【12】在fruits表中,查询f_name中包含字母’g’的记录Select * from fruits where f_name like “%g%”;【13】查询以’b’开头,并以’y’结尾的水果的名称Select * from fruits where f_name like “b%y”;【14】在fruits表中,查询以字母’y’结尾,且’y’前面只有4个字母的记录Select * from fruits where f_name like “____y”;第二部分:SELECT COUNT(*) AS cust_num FROM customers;【15】查询customers表中c_email为空的记录的c_id、c_name和c_email字段值Select c_id,c_name,c_email from customers where c_email is null;【16】查询customers表中c_email不为空的记录的c_id、c_name和c_email字段值Select c_id,c_name,c_email from customers where c_email is not null;【17】在fruits表中查询s_id = 101,并且f_price大于等于5的水果价格和名称Select f_name,f_price from fruits where s_id=101 and f_price>=5;【18】在fruits表中查询s_id = 101或者102,且f_price大于5,并且f_name=‘apple’的水果价格和名称Select f_name,f_price from fruits where s_id in (101,102) and f_price>5 and f_name=’apple’;【19】查询s_id=101或者s_id=102的水果供应商的f_price和f_nameSelect f_price,f_name from fruits where s_id=101 or s_id=102;【20】查询s_id=101或者s_id=102的水果供应商的f_price和f_name(用不同的方法)Select f_price,f_name from fruits where s_id in (101,102);【21】查询fruits表中s_id字段的值,返回s_id字段值且不得重复(使用distinct去重复)SELECT DISTINCT s_id FROM fruits;【22】查询fruits表的f_name字段值,并对其进行排序Select f_name from fruits order by f_name;【23】查询fruits表中的f_name和f_price字段,先按f_name排序,再按f_price排序Select f_name,f_price from fruits order by f_name,f_price;【24】查询fruits表中的f_name和f_price字段,对结果按f_price降序方式排序Select f_name,f_price from fruits order by f_price desc;【25】查询fruits表,先按f_price降序排序,再按f_name字段升序排序Select * from fruits order by f_price desc,f_name;【26】根据s_id对fruits表中的数据进行分组,并显示每个分组的总记录数。

数据库基础课后习题及答案

数据库基础课后习题及答案

数据库基础课后习题及答案数据库基础课后习题及答案数据库是计算机科学中非常重要的一个概念,它用于存储和管理大量的数据。

在数据库基础课程中,学生通常需要完成一些习题来巩固所学的知识。

本文将介绍一些常见的数据库基础课后习题,并提供相应的答案。

一、选择题1. 数据库是指什么?A. 存储和管理数据的软件系统B. 存储和管理硬件设备的软件系统C. 存储和管理网络的软件系统D. 存储和管理操作系统的软件系统答案:A2. 数据库管理系统(DBMS)的主要功能是什么?A. 存储和管理数据B. 分析和处理数据C. 网络和通信D. 操作系统管理答案:A3. 下列哪个不属于数据库的特点?A. 数据共享B. 数据冗余C. 数据独立性D. 数据一致性答案:B4. 数据库中的数据是以什么形式存储的?A. 文件B. 表格C. 文本D. 图像答案:B5. 数据库中的主键是什么?A. 唯一标识一个记录的属性B. 存储在数据库中的所有数据C. 数据库中的表格D. 数据库中的索引答案:A二、填空题1. 数据库中的关系是指什么?关系是指数据之间的联系和关联。

2. 数据库中的SQL是什么意思?SQL是结构化查询语言(Structured Query Language)的缩写。

3. 数据库中的DDL是什么意思?DDL是数据定义语言(Data Definition Language)的缩写。

4. 数据库中的DML是什么意思?DML是数据操作语言(Data Manipulation Language)的缩写。

5. 数据库中的索引有什么作用?索引可以提高数据库的查询效率,加快数据检索的速度。

三、简答题1. 数据库的三级模式是什么?数据库的三级模式包括外模式、概念模式和内模式。

外模式是用户对数据库的直接接口,概念模式是数据库的全局逻辑结构,内模式是数据库在物理存储上的表示。

2. 数据库的ACID是什么意思?ACID是数据库事务的四个特性,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

数据库sql查询语句练习2习题结果单世民仓库习题.docx

数据库sql查询语句练习2习题结果单世民仓库习题.docx

数据库 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结果:。

《数据库管理系统》课后习题参考答案2

《数据库管理系统》课后习题参考答案2

《数据库管理系统》课后习题参考答案习题一(P30)一、选择题二、填空题1.事物之间的联系2.命令方式3.关系模型4.多对多5.元组属性6.外部关键字7.QUIT8.关系运算9.空值10.若干个二维表11..pjx12.数据模型习题二(P48)一、选择题二、填空题1.逻辑型(或者L).T.2.字符型(C)、数值型(N)、日期时间型(T)3.11.254.15 m(2, 5)5.X^2+(x+2)/(y-8)习题三(P78)一、选择题二、填空题1.SELECT 02..dbf3..cdx 复合索引4..T.5.物理排序逻辑排序6.SET RELATION7.数据库8.8三、上机题3.打开商品表,为下列要求写出命令序列(1)list for recno()= 5(2)list for recno()>=2 and recno()<=6(3)list for recno()>=3 and recno()<=5(4)list 商品货号,商品名称,生产单位,数量for 数量<5(5)list for 进口否=.t. or year (开单日期)=2008(6)list for “上海”$生产单位(7)list for(单价>4000 and 进口否=.t.) or (单价<5000 and 进口否=.f.) (8)list 商品货号,商品名称,单价*0.9,开单日期for year(开单日期)=2008 (9)list for(单价<2000 or 单价>5000) and 进口否=.t.(10)list for recno()>=2 and 进口否=.f.(11)list for right(商品货号,3)=”120”(12)list for left (商品货号,1)="L" or substr(商品货号,2,1)="V"(13)list for 单价>30004.试对“商品.dbf”分别排序(1)sort to temp on 数量ascending for 单价>3000 FIELDS 商品货号,商品名称,数量,单价,生产单位(2)sort to temp on 商品名称/D,开单日期/D for 单价>3000 FIELDS 商品货号,商品名称,数量,单价,生产单位5.使用命令为“商品.dbf”建立一个结构复合索引文件,其中包含三个索引(1)INDEX ON 商品货号TAG 索引1 DESC(2)INDEX ON 商品名称+DTOC(开单日期) TAG 索引2 DESC(3)INDEX ON 生产单位+DTOC(开单日期) TAG 索引3 DESC6.分别用顺序查询和索引查询两种方法查询2009年开单的商品顺序查询:索引查询:习题四(P102)一、选择题二、填空题1.实体2.插入3..dbc4.主普通三、上机题略习题五(P113)一、选择题二、填空题1.条件2.更新条件4.远程三、上机题略习题六(P141)一、选择题二、填空题1.Structured Query Language2.COUNT() SUM() A VG3.EXISTS XS.学生号4.INSERT INTO5.LIKE6.逻辑7.INTO CURSOR8.INTO DBF|TABLE9.PRIMARY KEY10..NULL.三、上机题1.利用本章建立的定货数据库,用SQL语句完成以下操作(1)SELECT 供应商名FROM 供应商WHERE 地址=”上海”(2)SELECT 仓库名, AVG(面积) AS 面积FROM 仓库(3)SELECT 仓库号, COUNT(*) FROM 职工WHERE 工资>2800 GROUP BY 仓库号(4)SELECT DIST 城市FROM 仓库,职工,订购单WHERE 供应商号=”S2”AND 订购单.职工号=职工.职工号AND 职工.仓库号=仓库.仓库号(5)SELECT 订购单号FROM 订购单WHERE 职工号IN (SELECT 职工号FROM 职工WHERE 工资>2800) AND 供应商号IN (SELECT 供应商号FROM 供应商WHERE 地址=”上海”)(6)SELECT 职工号,仓库号FROM 职工WHERE 职工号IN (SELECT 职工号FROM 订购单WHERE 供应商号=”S1”)(7)SELECT * FROM 供应商WHERE 地址=”北京”AND 供应商号IN (SELECT 供应商号FROM 订购单WHERE 职工号=”E1”) AND 供应商号IN (SELECT 供应商号FROM 订购单WHERE 职工号=”E4”)(8)SELECT * FROM 职工 A WHERE 工资<(SELECT A VG(工资) FROM 职工 B WHERE A.仓库号=B.仓库号)(9)INSERT INTO 仓库VALUES(“WH7”,”亿旺仓储”,”北京”,1500.00)(10)DELETE * FROM 供应商WHERE 供应商号NOT IN (SELECT 供应商号FROM 订购单)PACK(11)UPDATE 职工SET 工资=工资*1.02 WHERE 工资<(SELECT A VG(工资) FROM 工资)2.示例:建立学生管理数据库,其中包含有系:(系号(C 6),系名(C 20))1.按照系号建立主索引;学生:(学号(C 10),系号(C 6),姓名(C 20),性别(L),出生日期(D))1.按照学号建立主索引;2.出生日期字段有效性规则为:出生日期应小于系统当前日期,否则提示“出生日期输入错误!”课程:(课程号(I),课程名(C 50))1.按照课程号建立主索引成绩:(学号(C 10),课程号(I),成绩(N 5 1))1.成绩字段的有效性规则为:成绩应介于0~100分之间,否则提示“成绩应介于0~100之间”,默认值为60分;2.按照学号建立普通索引并与学生表建立联系;3.按照课程号建立普通索引并与课程表建立联系;命令如下:* 建立学生管理数据库CREA DATABASE 学生管理&&建立须生管理数据库*建立系表CREATE TABLE 系( 系号C(6) PRIMARY KEY, 系名C(20))*建立学生表CREATE TABLE 学生( 学号C(10) PRIMARY KEY, 系号C(6), 姓名C(20), 性别L, 出生日期D CHECK (出生日期<=DATE()) ERROR "出生日期输入错误!" , FOREIGN KEY 系号TAG 系号REFERENCES 系)*建立课程表CREATE TABLE 课程( 课程号I PRIMARY KEY, 课程名C(50))*建立成绩表CREATE TABLE 成绩( 学号C(10),课程号I, 成绩N(5,1) CHECK (成绩>=0 AND 成绩<=100) ERROR "成绩应介于0~100之间" DEFAULT 60, FOREIGN KEY 学号TAG 学号REFERENCES 学生, FOREIGN KEY 课程号TAG 课程号REFERENCES 课程)【提示】操作完成后,可以使用:OPEN DA TABASE 学生管理MODI DA TABASE 查看结果。

数据库sql查询语句练习4_习题_结果(单世民)图书_习题

数据库sql查询语句练习4_习题_结果(单世民)图书_习题

数据库sql查询语句练习4_习题_结果(单世民)图书_习题现有图书管理数据库的三个关系模式:图书(总编号, 分类号, 书名, 作者, 出版单位, 单价)读者(借书证号, 单位, 姓名, 性别, 职称, 地址)借阅(借书证号, 总编号, 借书⽇期)具体数据为:读者:根据以上描述,请完成:DDL1.写出创建上述表的语句命令:create table图书(总编号varchar(7)primary key,分类号varchar(8),书名varchar(18),作者varchar(8),出版单位varchar(18),单价float)create table读者(借书证号varchar(4)primary key,单位varchar(7),姓名varchar(8),性别varchar(2),职称varchar(8),地址varchar(18))create table借阅(借书证号varchar(3),总编号varchar(6),借书⽇期date,primary key(借书证号,总编号,借书⽇期))DML2.给出插⼊上述数据的insert语句命令:insert into图书values('445501','TP3/12','数据库导论','王强','科学出版社', insert into图书values('445502','TP3/12','数据库导论','王强','科学出版社', insert into图书values('445503','TP3/12','数据库导论','王强','科学出版社', insert into图书values('332211','TP5/10','计算机基础','李伟','⾼等教育出版社', insert into图书values('112266','TP3/12','FoxBASE','张三','电⼦⼯业出版社', insert into图书values('665544','TS7/21','⾼等数学','刘明','⾼等教育出版社', insert into图书values('114455','TR9/12','线性代数','孙业','北京⼤学出版社', insert into图书values('113388','TR7/90','⼤学英语','胡玲','清华⼤学出版社', insert into图书values('446601','TP4/13','数据库基础','马凌云','⼈民邮电出版社',insert into图书values('446602','TP4/13','数据库基础','马凌云','⼈民邮电出版社',insert into图书values('446603','TP4/13','数据库基础','马凌云','⼈民邮电出版社',insert into图书values('449901','TP4/14','FoxPro⼤全','周虹','科学出版社', insert into图书values('449902','TP4/14','FoxPro⼤全','周虹','科学出版社', insert into图书values('118801','TP4/15','计算机⽹络','黄⼒钧','⾼等教育出版社',insert into图书values('118802','TP4/15','计算机⽹络','黄⼒钧','⾼等教育出版社',insert into读者values('111','信息系','王维利','⼥','教授','1号楼')insert into读者values('112','财会系','李⽴','男','副教授','2号楼')insert into读者values('113','经济系','张三','男','讲师','3号楼')insert into读者values('114','信息系','周华发','男','讲师','1号楼')insert into读者values('115','信息系','赵正义','男','⼯程师','1号楼')insert into读者values('116','信息系','李明','男','副教授','1号楼')insert into读者values('117','计算机系','李⼩峰','男','助教','1号楼')insert into读者values('118','计算机系','许鹏飞','男','教授','1号楼')insert into读者values('119','计算机系','刘⼤龙','男','副教授','4号楼') insert into读者values('120','国际贸易','李雪','男','副教授','4号楼') insert into读者values('121','国际贸易','李爽','⼥','讲师','4号楼') insert into读者values('122','国际贸易','王纯','⼥','讲师','4号楼') insert into读者values('123','财会系','沈⼩霞','⼥','助教','2号楼') insert into读者values('124','财会系','朱海','男','讲师','2号楼')insert into读者values('125','财会系','马英明','男','副教授','2号楼')insert into借阅values('112','445501','1997-3-19')insert into借阅values('125','332211','1997-2-12')insert into借阅values('111','445503','1997-8-21')insert into借阅values('112','112266','1997-3-14')insert into借阅values('114','665544','1997-10-21')insert into借阅values('120','114455','1997-11-2')insert into借阅values('120','118801','1997-10-18')insert into借阅values('119','446603','1997-12-12')insert into借阅values('112','449901','1997-10-23')insert into借阅values('115','449902','1997-8-21')insert into借阅values('118','118801','1997-9-10')单表查询3.找出姓李的读者姓名和所在单位命令:select姓名,单位from读者where姓名like'李%'结果:4.列出图书库中所有藏书的书名以及出版单位命令:select distinct书名,出版单位from图书结果:5.查找出⾼等教育出版社的所有图书及单价,结果按单价降序排列命令:select distinct书名,单价from图书where出版单位='⾼等教育出版社' order by单价desc结果:6.查找出价格位于10元和20元之间的图书种类,结果按出版单位和单价升序排序命令:select*from图书where单价between 10 and 20 order by出版单位,单价结果:7.找出书名以“计算机”打头的所有图书和作者命令:select distinct书名,作者from图书where书名like'计算机%'结果:8.检索同时接借阅了总编号为112266和449901两本书的借书证号命令:select借书证号from借阅where总编号='112266'intersect select借书证号from借阅where总编号='449901'结果:9.求科学出版社图书的最⾼单价、最低单价和平均单价命令:select MAX(单价)最⾼单价,MIN(单价)最低单价,AVG(单价)平均单价from 图书where出版单位='科学出版社'结果:聚合查询10.找出藏书中各个出版社的册数、价值总额命令:select出版单位,COUNT(*)册数,SUM(单价)价值总额from图书group by 出版单位结果:11.求出各个出版社图书的最⾼价格、最低价格和册数命令:select出版单位,COUNT(*)册数,max(单价)最⾼价格,MIN(单价)最低价格from图书group by出版单位结果:多表查询12.查找所有借了书的读者的姓名以及所在单位命令:select distinct姓名,单位from读者join借阅on读者.借书证号=借阅.借书证号结果:13.找出李某所借图书的所有图书的书名及借书⽇期命令:select姓名,书名,借书⽇期from读者join借阅on读者.借书证号=借阅.借书证号join图书on借阅.总编号=图书.总编号where 姓名like'李%'结果:14.查询1997年10⽉以后借书的读者借书证号、姓名和单位命令:select distinct读者.借书证号,姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号whereDATEDIFF(MONTH,'1977-10-1',借书⽇期)>=0结果:15.找出借阅了FoxPro⼤全⼀书的借书证号命令:select借书证号from借阅join图书on借阅.总编号=图书.总编号where 书名='FoxPro⼤全'结果:16.分别找出借书⼈次超过1⼈次的单位及⼈次数命令:select单位,COUNT(*)⼈次数from借阅join读者on借阅.借书证号=读者.借书证号group by单位having COUNT(*)>1结果:⼦查询17.找出与赵正义在同⼀天借书的读者姓名、所在单位以及借书⽇期命令:select姓名,单位,借书⽇期from读者join借阅on读者.借书证号=借阅.借书证号where借书⽇期=(select借书⽇期from借阅join读者on借阅.借书证号=读者.借书证号where姓名='赵正义')结果:18.查询1997年7⽉以后没有借书的读者借书证号、姓名以及单位命令:select借书证号,姓名,单位from读者except select借阅.借书证号,姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号where DATEDIFF(DAY,'1997-7-1',借书⽇期)>=0结果:19.求信息系当前借阅图书的读者⼈次数命令:select COUNT(*)⼈次数from借阅join读者on借阅.借书证号=读者.借书证号where单位='信息系'结果:20.找出当前⾄少借阅了2本书的读者及所在单位命令:select姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号group by读者.姓名,单位having COUNT(*)>=2结果:21.查询经济系是否还清所有图书。

数据库课后习题完整答案

数据库课后习题完整答案

习题参考答案第1章习题参考答案一、选择题1. C2. B3. D4. C5. D6. A7. A8. B9. D、10. B 11. C 12. D 13. A 14. D 15. B二、填空题1. 数据库系统2. 关系3. 物理独立性4. 操作系统5. 数据库管理系统(DBMS)6. 多对多7. 独立性8. 完整性控制9. 逻辑独立性10. 关系模型11. 概念结构(逻辑)12. 树有向图二维表嵌套和递归13. 宿主语言(或主语言)14. 数据字典15. 单用户结构主从式结构分布式结构客户/服务器结构浏览器/服务器结构第2章习题参考答案一、选择题1. A2. C3. C4. B5. B6. C7. B8. D9. C 10. A 11. B 12. A 13. A 14. D 15. D二、填空题1. 选择(选取)2. 交3. 相容(或是同类关系)4. 并差笛卡尔积选择投影5. 并差交笛卡尔积6. 选择投影连接7. σf(R)8. 关系代数关系演算9. 属性10. 同质11. 参照完整性12. 系编号系名称,电话,办公地点13. 元组关系域关系14. 主键外部关系键15. R和S没有公共的属性三、简答7.σtno=’T1’(T)*TC*C)(1)∏cno,cn(σage>18∧Sex=’男’ (S))(2)∏sno,sn,dept(σtn=’李力’(T)*TC*C)(3)∏cno,cn,ct(σsno=’s1’(S)*SC*C)(4)∏cno,cn,score(σsn=’钱尔’(S)*SC*∏cno,cn(C)) (5)∏cno,cn,score(σtn=’刘伟’(T)*TC)(6)∏sn,cno(S*SC)÷∏cno(σsn=’李思’(S))*C)(7)∏cno,cn(C)-∏cno,cn(SC*((8)∏cno,cn,sno(C*SC)÷∏sno(S)σcno=’c1’∨cno=’c2’ (SC)) (9)∏sno,sn,cno(S*SC)*∏cno((10)∏sno,sn,cno(S*SC)÷∏cno(C)第3章习题参考答案一、填空题1.结构化查询语言(Structured Query Language)2.数据查询、数据定义、数据操纵、数据控制3.外模式、模式、内模式4.数据库、事务日志5.NULL/NOT NULL、UNIQUE约束、PRIMARY KEY约束、FOREIGNKEY约束、CHECK约束6.聚集索引、非聚集索引7.连接字段8.行数9.定义10.系统权限、对象权限11.基本表、视图12.(1)INSERT INTO S VALUES('990010','李国栋','男',19)(2)INSERT INTO S(No,Name) VALUES('990009', '陈平')(3)UPDATE S SET Name='陈平' WHERE No='990009'(4)DELETE FROM S WHERE No='990008'(5)DELETE FROM S WHERE Name LIKE '陈%'13.CHAR(8) NOT NULL14.o=o15.ALTER TABLE StudentADDSGrade CHAR(10)二、选择题1. B2. A3. C4. B5. C6. C7. B8. D9. A 10. D第4章习题参考答案一、选择题1. B2. B3. D4. B5. C6. D7. B8. D9. C 10. A二、填空题1. 超键(或超码)2. 正确完备3. 属性集X的闭包X +函数依赖集F的闭包F +4. 平凡的函数依赖自反性5. {AD→C} φ6. 2NF 3NF BCNF7. 无损连接保持函数依赖8. AB BC BD9. B→φB→B B→C B→BC10. B→C A→D D→C11. AB1NF12. AD3NF三、简答题1、2、3、4、5、解(1)根据F对属性分类:L类属性:BD。

数据库课后习题参考答案与解析.doc

数据库课后习题参考答案与解析.doc

第1章数据概述一.选择题1.下列关于数据库管理系统的说法,错误的是CA.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名2.下列关于用文件管理数据的说法,错误的是DA.用文件管理数据,难以提供应用程序对数据的独立性B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序C.用文件存储数据的方式难以实现数据访问的安全控制D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率3.下列说法中,不属于数据库管理系统特征的是CA.提供了应用程序和数据的独立性B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合C.用户访问数据时,需要知道存储数据的文件的物理信息D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失5.在数据库系统中,数据库管理系统和操作系统之间的关系是DA.相互调用B.数据库管理系统调用操作系统C.操作系统调用数据库管理系统D.并发运行6.数据库系统的物理独立性是指DA.不会因为数据的变化而影响应用程序B.不会因为数据存储结构的变化而影响应用程序C.不会因为数据存储策略的变化而影响数据的存储结构D.不会因为数据逻辑结构的变化而影响应用程序7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作系统之间,属于AA.系统软件B.工具软件C.应用软件D.数据软件8.数据库系统是由若干部分组成的。

下列不属于数据库系统组成部分的是B A.数据库B.操作系统C.应用程序D.数据库管理系统9.下列关于客户/服务器结构和文件服务器结构的描述,错误的是DA.客户/服务器结构将数据库存储在服务器端,文件服务器结构将数据存储在客户端B.客户/服务器结构返回给客户端的是处理后的结果数据,文件服务器结构返回给客户端的是包含客户所需数据的文件C.客户/服务器结构比文件服务器结构的网络开销小D.客户/服务器结构可以提供数据共享功能,而用文件服务器结构存储的数据不能共享数据库是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。

数据库sql查询语句上机练习1_习题_结果(单世民)

数据库sql查询语句上机练习1_习题_结果(单世民)

习题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语句来完成题中给出数据的插入。

数据库课后练习及答案

数据库课后练习及答案

数据库课后练习及答案第⼀章:⼀、单选题1.以下的英⽂缩写中表⽰数据库管理系统的是( B)。

A. DB B.DBMS C.DBA D.DBS2.数据库管理系统、操作系统、应⽤软件的层次关系从核⼼到外围分别是(B )。

A. 数据库管理系统、操作系统、应⽤软件B. 操作系统、数据库管理系统、应⽤软件C. 数据库管理系统、应⽤软件、操作系统D. 操作系统、应⽤软件、数据库管理系统3.DBMS是(C )。

A. 操作系统的⼀部分B.⼀种编译程序 C.在操作系统⽀持下的系统软件 D.应⽤程序系统4.数据库系统提供给⽤户的接⼝是(A )。

A.数据库语⾔ B.过程化语⾔ C.宿主语⾔D.⾯向对象语5.(B )是按照⼀定的数据模型组织的,长期存储在计算机内,可为多个⽤户共享的数据的聚集。

A.数据库系统 B.数据库C.关系数据库D.数据库管理系统6. ( C)处于数据库系统的核⼼位置。

A.数据模型 B.数据库C.数据库管理系统D.数据库管理员7.( A)是数据库系统的基础。

A.数据模型B.数据库C.数据库管理系统D.数据库管理员8.( A)是数据库中全部数据的逻辑结构和特征的描述。

A.模式B.外模式 C.内模式 D.存储模式9.(C )是数据库物理结构和存储⽅式的描述。

A.模式 B.外模式 C.内模式D.概念模式10.( B)是⽤户可以看见和使⽤的局部数据的逻辑结构和特征的描述》 A.模式B.外模式C.内模式D.概念模式11.有了模式/内模式映像,可以保证数据和应⽤程序之间( B)。

A.逻辑独⽴性B.物理独⽴性C.数据⼀致性D.数据安全性12.数据管理技术发展阶段中,⽂件系统阶段与数据库系统阶段的主要区别之⼀是数据库系统( B)。

A.有专门的软件对数据进⾏管理B.采⽤⼀定的数据模型组织数据C.数据可长期保存D.数据可共享13.关系数据模型通常由3部分组成,它们是(B )。

A. 数据结构、数据通信、关系操作B. 数据结构、关系操作、完整性约束C. 数据通信、关系操作、完整性约束D. 数据结构、数据通信、完整性约束14.⽤户可以使⽤DML对数据库中的数据进⾏(A )操纵。

数据库sql查询语句练习2_习题_结果(单世民)

数据库sql查询语句练习2_习题_结果(单世民)

数据库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参考答案:一、1、B 2、D 3、B 4、C二、1、数据联系弱2、层次数据模型3、数据库管理系统(或DBMS)4、关键码5、关系6、实体标识符(关键码/键)7、层次和网状模型均是通过指针实现数据联系,关系模型通过关键码实现数据联系习题3参考答案:一、1、D 2、C 3、D4、C 5、B 6、D二、填空题参考答案:1、域(值域)三、1、在依赖关系中,当外键是主键的组成部分时,外键值不允许为空;否则外键值允许为空。

2、实体完整性规则是指关系中的元组在组成主键的属性上不能有空值。

关系SC的主键为(学号,课程号),因此SC中的每个元组在学号、课程号两个属性上的取值均不能为空。

四、1、CREATE TABLE 订单(订单ID AUTOINCREMENT(1,1) CONSTRAINT pk_id PRIMARY KEY,订购日期DATE,到货日期DATE,发货日期DATE,运货费MONEY,货主名称TEXT,货主城市TEXT,货主邮政编码TEXT)2、CREATE TABLE 雇员1(雇员ID AUTOINCREMENT(1,1) CONSTRAINT pk_gy_id PRIMARY KEY,姓名TEXT NOT NULL,职务TEXT,出生日期DATE,雇佣日期DATE,城市TEXT,邮政编码TEXT,电话TEXT,分机TEXT,照片MEMO,备注TEXT,上级INT)3、CREATE TABLE 客户(客户ID V ARCHAR(10) CONSTRAINT pk_kh_id PRIMARY KEY,公司名称V ARCHAR(30) NOT NULL,联系人姓名V ARCHAR(10),联系人职务V ARCHAR(10),城市V ARCHAR(10))4、CREATE TABLE 运货商1(运货商ID COUNTER(1,1) CONSTRAINT pk_yhs_id PRIMARY KEY,公司名称V ARCHAR(30) NOT NULL,电话V ARCHAR(10))5、ALTER TABLE 客户ADD CONSTRAINT uk_kh_gsmc UNIQUE(公司名称)6、ALTER TABLE 客户1ADD 邮政编码TEXT,国家TEXT,电话TEXT,传真TEXT7、INSERT INTO 运货商1(公司名称,电话) V ALUES('统一包裹','(010)65553199') INSERT INTO 运货商1(公司名称,电话) V ALUES('急速快递','(010)65559831') INSERT INTO 运货商1(公司名称,电话) V ALUES('联邦货运','(010)65559931') 8、INSERT INTO 客户SELECT * FROM D:\NORTHWIND.客户--原客户表的路径INSERT INTO 雇员SELECT * FROM D:\NORTHWIND. 雇员INSERT INTO 订单SELECT * FROM D:\NORTHWIND. 订单9、UPDATE 订单SET 订购日期="1996-8"WHERE YEAR(订购日期)=1996 AND MONTH(订购日期)=710、DELETE FROM 雇员WHERE YEAR(DA TE())-YEAR(出生日期)>=45习题4参考答案:一、1、D 2、C 3、C 4、C 5、D 6、B二、1、属性三、1、操作Ⅰ不能被正确执行,因为违反了主键唯一性的约束。

仓库管理查询答案

仓库管理查询答案

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元以下的职工没有联系的供应商的名称。

(精品仓库管理)数据库sql查询语句练习2_习题_结果(单世民)仓库_习题

(精品仓库管理)数据库sql查询语句练习2_习题_结果(单世民)仓库_习题

(精品仓库管理)数据库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结果:。

数据库语句练习及答案

数据库语句练习及答案

实验二--1、年龄小于20的为豆蔻,20-30之间为弱冠,30-40之间为儿立,40-50之间为不惑,50-60知命,60-70,为花甲,其他为古稀select *,casewhen age<=20 then '豆蔻'when age>20 and age<30 then '弱冠'when age>30 and age<40 then '儿立'when age>40 and age<50 then '不惑'when age>50 and age<60 then '知命'when age>60 and age<70 then '花甲'else '古稀'end class_agefrom student--查找以_开头的学生的姓名select *from studentwhere sname like '[_]%'--以%开头的学生的姓名,select *from studentwhere sname like '[%]%'--查找第一个字母是m或者n第二个字母为ykmb的学生的姓名,select *from studentwhere sname like '[mn][ykmb]%'--查找不是以m或者n开头且第二个字母为a到z之间任何一个字母的学生的姓名及具体息,select *from studentwhere sname like '[^mm][a-z]%'--查找不是以a到f字母为首字母的学生的信息。

select *from studentwhere sname like '[^a-f]%'--3、练习各种连接的操作,诸如join 、left jion、right join、full join以及crossjoin的应用对A、B两个表进行连接。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库结构如下:仓库(仓库号, 城市, 面积)订购单(职工号, 供应商号, 订购单号, 订购日期)供应商(供应商号, 供应商名, 地址)职工(仓库号, 职工号, 工资)具体数据如下:仓库表:职工表:使用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面积>400 union 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结果:。

相关文档
最新文档