01-基本的查询语句

A:一些命令

  1. sqlplus sys/sys@192.168.22.220:1521/orcl as sysdba;
  2. conn scott/123456@192.168.22.210:1521/orcl; 从当前用户转换成scott用户
  3. show user; 显示当前用户名
  4. show linesize; 显示的行宽
  5. set linesize 150; 设置行宽
  6. col ename for a8; col sal for 9999;设置列ename为字符长度为8个长度;设置列sal为4位数字;
  7. c 命令字符替换,如: c /form/from 或者c!form!from
  8. host cls;清屏幕
  9. spool d:/1.sql 将命令写入到1.sql文件中。spool off终止写入文件中。

Bsql优化原则

  1. 查询的时候尽量使用列名;如:select ename,sal from emp;
  2. 分组查询没有多行函数(聚合函数),如果使用过滤,考虑使用where还是having
  3. 在子查询和多表查询之间选择,尽量使用多表查询
  4. 在集合运算中,如果union 和union all都可以,考虑使用union all 。因为union需要去掉重复的。
  5. 能够不要使用集合运算就不要使用集合运算。

注意:掌握oracle的常规命令,在学习过程中总结一些优化原则;

02-空值和别名

A:处理列值为null

oracle中的列值为null做四则运算结果都为null。处理方法:nvl(null,0)

B:判断列null

oracle中判断一个列值为null使用is null 或者is not null

C给一个列取一个别名可以使用as 或者省略as

select empno as “员工编号” , ename 员工姓名 from emp;

注意:别名需要使用“”,或者不加“”。别名中间有空格的需要“”;

不能使用单引号;

D:distinct 取出后面的所有列唯一

select distinct job,deptno from emp;这里的distinct作用于后面的所有的列。

select distinct(job) from emp;可以将加()

E:|| concat() 字符连接起来

select concat(‘hello’,’world’) from dual;使用concat()后面需要加表。mysql并严格遵循sql1990标准;

select ‘hello’ || ‘world’ from dual;

注意:字符串使用单引号‘’,不能使用双引号“”,使用双引号的是别名。

dual是伪表;

03-SQL和iSQLPLUS

A:sql、sqlplusisqlplus区别

  1. sql:insert update delete等常见的sql语句,关键词没有缩写。命令可以控制表中定义和数据;
  2. sqlplus:desc/ed/c/col/for等命令都是sqlplus命令,关键词有缩写,命令不能改变数据库中的数据;访问sqlplus服务端口是1158;
  3. isqlplus:是sqlplus是网页版本的sqlplus。可以执行脚本,也可以运行脚本;访问isqlplus服务需要访问5560端口;

04-过滤where

Awhere 后面比较运算符(>,<,!=,>=,<=,between and ,in,like,not like,is null,is not null

  1. 后面=可以接数据或者字符串,其中日期格式需要注意

如果select * from emp where hiredate=’81-09-08’ 执行会出现错误;

因为该日期字符串格式与oracle当前格式不一致,oralce无法处理成日期类型。但是可以修改日期格式;alter session|system set NLS_DATE_FORMATE=’yy-mm-dd’.select * from v$nls_parameters; 可以查看到系统的所有变量;

  1. between and (包括边界,小值在前,大值在后)
  2. in后面集合中可以加null,not in()集合中不能有null
  3. 注意:where 后面用于过滤或者连接其他表的条件,重点掌握常用>,<,!=,>=,<=,between and ,in,like,not like,is null,is not null操作;

05-逻辑运算符和排序

A:where 后面使用逻辑运算符(and ,or ,not)

注意:condition1 and condition2 和condition2 and condition1的区别;解析的顺序是从右边到左边;explain plan for select * from emp where condition1 and condition2;

B:查询排序(order by)

order by 列名/表达式/别名/序列. 且order by 后面可以接多个列

如果列中有值为null,则desc排序会出现null值行在前null最大,为了解决该问题:

select * from emp order by comm desc nulls last;

注意:order by 多个列参与排序的特殊性。

 06-函数简介

A:单行函数和多行函数

注意:操作返回一行数据的函数叫单行函数,操作返回的多行数据的函数叫多行函数;

07-字符函数和数值函数

A:字符函数

  1. 大小写控制

B:数值函数

  1. round():四舍五入
  1. truncate():截断

注意:重点掌握length(),substr(),instr(),round().

08-日期函数

A:日期函数

Oracle中提供了很多和日期相关的函数,包括日期的加减,在日期加减时有一些规律

日期 – 数字 = 日期

日期 + 数字 = 日期

日期 – 日期 = 数字

09-转换函数

Aoracle中隐式转换(查百度)

B:to_char():日期转换成字符串,数字转换成字符

Cto_number():字符串转换成数字

Dto_date():字符串转换成日期

注意:掌握to_char(),to_number(),to_date() ,3个转换函数;

10-通用函数和条件表达式

A:通用函数

  1. nvl(expr1,expr2) 如果repr1是null则把expr1处理成expr2
  2. nvl2(expr1,expr2,expr3),如果repr1不为null,则值为expr2,为null则返回expr3
  3. nullif(expr1,expr2),如果repr1=repr2,则返回null,否则返回expr1
  4. coalesce(expr1,expr2….), 依次参考各参数表达式,遇到非null值即停止并返回该值。
    如果所有的表达式都是空值,最终将返回一个空值B:条件表达式
    1. case  xx when xx then xx  when xxx  then xx else xx end;
    2. decode()

注意:nvl(),nvlif()和2个条件语句必须掌握。

11-多行函数

A:分组函数(avg(),max(),min(),count(),sum()

B:分组

group by  having  order by

注意:多行函数在sql中的使用;

oracle01的更多相关文章

  1. Oracle01——基本查询、过滤和排序、单行函数、多行函数和多表查询

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7272236.html Oracle的集群 Oracle的体系结构 SQL> --当 ...

  2. Oracle-01:基础命令小结

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 记录一下我的Oracle学习之路,详细的安装教程忙完这俩天会认真总结一版 本次记录这次学习cmd基础命令 一, ...

  3. 文件控制列表命令setfacl和getfacl的使用

    一 需求 有以下需求,通过setfacl命令实现 一组用户可写可读可执行,一组用户可写可执行,另一组用户只可读 linux rwx oracle wx uplook r 二 解决 第一步 添加六个用户 ...

  4. OCP读书笔记(26) - 题库(ExamF)

    501.Note the output of the following query;SQL> SELECT flashback_archieve_name, status FROM dba_f ...

  5. 【恢复】 Redo文件丢失的恢复

    第一章 Redo文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢 ...

  6. ORACLE监听配置及测试实验(2)

    实验四 在tnsname.ora里添加默认监听代号 [oracle@oracle01 admin]$ vi tnsnames.ora 添加一行 PORT1528=(ADDRESS = (PROTOCO ...

  7. ORACLE监听配置及测试实验

    实验一: 修改db_domain和service_name 我们将Db_name和Db_domain两个参数用'.'连接起来,表示一个数据库,并将该数据库的名称称为Global_name即等于serv ...

  8. ORACLE network environment

    监听程序 建立网络连接 要建立客户机或中间层连接,Oracle Net要求客户机 下列事项: 运行监听程序的主机 监听程序监视的端口 监听程序使用的协议 监听程序处理的服务名 Hostname/ip ...

  9. oracle RAC srvctl命令关闭节点实例的时候 不能正常执行

    场景描述: [oracle@oracle01 admin]$ srvctl stop database -d oradb1 PRCD- : The resource for database ORAD ...

随机推荐

  1. Python 词云分析周杰伦《晴天》

    一.前言满天星辰的夜晚,他们相遇了...夏天的时候,她慢慢的接近他,关心他,为他付出一切:秋天的时候,两个人终於如愿的在一起,分享一切快乐的时光但终究是快乐时光短暂,因为杰伦必须出国深造,两人面临了要 ...

  2. 标准模式 怪异模式 盒模型 doctype

    在页面顶部设置 doctype是为了统一标准 浏览器有标准模式和怪异模式 而这两种模式最大区别就是 盒模型的解析不同 ============================== 图片摘自网络 === ...

  3. RESTful服务最佳实践

    本文主要读者 引言 REST是什么 统一接口 基于资源 通过表征来操作资源 自描述的信息 超媒体即应用状态引擎(HATEOAS) 无状态 可缓存 C-S架构 分层系统 按需编码(可选) REST快速提 ...

  4. ES6小点心之通用弹窗

    小点心,顾名思义,开箱即食,拿来即用. 前端业务逻辑主要分为[交互效果]和[数据展示]两方面.数据展示可使用 MVVM 框架来实现.前端的交互效果常用的也就那么几种,比如弹窗,楼层定位,倒计时,下拉刷 ...

  5. Windows资源

    Windows资源是一种二进制数据,由链接器链接进程序成为程序的一部分,通过资源的方式可以很方便的对应用程序进行扩展.在Windows中资源可以是系统自定义的,也可以是用户自定义的.在VC++中资源是 ...

  6. Swagger入门教程

    [译]5.41 Swagger tutorial 单击此处查看原文 更多概念参见:Implementing Swagger with your API docs 关于 Swagger Swagger能 ...

  7. 全景图(panorama)低成本解决方案

    软硬件 米家全景相机,用于较低成本(学习成本+Money)的获得全景图像,而比较专业的获得全景图像的方法则是单反+云平台+PTGui的组合. PhotoShop,用于处理全景图像. PhotoShop ...

  8. 【ASP.NET MVC系列】浅谈表单和HTML辅助方法

    [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP. ...

  9. SQL server学习(二)表结构操作、SQL函数、高级查询

    数据库查询的基本格式为: select ----输出(显示)你要查询出来的值 from -----查询的依据 where -----筛选条件(对依据(数据库中存在的表)) group by ----- ...

  10. 【Java学习笔记之十八】Javadoc注释的用法

    Javadoc注释的用法 Java 文档 // 注释一行/* ...... */ 注释若干行/** ...... */ 注释若干行,并写入 javadoc 文档 通常这种注释的多行写法如下: /*** ...