数据库实验多表查询参考答案(DOC)
数据库查询语句实验报告及答案

1.找出所有供应商的姓名和所在城市。
select sname,city from S表2.找出所有零件的名称,颜色,重量;select pname,color,weight from P表3.找出使用供应商S1所供应零件的工程号码。
select jno from SPJ表where sno='S1'4.找出工程项目J2使用的各种零件的名称及其数量。
select pname,qty from 表7,表5 where 表5.pno=表7.pno and 表7.jno='J2'5.找出上海厂商供应的所有零件的号码。
select distinct pno from 表7 where sno in (select sno from 表4 where city='上海')6.找出使用上海产的零件的工程名称。
select jname from 表6,表7,表4 where 表6.jno=表7.jno And 表7.sno=表4.sno And 表4.city='上海'8.全部红色零件的颜色改成蓝色。
update 表5 set color='蓝' where color='红'9. 由S5供给J4的零件P6改为由S3供应.update 表7 set sno='S3'where sno='S5'and jno='J4'and pno='P6'10.从供应商关系中删除S2的记录,并从供应商情况关系中删除相应的记录。
delete from 表4 where sno='S2'delete from 表7 where sno='S2'11.请将(S2,J6,P4,200)插入相应的情况关系。
insert into 表7(sno,jno,pno,qty) values ('S2','J6','P4',200)。
数据库实验报告——多表查询

集美大学计算机工程学院实验报告一、实验目的1.掌握多表连接查询方法;2.掌握IN 子查询的嵌套查询;3.了解EXISTS嵌套查询方法。
二、实验内容与设计思想1.多表等值连接查询;2.外连接查询;3.IN子查询嵌套;4* EXISTS嵌套查询。
设计思想:1、复习书本上的相关知识,如查阅多表的连接查询、多表的等值连接查询、表自身的连接、IN嵌套子查询和EXISTS嵌套子查询等知识点;2、先建立一个XSDA库,在建立相关表(利用上次验证试验建立好的数据库);3、根据实验要求进行各种查询操作;4、遇到问题,及时问老师或同学,查阅资料,以便得到及时解决;5、认真做好试验报告。
三、实验使用环境操作系统:Win-7编程环境:Microsoft SQL Server 2008四、实验步骤和调试过程###验证性实验1.多表的连接查询(相当于做笛卡儿乘积)SELECT * FROM C XX,SC XX(截图中间有省略)…………2. 表的等值连接查询(1) 查询各学生的选课信息(包括学号、课程名、成绩)因为学号和成绩在SC表中,而课程名在C表中,因此需要多表查询。
SELECT SNO,CNAME,GRADEFROM C XX C,SC XX SCWHERE O=O(2) 查询学生的选课记录,显示学生的学号、姓名、课程号、成绩)SELECT S.SNO,SNAME,CNO,GRADEFROM S XX S,SC XX SCWHERE S.SNO=SC.SNO(3) 查询学生的选课记录,显示学生的学号、姓名、课程号、课程名、成绩SELECT S.SNO,SNAME,O,CNAME,GRADEFROM S XX S,SC XX SC,C XX CWHERE S.SNO=SC.SNO AND O=O3.左外连接查询:当希望左表(第一张表)中所有记录全部显示出来时,需要用左外连接操作。
INSERT INTO S (SNO,SNAME) VALUES(’20000’,’ZXX’)SELECT S.SNO,SNAME,CNO,GRADEFROM S XX SLEFT OUTER JOIN SC XX SC ON S.SNO=SC.SNO观察与下面等值连接的执行结果有何不同?SELECT S.SNO,SNAME,CNO,GRADEFROM S XX S, SC XX SC WHERE S.SNO=SC.SNO4.表自身的连接(1) 查询与‘李勇’同系的学生学号将学生表S与S本身进行等值连接(系部相等),因为S与S做连接操作时不能区分,所以,对表取一个别名。
数据库原理实验4多表查询

数据库原理实验4多表查询实验四多表查询1 实验目的与要求(1) 熟练掌握SQL语句的使用。
(2) 熟练使用SQL语句进行连接操作。
2 实验内容(1) 找出同一天进入公司效劳的员工。
(2) 查找与“陈诗杰〞在同一个单位工作的员工姓名、性别、部门和职务。
(3) 在Employee表中查询薪水超过员工平均薪水的员工信息。
(4) 查找有销售记录的客户编号、名称和订单总额。
(5) 查询没有订购商品的客户编号和客户名称。
(6) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男〞、“女〞表示。
(7) 查询OrderMaster表中订单金额最高的订单号及订单金额。
(8) 在订单主表中查询订单金额大于“E2022002业务员在2022-1-9这天所接的任一张订单的金额〞的所有订单信息。
(9) 查询单价高于400元的商品编号、商品名称、订货数量和订货单价。
(10) 分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比拟检索的结果。
(11) 使用左外连接查找每个客户的客户编号、名称、订货日期、订单金额,其中订货日期不要显示时间,日期格式为“yyyy-mm-dd〞,按客户编号排序,同一客户再按订单金额降序排序输出。
(12) 查找每个员工的销售记录,要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期,其中性别使用“男〞和“女〞表示,日期使用“yyyy-mm-dd〞格式显示。
(13) 查找16M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男〞、“女〞表示。
(14) 找出公司男业务员所接且订单金额超过2000元的订单号及订单金额。
(15) 查询每种商品的总销售数量及总销售金额,要求显示出商品编号、商品名称、总数量及总金额,并按商品号从小到大排列。
数据库数据查询实验报告和答案.doc

数据库数据查询实验报告和答案韶关学院学生实验报告册实验课程名称:数据库技术与应用实验项目名称:数据库的数据查询实验类型(打√):(基础☑、综合、设计)院系:专业班级:姓名学号:指导老师:韶关学院教务处编制一、实验预习报告内容预习日期:10月10月22日(星期二第七八节)实验同组人:如有实验数据表格,学生在实验预习时应画好实验数据表格,供实验时填写数据(本页如不够,可另附相同规格的纸张)。
指导教师批阅及签名签名:年月日三、实验报告内容9月24日实验报告内容原则上应包含主要实验步骤、实验数据计算(实验操作)结果、实验结果(疑问)分析等项目。
实施内容:一、根据实验要求完成实验:(写明步骤和截图)1、在数据库studentsdb中,新建表studentdb_info,curriculum,grade。
并输入相应的数据,如图1、2和3所示。
图1图2图32、在studentsdb数据库中,使用下列SQL语句将输出什么?(1)selectcount(*)fromgrade结果如图4所示:图4(2)selectsubstring(学生姓名,1,2)fromstudent_info结果如图5所示:图5(3)selectupper(kelly)结果如图6所示:图6(4)selectreplicate(kelly,3)结果如图7所示:图7(5)selectsqrt(分数)fromgradewhere分数>=85结果如图8所示:图8(6)select2,3,power(2,3)结果如图9所示:图9(7)selectyear(getdate()),month(getdate()),day(getdate())结果如图10所示:图102、在studentsdb数据库中使用select语句近基本查询。
(1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。
执行如下语句:select学号,学生姓名,出生日期fromstudent_info结果如图11所示图11(2)查询学号为0002的学生的姓名和家庭住址执行如下语句:select学生姓名,家庭地址fromstudent_infowhere学号=0002结果如图12所示图12(3)找出所有男同学的学号和姓名。
数据库实验多表查询参考答案

from OrderMasterwhere orderSum=(select max(orderSum)from OrderMaster)(8)在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。
SELECT*FROM OrderMasterWHERE orderSum>any(SELECT orderSumFROM OrderMasterWHERE salerNo='E2005002'AND orderDate='20080109')(9)查询单价高于400元的商品编号、商品名称、订货数量和订货单价。
SELECT a.productNo,productName,quantity,priceFROM Product a, OrderDetail bWHERE a.productNo=b.productNo AND price>400ORDER BY productName(10)分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。
左外连接命令:SELECT a.productNo,productName,quantity,priceFROM Product a LEFT OUTER JOIN OrderDetail bON a.productNo=b.productNoWHERE price>400Select a.productNo , a.productName , b.quantity,b.priceFrom OrderDetail As b left JOIN Product As aON(a.productNo=b.productNo)and price>400•这两个左外连接,第一个是先去掉单价小于等于400的商品,然后执行左外连接,该查询的结果表明商品表中所有单价高于400的商品全部被订购了第二个左外连接是将那些单价小于等于400的商品用空值替代右外连接命令:SELECT a.productNo,productName,quantity,priceFROM Product a RIGHT OUTER JOIN OrderDetail bON a.productNo=b.productNoWHERE price>400Select a.productNo , a.productName , b.quantity,b.priceFrom OrderDetail As b RIGHT JOIN Product As aON(a.productNo=b.productNo)and price>400全连接命令:SELECT a.productNo,productName,quantity,priceFROM Product a FULL OUTER JOIN OrderDetail bON a.productNo=b.productNoWHERE price>400Select a.productNo , a.productName , b.quantity,b.price From OrderDetail As b full JOIN Product As a ON(a.productNo=b.productNo)and price>400右外连接和全外连接的分析同左外连接从上述结果可知:若表a和表b做外连接,且b表是外码表,则a和b表左外连接可能会出现空值,但是右连接一定不会出现空值,全外连接与左外连接一样的结果。
数据库实验答案分析总结.doc

数据库实验答案分析总结实验实验一熟悉SQLSERVER龄Sage所在系Sdept95001李勇男份。
selectsname,龄降序排列。
select*fromstudentorderbysdept,sagedesc8.计算2号课程的平均成绩。
selectA VG(grade)fromSCwherecno=2;9.查询选修了2号课程的学生的最高成绩。
selectMAX(grade)fromSCwherecno=2;10.求各个课程号及相应的选课人数。
selectcno,COUNT(distinctsno)fromSCgroupbycno11.查询至少选修了3门课程以上的学生序号。
selectsnofromSCgroupbysnohavingCOUNT(*)>=3;12.查询“数据库”的间接先行课。
selectsecond.cpnofromCourseasfirst,Courseassecondwherefirst.cpno=sec ame=数据库;13.查询其他系中比信息系某一学生年龄小的学生的姓名和年龄。
selectdistinctfirst.sname,first.sagefromStudentasfirst,Studentassecondwhe refirst.SageA VG(second.Grade);16.查询至少选修了1号课程和3号课程的学生学号。
(selectsnofromSCwhereCno=1)intersect(selectsnofromSCwhereCno=3);1 7.查询只选修了1号课程和3号课程的学生学号。
selectsnofromSCwhereCno=1andSnoin(selectSnofromSCwhereCno=2an dSnoin(selectSnofromSCgroupbySnohavingCOUNT(sno)=2));18.查询没有选修1号课程的学生姓名。
数据库实验(实验七 数据查询)实验报告 答案

实验7 数据查询【实验内容】7.1 单表查询1、指定列或全部列查询1)查询S表中全体学生的详细记录。
use jxsk select*from S2)查询所有学生的姓名及其出生年份。
use jxsk select SN,2012-AGE from S2、按条件查询及模糊查询1)查询考试成绩有不及格的学生的学号。
use jxsk selectdistinct SNO from SC where SCORE<60 2)查询年龄在20 — 23岁之间的学生的姓名、系名和年龄。
use jxsk select SN,DEPT,AGE from Swhere AGE>=20 and AGE<=303)查询姓李的学生的姓名、学号和性别。
use jxsk select SN,SNO,SEX from Swhere SN like'李%'4)查询名字中第二个字为“明”字的男学生的姓名和系名。
use jxsk select SN,DEPT from Swhere SN like'_%明'and SEX='男'3、对查询结果排序1)查询信息系、计算机系学生的姓名、系名,结果按系名升序,按姓名降序排序。
use jxsk select SN,DEPTfrom Swhere DEPT='信息'OR DEPT='计算机'orderby DEPT,SN DESC2)查询所有有课程号C2成绩的学生的学号、课程号和成绩,并按成绩降序排序。
use jxsk select SNO,CNO,SCOREfrom SCwhere CNO='C2'and SCORE isnotnullorderby SCORE DESC4、使用聚集函数的查询1)查询计算机系学生总人数。
use jxsk select COUNT(*)from Swhere DEPT='计算机2)查询选修了微机原理课程的学生人数、平均成绩和最高成绩。
ACCESS的sql多表综合查询实验答案

SELECT sno,sname,cno,cname
FROM student,course
WHERE cno=(SELECT cno FROM sc WHERE sno=( SELECT sno FROM student WHERE sname like '?阳阳' )) and sname like '?阳?'
GROUP BY student.sno,sname
查询命令:
查询结果:
查询5
查询5
sno
sname
200515001
赵菁菁
200515002
李勇
200515003
张力
200515004
张衡
200515005
张向东
200515006
张向丽
200515008
王民生
200515009
王小民
200515010
WHERE cno in (SELECT cno FROM course WHERE cname='数学' or cname='大学英语') and student.sno=sc.sno
查询结果:
查询4
查询4
查询4
查询4
查询4
sno
sname
sdept
cno
grade
200515004
张衡
IS
2
46
查询结果:
查询5
查询5
查询5
查询5
sno
sname
ssex
sdept
200515001
赵菁菁
女
CS
11.至少选修“数据库”或“数据结构”课程的学生的基本信息;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
when'F'then'女'
when'M'then'男'endsex,
orderDate,quantity,quantity*price金额
FROMEmployee a,OrderMaster b,OrderDetail c
WHEREa.employeeNo=b.salerNoANDb.orderNo=c.orderNo
SELECTa.productNo,productName,quantity,price
FROMProduct a,OrderDetail b
WHEREa.productNo=b.productNoANDprice>400
ORDERBYproductName
(10)分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。
FROMEmployee)
(4)查找有销售记录的客户编号、名称和订单总额。
selecta.customerNo,a.customerName,b.orderNo,sum(quantity*price)
fromCustomer a,OrderMaster b,OrderDetail c
wherea.customerNo=b.customerNoandb.orderNo=c.orderNo
FromOrderDetailAsbleftJOINProductAsa
ON(a.productNo=b.productNo)ice>400
•这两个左外连接,第一个是先去掉单价小于等于400的商品,然后执行左外连接,该查询的结果表明商品表中所有单价高于400的商品全部被订购了
第二个左外连接是将那些单价小于等于400的商品用空值替代
wherea.employeeNo<b.employeeNo--1.本人不跟本人连接,2.不同的两人只连接一次
and a.hireDate=b.hireDate
(2)查找与“陈诗杰”在同一个单位工作的员工姓名、性别、部门和职务。
Selectb.employeeName,b.sex,b.headShip,b.department
(12)查找每个员工的销售记录,要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期,其中性别使用“男”和“女”表示,日期使用“yyyy-mm-dd”格式显示。
SELECTsalerNo,employeeName,CASEsexWHEN'M'THEN'男'
WHEN'F'THEN'女'
orderDate,quantity,quantity*price total
FROMEmployee a,OrderMaster b,OrderDetail c,Product d
WHEREa.employeeNo=b.salerNoANDb.orderNo=c.orderNoAND
c.productNo=d.productNoANDproductName='16MDRAM'
左外连接命令:
SELECTa.productNo,productName,quantity,price
FROMProduct aLEFTOUTERJOINOrderDetail b
ONa.productNo=b.productNo
WHEREprice>400
Selecta.productNo,a.productName,b.quantity,b.price
SELECT*
FROMOrderMaster
WHEREorderSum>any
(SELECTorderSum
FROMOrderMaster
WHEREsalerNo='E2005002'ANDorderDate='20080109')
(9)查询单价高于400元的商品编号、商品名称、订货数量和订货单价。
SELECTa.customerNo,customerName,
convert(char(10),orderDate,120)orderDate,orderSum
FROMCustomer aLEFTOUTERJOINOrderMaster bON
a.customerNo=b.customerNo
ORDERBYa.customerNo,orderSumdesc
GROUPBYproductNo)b
ONa.productNo=b.productNo
WHEREprice>400
Selecta.productNo,a.productName,b.quantity,b.price
FromOrderDetailAsbfullJOINProductAsa
ON(a.productNo=b.productNo)andprice>400
FROMEmployee a,OrderMaster b,OrderDetail c
WHEREa.employeeNo=b.salerNoANDb.orderNo=c.orderNo
ANDc.ProductNoIN(
SELECTProductNo
FROMProduct
WHEREProductName='32M DRAM')
END性别,
productName,quantity,price,orderSum,
convert(char(10),orderDate,120)orderDate
FROMEmployee a,OrderMaster b,OrderDetail c,Product d
WHEREa.employeeNo=b.salerNoANDb.orderNo=c.orderNo
ANDc.productNo=d.productNo
(13)查找16MDRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
SELECTemployeeName,CASEsex
WHEN'M'THEN'男'
WHEN'F'THEN'女'
ENDsex,
SELECTa.productNo商品编号,productName商品名称,
qtySum总数量,totalSum总金额
FROMProduct a,
(SELECTproductNo,sum(quantity)qtySum,
sum(quantity*price)totalSum
FROMOrderDetail
ANDc.ProductNoIN(
SELECTProductNo
FROMProduct
WHEREProductName='32MDRAM')
参考解答:
SELECTemployeeName,casesex
when'F'then'女'
when'M'then'男'endsex,
orderDate,quantity,quantity*price金额
数据库原理实验教材实验答案
实验二
(1)找出同一天进入公司服务的员工。
Selecta.employeeNo,a.employeeName,a.hireDate,
b.employeeNo,b.employeeName
fromEmployee a,Employeeasb
wherea.employeeNo!=b.employeeNoand
(7)查询OrderMaster表中订单金额最高的订单号及订单金额。
selectorderNo,orderSum
fromOrderMaster
whereorderSum=(selectmax(orderSum)
fromOrderMaster)
(8)在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。
a.employeeName>b.employeeNameand(a.hireDate=b.hireDate)
参考解答:
SELECTDISTINCTa.hireDate,a.employeeNo,a.employeeName--消除重复的元组
FROMemployee a, employee b
WHEREa.employeeNo!=b.employeeNo--本人不跟本人连接
(14)找出公司男业务员所接且订单金额超过2000元的订单号及订单金额。
SELECTorderNo,orderSum
FROM(SELECTorderNo,orderSum
FROMOrderMaster a,Employee b
WHEREa.salerNo=b.employeeNoANDb.sex='M')c
WHEREordersum>2000
或:
SELECTorderNo,orderSum
FROMOrderMaster a,Employee b
WHEREa.salerNo=b.employeeNoANDb.sex='M'andordersum>2000
(15)查询每种商品的总销售数量及总销售金额,要求显示出商品编号、商品名称、总数量及总金额,并按商品号从小到大排列。
AND a.hireDate=b.hireDate
ORDER BYa.hireDate,a.employeeNo
selecta.hireDate,a.employeeNo,a.employeeName,b.employeeNo,b.employeeName