今天我们简单介绍一下sql语句的分类和使用。 首先先来看一下如何创建数据表。 [AppleScript] 纯文本查看 复制代码 CREATE TABLE zhangwu (
id INT PRIMARY KEY AUTO_INCREMENT, -- 账务ID
name VARCHAR(200), -- 账务名称
money DOUBLE, -- 金额
parent VARCHAR(200), -- 分类名称
); 数据表有了,下面就往表中添加一点数据: [AppleScript] 纯文本查看 复制代码 INSERT INTO zhangwu(id,name,money) VALUES (1,'吃饭支出',247,'支出');
INSERT INTO zhangwu(id,name,money) VALUES (2,'工资收入',12345,'收入');
INSERT INTO zhangwu(id,name,money) VALUES (3,'服装支出',1000,'支出');
INSERT INTO zhangwu(id,name,money) VALUES (4,'吃饭支出',325,'支出');
INSERT INTO zhangwu(id,name,money) VALUES (5,'股票收入',8000,'收入');
INSERT INTO zhangwu(id,name,money) VALUES (6,打麻将支出,8000,'支出');
INSERT INTO zhangwu(id,name,money) VALUES (7,null,5000,'支出');
2.查询语句 [AppleScript] 纯文本查看 复制代码 SELECT * FROM 表名 ORDER BY 字段ASC;
l ASC 升序 (默认)
l DESC 降序 举例:2.1.查询所有商品,按金额排序 [AppleScript] 纯文本查看 复制代码
select * from zhangwu order by money; 2.2.查询名称包含“支出”的账务信息,并按金额降序排序. [AppleScript] 纯文本查看 复制代码 select * from zhangwu where name like '%支出%' order by money desc;
3.查询中的聚合查询 之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值;另外聚合函数会忽略空值。 今天我们学习如下五个聚合函数: l count:统计指定列不为NULL的记录行数; l sum:计算指定列的数值和,如果指定列; l max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串类型不是数值类型,那么计算结果为0排0序运算; l min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算; l avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
举例: [AppleScript] 纯文本查看 复制代码 1. 统计账务表中共有多少条记录
SELECT COUNT(*) FROM zhangwu;
2. 统计账务表中金额大于3000的有多少条记录
SELECT COUNT(*) FROM zhangwu WHERE money>3000;
3. 统计有多少收入的账务信息
SELECT SUM(money) FROM zhangwu WHERE name like '%收入%';
4. 统计出记录中支出的平均值
SELECT AVG(money) FROM zhangwu where name like '%支出%';
5. 统计出商品表中收入的最大与最小值
SELECT MAX(money),MIN(money) FROM zhangwu; 4.查询中的分组 分组查询是指使用group by字句对查询信息进行分组,例如:我们要统计出zhanguw表中所有分类账务的总数量,这时就需要使用group by 来对zhangwu表中的账务信息根据parent进行分组操作。 l 格式: SELECT 字段1,字段2… FROM 表名 GROUP BY 字段 HAVING 条件; 分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。
l having与where的区别: n having是在分组后对数据进行过滤. where是在分组前对数据进行过滤 n having后面可以使用分组函数(统计函数) where后面不可以使用分组函数。 举例: [AppleScript] 纯文本查看 复制代码 1. 对账务分种类统计,求出每个种类的账务总金额
SELECT parent,SUM(money) FROM zhangwu GROUP BY parent;
2. 对账务分种类统计,求出每个种类的账务总金额,金额要大于500才显示
SELECT parent,SUM(money) FROM zhangwu GROUP BY parent HAVING SUM(money)>500;
|