首页 > 数据库技术 > 详细

Oracle笔记

时间:2018-09-01 21:22:16      阅读:212      评论:0      收藏:0      [点我收藏+]
消除重复行
SELECT DISTINCT DEPTNO FROM EMP
查看表结构
(CMD命令中)DISCRIBE EMP
优先级 NOT>AND>OR
ORDER BY  ASC升序  DESC降序
LOWER 全部转换成小写
UPPER 全部转换成大写
INNITCAP 首字母大写其他小写
CONCAT 连接两个值等同于||
SUBSTR (expression,n1,n2)截取字符从n1开始,n2个字符,如果n1为负数则从右往左数
LENGTH(expression) 获取字符长度
INSTR (s1,s2,n1,n2)返回s2在s1中从n1开始第n2次出现的位置,n1,n2可以不写,默认值为1
LPAD (S1,N1,S2)返回S1被S2从左面填充到N1长度的字符串
SELECT  LPAD(‘DE’,6,’*’) FROM DUAL 结果 ****DE
RPAD(S1,N1,S2) 返回S1被S2从右面填充到N1长度的字符串
SELECT  LPAD(‘DE’,6,’*’) FROM DUAL 结果 DE****
TRIM去除字符串头部或尾部(头尾)的字符
SELECT TRIM(‘S’FROM ‘SSMITH’) FROM DUAL 结果 MITH
REPLACE(S1,S2,S3)把S1中的S2用S3替换
ROUND(expression,n1) 四舍五入到n1位,正数表示小数点后面,负数表示小数点前面
TRUNC(expression,n1) 截取到第n1位正数表示小数点后面,负数表示小数点前面
MOD(m,n)返回m除以n的余数
日期函数(格式碼CC世纪,YY,MM,DD,HH,MI,SS)

SYSDATE 返回系统日期
MONTHS_BETWEEN 返回两个日期相差的月数
SELECT MONTHS_BETWEEN(HIREDATE1,HIREDATE2) FROM DUAL
ADD_MONTHS 返回指定日期加上相应月数后的日期
SELECT ADD_MONTHS(HIREDATE,3)FROM DUAL
NEXT_DAY 返回某一日期指定的下一指定日期
SELECT NEXT_DAY(‘1,6月,2017’,‘星期一’)FROM DUAL 返回2017年6月1号的下一个星期一是几号
LAST_DAY 返回指定日期当月最后一天的日期
SELECT LAST_DAY(‘1,6月,2017’)FROM DUAL
ROUND(date[,’fmt’]) 将date按照fmt指定的格式四舍五入,如果没有指定fmt则默认为DD,将date四舍五入为最近的一天
TRUNC(date[,’fmt’]) 将date按照fmt指定的格式截断,如果没有指定fmt则默认为DD,将date四舍五入为最近的一天

EXTRACT 返回年或月或日
SELECT EXTRACT(MONTH FROM HIREDATE) FROM EMP
SELECT TO_CHAR(HIREDATE,‘YY/MM/DD‘)FROM EMP指定格式转换
YYYY  完整数字表示的年份
YEAR  年份的英文表示
MM  两位数字表示月份
MONTH  月份的全名
DAY  星期几
DY  三个英文缩写表示星期
通用函数
NAL(N1,N2)如果N1不为null则返回N1,否则返回N2
NAL(N1,N2,N3)如果N1不为null则返回N2,否则返回N3
NULLIF(N1,N2)比较两个表达式,如果相等返回null,否则返回N1
SELECT COALESCE(COMM,0) COMM,DEPTNO FROM EMP返回第一个不为空的参数,参数个数不受限制






**************************************************
select ENAME,DEPTNO,
            (CASE DEPTNO
                   WHEN 10 THEN ‘销售部‘
                   WHEN 20 THEN ‘技术部‘
                   WHEN 30 THEN ‘管理部‘
                     else ‘WU‘ END)
                       DEPTNAME  
 FROM DEPT
***************************************************
select ENAME,DEPTNO,
            DECODE( DEPTNO
                   10, ‘销售部‘
                    20, ‘技术部‘
                    30, ‘管理部‘
                      ‘WU‘ )
                     
 FROM EMP




99语法:
SELECT TABLE1.COLUM1 ,TABLE2. COLUM2 FROM TABLE1
CROSS JOIN TABLE2 交叉连接 ,产生笛卡尔积
NATURAL JOIN TABLE2 自然连接
JOIN TABLE2 USING  COLUM 
JOIN TBLE2 ON TABLE1.COLUM=TABLE2.COLUM
LEFT/RIGHT/FULL OUTER /JOIN TABLE2 ON TABLE1.COLUM=TABLE2.COLUM  全外连接为99独有
92语法
SELECT TABLE1.COLUM1 ,TABLE2. COLUM2 FROM TABLE1
WHERE TABLE1.COLUM=TABLE.COLUM 自然连接
WHERE TABLE1.COLUM=TABLE.COLUM(+) 左外连接
WHERE TABLE1.COLUM(+)=TABLE.COLUM  右外连接

授予视图权限:
登陆system 账户,密码oracle   语法:grant create view to scott


DDL(schema data definition)数据库模式定义语言create alter drop truncate
DCL(data control language) 数据库控制语言grant deny revoke
DML数据操作语言 insert delete update select


数值类型及函数
number是oracle中的数据类型
Precision代表精度,sacle代表小数位数;Precision范围[1,38],scale范围[-84,127]
常用方法:
abs()求绝对值:select abs(-3) as absvalue from dual
round()四舍五入:select round(33.54,1) as roundvalue from dual,第二个参数为保留到小数第几位
ceil()向上取整:select ceil(33.34) as roundvalue from dual 结果:234
floor()向下取整:select floor(33.34) as roundvalue from dual 结果:33
mod()取模:select mod(5,3) as roundvalue from dual 结果:2
Sign()正负性:select sign(-4) as roundvalue from dual正数为1,负数为-1
Sqrt()求平方根:select sqrt(9) as sqrtvalue from dual 结果:3
Power()求乘方:select power(2,3) as powervalue from dual 结果:8
Trunc截取:select trunc(274364.3645,3) as truncvalue from dual 结果:274364.364

 

Oracle笔记

原文:https://www.cnblogs.com/yanweichen/p/9571471.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!