ALT SORGULAR
Subquery, bir sorgu oluşturulurken,
bu sorguya ait kriterleri başka bir sorgu belirleme durumudur. Kısaca sonucu
bilinmeyen koşullar olduğunda bu yöntem kullanılır.
Yazılımı:
SELECT …..FROM ……WHERE kolon=( SELECT …FROM ….WHERE ….)
Select cümlesi parantez içinde tanımlanır.
Yazılımı:
SELECT …..FROM ……WHERE kolon=( SELECT …FROM ….WHERE ….)
Select cümlesi parantez içinde tanımlanır.
= koşulu kondu ise select cümlesi tek değer döndürmek zorundadır.
Eğer birden fazla değer için koşul
konulması gerekirse "
in, not in " kelimesi kullanılır. Tek kayıt döndüğünde = yerine >,>=, <, <=,
<> kontrol ifadelerice kullanabiliriz.
Bir önemli nokta da koşula
eşitlenecek değer 2. Select cümlesi içindeki kolon değerine es olmalıdır. Yani
tipleri eşit olmalıdır.
Subquery sorgulama tekniğinde order
by kullanılamaz.
select * from newspaper where section = ( select feature from newspaper where page =1);
Alt
sorgulari FROM kisminda kullanirsak bu alt sorguya icsel goruntu denir.
Alt
sorgulari WHERE kisminda kullanirsak bunada ic ice alt sorgu denir.
select * from newspaper where section < ( select section from newspaper where feature = 'bridge');
select city,snum,cnum from customers where cnum in( select cnum from orders where onum > 3005);
SELECT cnum,cname,city,rating
FROM customers
WHERE city IN ( SELECT CITY
FROM CUSTOMERS
WHERE snum =
1001);
WHERE clause
1) ----ILK BASTA 1.TABLOYA BAKALIM----
select concat(city,' '|| cname) AS city, cnum, snum from customers;
----DAHA SONRA 2.TABLOYA
BAKALIM----
SELECT cnum, max(snum)
FROM customers GROUP BY cnum;
----SIMDI BU IKI TABLOYU
BIRLESTIRELIM----
select concat(city,' '|| cname) AS city, cnum, snum from customers
WHERE (cnum, snum) IN
(SELECT cnum, max(snum)
FROM customers GROUP BY cnum)
ORDER BY snum DESC
2)
----ILK BASTA 1.TABLOYA
BAKALIM----
select * from all_tables tabs;
----DAHA SONRA 2.TABLOYA
BAKALIM----
select cols.table_name
from all_tab_columns cols
where cols.column_name = 'SUPPLIER_ID';
----SIMDI BU IKI TABLOYU
BIRLESTIRELIM----
select * from all_tables tabs
where tabs.table_name in (select cols.table_name
from all_tab_columns cols
where cols.column_name = 'SUPPLIER_ID');
BIRBASKA ORNEK
select tbls.owner, tbls.table_name,
(select count(column_name) as total_columns
from all_tab_columns cols
where cols.owner = tbls.owner
and cols.table_name = tbls.table_name) subquery2
from all_tables tbls;
·
Alt sorgu herzaman parantez icine alinmalidr.
·
Alt sorgu ya bir tek sutun icermelidr,yada sectigi sutunlari ana
sorgudaki parantez icindeki birden fazla sutunla karsilastirmalidir.
·
Sadece bir tek satir ureten alt sorgular tek ve cok degerli
operatorlerle kullanilabilir.
·
Birden fazla satir ureten alt sorgular sadece cok degerli
operatorlerle kulanilabilir.
·
Bitistirme
·
Oracle’a iki karakter katarini bitistirmesini yada yapistirmasini
bildirir.
·
Katar || katar
·
select cname | | city from customers;
No comments:
Post a Comment