oracle的SQL語句中的 是幹什麼用的?

2021-07-01 20:57:54 字數 1185 閱讀 6541

2010-09-19 10:36

龍脈術士

|分類:資料庫db

|瀏覽4536次

2010-09-19 11:10

知識大富翁,挑戰答題贏iphone!

提問者採納

oracle特有的左外聯書寫方式,當然你也可以用傳統的通用的左外聯,比如給你舉個例子

select s.name as 姓名,g.grade as 分數,c.cid as 課程名

from tbl_student s left outer join tbl_grade g on s.studentid=g.sid left outer join tbl_class c on g.cid=c.classid

它跟下面等價

select s.name as 姓名,g.grade as 分數,c.classname as 課程名

from tbl_student s,tbl_grade g,tbl_class c

where (s.studentid=g.sid(+)) and (g.cid=c.classid(+))

2012-05-27 15:01

taozhenbeijing

|分類:資料庫db

|瀏覽2306次

2012-05-27 15:40

知識大富翁,挑戰答題贏iphone!

提問者採納

熱心網友

(+) 表示外連線。條件關聯時,一般只列出表中滿足連線條件的資料。如果條件的一邊出現(+),則可列出該表中在條件另一側的資料為空的那些記錄。比如兩個表:員工表和工資表。員工表中有總經理、a、b、c四條記錄,工資表中只有a、b、c三人的記錄。如果寫如下語句:

select 姓名,工資 from 員工表,工資表 where 員工表.姓名=工資表.姓名

那麼只可能但出a、b、c三人的記錄。

如果寫成:

select 姓名,工資 from 員工表,工資表 where 員工表.姓名(+)=工資表.姓名

則可列出總經理及a、b、c三人的記錄,只不過查詢結果中總經理對應的」工資「列值為空。

提問者評價

thank you!

偶遇Oracle中SQL語句中的

之前居然從來沒見到過此類寫法,諸如 select from t spolicy d,v policyemployee g where d.policyno g.policyno 查閱相關資料才發現此法就是外聯的另外一種表現形式其等同於 select from t spolicy d left joi...

Oracle的SQL語句中的變數替換

一.問題描述 如下sql insert into tmp val values a b view code 點選 確定 過後我們檢視表中的資料 b後面的字串沒有插入進去.二.原因解析 替代變數 sql plus中預設的 表示替代變數,當寫入 時,資料庫會要求其替換成其它的值。如,你可以定義 這樣插入...

Sql語句中的DDL語句

資料庫模式定義語言ddl data definition language 是用於描述資料庫中要儲存的現實世界實體的語言。主要由create 新增 alter 修改 drop 刪除 和 truncate 刪除 四個關鍵字完成。create database 資料庫名 建立乙個資料庫 create d...