在上一篇里,写了数据库的增删该查,没有写完,这里补充

CREATE DATABASE Zs_Base;
USE Zs_Base;
# 创建表
CREATE TABLE PRODUCT(
ID INT PRIMARY KEY AUTO_INCREMENT,
SNAME VARCHAR(50),
MONEY DOUBLE
);
# 插入数据
INSERT INTO PRODUCT VALUES
(1,'吃饭支出',-10),
(2,'收账',1999),
(3,'买礼物支出',-666),
(4,'买烟支出',-10);
INSERT INTO PRODUCT(MONEY) VALUE (100);
DELETE FROM PRODUCT WHERE ID=5;
SELECT * FROM PRODUCT;
/*==========================================================
1.升序降序*/
# 将所有信息按money降序排序 关键字 order by desc
# SELECT * FROM 表名 ORDER BY 降序的列名 DESC;
SELECT * FROM PRODUCT ORDER BY MONEY DESC;
# 将所有信息按money 升序排序 关键字 order by asc
# SELECT * FROM 表名 ORDER BY 升序的列名 ASC;
SELECT * FROM PRODUCT ORDER BY MONEY ASC;
# 当有条件时,order by 放在条件后面
SELECT * FROM PRODUCT WHERE SNAME IS NOT NULL ORDER BY MONEY DESC;
# 总结 order by 是对结果集进行处理,即前面的语句运行完后,再对结果进行升序降序排列 /*==================================================================
2.聚合函数 查询计算*/
/*统计表中共有多少行数据 COUNT()函数*/
SELECT COUNT(*) AS '总数' FROM PRODUCT ;
# 查询表中不为空的数据有多少
SELECT COUNT(*) AS '总数' FROM PRODUCT WHERE SNAME IS NOT NULL; # 对表中的金额进行计算 SUM()函数
SELECT SUM(MONEY) FROM PRODUCT;
# 统计表中所有支出的金额
SELECT SUM(MONEY) FROM PRODUCT WHERE SNAME LIKE '%支出%';
# 统计列中最大的数据 max()函数
SELECT MAX(MONEY) FROM PRODUCT ;
# 统计表中的最小数据
SELECT MIN(MONEY) FROM PRODUCT;
# 计算一个列中所有数据的平均数
SELECT AVG(MONEY) FROM PRODUCT; /*=================================================================
3.分组查询*/
INSERT INTO PRODUCT (SNAME,MONEY) VALUES
('买烟支出',-50),
('工资收入',8000),
('吃饭支出',-50.4),
('吃饭支出',-20.6),
('打麻将收入',40);
SELECT * FROM PRODUCT;
/*查询所有数据
吃饭支出共计多少
打麻将收入共计多少
分组查询 group by 被分组的列名
必须跟随聚合函数
用法格式: SELECT 列名,列名 FROM 表名 WHERE 条件 GROUP BY 被分组的列名
注意,被分组的列要出现在选择列的后面*/
/*对所有的支出分组并降序排序*/
SELECT SUM(MONEY) AS 'SMONEY',SNAME FROM PRODUCT WHERE SNAME LIKE '%支出%'
GROUP BY SNAME ORDER BY SMONEY DESC;
/*结果集是分组后,要再次进行筛选,不能用where语句,分组后再次过滤,关键字having,即group by 后面不能跟where语句,如果要过滤用having语句*/
# 对上面结果再筛选,只要金额大于100的
SELECT SUM(MONEY) AS 'SMONEY',SNAME FROM PRODUCT WHERE SNAME LIKE '%支出%'
GROUP BY SNAME HAVING SMONEY<-100 ORDER BY SMONEY DESC;
# 因为支出为负数,所以用<-100来表示金额大于100 的;

Java学习笔记35(sql补充)的更多相关文章

  1. 【初学Java学习笔记】SQL语句调优

    1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认 ...

  2. Java学习笔记35(异常)

    代码在运行中发生的问题就是异常 java中把多种异常封装多个类,当程序出现问题时候,就会创建异常类对象并且抛出相关信息 异常体系: Throwable类是Java中所有错误或异常的父类 Throwab ...

  3. 【转】JAVA学习笔记----PL/SQL最差实践

    1. 超长的PL/SQL代码   影响:可维护性,性能   症状:    在复杂的企业应用中,存在动辄成百上千行的存储过程或上万行的包.为什么是最差:    太长的PL/SQL代码不利于阅读,第三方工 ...

  4. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  5. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  6. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  7. 20145330第九周《Java学习笔记》

    20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...

  8. java学习笔记09--反射机制

    java学习笔记09--反射机制 什么是反射: 反射是java语言的一个特性,它允许程序在运行时来进行自我检查并且对内部的成员进行操作.例如它允许一个java的类获取他所有的成员变量和方法并且显示出来 ...

  9. java学习笔记13--比较器(Comparable、Comparator)

    java学习笔记13--比较器(Comparable.Comparator) 分类: JAVA 2013-05-20 23:20 3296人阅读 评论(0) 收藏 举报 Comparable接口的作用 ...

随机推荐

  1. oracle ora-12514解决办法

    原来配置好的数据库监听用plsql登陆报错ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 网上说的改listener.ora 添加如下配置 SID_LIST_LISTENER = ...

  2. Vertical viewport was given unbounded height

    new Expanded( child: new ListView( ..... ) ); +++++++++++++++ 可以通过指定shrinkWrap = true为了你ListView. Li ...

  3. Docker Kubernetes 命令行创建容器

    Docker Kubernetes 命令行创建容器 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...

  4. 【Alpha】Scrum Meeting 5

    目录 前言 任务分配 燃尽图 会议照片 签入记录 遇到的困难 前言 时间: 4.9日中午11.30 地点:F-220 本次会议旨在统计各位同学的进度以及催促任务的进展. 任务分配 姓名 当前阶段任务 ...

  5. 检测当前运行环境对es6的支持

    摘自:http://es6.ruanyifeng.com/#docs/intro 1.查看 node 已经实现的 es6 特性 // Linux & Mac $ node --v8-optio ...

  6. 剑指offer(32)把数组排成最小的数

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 题目分析 主 ...

  7. Python3 tkinter基础 Menu add_radiobutton 单选的下拉菜单

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  8. RabbitMQ&RocketMQ动态添加Queue参考

    Kafka重复消费与消息丢失参考: https://www.cnblogs.com/kaleidoscope/p/9763053.html https://blog.csdn.net/qingqing ...

  9. Win32汇编学习(11):对话框(2)

    我们将进一步学习对话框,探讨如何把对话框当成输入设备.如果您看了前一篇文章,那就会发现这次的例子只有少量的改动,就是把我们的对话框窗口附属到主窗口上.另外,我们还要学习通用对话框的用法. 理论: 把对 ...

  10. 自制URL转换器

    自定义 url 转换器五个步骤: 定义一个类. 在类中定义一个属性  regex  ,这个属性是用来保存 url 转换器规则的正则表达式. 实现  to_python(self,value)  方法, ...