Oracle 基础知识中从多个表里选取数据记录的方法

数据库 Oracle
如果你在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 基础知识中从多个表里选取数据记录的介绍,望你能有所收获。

【编辑推荐】

  1. Oracle Copy命令中SQL*Plus的Copy命令操作
  2. 在Oracle 学习中进行数据库查询
  3. Oracle数据库中怎样选择合适索引类型
  4. Oracle to_char()函数具有强大的功能
  5. Oracle函数to_char转化成小数点的位数
责任编辑:佚名 来源: 互联网
相关推荐

2010-04-15 13:19:29

Oracle架构

2010-04-27 18:18:08

Oracle数据库备份

2023-07-14 15:10:17

PythonAsyncIO库

2020-10-22 08:28:04

大数据架构技术

2013-10-22 15:48:35

2023-07-04 07:31:06

MapReduce数据处理编程模型

2010-04-22 16:58:21

Oracle PLSQL

2011-03-16 11:17:56

IptablesICMP

2012-05-11 11:36:14

RAID基础知识

2021-11-05 15:31:01

UbuntuLinux

2023-09-22 14:57:21

2011-05-12 10:18:41

数据库基础知识

2015-08-26 14:15:12

数据挖掘

2009-12-31 15:43:02

2011-02-25 09:37:35

2013-03-27 15:56:05

Android开发Andriod绘图

2011-11-04 17:26:12

2011-03-16 11:12:06

Iptables

2021-08-18 16:09:39

NestJS

2023-05-12 09:40:53

ContextGolang
点赞
收藏

51CTO技术栈公众号