oracle学习总结
set linesize 120
set pagesize 20
column file_name format a8
v$nls_parameters 数据字典中的一个表
关于null的注意:
1:包含null的表达式结果为空
2:判断一个值是否等于null是用 is 不等于用is not 。记住(null!=null)
3:如果集合中含有null值,不能使用not in 但可以使用 in
sql 优化:
oracle9之后, *和列名的效率一样,在之前,用*列名效率比较高,因为oracle要解析*,所以效率比较慢
like的使用, 一个_代表匹配所有,多个_代表匹配多个字符,以S开头的 'S%',以S结尾的'%S',包含S的'%S%'
转移字符:escape 后面自顶一个转义字符
查询名字中含有_这个的
1 select *
2 from emp
3* where ename like '%\_%' escape '\'
使用and 时,应该尽量是假值在左边,使用or时应该尽量是真值在左边
排序:
如果要排序的值中含有空值,应当使其在后面 select * from emp order by comm desc nulls last;
修改系统日期的格式
select * from v$bls_parameters;
alter session set NLS_DATE_FORMAT='yyyy-mm-dd';原系统日期格式为'DD-MON-RR'
DISTINCT 去掉重复记录(作用它后面所有的列)
select DISTINCT deptno from emp;
单行函数:
字符函数
lower('Hello Word') 转小写 upper('Hello World') 转大写 select lower('Hello World'),upper('Hello World') from dual
substr(a,b)从a中,第b位开始取,取右边所有的字符 select substr('Hello World',3) from dual;
substr(a,b,c)从a中,第b位开始取,去的长度为c ,select substr('Hello World',2,3) from dual;
length('中国') 字符数 lengthb('中国')字节数 select length('中国'),lengthb('中国') from dual;
instr(a,b)从a中查找b,找到返回下标,否则返回0 select instr('Hello Word','ll') from dual;
lpad左填充 rpad右填充 select lpad('abcd',10,'*') from dual 把字符串abcd填充到第10位,用*填充
trim去掉前后指定的字符 select trim('H' from 'Hello WorldH') from dual; 意思是从 Hello WorldH 去掉H
replace 替换 select replace('hello world',2,'l','*') from dual; 把hello world 中所有字符l用*替换
数字函数
round(45.926,2)四舍五入函数,后面的数字为保留的小数位数 select round(45.926,2) ,round(45.926,1),round(45.926,0),round(45.926,-1),round(45.926,-2) from dual
trunc(45.926,2)一律舍去保留小数位后面的值,不管是否大于5还是小于4 select trunc(45.926,2) ,trunc(45.926,1),trunc(45.926,0),trunc(45.926,-1),trunc(45.926,-2) from dual
mod(1600,300) 求余 select mod(1600,300) from dual;
日期函数
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; 秒级
select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss:ff') from dual; 毫秒级
昨天,今天,明天
select (sysdate-1), sysdate, (sysdate+1) from dual;
不允许日期+日期
months_between 两个日期相差的月数 select ename,months_between(sysdate,hiredate) from emp;
add_months 指定日期加上若干月数 select add_months(sysdate,100) from dual;
next_day 指定日期的下一个日期 select next_day(sysdate,'星期三') from dual;
last_day 日期所在月份的最后一天 select last_day(sysdate) from dual
round 日期四射五入 select round(sysdate,'month'), round(sysdate,'year'),round(sysdate,'day') from dual;
trunc 日期截断 select trunc (sysdate,'month'), trunc (sysdate,'year'),trunc (sysdate,'day') from dual;
转换函数
隐性转换(不需要你做什么,oracle数据库自动为你转换,前提是被转换对象是可以转换的)
显性转换(需要自己手动的转换)
显示当前时间 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss "今天是" day') from dual;
把某一个数字按一定格式转换成字符串
查询员工薪水:两位小数,货比代码,千位符
select to_char(sal,'9,999.99L') from emp;
oracle学习总结的更多相关文章
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- Oracle学习线路
出自huyangg的博客,地址是:oracle学习路线图 1.sql.pl/sql(网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验) 作为oracle的基本功,需要大家对sql和 ...
- Oracle学习指南
Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...
- Oracle学习系列1-7
Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...
- Oracle学习系列7
Oracle学习系列7 ************************************************************************************ 关联表 ...
- Oracle学习系列6
Oracle学习系列6 ************************************************************************************ 删除约 ...
- Oracle学习系列5
Oracle学习系列5 ************************************************************************************ ,掌握 ...
- Oracle学习系列4
Oracle学习系列4 ************************************************************************************ 数据库 ...
- Oracle学习系列3
Oracle学习系列3 ************************************************************************************ 多表查 ...
- oracle学习笔记(一)用户管理
--oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...
随机推荐
- Web.xml 中增加log4j
配置文件例如以下.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app versio ...
- 用 jQuery Masonry 插件创建瀑布流式的页面(转)
瀑布流式的页面,最早我是在国外的一个叫 Pinterest 的网站上看到,这个网站爆发,后来国内的很多网站也使用了这种瀑布流方式来展示页面(我不太喜欢瀑布流这个名字). 我们可以使用 jQuery 的 ...
- javascript中false值及其常见比较运算
1. ture或者false的值 if判断中会被隐式转换成false的boolean类型的值有 false, 0, undefined , null , '', NaN(not a number) 除 ...
- android开发问题汇总
android开发问题汇总 一. 无法创建新android项目 在eclipse创建新项目时出现: this template depends on the android support libra ...
- TCP/IP协议原理与应用笔记03:IP地址分类
1. 事实上,每个IP地址都包含两部分,即网络号和主机号. 例如:202.112.81.34指的 就是202.112.81这个网络的第34号机. 网络号:用于识别主机所在的网络: 主机号:用于识别该网 ...
- 明天参加GDG devfest
明天就可以第二次去参加devfest了,还记得去年去的时候是个啥也听不懂的小白,希望今年能够收获更多,结识更多大牛和志同道合的伙伴.
- Objective-C /iphone开发基础:协议(protocol)
protocol协议时为了补充Objective-C 只能单继承的缺陷而增加的一个新功能.Objective-C重所有的方法都是虚方法,所以在oc重也就没有关键字 virtual一说,有了协议可以补充 ...
- Failed to create java virtue machine(不能创建java虚拟机)
今天开发模块时,遇到这个问题,本来是版本的问题,jdk1.6的版本有点低,与cxf框架不兼容,需要用到jdk1.7,结果安装了jdk1.7之后,客户方要求必须用jdk1.6,要统一,所以卸载jdk1. ...
- Windows下性能最好的I/O模型——完成端口
I/O模型--完成端口 设计目的: 常见的网络通信分为两种:同步和异步. 在同步通信中,每一次接受数据都会导致主线程的挂起,从而阻塞住了其他操作.为了解决这一问题,我们通常会采取同步通信+多线程的策略 ...
- 对setTimeout()第一个参数是字串的深入理解以及eval函数的理解
<script language="javascript" type="text/javascript"> var a=1; setTimeout( ...