Oracle 基础知识中从多个表里选取数据记录的方法 |
本文标签:Oracle 基础知识 在Oracle 基础知识中从多个表里选取数据记录中主要包括四个主要项目,以下的文章主要是介绍在Oracle 中的四个项目的具体介绍,你如果对此些项目感兴趣的话,你就可以浏览以下的文章对其进行了解 。 1. 数据表间的连接 简单的连接语法: SELECT 字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 表名1.字段名 = 表名2. 字段名 [ AND ……] ; SELECT 字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 表名1.字段名 = 表名2. 字段名(+) [ AND ……] ; 有(+)号的字段位置自动补空值 连接的分类: 等于的连接 = 不等于的连接 != BETWEEN … AND … IN 注意IN和OR不能一起用 8 J2EE @ zxw 外连接 有一个字段名(+) , 没有满足的条件补空值 自连接 同一个表自己跟自己连接 例如找重复记录 2. 数据表间的连接例子 删除table_name表里字段名email重复的记录: SQL>delete from table_name t1 where t1.rowid > (select min(rowid) from table_name t2 where t1.email = t2.email group by email having count(email) > 1); 找到手机用户的服务区域: SQL> select a.handphoneno,nvl(c.name,null),a.totalscore from topscore a,chargeoperator cc,chargeoperatorinfo c where substr(a.handphoneno,1,7)=cc.hpnohead(+) and cc.chargetype=c.chargetype(+) order by a.totalscore desc; 3.Oracle 基础知识中数据表间的连接技巧 连接N个表, 需要N-1个连接操作 被连接的表最好建一个单字符的别名, 字段名前加上这个单字符的别名 BETWEEN .. AND.. 比用 >= AND <= 要好 连接操作的字段名上最好要有索引 连接操作的字段最好用整数数字类型 有外连接时, 不能用OR或IN的比较操作 4. 如何分析和执行SQL语句 写多表连接SQL语句时要知道它的分析执行计划的情况. Sys用户下运行@/ORACLE_HOME/sqlplus/admin/plustrce.sql 产生plustrace角色 Sys用户下把此角色赋予一般用户 SQL> grant plustrace to &username; 一般用户下运行@/ORACLE_HOME/rdbms/admin/utlxplan.sql 产生plan_table SQL> set time on; 说明:打开时间显示 SQL> set autotrace on; 说明:打开自动分析统计,并显示SQL语句的运行结果 SQL> set autotrace traceonly; 说明:打开自动分析统计,不显示SQL语句的运行结果 接下来你就运行测试SQL语句,看到其分析统计结果了 。 一般来讲,我们的SQL语句应该避免大表的全表扫描 。 SQL> set autotrace off; 说明:关闭自动分析统计 以上的相关内容就是对Oracle 基础知识中从多个表里选取数据记录的介绍,望你能有所收获 。 |