
ORACLE SQL/PLSQL/函数
Yushan Bai
目前仍热衷于ORACLE数据库,博客内容基本为原创,欢迎指点交流!
展开
-
left/right join 与+使用通俗说明
(+)的使用----哪边的行数少,哪边要用+select d.deptno,d.dname,e.ename from emp e,dept d where d.deptno=e.deptno(+);select d.deptno,d.dname,e.ename from emp e,dept d where e.deptno(+)=d.deptno; DEPTNO DNAME原创 2013-10-27 21:02:22 · 1210 阅读 · 0 评论 -
ORACLE单行函数与多行函数之二:字符函数示例
1.大小写转换initcap(char) 把每个字符串的首字符换成大写lower(char) 整个字符串转换成小写upper(char) 整个字符串转换成大写BYS@bys1>Select lower(ename),upper(ename),initcap(ename) from emp where rownumLOWER(ENAM UPPER(ENAM INITCAP原创 2013-11-02 15:52:09 · 1576 阅读 · 0 评论 -
ORACLE公有/私有同义词
同义词概念:1. 同义词时表、索引、视图等模式对象的一个别名。经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。oracle数据库只在数据字典中保存其定义描述,同义词不占用任何实际的物理空间。2. 使用同义词优点:避免当管理员对数据库对象做出修改和变动之后,必须重新编译应用程序。使用同义词后,即使引用的对象发生变化,也只需要在数据库原创 2013-11-03 15:21:50 · 9958 阅读 · 0 评论 -
GROUP BY中ROLLUP/CUBE/GROUPING/GROUPING SETS使用示例
oracle group by中rollup和cube的区别:Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。CUBE ROLLUP 是用于统计数据的。使用SCOTT用户的EMP表测试1.仅使用GROUP BY分组,GROUP BY后的单列可以用括号,也可以不用。以下两种写法作用一样:SCOTT@bys1>SELECT deptno, avg原创 2013-10-31 21:44:03 · 2210 阅读 · 2 评论 -
SQL语句执行顺序及建议--归纳整理
一、SQL语句准备执行阶段当SQL 语句进入Oracle 的库缓存后1) 语法检查:检查SQL 语句拼写是否正确和词序2) 语义分析:核实所有的与数据字典不一致的表和列的名字3) 轮廓存储检查:检查数据字典4) 生成执行计划:使用基于成本的优化规则和数据字典中的统计表来决定最佳执行计划5) 建立二进制代码:基于执行计划一旦为执行准备好了SQL以后的执行将很快发生,因为O原创 2013-10-30 12:03:20 · 11706 阅读 · 2 评论 -
ORACLE中union/union all/Intersect/Minus用法
Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;Union All,对两个结果集进行并集操作,包括重复行,不进行排序;Intersect,对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;Minus,对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。order by子句必须写在最后一个结果集里,并且其排序规则将改变操作后的排序结原创 2013-11-01 11:32:12 · 7016 阅读 · 0 评论 -
ORACLE单行函数与多行函数之七:多行函数之分组函数示例
多行函数:从一组记录中返回一条记录,可出现在select列表、ORDER BY和HAVING子句中通常都可用DISTINCT过滤掉重复的记录,默认或用ALL来表示取全部记录无论是否过滤重复记录,NULL在聚合函数中总是不被计算,被忽略。主要函数:–COUNT–MIN和MAX–AVG和SUM---只可用于数值型1.COUNT统计行数函数,及where、group by原创 2013-11-02 23:05:25 · 1552 阅读 · 0 评论 -
ORACLE使用函数对二进制、十进制、十六进制数互相转换
文中涉及:十进制与十六进制的互相转换二进制与十进制的互相转换二进制与十六进制的互相转换1.将十进制的数转换为十六进制的数请使用to_char函数。数据库中16进制的表达是按照字符串来描述的,所以将十进制的数转换为十六进制的数使用to_char函数BYS@bys1>select to_char(10,'xxx'), to_char(42,'xxx') from dual;原创 2013-11-03 12:42:42 · 18932 阅读 · 0 评论 -
to_date函数与当前系统时间格式可否隐式转换问题总结
1.如to_date函数中时间格式与当前时间格式相符,可以不在函数中指定格式而完成隐式转换。BYS@bys1>select sysdate from dual;SYSDATE-------------------2013/10/25 09:40:31BYS@bys1>select to_date('2013/10/25 09:40:31') from dual;原创 2013-10-25 10:07:59 · 2948 阅读 · 1 评论 -
ORACLE正则表达式函数详解--转载整理
Oracle 10g提供了四个正则表达式函数regexp function: REGEXP_LIKE, REGEXP_REPLACE,REGEXP_INSTR,REGEXP_SUBSTR。REGEXP_LIKE:(匹配) 比较一个字符串是否与正则表达式匹配 (srcstr, pattern [, match_option]) REGEXP_INSTR:(包含)在原创 2013-11-01 21:37:00 · 5685 阅读 · 0 评论 -
ORACLE单行函数与多行函数之四:日期函数示例
实验环境:BYS@bys1>select * from nls_session_parameters where parameter='NLS_DATE_FORMAT';PARAMETER VALUE-------------------- ------------------------------NLS_DATE_FORMAT yyyy/mm/d原创 2013-11-02 19:35:15 · 2892 阅读 · 0 评论 -
ORACLE单行函数与多行函数之一
单行函数与多行函数最直观的解释是:单行函数输入一行,输出一行。多行函数输入多行,输出一行。如下图:单行函数分为五种类型:字符函数、数值函数、日期函数、转换函数、通用函数多行函数:从一组记录中返回一条记录,可出现在select列表、ORDER BY和HAVING子句中通常都可用DISTINCT过滤掉重复的记录,默认或用ALL来表示取全部记录无论是否过滤原创 2013-11-02 14:01:57 · 2168 阅读 · 0 评论 -
ORACLE单行函数与多行函数之六:通用函数示例
主要实验了几个常用的判断NULL值的函数。1.NVL(a,b):判断A字段的内容为null时,运算结果为指定的值。A不为NULL,则显示A的值。如果COMM的值为NULL,则返回显示为200.BYS@bys1>Select COMM,NVL(COMM,200) From EMP where rownum COMM NVL(COMM,200)---------- -原创 2013-11-02 22:25:20 · 1548 阅读 · 0 评论 -
ORACLE单行函数与多行函数之五:转换函数示例
一、数据类型的隐式转换规则:字符串可以转化为数字和日期。数字要合法,日期要格式匹配。下面两句执行结果一样:BYS@bys1>select ename,empno from emp where empno='7788';BYS@bys1>select ename,empno from emp where empno=7788;ENAME EMPNO----原创 2013-11-02 21:01:23 · 1502 阅读 · 0 评论 -
ORACLE单行函数与多行函数之三:数值函数
常用数字转换类:ROUND:四舍五入 TRUNC:截取 MOD:取余 FLOOR 取整 POWER(n1,n2) 求N次方根 SIGN(n)ROUND:四舍五入 round(number,a),以小数点位核心,a如果为0可以不写,表示取整;a为-1表示小数点前一位,即个位数;a为2则表示小数点后2位。BYS@bys1>select round(555.555),原创 2013-11-02 16:35:22 · 1680 阅读 · 0 评论 -
Hierarchical query-层次查询之START WITH CONNECT BY用法
Hierarchical query-层次查询中start with...connect by prior子句用法;connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3; 例: select * from table start wi原创 2013-11-01 00:17:58 · 2515 阅读 · 0 评论 -
一条简单SQL语句的构成及语句解析
SQL语句的构成基础元素(数据类型、数据格式、NULL等)、伪列、操作符、函数、表达式、条件包含以上元素的一条简单SQL–SQL> select rownum, empno, ename, mgr, sal+300 newsal, decode(mgr,null,'大老板','下级员工') jd from emp where ename in ('KING','SCOTT',原创 2013-10-30 10:29:09 · 1689 阅读 · 0 评论 -
通过创建视图及同义词方式实现普通用户查询X$基表的方法
看到群里有人问普通用户访问基表的问题,测试下如下:X$基表可以通过创建视图,再对视图创建同义词方式、授权的方式来实现普通用户可以访问基表。当然了普通用户访基表也是没道理的,理论上没必要,权限控制上也应该是不允许的。此处不考虑合理性,就此问题进行实验。1.直接对X$基表创建同义词,其它用户无法实现访问。SQL> show userUSER is "SYS"SQL> sel原创 2016-05-06 15:27:31 · 1941 阅读 · 0 评论