程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved