先不聊技术,咱先闷骚一下。刚看完“解忧杂货店”的第二章“深夜的口琴声”,这一章勾起了我万千思绪,小说毕竟是小说,可能与现实不符,但能引发思考,反应一个普遍问题就是好小说。看到一半我还特意去酷狗上搜了一下有没有“深夜里的口琴声”里的“重生”这首歌,结果意料之中。我也在怀疑,我一直以来的那些想法是不是我的执念,就说“架构师”这事情,在大学校园里就为自己立了一个目标,在毕业后5年内达到架构师的水准,在一个大型技术型公司里能够独当一面,扛起担子,带领大家“干大事”;眼看现在时间快四年了,到2018年6月21日,工作满5年,回头看看自己的水平,远不及当初所想。假如当初克朗接受现实,回到家乡继承父业,把音乐当做一个爱好,会不会也生活得很悠闲?那这种情况下他的音乐会不会被现实中的琐事湮灭?但是按照小说里的情节,他也免不了最终的悲剧,即使是没有那场意外;因为他所定义的那种“实现梦想的人”毕竟是少数,虽然小芹的成名曲也是“重生”,但在章节开始,一个音乐评论家就说过:“歌唱得跟你一样好的人多的是,如果你的声音很有特色,自然另当别论,但你没有”;显然小芹的出名并不完全因为“重生”。看完这章,我的收获是,定个目标,但去除执念,一切慢慢来,顺其自然,但也不能发生“音乐被现实中的琐事湮灭”这种事情,毕竟“梦想是要有的,万一实现了呢!”。至于架构师呢,时间不变,等2018年6月21日回头看看自己的成效吧。以后的“架构师养成”这一标签的中的所有博客标题去掉前缀“架构师养成记--”,但还会放到“架构师养成”这一标签中。

  oracle很久之前就学过,工作中一直在用,但是都比较浅显。这次借着“架构师养成”把oracle再梳理一遍,包括最最基础的sql语句,不嫌麻烦,慢慢来。

  登录system 设置scott账户

  ALTER USER scott account unlock

  ALTER USER scott identified by orcl

一、sql基础

1、数据库语言分类

数据操作语言:DML (data manipulation language)

  select insert update delete merge

数据定义语言:DDL (data definition language)

  create alter drop turncate

事务控制语言:TCL (transaction control language)

  commit rollback savepoint

数据控制语言:DCL (data control language) 权限相关的

  grant revoke

对于oracle,DML操作会产生undo和lock(除了select)

2.数据类型

  包含 字符、数值、日期、大对象

  • char 固定字符,最大长度2000
  • varchar2 可变长,最长4000,最小1
  • number
  • date timestamp
  • clob(存储单字节数据,文本数据)
  • blob(存储二进制数据)

3.常用函数

  date char number三种类型相互之间转换

  • to_timestamp('2017-03-19 21:58:12.08','YYYY-MM-DD HH24:MI:SS.FF');对应mysql中的函数 str_to_date('2008-4-2 15:3:28','%Y-%m-%d %H:%i:%s')
  • to_date('2017-03-19','YYYY-MM-DD')
  • to_char(sysdate,'YYYY-MM-DD')
  • to_char(systimestamp,'YYYY-MM-DD HH24:MI:SS.FF');mysql中对应的函数是date_format(time, '%Y%m%d%H%i%s')
  • to_number(replace(to_char(sysdate,'YYYY-MM-DD'),'-'))

时间与字符串之间转换的详细用法可以参考博客:

http://www.cnblogs.com/reborter/archive/2008/11/28/1343195.html

  • decode函数 decode(deptno,10,'部门1',20,'部门2','部门3'); mysql中没有decode
  • case表达式 case when deptno=10 then '部门1' when deptno=20 then '部门2' else '部门3' end 或者使用 case deptno when 10 then '部门1' else '部门3' end 这种格式;mysql中也有对应表达式,mysql中海油if函数可实现类似功能。
  • trunc
  • add_months
  • month_between
  • last_day
  • replace
  • substr
  • concat
  • abs
  • round

4.分组

组函数 sum min max avg count

分组特性 group by ... having

翻译题:

1.查询每个部门的平均薪水之后显示部门平均薪水大于2000的部门编号和其平均薪水

select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;

2查询每个部门的薪水和,在算出所有部门薪水平均值

select sum(sal) as total,avg(sal) as average from emp group by deptno;

5.几种连接

  • 交叉连接
  • 等值连接、非等值连接
  • 内连接

    select * from dept,emp where dept.deptno = emp.deptno

    select * from dept inner join emp on dept.deptno = emp.deptno

    select * from dept join emp on dept.deptno = emp.deptno

  • 外链接(左外,右外,全连接)

    select * from dept,emp where dept.deptno = emp.deptno(+)

    select * from dept left join emp on dept.deptno = emp.deptno

    select * from dept left outer join emp on dept.deptno = emp.deptno

    select * from dept full join emp on dept.deptno = emp.deptno

  • 自连接  
  • 自然连接(隐含连接条件,自动匹配连接)

    很少用,就是两张表字段名和字段类型完全相同,oracle就自动连接。相当于一种内连接

    select * from dept natural  join emp 也就相当于 select * from dept,emp where dept.deptno = emp.deptno

  • 集合运算

    union(重复记录只返回一条)

    union all(显示所有记录)

    intersect(显示公司的数据部分)

    minus(集合相减,那个表在前面以那个表数据为主)

6.子查询

  • 非关联子查询:select * from emp where emp.deptno = (select deptno from dept where dept.deptno=10)
  • 关联子查询:select emp.ename,(select dept.dname from dept where dept.deptno=emp.deptno) as deptname from emp
  • in和exists。in是做全表扫描;exists是做是否存在,非全表扫描。

7.rownum的使用

只有用小于才能查到结果,使用大于没有结果。使用别名的形式查询,大于才有结果。

select * from (select emp.*,rownum as rn from emp ) where rn > 5;

select * from (select emp.*,rownum as rn from emp ) where rn between 5 and 10;

要注意的是,使用between and 是包含的。

这一篇就先这样了,都是一些基础的东西,不要嫌烦,再看一遍总有点收获。其他的像存储过程,函数什么的,就不多介绍了,都类似上面这些基础的东西,应该很熟练。

38.oracle开篇的更多相关文章

  1. Oracle 数据库日常巡检

    1. 检查数据库基本状况 包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分. 1.1. 检查Oracle实例状态 select instance_name ...

  2. 【体系结构】Oracle参数介绍

    [体系结构]Oracle参数介绍 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩ ...

  3. Oracle与SQL SERVER编程差异分析(入门)

    网上有关Oracle与SQL SERVER性能差异的文章很多,结论往往是让你根据数据量与预算来选择数据库.但实际项目中,特别是使用 .Net 开发的系统,支持以上两种数据库或者更多已经成为Boss的普 ...

  4. 如何解决Oracle 11g EM网站报“此网站的安全证书存在问题”

    在IE中输入https://localhost:1158/em 接报错,打不开;提示:“证书错误,此网站安全证书有问题”,解决过程如下: 1.删除与重建dbconsole 2.配置必要的环境变量 1. ...

  5. oracle 10g操作和维护手册

    1.    检查数据库基本状况... 1.1.     检查Oracle实例状态... 1.2.     检查Oracle服务进程... 1.3.     检查Oracle监听状态... 2.    ...

  6. Oracle 12C执行root.sh CLSRSC-119 CRS-8503 CLSRSC-366

    1.环境 OS:SUSE Linux Enterprise 12 SP3 X86_64 (Kernel: 4.4.162-94.69.2) DB:12.2.0.1 两节点RAC 参考文档:在 SLES ...

  7. Oracle 11g EM删除重建的方法

    虚拟机里的Oracle 11g好长时间没用了,突然打开之后发现EM无法访问了,EM可以重建,于是也不打算查找原因了,直接使大招 OS:Windows Server 2012 Oracle:11g R2 ...

  8. Linux删除oracle数据库

    手动的删除ORACLE数据库. 本人的做法: su - root lsnrctl stop kill -9 `ps -ef |grep oracle |grep -v grep |awk '{prin ...

  9. [转]Oracle 初始化参数之cursor_sharing

    本文转自:http://www.cnblogs.com/Richardzhu/archive/2013/01/21/2869837.html 一.Cursor_sharing简介: 这个参数是用来告诉 ...

随机推荐

  1. C#通用数据访问类库

    说明:此篇文章是给那些和我一样仍在使用ADO.NET访问数据库的.NET开发人员写的,因为某些原因,比如还在使用.NET3.0以下版本开发.NET应用或者所使用的数据库对ORM支持不是很好,或者是对O ...

  2. springMVC入门程序。使用springmvc实现商品列表的展示。

    1.1 开发环境 本教程使用环境: Jdk:jdk1.7.0_72 Eclipse:mars Tomcat:apache-tomcat-7.0.53 Springmvc:4.1.3 1.2 需求 使用 ...

  3. Solidity根据精度来表示浮点数

    https://stackoverflow.com/questions/42738640/division-in-ethereum-solidity/42739843 pragma solidity ...

  4. SDK管理利器——sdkman

    SDK管理利器--sdkman 项目使用java的开发者一定会为新配环境变量而头大,sdkman很好的解决了系统sdk管理的痛点,仅需简单的几行命令就可以完成sdk的安装,更改默认版本.再也不用担心环 ...

  5. POJ2195 Going Home (最小费最大流||二分图最大权匹配) 2017-02-12 12:14 131人阅读 评论(0) 收藏

    Going Home Description On a grid map there are n little men and n houses. In each unit time, every l ...

  6. (2)-生成JSONObject的方法

    生成JSONObject一般有两种方式,通过javabean或者map类型来生成.如下面的例子:   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 ...

  7. ARPG游戏打击感相关的技术简单总结

    说好的技术总结,根据近期的工作总结一下体现游戏打击感相关的技术.一般arpg的游戏打击感除了场景的氛围的烘托,策划的数值:连击,奖励伤害数字的连贯积累反馈,硬直加物理击飞ragdoll,更不可忽视的也 ...

  8. 并发处理 - 配置文件"并发:报表访问层"的设置 (Doc ID 1625757.1)

    文档内容   目标   解决方案 适用于: Oracle Concurrent Processing - 版本 12.0.0 到 12.2 [发行版 12 到 12.2] 本文档所含信息适用于所有平台 ...

  9. Java泛型学习笔记

    泛型是Java5引进的新特征,是类和接口的一种拓展机制,主要实现参数化类型机制.Java的泛型,跟C++的类模板有很多相似的地方,或者说,就是C++类模板的升级版. 泛型类 在开发过程中,我们或许要设 ...

  10. Java ActiveMQ 讲解(一)理解JMS 和 ActiveMQ基本使用

    最近的项目中用到了mq,之前自己一直在码农一样的照葫芦画瓢.最近几天研究了下,把自己所有看下来的文档和了解总结一下. 一. 认识JMS 1.概述 对于JMS,百度百科,是这样介绍的:JMS即Java消 ...