實驗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