实验6 数据查询--高级查询
一、实验目的
1.掌握查询结果排序的方法。
2.掌握排序结果进行计算的方法。
3.掌握排序结果分组的方法。
4.掌握排序结果分组后再选择的方法。
二、实验要求
应用SELECT语句对数据库eshop中数据进行指定条件的高级查询。
三、实验步骤
1.查询性别为“男”的会员详细信息,查询结果按月薪降序排列,SQL代码如下所示:
SELECT *
FROM members
WHERE m_sex=‘男’
ORDER BY m_salary DESC
2.查询全体会员的会员帐号,姓名和年龄并按家庭地址升序排列,同一地址中的会员按年龄降序排列,SQL代码如下所示:
SELECT m_account ‘会员帐号’,m_name ‘姓名’,DATEDIFF(YEAR,m_birth,GETDATE()) ‘年龄’
FROM members ORDER BY
m_address ASC,
DATEDIFF(YEAR,m_birth,GETDATE()) DESC
3.查询会员帐号为’liuzc518’所购买的商品号和订购日期,并按订购日期升序排列,SQL代码如下所示:
SELECT p_no ‘商品号’,o_date ‘订购日期’
FROM orders
WHERE m_account=‘liuzc518’
ORDER BY o_date ASC
4.查询购买商品号为’0910810004’总人数,SQL代码如下所示:
SELECT COUNT(p_no) ‘总人数’
FROM orders
WHERE orders.p_no=‘0910810004’
5.查询2005年6月6日前,所有商品的订购总量,要求输出商品号和订购总量,SQL代码如下所示:
SELECT p_no ‘商品号’,SUM(o_quantity) ‘订购总量’
FROM orders
WHERE o_date < ‘2005-06-06’ GROUP BY p_no
6.查询所有会员的平均月薪,最高月薪和最低月薪之和,SQL代码如下所示:
SELECT
AVG(m_salary) AS '平均月薪',
MIN(m_salary) AS '最高月薪',
MAX(m_salary) AS '最低月薪',
(AVG(m_salary)+MIN(m_salary)+MAX(m_salary)) '平均月薪、最高月薪和最低月薪之和'
FROM members
7.查询所有会员购买商品的种类和,要求输出会员号和商品种类和,SQL代码如下所示:
SELECT m_account ‘会员号’,COUNT(DISTINCT p_no) ‘商品种类和’
FROM orders GROUP BY m_account
8.查询各类商品的最高购买数量,要求输出最高数量大于10的商品号和最高数量,SQL代码如下所示:
SELECT TOP 1 p_no ‘商品号’,SUM(o_quantity) ‘最高数量’
FROM orders
GROUP BY p_no HAVING SUM(o_quantity)>10
ORDER BY SUM(o_quantity) DESC