抬头看路,低头干活


  • 首页

  • 关于

  • 标签

  • 归档

oracle子查询

发表于 2017-11-06 |

子查询所要解决的问题:不能一步求解
注意的问题

1. 括号
2. 合理的书写风格
3. 可以在主查询的where select having from后面放置子查询
4. 不可以在group by后面放置子查询
5. 强调from后面的子查询
6. 主查询和子查询可以不是同一张表;只要子查询返回的结果主查询可以使用即可
7. 一般不在子查询中排序;但在Top-N分析问题中,必须对子查询排序
8. 一般先执行子查询,再执行主查询;但相关子查询例外
9. 单行子查询只能使用单行操作符;多行子查询只能使用多行操作符
10. 子查询中的null
阅读全文 »

oracle数据类型

发表于 2017-11-06 |

SQL的类型

1. DML(Data Manipulation Language 数据操作语言): insert update delete select
2. DDL(Data Definition Language 数据定义语言): 
        create/alter/drop/truncate tabl
        create/drop view,sequence,index,synonym(同义词)
3. DCL(Data Control Language 数据控制语言): grant(授权) revoke(撤销权限)
阅读全文 »

Oracle单行函数

发表于 2017-11-05 |

字符函数

lower('Hello World') 小写
upper('Hello World') 大写
initcap('hello world') 首字母大写
substr(a,b) 从a中,第b位开始取子串
substr(a,b,c) 从a中,第b位开始取,取c位
length 字符数  lengthb 字节数
instr(a,b) 在a中,查找b
lpad 左填充  rpad 右填充。
    lpad('abcd',10,'@') //@@@@@@@@@@abcd 
    rpad('abcd',10,'@') //abcd@@@@@@@@@@
trim 去掉前后指定的字符
    trim('H' from 'Hello World')
replace 替换 replace('Hello World','l','*')
阅读全文 »

Oracle数据库操作

发表于 2017-11-05 |

查看所有的表

select * from tab;

对于出错的sql语句,可以通过数字进行定位,然后使用–c(change)来改变对应出错的地方。

c /form/from

使用/命令是执行上一条命令

/
阅读全文 »

Oracle多行函数

发表于 2017-11-05 |

多行函数

sum
count(*)
平均值
    1、avg(column)                 //组函数自动滤空
    2、sum(column)/count(*)        
    3、sum(column)/count(column)   //count(column)不为null的记录

按分组求平均值的时候,先求出平均值,在分组即可。

where后面不能使用组函数而having可以,where也要在group by前面,having是在group by之后。

where先过滤在分组
having先分组在过滤

group by rollup(a,b)
    group by a,b + group by a + group by null
阅读全文 »

正则表达式之grep

发表于 2017-11-04 |

语法:grep [-cinvABC] ‘word’ filename

1
2
3
4
5
6
7
8
9
-c:打印符合要求的行数
-i:忽略大小写
-n:在输出符合要求的行的同时连同行号一起输出
-v:打印不符合要求的行
-A:后跟一个数字(有无空格都可以)例如-A2则表示打印符合要求的行以及下面两行
-B:后跟一个数字,例如-B2则表示打印符号要求的行以及上面两行
-C: 后跟一个数字,例如-C2则表示打印符合要求的行以及上下个两行
-r:会把目录下所有的文件全部遍历
-w:w为word的意思
阅读全文 »

mybatis学习笔记续二

发表于 2017-11-03 |

Mybatis的应用场景
  对需求变更大的项目,关系数据模型不固定,比如互联网项目,建议使用mybatis,灵活去编写sql语句,对sql语句进行修改、优化方便。

Mybatis开发过程

1
2
3
4
5
配置SqlMapConfig.xml(全局配置文件,名称不固定)
配置XXXMapper.xml映射文件
根据配置创建SqlSessionFactory,SqlSessionFactory在实际使用时,建议使用单例模式
根据SqlSessionFactory创建Sqlsession,Sqlsession是一个面向用户的接口,是线程不安全的,最佳应用场合是方法体内,SqlSession提供操作数据库的常用方法,内部使用Exceutor(基本执行器、缓存执行器)底层封装类操作数据库。
通过Sqlsession操作数据库,对于插入、删除、更新进行事务提交,SqlSesssion使用完毕进行关闭。
阅读全文 »

Mybatis学习笔记续

发表于 2017-11-02 |

Mapper动态代理方法

只需要写dao接口(Mapper),而不需要写dao实现类,由mybatis根据dao接口和映射文件中statement的定义生成接口实现代理对象。可以调用代理对象方法。
Mybatis官方建议:将dao接口叫做mapper。

目标:通过一些规则让mybatis根据dao接口和映射文件中statement的定义生成接口实现代理对象,mybatis将以下代码自动在代理对象实现:

User user = sqlSession.selectUser("findUserById", id);

为了让XXXmapper.xml和XXXmapper.java对应起来,将XXXmapper.xml中的namespace设置为XXXmapper.java的全限定名(包括包名)。

阅读全文 »

Mybatis学习笔记

发表于 2017-11-01 |

  MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。Mybatis通过xml或注解的方式将要执行的statement配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

阅读全文 »

hive-hql详解

发表于 2017-10-29 |
set hive.cli.print.header=true;

CREATE TABLE page_view(viewTime INT, userid BIGINT,
     page_url STRING, referrer_url STRING,
     ip STRING COMMENT 'IP Address of the User')
 COMMENT 'This is the page view table'
 PARTITIONED BY(dt STRING, country STRING)
 ROW FORMAT DELIMITED
   FIELDS TERMINATED BY '\001'
STORED AS SEQUENCEFILE;   TEXTFILE
阅读全文 »
1…6789
Hanwen

Hanwen

公众号「WellDev」
后端•职场•思维

90 日志
1 分类
90 标签
RSS
GitHub Twitter FaceBook Weibo
© 2022 Hanwen
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.3