A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

今天我们简单介绍一下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;


您需要登录后才可以回帖 登录 | 加入黑马