MySQL 实验二-1——数据基本查询(单表)

本文通过一系列SQL查询实例,展示了如何在MySQL环境下操作单表,包括数据定义、查询条件、聚合函数以及排序、去重等技巧。涉及GROUPBY、HAVING、ORDERBY、NOTIN等子句的使用。
摘要由CSDN通过智能技术生成

单表查询

19edcd0cc3534a4490762891fd9c9856.jpg

前言:做这个实验之前建议看我上一篇博客实验1-数据库的定义,里面有表的创建和数据的添加!

一、实验目的及要求

(1)操作基于单表的SQL的数据定义、数据查询;

(2)操作基于单表的GROUP BY子句、HAVING子句、ORDER BY子句的用法;

(3)操作基于单表的(NOT)IN等谓词的用法;掌握SUM、AVG、COUNT、MAX、MIN等集合函数的用法;

 

二、实验环境

操作系统:Windows  11   

应用软件:MySQL   Navicat

 

三、实验内容

1.查询products表中p_price(商品价格)在800以上的商品详细信息;

 

2.查询products表中p_quantity(商品数量)在20和50之间的商品编号、商品名称和商品数量;

 

3.查询orders表中各会员购买商品的总量,并以汉字列标题形式输出会员帐号,商品总额;

 

4.查询members表中家庭地址为“湖南”的会员详细信息;

 

5.查询members表中年龄大于50且性别为“男”的会员详细信息;

 

6.查询orders表各商品销售总量前3名的商品编号和销售总量;

 

7.查询orders表中购买过商品的会员帐号,要求去掉重复行;

 

8.查询orders表已确认、已支付和已配送的订单详细信息;

 

9.查询性别为“男”的会员详细信息,查询结果按月薪降序排列;

 

10.查询全体会员的会员帐号,姓名和年龄并按家庭地址升序排列,同一地址中的会员按年龄降序排列;

 

11.查询会员帐号为‘liuzc’的会员所购买的商品号和订购日期,并按订购日期升序排列;

 

12.查询购买商品号为‘0910810004’总人数;

 

13.查询2005年8月6日前,所有商品的订购总量,要求输出商品号和订购总量;

 

14.查询所有会员的平均月薪,最高月薪和最低月薪;

 

15.查询所有会员购买商品的种类和,要求输出会员号和商品种类和;

 

16.查询各类商品的最高购买数量,要求输出最高数量大于10的商品号和最高数量。

 

四、实验步骤和运行结果

1.查询products表中p_price(商品价格)在800以上的商品详细信息;

SELECT * FROM products WHERE p_price>800;

运行结果:

3a481c837e2248a0856bc757327d2dd4.png

 

2.查询products表中p_quantity(商品数量)在20和50之间的商品编号、商品名称和商品数量;

SELECT P_no,P_name,P_quantity FROM products WHERE P_quantity BETWEEN 20 AND 50 ;

运行结果:

5e0f0580548d45d986514db10c8ad13f.png

 

3.查询orders表中各会员购买商品的总量,并以汉字列标题形式输出会员帐号,商品总额;

SELECT  m_account '会员帐号',sum(o_quantity)  '商品总额' FROM orders GROUP BY m_account;

运行结果:

aa7e47f3a92c4d3ca8e51bb7e93c172f.png

 

4.查询members表中家庭地址为“湖南”的会员详细信息;

SELECT m_address FROM members WHERE m_address like '湖南%';

运行结果:

fded04cf0c0841729aeac2656ef097e1.png

 

5.查询members表中年龄大于50且性别为“男”的会员详细信息;

SELECT *  from members where m_sex= '男' and (YEAR(CURRENT_DATE)-year(m_birth))>50;

运行结果:

d1b9e4d47e5b4c4eadcfe41eaf63390b.png

 

6.查询orders表各商品销售总量前3名的商品编号和销售总量;

SELECT p_no,SUM(o_quantity) FROM orders GROUP BY (P_no) ORDER BY sum(O_quantity) DESC LIMIT 3;

运行结果:

1091f0a6a581496292111c36bc2092f4.png

 

7.查询orders表中购买过商品的会员帐号,要求去掉重复行;

SELECT DISTINCT M_account FROM orders GROUP BY (p_no);

运行结果:

5033fc73848041a092805eaa41dec4ff.png

 

8.查询orders表已确认、已支付和已配送的订单详细信息;

SELECT * FROM orders WHERE O_confirm_state=1 AND O_pay_state=1 AND O_send_state=1;

运行结果:

55c00eae6e41428f99cc580914c90a83.png

 

9.查询性别为“男”的会员详细信息,查询结果按月薪降序排列;

SELECT * FROM members WHERE M_sex= '男' ORDER BY M_salary DESC;

运行结果:

c74dd796115c48aeafe00db23592bd20.png

 

10.查询全体会员的会员帐号,姓名和年龄并按家庭地址升序排列,同一地址中的会员按年龄降序排列;

SELECT M_name,M_account,M_address FROM members ORDER BY M_address ASC,(YEAR(CURRENT_DATE)-year(m_birth)) DESC;

运行结果:

63d8a3cf1a834522b37f8f1ec2555529.png

 

11.查询会员帐号为‘liuzc’的会员所购买的商品号和订购日期,并按订购日期升序排列;

SELECT O_date,P_no FROM orders where M_account = 'liuzc' ORDER BY O_date;

运行结果:

0bf778c8f6a04e0f94d25da79c98b914.png

 

12.查询购买商品号为‘0910810004’总人数;

SELECT COUNT(*) as total_people FROM orders WHERE P_no='0910810004';

运行结果:

8a17c4a1dc294a598c6b2548d1a6f142.png

 

13.查询2005年8月6日前,所有商品的订购总量,要求输出商品号和订购总量;

SELECT P_no '商品号',SUM(O_quantity) '订购总量' FROM orders WHERE O_date<'2005-08-06' GROUP BY P_no;

运行结果:

d6148b2b55ac478ea3a1e455e399720a.png

 

14.查询所有会员的平均月薪,最高月薪和最低月薪;

SELECT AVG(M_salary),MAX(M_salary),MIN(M_salary) FROM members;

运行结果:

19dc49c1643b42e182c3ed9b77271f10.png

 

15.查询所有会员购买商品的种类和,要求输出会员号和商品种类和;

SELECT M_account '会员号',COUNT(DISTINCT P_no) '商品种类和' FROM orders GROUP BY M_account;

运行结果:

97d57aaad3164c869adde00cd67bbbc7.png

 

16.查询各类商品的最高购买数量,要求输出最高数量大于10的商品号和最高数量。

SELECT  P_no '商品号',SUM(O_quantity) '最高数量' FROM orders GROUP BY P_no HAVING SUM(O_quantity)>5 ORDER BY SUM(O_quantity) DESC ;

运行结果:

11d15f319dd8401e99c5c3f3cd0ace2b.png

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

噗-噗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值