实验5.1 简单查询
【实验目的】
①掌握单表查询。
②掌握带查询条件的查询。
③掌握模糊查询。
④掌握使用聚合函数的查询。
⑤掌握分组查询。
【实验内容】
(1)单表查询
①查询customers表中的所有信息。
②查询customers表中从第2位顾客开始的3位顾客的信息。
③查询订货记录中所有产品的pid,保证pid的唯一性。
(2)带查询条件的查询
查询居住在纽约的代理商的aid值和名字。
(3)模糊查询
①查询cname 值以字母“A”开始的顾客的所有信息。
②查询cname值的第三个字母不等于“%”的顾客的cid值。
(4)使用聚合函数的查询
①查询所有订货交易的总金额。
②查询有顾客居住的城市数。
(5)分组查询
①查询每种产品的订购总量。
②查询满足条件为代理商所订购的某种产品的总量超过100的产品ID、代理商ID和总量。
③查询被至少两个顾客订购的所有产品的pid值。
【实验步骤】
(1)查询表中所有信息
查询customers表中的所有信息。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入下面的SQL语句:
SELECT * FROM customers;
③单击工具栏中的
图标或者按下快捷键“Ctrl+Enter”,执行上面的SQL语句。观察 “Output”输出区域面板,如果提示信息前有绿色小钩,则说明语句执行成功,结果如图5.1所示。

图5.1 查询所有信息的执行结果
(2)查询表中若干行
查询customers表中从第2位顾客开始的3位顾客的信息。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入下面的SQL语句:
SELECT * FROM customers LIMIT 1,3;
③单击工具栏中的图标
或者按下快捷键“Ctrl+Enter”,执行上面的SQL语句。观察“Output”输出区域面板,如果提示信息前有绿色小钩,则说明语句执行成功,结果如图5.2所示。

图5.2 查询部分行的执行结果
(3)查询不重复记录
查询订货记录中所有产品的pid,保证pid的唯一性(无重复行)。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入下面的SQL语句:
SELECT DISTINCT pid FROM orders;
③单击工具栏中的图标
或者按下快捷键“Ctrl+Enter”,执行上面的SQL语句。观察 “Output”输出区域面板,如果提示信息前有绿色小钩,则说明语句执行成功,结果如图5.3所示。

图5.3 使用DISTINCT短句的查询结果
(4)条件查询
查询居住在纽约的代理商的aid值和名字。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入下面的SQL语句:
SELECT aid, aname FROM agents
WHERE city = 'new york';
③单击工具栏中的图标
或者按下快捷键“Ctrl+Enter”,执行上面的SQL语句。观察 “Output”输出区域面板,如果提示信息前有绿色小钩,则说明语句执行成功,结果如图5.4所示。

图5.4 条件查询的执行结果
(5)模糊查询
查询cname 值以字母 “A”开始的顾客的所有信息。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入下面的SQL语句:(https://www.daowen.com)
SELECT * FROM customers
WHERE cname LIKE 'A%';
③单击工具栏中的图标
或者按下快捷键“Ctrl+Enter”,执行上面的SQL语句。观察“Output”输出区域面板,如果提示信息前有绿色小钩,则说明语句执行成功,结果如图5.5所示。

图5.5 模糊匹配的执行结果
(6)转义字符的使用
查询cname值的第三个字母不等于“%”的顾客的cid值。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入下面的SQL语句:
SELECT cid FROM customers
WHERE cname NOT LIKE '__\%%';
或
SELECT cid FROM customers
WHERE cname NOT LIKE '__#%%' ESCAPE '#';
③单击工具栏中的
图标或者按下快捷键“Ctrl+Enter”,执行上面的SQL语句。观察“Output”输出区域面板,如果提示信息前有绿色小钩,则说明语句执行成功。两种写法的执行结果分别如图5.6和图5.7所示。

图5.6 第一种写法的执行结果

图5.7 第二种写法的执行结果
说明:第一种写法中,“\”默认按照转义字符解析。第二种写法中,“#”符号随意写,ESCAPE '#'告诉解析器把“#”符号当转义字符解析。
(7)使用聚合函数计算数值列的和
查询所有订货交易的总金额。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入下面的SQL语句:
SELECT SUM(dollars) AS totaldollars
FROM orders;
③单击工具栏中的
图标或者按下快捷键“Ctrl+Enter”,执行上面的SQL语句。观察“Output”输出区域面板,如果提示信息前有绿色小钩,则说明语句执行成功,结果如图5.8所示。

图5.8 求和查询的执行结果
(8)使用聚合函数计算查询结果的数目
查询有顾客居住的城市数。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入下面的SQL语句:
SELECT COUNT(DISTINCT city) citynum
FROM customers;
③单击工具栏中的
图标或者按下快捷键“Ctrl+Enter”,执行上面的SQL语句。观察“Output”输出区域面板,如果提示信息前有绿色小钩,则说明语句执行成功,结果如图5.9所示。

图5.9 计算查询结果数目的执行结果
(9)分组查询
查询每种产品的订购总量。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入下面的SQL语句:
SELECT pid, SUM(qty) total
FROM orders GROUP BY pid;
③单击工具栏中的
图标或者按下快捷键“Ctrl+Enter”,执行上面的SQL语句。观察“Output”输出区域面板,如果提示信息前有绿色小钩,则说明语句执行成功,结果如图5.10所示。

图5.10 分组查询的执行结果
(10)限定条件的分组查询一
查询满足条件为某个代理商所订购的某种产品的总量超过1 000的产品ID、代理商ID和总量。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入下面的SQL语句:
SELECT aid, pid, SUM(qty) AS total
FROM orders
GROUP BY aid, pid
HAVING SUM(qty) > 1000;
③单击工具栏中的图标
或者按下快捷键“Ctrl+Enter”,执行上面的SQL语句。观察“Output”输出区域面板,如果提示信息前有绿色小钩,则说明语句执行成功,结果如图5.11所示。

图5.11 限定条件的分组查询结果
(11)限定条件的分组查询二
查询被至少两个顾客订购的所有产品的pid值。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入下面的SQL语句:
SELECT pid FROM orders
GROUP BY pid
HAVING COUNT(DISTINCT cid) >= 2;
③单击工具栏中的图标
或者按下快捷键“Ctrl+Enter”,执行上面的SQL语句。观察“Output”输出区域面板,如果提示信息前有绿色小钩,则说明语句执行成功,结果如图5.12所示。

图5.12 限定条件的分组查询二的查询结果