先不聊技术,咱先闷骚一下。刚看完“解忧杂货店”的第二章“深夜的口琴声”,这一章勾起了我万千思绪,小说毕竟是小说,可能与现实不符,但能引发思考,反应一个普遍问题就是好小说。看到一半我还特意去酷狗上搜了一下有没有“深夜里的口琴声”里的“重生”这首歌,结果意料之中。我也在怀疑,我一直以来的那些想法是不是我的执念,就说“架构师”这事情,在大学校园里就为自己立了一个目标,在毕业后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++ 文件类型分析

    .APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度.资源辅助文件. .BMP:位图资源文件. .BSC:浏览信息文件,由浏览信息维护工具( ...

  2. 关于Yii2.0的url路径优化问题(配置虚拟路径)

    backend/config/main.php 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => fa ...

  3. vue elementui form表单验证

    最近我们公司将前端框架由easyui 改为 vue+elementui .自学vue两周 就开始了爬坑之路.业余时间给大家分享一下心得,技术新手加上第一次分享(小激动),有什么不足的地方欢迎大家指正, ...

  4. facebook对xtrabackup的优化整理

    1)Adding xtrabackup files https://github.com/facebook/mysql-5.6/commit/6eb74f86e27410f1ad7bf3379ce15 ...

  5. 初识STM32标准库

    1.CMSIS 标准及库层次关系 CMSIS 标准中最主要的为 CMSIS 核心层,它包括了: STM32标准库可以从官网获得: 在使用库开发时,我们需要把 libraries 目录下的库函数文件添加 ...

  6. BUILDING ANGULAR APPS USING FLUX ARCHITECTURE

    Flux is an architectural pattern based on unidirectional data flow. Although it is originated in the ...

  7. openstack网络管理命令

    1.获取网络列表 [root@cc ~(keystone_admin)]# neutron net-list +--------------------------------------+----- ...

  8. Shell 常用命令总结

      Shell常用命令总结 1  ls命令:列出文件 ls -la 列出当前目录下的所有文件和文件夹 ls a* 列出当前目录下所有以a字母开头的文件 ls -l *.txt 列出当前目录下所有后缀名 ...

  9. 程序员不常用Linux命令集

    1) 关闭指定网卡,如关闭网卡eth0 ifconfig eth0 down 也可以使用ifdown,通常ifdown是一个指向ifup的软链接,而ifup为一个脚本文件. 2) 命令自启动,如希望机 ...

  10. Vivado安装教程

    Vivado的各个版本的安流程其实都差不多,本教程用Vivado2016.4为例进行安装,同样适用于之前和之后的各个版本. 下载好安装包后打开,双击xsetup.exe运行安装程序 弹出的窗口,提示现 ...