1.实验目的

理解 SQL 程序设计基本规范,熟练运用 SQL 语言实现数据查询,包括单表查询、分组统计查询和连接查询、嵌套查询合和集合查询。

2.实验内容和要求

针对 tpch 数据库或自建数据库 test 设计各种单表查询、分组统计查询和连接查询、嵌套查询合和集合查询,理解和掌握 SQL 查询语句各个子句的特点和作用,按照 SQL 程序设计规范写出具体的 SQL 查询语句,并调试通过。

3.实验步骤

(1)查询各个地区的编号和名称。

源代码:

SELECT regionkey,nameFROM region;

结果截图:

(2)查询各个供应商的编号、名称、地址、电话和供应商所在国家名称。

源代码:

SELECT suppkey,supplier.name,address,phone,nation.nameFROM nation,supplierWHEREsupplier.nationkey = nation.nationkey;

结果截图:

(3)查询 2021 年 9 月份每个订单金额超过 10000 元的订单编号、顾客姓名、顾客所在国家名称、和订单日期。

源代码:

SELECT orderkey,customer.name,nation.name,orderdateFROMnation,customer,ordersWHEREcustomer.nationkey = nation.nationkeyAND customer.custkey = orders.custkeyAND YEAR(orderdate) = '2021'AND MONTH(orderdate) = '9'AND totalprice > 10000;

查询过程中出现了无结果的问题,经检验是导入到表中的数据日期乱码均为空,处理数据后重新导入从而解决了无结果的问题。

查询结果:

(4)统计每个顾客在 2020 年的订购总金额,显示顾客编号、顾客姓名、订购总金额。

源代码:

SELECT customer.custkey,name,SUM(totalprice) AS sum_totalpriceFROM customer,ordersWHEREcustomer.custkey = orders.custkeyAND YEAR(orderdate) = '2020'GROUP BY customer.custkeyORDER BY customer.custkey;

查询结果:

(5)查询订单平均金额超过 5 万元的顾客编号、姓名、所在国家名称和订单平均金额。

源代码:

SELECTcustomer.custkey,customer.name,nation.name,AVG(totalprice)FROMcustomer,orders,nationWHEREcustomer.custkey = orders.custkeyAND customer.nationkey = nation.nationkeyGROUP BY customer.custkeyHAVING AVG(totalprice)>50000ORDER BY customer.custkey;

查询结果:

(6)查询与“金石印刷有限公司”在同一个国家的供应商编号、名称和地址信息。

源代码:

SELECT sup.suppkey,sup.name,sup.addressFROMsupplier sup,supplier suppWHEREsup.nationkey = supp.nationkeyAND supp.name = '金石印刷有限公司';

使用两个别名,将一个supplier表当做两个表使用

查询结果:

(7)查询供应价格小于零售价格的零件编号、零件名称、制造厂、品牌、零售价格、供应商名称和供应价格。

源代码:

SELECTpart.partkey,part.name,mfgr,brand,retailprice,supplier.name,supplycostFROM supplier,part,partsuppWHEREpartsupp.supplycost < part.retailpriceAND partsupp.partkey = part.partkeyAND partsupp.suppkey = supplier.suppkey;

查询结果:

(8)查询顾客“曹玉书”订购的订单编号、订单金额及其订购的零件编号、数量和订单明细价格。

源代码:

SELECTorders.orderkey,totalprice,lineitem.partkey,quantity,extendedpriceFROMlineitem,orders,customerWHEREcustomer. name = '曹玉书'AND lineitem.orderkey = orders.orderkeyAND customer.custkey = orders.custkey;

查询结果:

(9)查询订购了“南昌矿山机械厂”制造的“缝盘机”的顾客编号、姓名。

源代码:

SELECTcustomer.custkey,customer.name,FROMlineitem,orders,customer,partWHEREpart.mfgr = '南昌矿山机械厂'AND part.name = '缝盘机'AND part.partkey = lineitem.partkeyAND lineitem.orderkey = orders.orderkeyAND customer.custkey = orders.custkey;

查询结果:

(10)查询订单平均金额超过 1 万元的顾客中的中国籍顾客的顾客编号、姓名。

源代码:

SELECTcustomer.custkey,customer.nameFROMnation,orders,customerWHEREcustomer.nationkey = nation.nationkeyAND nation.name = '中国'AND customer.custkey = orders.custkeyGROUP BY customer.custkeyHAVING AVG(totalprice) > 10000ORDER BY customer.custkey;

查询结果:

(11)查询顾客“刘玉龙”和“钱岚”都订购过的全部零件的信息。

源代码:

SELECT*
FROMpart
WHEREpart.partkey IN
(SELECT lineitem.partkeyFROMlineitemWHERElineitem.orderkey IN(SELECT orders.orderkeyFROMordersWHEREorders.custkey IN(SELECT customer.custkeyFROMcustomerWHEREcustomer.name = '刘玉龙'))
)
ANDpart.partkey IN
(SELECT lineitem.partkeyFROMlineitemWHERElineitem.orderkey IN(SELECT orders.orderkeyFROMordersWHEREorders.custkey IN(SELECT customer.custkeyFROMcustomerWHEREcustomer.name = '钱岚'))
);

查询结果:

(12)查询顾客“刘玉龙”或“钱岚”订购的全部零件的信息。

源代码:

SELECT*
FROMpart
WHEREpart.partkey IN
(SELECT lineitem.partkeyFROMlineitemWHERElineitem.orderkey IN(SELECT orders.orderkeyFROMordersWHEREorders.custkey IN(SELECT customer.custkeyFROMcustomerWHEREcustomer.name = '刘玉龙'OR customer.name = '钱岚'))
);

查询结果;

(13)查询顾客“刘玉龙”订购过而“钱岚”没订购过的零件的信息。

源代码:

SELECT*
FROMpart
WHEREpart.partkey IN
(SELECT lineitem.partkeyFROMlineitemWHERElineitem.orderkey IN(SELECT orders.orderkeyFROMordersWHEREorders.custkey IN(SELECT customer.custkeyFROMcustomerWHEREcustomer.name = '刘玉龙'AND customer.name != '钱岚'))
);

查询结果:

数据库实验二 数据查询相关推荐

  1. 数据库——实验二 数据查询

    1.实验目的 理解SQL 程序设计基本规范,熟练运用SQL 语言实现数据查询,包括单表查询.分组统计查询和连接查询.嵌套查询合和集合查询. 2.实验内容和要求 针对tpch 数据库或自建数据库test ...

  2. mysql查询2个isbn数据,数据库实验二 数据查询

    ALTER TABLE 书目 ADD 出版年份 VARCHAR(100); UPDATE 书目 SET 出版年份='2005' WHERE ISBN='7040195836'; UPDATE 书目 S ...

  3. 数据库-实验二-数据查询

    --查询"红楼梦"目前可借的各图书编号,及所属版本信息 select 图书编号,出版单位 from 书目,图书 where 书目.isbn=图书.isbn  and 书名='红楼梦 ...

  4. 数据库实验报告 数据查询

    桂 林 理 工 大 学 实  验  报  告 班级软件2班学号3162052051734姓名梁振宇同组实验者 实验名称数据查询日期 2018年 06 月05 日 一.实验目的: 1.      观察查 ...

  5. 按学号和姓名进行查询c语言,数据库实验4 数据查询(答案)

    数据库技术与应用实验 实验4 数据查询 实验4 数据查询 学号:18103317 专业:电子信息工程 一.实验内容和步骤 1.在studentsdb数据库中,使用下列SQL语句将输出什么?并说明语句中 ...

  6. MySQL数据库实验二 数据基本查询

    ★观前提示:本篇内容为mysql数据库实验,代码内容经测试过,可能一小部分有所疏漏,也有会不符合每个人实验的要求的地方,因此以下内容建议仅做思路参考,. 一.实验目的 1.掌握SQL查询语句的一般格式 ...

  7. 数据库实验三 数据查询二

    第1关:多表查询 任务描述 本关任务:查询来自借阅.图书.读者数据表的数据 为了完成本关任务,你需要掌握: 如何多表查询 相关知识 查询多个数据表 在实际应用中,查询经常会涉及到几个数据表. 基于多个 ...

  8. 数据库 实验二 SQL查询一

    SQL查询一 答案链接链接 实验学时:2 实验类型:验证 实验要求:必修 一.实验目的 通过本实验使学生掌握单表查询并初步掌握多表查询的技能. 二.实验内容 使用实验一建立的银行贷款数据库和表,完成以 ...

  9. 数据库实验三 数据查询一

    第1关:按条件查询单表的所有字段 任务描述 本关任务:按条件查询数据表的所有字段 为了完成本关任务,你需要掌握: 如何查询数据表的所有字段 相关知识 查询数据表 命令格式: select * from ...

  10. 数据库实验二之数据查询

    实验二 数据查询 一.实验目的 1.理解数据库中数据的其他查询方法和应用: 2.学会各种查询要求的实现: 3.学会各种查询的异同及相互之间的转换方法. 二. 实验内容 在实验1的基础上,练习其它查询语 ...

最新文章

  1. node.js学习笔记1
  2. 剑指Offer(Java版):数字在排序数组中出现的次数
  3. linux下json数据解析,Linux下使用jq简单解析json的方法
  4. 二 计算机技术与机械电子技术的关系,机械电子工程与人工智能的关系初探
  5. 李宏毅机器学习课程---2、Regression - Case Study
  6. 无迹卡尔曼滤波(UKF)
  7. 亚马逊、Facebook、Google 等科技公司为何越来越难招到人了?
  8. docker 删除默认连接_database – 如何从已删除的Docker容器中恢复数据?如何将其重新连接到数据?...
  9. 怎样学好c语言程序设计这门,初学C语言程序设计的基本方法和技巧
  10. HDU 5701:中位数计数
  11. linux环境下snap安装vscode
  12. Linux入门: grep与egrep 知识总结
  13. spring-data学习上
  14. 讲讲亿级PV的负载均衡架构!
  15. Vulkan_Ray Tracing 03_加速结构
  16. 向日葵设置开机自启动
  17. linux vsftp查看ftp账号信息的方法
  18. html字重怎么设置,CSS 字重 font-weight
  19. 哈夫曼编码器和译码器(完整代码)
  20. 大众点评网平台架构组高级工程师 hadoop 应用案例

热门文章

  1. 使用maven打jar包
  2. 品达物流项目重点技术 微服务高性能实战
  3. tomcat:日志配置详解(避免日志过多撑爆磁盘)
  4. python第三方插件登录网易音乐_基于 Python3 的网易云音乐下载器(支持嵌入专辑封面等 ID3-Tags 信息)...
  5. 黑马程序员最新Python教程——第一阶段(2)
  6. EXCEL VBA入门(课堂随机点名系统)
  7. java实现多个小球碰壁变色_原生js实现多个随机大小颜色位置速度小球的碰壁反弹...
  8. Vue项目中引入阿里icon图标
  9. 阿里云短信验证码后端
  10. Java实现阿里云短信验证码发送