SQL编写
//用户表,用户ID,用户名称
create table t_user (user_id int,username varchar(20));
//用户帐户表,用户ID,用户余额(单位分)
create table t_account(user_id int,account_balance int);
insert into t_user values(1,'u1');
insert into t_user values(2,'u2');
insert into t_account values(1,10);
insert into t_account values(2,0);
insert into t_user values(3,'u3');
//用户交易表,用户ID,流水创建时间,交易金额(单位分),交易类型(0 POS支付;1 网上转账)
create table t_account_info (user_id int,create_time datetime,amount int,type int);
insert into t_account_info values(1,datetime('now'),100,0);
insert into t_account_info values(2,datetime('now'),200,0);
insert into t_account_info values(2,datetime('now'),300,0);
insert into t_account_info values(2,datetime('now'),300,1);
问题1 查询所有余额为0的用户信息,输出用户ID,用户名
左外连接
SELECT A.* FROM T_USER A LEFT JOIN T_ACCOUNT B ON A.USER_ID = B.USER.ID WHERE B.ACCOUNT_BALANCE = 0
直接连表查询
SELECT A.* FROM T_USER A,T_ACCOUNT B WHERE A.USER_ID = B.USER_ID AND B.ACCOUNT_BALANCE = 0;
问题2 查询当天的交易记录
SELECT A.USERNAME,B.CREATE_TIME,B.AMOUNT,B.TYPE FROM T_USER A,T_ACCOUNT_INFO B WHERE A.USER_ID = B.USER_ID AND B.CREATE_TIME BETWEEN date('2015-06-09') and date('2015-06-10')
问题3 查询所有用户的网上转账交易类型
SELECT A.USERNAME,'WangShangZhuanZhang'as TypeName from T_USER A,T_ACCOUNT_INFO B WHERE A.USER_ID = B.USER_ID AND B.TYPE = 1;
问题4 查询每个用户每种类型的交易汇总,只列出每种类型交易额之和大于5000的
SELECT * FROM (SELECT A.USERNAME,SUM(B.AMOUNT) AS TOTAL,B.TYPE FROM T_USER A,T_ACCOUNT_INFO B WHERE A.USER_ID = B.USER_ID GROUP BY B.USER_ID,B.TYPE) WHERE TOTAL > 5000
或者
SELECT A.USERNAME,SUM(B.AMOUNT) AS TOTAL,B.TYPE FROM T_USER A,T_ACCOUNT_INFO B WHERE A.USER_ID = B.USER_ID GROUP BY B.USER_ID,B.TYPE HAVING TOTAL > 5000
难点
1 时间函数,获取当天的.
2 分组时对sum的值有条件限制,一开始用的子查询,忘了还有having这个条件可以用
SQL编写的更多相关文章
- Oracle数据库编程:使用PL/SQL编写触发器
8.使用PL/SQL编写触发器: 触发器存放在数据缓冲区中. 触发器加序列能够实现自动增长. 在触发器中不能使用connit和rollback. DML触发器 ...
- SQL优化的一些总结 SQL编写一般要求
SQL编写一般要求---SQL语句尽可能简单---分解联接保证高并发---同数据类型的列值比较---不在索引列做运算---禁止使用SELECT *---避免负向查询和%前缀模糊查询---保持事务(连接 ...
- 常见的SQL编写和优化
目录 常见SQL编写和优化 常见的SQL优化方式 常见SQL编写和优化 常见的SQL优化方式 对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by 涉及的列上建立索引. 应尽量 ...
- 基本的Sql编写注意事项
基本的Sql编写注意事项 尽量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替. 不用NOT IN操作符,可以用NOT EXISTS或者外连接+替代. Oracle在执行IN子查询时,首 ...
- 使用PL/SQL编写存储过程访问数据库
一.实验目的 熟悉使用存储过程来进行数据库应用程序的设计. 二.实验内容 对学生-课程数据库,编写存储过程,完成下面功能: 1.统计离散数学的成绩分布情况,即按照各分数段统计人数: 2.统计任意一门课 ...
- Oracle SQL编写注意事项
1.SQL语句用大写的;因为Oracle总是先解析SQL语句,把小写的字母转换成大写的再执行. 2.数据表最好起别名;因为便于sql优化器快速分析. 3.尽量不要使用 insert into tabl ...
- javascript + sql编写SQL客户端工具tabris
祝大家2018新年快乐, 前不久发现了一个创意的脚本JtSQL(java编写) 开源地址为:https://github.com/noear/JtSQL JtSQL 特点:*.结合了JS.SQL.模板 ...
- 开发PL/SQL子程序和包及使用PL/SQL编写触发器、在JDBC中应用Oracle
1. 子程序的各个部分: 声明部分.可执行部分.异常处理部分(可选) 2.子程序的分类: A. 过程 - 执行某些操作 a. 创建过程的语法: CREATE [OR REPLACE] PROC ...
- mybatis动态注解sql编写注意事项
最近在编写mybatis的动态注解sql遇到了不少的坑,在网上看到一篇讲的比较详细的文章,记录一下: https://mbd.baidu.com/newspage/data/landingshare? ...
- 谈谈数据库sql编写
本文主要给初学者关于关系数库的一个浮光掠影式的介绍,如果想深入理解,必须对于下文提到的每个内容单独深入学习! it-information technology的简称,中文是信息机技术,信息其实就是数 ...
随机推荐
- WP8 学习 ApplicationBar 的创建 XAML代码
phone:PhoneApplicationPage.ApplicationBar> <shell:ApplicationBar Opacity="0.1" IsVis ...
- Twitter CEO:有望进军中国 不会改变原则
新浪科技讯 8月12日下午消息,据台湾“中央社”报道,Twitter CEO科斯特洛(Dick Costolo)日前接受<日经新闻>专访时指出,Twitter有望进军中国大陆,科斯特洛表示 ...
- C# CsvFile 类
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...
- C#线程状态简析
在C# 语言世界中,当我们创建一个新的子线程,该线程状态为unstarted, 子线程开始之后,子线程状态为Running,IsAlive 为true: 线程响应 Thread.Start 并开始运行 ...
- jQuery中 end(); 的用法
jQuery中的end()方法的意思 选取某个元素,查找选取其子元素,然后再回过来选取这个元素.用例子说明了一下: 比如HTML代码: <p><span>Hello</s ...
- Ubuntu 14.10 下Ganglia监控Hadoop集群
前提是已经安装好Ganglia和Hadoop集群 1 Master节点配置hadoop-metrics2.properties # syntax: [prefix].[source|sink|jmx] ...
- Python学习路程day3
set集合 set是一个无序且不重复的元素集合,访问速度快,天生解决重复问题 s1 = set() s1.add('luo') s2 = set (['luo','wu','wei','ling' ...
- 2016 - 1- 22 HTTP(三)
一: iOS中发送HTTP请求的方案 三: HTTP通信过程 1.请求 1.1 HTTP协议规定,一个完整的有客户端发给服务器的请求应包含以下内容: 1.1.1 请求头: 包含了对客户端环境的描述与 ...
- UIImageView异步加载网络图片
在iOS开发过程中,经常会遇到使用UIImageView展现来自网络的图片的情况,最简单的做法如下: 去下载https://github.com/rs/SDWebImage放进你的工程里,加入头文件# ...
- Java容器类接口的选择
我们知道Java容器类实际提供了四类接口:Map,List,Set和Queue,如下图所示,每种接口都有不止一个版本的实现,如果在实际编写程序时需要使用某种接口时该如何选择. 从Oracle的Java ...