在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 基礎知識中從多個表裡選取數據記錄的介紹,望你能有所收獲。