1. 基本用法
1.1 查询的基本语法
SELECT [ ALL | DISTINCT ] <目标列表达式> [别名] [,<目标列表达式>[别名]]…
FROM<表名或视图名>[别名][,<表名或视图名>[别名]]…|(<SELECT>[AS]<别名>
[WHERE<条件表达式>]
[GROUP BY <列名1>[HAVING<条件表达式>]]
[ORDER BY<列名2>[ASC|DESC]];
1.2 语法格式中参数的简要说明
ALL|DISTINCT :标识在查询结果集中是否显示相同行;
<目标列表达式>[,<目标列表达式>] … :指定查询结果中要显示的目标列;
INTO <新表名>: 将查询结果插入一个新的数据表中;
FROM<表名或视图名> [, <表名或视图名>] :指定查询操作的数据源,可以是一个或多个基本表或视图,或者查询结果;
WHERE <条件表达式1>:指定限定返回行的选择条件;
GROUP BY <列名1>:指定查询的分组条件;
HAVING <条件表达式2>:指定对分组或者聚合进行选择的条件,必须与 GROUP BY 配合使用;
ORDER BY :<列名2> [ ASC|DESC ] [, <列名3> [ ASC|DESC ]]...:指定查询结果集的排序方式;ASC升序,DESC降序,默认为ASC升序。
针对供应管理数据库SPJ,进行以下各种简单查询。
2. 查询所有供应商的信息,用中文表头显示
SELECT Sno 供应商号码, Sname 供应商名称, STAT 类型, CITY 城市 FROM S;
3. 查询位于“北京”的名称包含“星”的供应商信息
SELECT Sno 供应商号码, Sname 供应商名称, STAT 类型, CITY 城市 FROM S WHERE CITY='北京' AND Sname LIKE '%星%' ;
4. 查询供应商名中最后一个字是“丰”的供应商信息
SELECT Sno 供应商号码, Sname 供应商名称, STAT 类型, CITY 城市 FROM S WHERE replace(Sname,’ ‘,’’) LIKE ‘%丰’ ;
5. 查询零件名以“螺丝”开头的零件信息
SELECT * FROM P WHERE Pname LIKE '螺丝%';
6. 查询名称含有“车”的工程项目信息
SELECT * FROM J WHERE Jname LIKE '%车%';
7. 查询名称为“螺母”、“螺栓”、“螺丝刀”的零件信息
8. 查询“P002”号零件的总供应量
SELECT SUM(QTY) 总供应量 FROM SPJ WHERE PNO='P002';
9. 查询“P002”号零件供应量的最大、最小和平均值
SELECT MIN(QTY) 最小值, MAX(QTY) 最大值, AVG(QTY) 平均值 FROM SPJ WHERE PNO='P002';
10. 分组计算每个工程项目使用每种零件的供应量
SELECT JNO, PNO, SUM(QTY) 供应量 FROM SPJ GROUP BY JNO, PNO ORDER BY JNO, PNO;
11. 查询供应量在300以上的供应信息
SELECT * FROM SPJ WHERE QTY>300;
12. 查询供应量最低的两个供应信息
SELECT * FROM SPJ ORDER BY QTY ASC LIMIT 0,2;
13. 查询供应量前三名的供应商的编号
SELECT SNO, SUM(QTY) 供应量 FROM SPJ GROUP BY SNO ORDER BY SUM(QTY) DESC LIMIT 0,3;
14. 分组统计每个供应商供应每种零件的供应量
SELECT SNO, JNO, SUM(QTY) 供应量 FROM SPJ GROUP BY SNO, JNO ORDER BY SNO, JNO;