﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Super·燊 BLOG-随笔分类-ORACLE</title><link>http://www.blogjava.net/Supershen/category/17502.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 03:40:41 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 03:40:41 GMT</pubDate><ttl>60</ttl><item><title>Oracle中的外连接简单介绍</title><link>http://www.blogjava.net/Supershen/archive/2006/11/29/84347.html</link><dc:creator>shen</dc:creator><author>shen</author><pubDate>Wed, 29 Nov 2006 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2006/11/29/84347.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/84347.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2006/11/29/84347.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/84347.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/84347.html</trackback:ping><description><![CDATA[
		<p>在讲外连接之前，先举例介绍内连接，也就是一般的相等连接。 <br />select * from a, b where a.id = b.id; <br />对于外连接，Oracle中可以使用“(+)”来表示，9i可以使用LEFT/RIGHT/FULL OUTER JOIN，下面将配合实例一一介绍。 <br />1. LEFT OUTER JOIN：左外关联</p>
		<p>SELECT e.last_name, e.department_id, d.department_name  <br />FROM employees e  <br />LEFT OUTER JOIN departments d  <br />ON (e.department_id = d.department_id);<br /> </p>
		<p>等价于 <br />SELECT e.last_name, e.department_id, d.department_name  <br />FROM employees e, departments d  <br />WHERE e.department_id=d.department_id(+);<br /> </p>
		<p>结果为：所有员工及对应部门的记录，包括没有对应部门编号department_id的员工记录。 <br />2. RIGHT OUTER JOIN：右外关联 <br />SELECT e.last_name, e.department_id, d.department_name  <br />FROM employees e  <br />RIGHT OUTER JOIN departments d  <br />ON (e.department_id = d.department_id);<br /> </p>
		<p>等价于 <br />SELECT e.last_name, e.department_id, d.department_name  <br />FROM employees e, departments d  <br />WHERE e.department_id(+)=d.department_id;<br /> </p>
		<p>结果为：所有员工及对应部门的记录，包括没有任何员工的部门记录。 <br />3. FULL OUTER JOIN：全外关联 <br />SELECT e.last_name, e.department_id, d.department_name  <br />FROM employees e  <br />FULL OUTER JOIN departments d  <br />ON (e.department_id = d.department_id);<br /> </p>
		<p>结果为：所有员工及对应部门的记录，包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。 </p>
<img src ="http://www.blogjava.net/Supershen/aggbug/84347.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">shen</a> 2006-11-29 14:32 <a href="http://www.blogjava.net/Supershen/archive/2006/11/29/84347.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如此ORACLE中TOP N的写法 不知道效率怎么样</title><link>http://www.blogjava.net/Supershen/archive/2006/11/21/82560.html</link><dc:creator>shen</dc:creator><author>shen</author><pubDate>Tue, 21 Nov 2006 08:17:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2006/11/21/82560.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/82560.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2006/11/21/82560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/82560.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/82560.html</trackback:ping><description><![CDATA[String strsql = "select temp.*,rownum  from (select * from tb_awardinfo order by award_id desc )temp where rownum &lt;=5";<br />//自己乱写的，不知道效率怎么样，那位达人帮贴过代码来参考参考<img src ="http://www.blogjava.net/Supershen/aggbug/82560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">shen</a> 2006-11-21 16:17 <a href="http://www.blogjava.net/Supershen/archive/2006/11/21/82560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp + oracle 排序分页 高效sql语句</title><link>http://www.blogjava.net/Supershen/archive/2006/11/21/82559.html</link><dc:creator>shen</dc:creator><author>shen</author><pubDate>Tue, 21 Nov 2006 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2006/11/21/82559.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/82559.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2006/11/21/82559.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/82559.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/82559.html</trackback:ping><description><![CDATA[
		<p>oracle 分页<br /><br />1. 最好还是利用分析函数<br />row_number() over ( partition by col1 order by col2 )<br /><br />比如想取出100-150条记录,按照tname排序<br /><br />select tname,tabtype from (<br />   select tname,tabtype,row_number() over ( order by tname ) rn from tab<br />)<br />where rn between 100 and 150;<br /><br />2. 直接使用rownum 虚列<br />select tname,tabtype from (<br />   select tname,tabtype,rownum rn from tab where rownum &lt;= 150<br />)<br />where rn &gt;= 100;<br />使用序列不能基于整个记录集合进行排序,如果指定了order by子句,排序的的是选出来的记录集的排序.<br /><br />------------------------------------------------------------------------<br />经过测试，在100万条数据的表中,检索数据的时候,方法2的速度要比方法1要快的.<br /><br /><br />排序分页<br /><br />说明：Oracle下用rownum进行分页时 很容易出现排序的错乱。 <br /><br /><br />但多套一层select 就能很好的解决该问题,特此记录,语句如下:<br /><br />select t2.* from (select t1.*, rownum rn from (select * from tb_courseinfo order by rownum  desc )t1 where rownum &lt;= 150 )t2 where rn &gt;100<br /><br /><br />不懂具体效率怎么样，和上边一样应该还可以。<br /><br /><br /><br /><br />实际例子代码如下<br /><br />int curpage=1;//当前页<br />int page_record=20;//每页显示的记录数<br />int introwcount=0; // 记录数<br />if(request.getParameter("page")==null||Integer.parseInt(request.getParameter("page"))&lt;=0) <br />{<br />curpage = 0;<br />}<br />else<br />{<br />curpage=Integer.parseInt(request.getParameter("page"))-1;//获取传递的值，需要显示的页<br />}</p>
		<p>String sql = "select t2.* from (select t1.*, rownum rn from (select * from tb_courseinfo order by rownum  desc )t1 where rownum &lt;= "+(curpage+1)*page_record+" )t2 where rn &gt; "+curpage*page_record;<br /><br /><br /><br /></p>
<img src ="http://www.blogjava.net/Supershen/aggbug/82559.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">shen</a> 2006-11-21 16:11 <a href="http://www.blogjava.net/Supershen/archive/2006/11/21/82559.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>normal 、sysdba、 sysoper 、sys,sysdba,dba概念—区别</title><link>http://www.blogjava.net/Supershen/archive/2006/11/20/82290.html</link><dc:creator>shen</dc:creator><author>shen</author><pubDate>Mon, 20 Nov 2006 07:37:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2006/11/20/82290.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/82290.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2006/11/20/82290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/82290.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/82290.html</trackback:ping><description><![CDATA[
		<h2> </h2>
		<div class="entry-body">
				<p>sys和system用户的区别<br />【system】用户只能用normal身份登陆em。<br />【sys】用户具有“SYSDBA”或者“SYSOPER”权限，登陆em也只能用这两个身份，不能用normal。<br />“SYSOPER”权限，即数据库操作员权限，权限包括：<br />  打开数据库<nobr>服务器</nobr>   关闭数据库服务器<br />  备份数据库       恢复数据库<br />  日志归档         会话限制<br />“SYSDBA”权限，即数据库管理员权限，权限包括：<br />  打开数据库服务器   关闭数据库服务器<br />  备份数据库       恢复数据库<br />  日志归档       会话限制<br />  管理功能       创建数据库</p>
				<p>
						<br />normal 、sysdba、 sysoper有什么区别<br />normal 是普通用户 <br />另外两个，你考察他们所具有的权限就知道了<br />sysdba拥有最高的系统权限<br />sysoper主要用来启动、关闭数据库，sysoper 登陆后用户是 public<br />sysdba登陆后是 sys</p>
				<p>SQL&gt; conn / as sysdba<br />已连接。<br />SQL&gt; grant sysoper to test;</p>
				<p>授权成功。</p>
				<p>SQL&gt; conn test/test as sysoper;<br />已连接。<br />SQL&gt; show user<br />USER 为"PUBLIC"<br />SQL&gt; conn test/test as sysdba<br />已连接。<br />SQL&gt; show user<br />USER 为"SYS"<br />SQL&gt;</p>
				<p> </p>
				<p> </p>
				<p>dba和sysdba的区别<br />dba、sysdba这两个系统角色有什么区别呢 <br />在说明这一点之前我需要说一下oracle服务的创建过程<br />·创建实例<br />·启动实例<br />·创建数据库(system表空间是必须的)<br />启动过程<br />·实例启动<br />·装载数据库<br />·打开数据库</p>
				<p>sysdba，是管理oracle实例的，它的存在不依赖于整个数据库完全启动，<br />只要实例启动了，他就已经存在，以sysdba身份登陆，装载数据库、打开数据库<br />只有数据库打开了，或者说整个数据库完全启动后，dba角色才有了存在的基础！<br /></p>
		</div>
<img src ="http://www.blogjava.net/Supershen/aggbug/82290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">shen</a> 2006-11-20 15:37 <a href="http://www.blogjava.net/Supershen/archive/2006/11/20/82290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>