实验四 单表查询
一、实验目的与要求
牢记SELECT 语句的基本语法格式;
熟练掌握使用SQL语句进行单表查询,尤其要熟练掌握GROUP BY子句、HAVING 子句和集函数;
二、实验内容和步骤
对CPXS数据库,完成如下单表查询:
1.简单查询 (将你完成正确的语句写在横线上)
SELECT 产品编号,产品名称,价格 FROM CP;
*查询各种产品的产品编号、产品名称和价格。
__
* 查询地区在“南京”的客户编号和客户名称,结果中各列的标题分别指定为:Customer id和Customer name。
SELECT 客户编号 as 'Customer id',客户名称 as 'Customer name'
FROM XSS
WHERE 地区='南京';
查询CP表中各种产品的产品编号、产品名称和价格,对其价格按以下规则进行转换;若价格小于1000,替换为“廉价产品”,若价格在1000-2000之间,替换为“一般产品”,若价格在大于2000小于3000,替换为“昂贵产品”,若价格大于3000,替换为“很昂贵产品”,列标题更改为“评价”。
Use CPXS GO
SELECT *,'评价'= CASE
WHEN 价格<=1000 THEN '廉价产品' WHEN 价格<=2000 THEN '一般产品' WHEN 价格<=3000 THEN '昂贵产品' ELSE '很昂贵产品' FROM CP; END
S
*求各产品编号、名称和产品总值。
ELECT 产品编号,产品名称,价格*库存量 as '产品总值' FROM CP;
*查询至少购买了至少一种产品的客户编号(不重复)。
SELECT distinct 客户编号 FROM CPXSB WHERE 数量!=0;
*查询价格在1000-2000的产品信息。 SELECT distinct *
FROM CP
WHERE 价格 BETWEEN 1000 AND 2000;
*查询产品名称含有”冰箱”的产品情况。 SELECT *
FROM CP
WHERE 产品名称 LIKE '冰箱';
2、使用分组和集函数
先将CPXSB表数据修改如下图所示:
代码如下:
INSERT
INTO CPXSB(产品编号,客户编号,销售日期,数量,销售额) SELECT '100001','000001','2004-03-18','1','2000' UNION ALL SELECT '100001','000004','2004-03-18','5','8000' UNION ALL SELECT '100002','000001','2004-03-18','1','1200' UNION ALL SELECT '100002','000002','2004-03-18','2','3000' UNION ALL SELECT '100003','000005','2004-05-20','2','6000' UNION ALL SELECT '100004','000002','2004-05-09','3','9000'
再完成如下查询:
计算所有产品总价格。 SELECT SUM(数量*销售额)
FROM CPXSB;
求各种产品2004年3月18日销售额。 SELECT SUM(销售额) FROM CPXSB
WHERE (销售日期 = '2004-03-18')
求购买二种以上产品的客户编号。 SELECT 客户编号 FROM CPXSB GROUP BY 客户编号 HAVING (COUNT(*) >= 2)
三.试验总结:
通过本次试验掌握了SELECT 语句的基本语法格式;学会了使用SQL语句进行
单表查询,尤其是掌握了GROUP BY子句、HAVING 子句和集函数等的查询。