MySql实验2——基本查询语句

1.单表查询(实现投影操作)

查询供应商的名称、地址和联系电话。

Select s_name,s_address,s_phone from Supplier;

2.单表单条件查询(实现选择操作)

查询零售价格不超过20元的零件编号、名称及其零售价格。

select p_partkey,p_name,p_RETAILPRICE from Part where p_RETAILPRICE<=20;

3.不带分组过滤条件的分组统计查询

统计每个供应商的供应价格。

Select s_name,ps_SUPPLYCOST from Supplier,Partsupp where S_SUPPKEY=ps_SUPPKEY;

4.带分组过滤条件的分组统计查询

查询供应价格平均金额超过1000元的供应商编号及其姓名。

Select s_suppkey,s_name from supplier,partsupp where s_suppkey=ps_suppkey 
group by s_suppkey 
having avg(ps_SUPPLYCOST)>=1000;

聚集函数不能用于where,只能用于select子句和having。

5.两表连接查询(实现笛卡尔积操作)

查询供应商及其所在国家。

Select s_name,n_name from supplier,nation where s_nationkey=n_nationkey;

6.两表连接查询(实现普通连接操作,任意两个列做大于、小于等连接操作)

查询供应价格小于零售价格的零件及其供应信息。

Select * from part,supplier,partsupp 
where p_partkey=ps_partkey 
and ps_SUPPLYCOST<p_RETAILPRICE 
and ps_suppkey=s_suppkey;

7.单表自身复合连接查询

查询与“深圳春晖航空售票处”在同一个国家的供应商编号、名称和地址信息。

Select S_SUPPKEY,S_NAME,s_ADDRESS from Supplier,nation 
where n_nationkey in 
(select s_nationkey from supplier 
where s_name=”深圳春晖航空售票处”);

8.三表连接查询

查询顾客“刘称奇”订购的订单编号,及其订购的零件编号、数量和实际价格。

Select o_ORDERKEY,l_partkey,l_quantity,l_EXTENDEDPRICE from customer,orders,lineitem 
where c_name=”刘称奇” 
and c_custkey=o_custkey 
and o_orderkey=l_orderkey;

结束!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
一、实验目的 1. 了解使用SELECT语句进行汇总查询的方法; 2. 熟悉使用COUNT()、SUM()、AVG()、MAX()、MIN()等函数进行汇总查询的方法; 3. 掌握使用GROUP BY子句进行分组汇总查询的方法; 4. 理解使用HAVING子句进行分组汇总查询的方法。 二、实验环境 1. MySQL 5.7及以上版本; 2. Navicat for MySQL。 三、实验内容 1. COUNT()函数 COUNT()函数用于统计某一列或行的记录数。SELECT COUNT(*) FROM table_name;可以统计表中的总记录数,而SELECT COUNT(column_name) FROM table_name;则可以统计某一列的记录数。 示例: 统计学生表中的总记录数: SELECT COUNT(*) FROM student; 统计学生表中“性别”列为“男”的记录数: SELECT COUNT(*) FROM student WHERE gender='男'; 2. SUM()函数 SUM()函数用于对某一列的值进行求和。 示例: 统计学生表中“成绩”列的总和: SELECT SUM(score) FROM student; 3. AVG()函数 AVG()函数用于对某一列的值进行平均值计算。 示例: 统计学生表中“成绩”列的平均值: SELECT AVG(score) FROM student; 4. MAX()函数 MAX()函数用于求某一列的最大值。 示例: 统计学生表中“成绩”列的最大值: SELECT MAX(score) FROM student; 5. MIN()函数 MIN()函数用于求某一列的最小值。 示例: 统计学生表中“成绩”列的最小值: SELECT MIN(score) FROM student; 6. GROUP BY子句 GROUP BY子句用于对查询结果进行分组汇总。它可以对某一列或多列进行分组,然后对每一组进行汇总计算。 示例: 统计学生表中“性别”列的男女人数: SELECT gender, COUNT(*) FROM student GROUP BY gender; 7. HAVING子句 HAVING子句用于在GROUP BY子句的基础上进行筛选,通常与聚合函数一起使用。 示例: 统计学生表中每个“班级”中成绩大于80分的学生数: SELECT class, COUNT(*) FROM student WHERE score>80 GROUP BY class HAVING COUNT(*)>1; 以上为本次实验的全部内容。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值