Teradata TimeStamp Çevrimleri

Zaman Convert etme

Aşağıdaki query TIMESTAMP(6)  halindeki Tarihi TIMESTAMP(0)‘a çevirir.

CAST(CAST(DTTM AS VARCHAR(19)) AS TIMESTAMP(0)).  TIMESTAMP(6)’yı TIMESTAMP(0)’a çevirir.

 ’01/23/2014 11:53:50.000000′  u  01/23/2014 11:53:50’ çevirir.

cast(a.tarih as date format ‘yyyymmdd’) starttime Varchar olan Tarihi Date formatına çevirme //20140602 ->2014.06.02

Oracle – Join Kullanımı

Sorgulamada iki ya da daha fazla tabloyu bir arada işlemek için kullanılır. Where ile benzer şekilde kullanılır ancak where ifadesine göre daha esnek bir yapıya sahiptir.  JOIN yapılan tablolar arasında var olan ortak kolonlar arasında eşitliği sağlar ve o şartları sağlayan satırları getirir. İkiden fazla tablo joinleneceği zaman … (önce ikisi joinlenir daha sonra bunun sonucu diğer tablolarla joinlenir. Daha sonra diğerleriyle  joinlenir  Bu şekilde tüm tablolar joinlenerek joinleme işlemi sonuçlanır. )

Self Join : Aynı tablonun farklı alias’larla tanımlanıp joinlenmesidir.

İnner Join : Sadece joinlenmiş kolonlardaki eşitliği sağlayan kayıtların getirilmesini sağlar. Tablolardaki kesişen kayıtları getirir.

SELECT sınıfListesi.ogrenciNo,sınıfListesi.ogrenciAdi
FROM sınıfListesi 
INNER JOIN sinavSonuclari 
ON sınıfListesi.ogrenciNo = sinavSonuclari.ogrenciNo;

Outer Join : Bir şarta bağlı olarak bir tablonun şartı sağlayan satırlarını getirirken diğer tablonun tüm kayıtlarına erişimi sağlayan joindir.   (+) ifadesiyle de outer join yapılabilir. Kendi içinde türlere ayrılır.

Left Outer Join : Şartın sol tarafında bulunan tablonun tüm kayıtları getirilirken join’in sağ tarafındaki tablodan sadece şartı sağlayan değerler getirilir.

SELECT sınıfListesi.ogrenciNo,sınıfListesi.ogrenciAdi,sınıfListesi.ogrenciSoyadı
FROM sınıfListesi 
LEFT OUTER JOIN sinavSonuclari 
ON sınıfListesi.ogrenciNo = sinavSonuclari.ogrenciNo;

Birden fazla tablo oluşturulurken joinleme where ifadesi ile sağlanabilir

SELECT o.numara, r.ders
FROM ogrenci o, ogretmen m, ders r
WHERE o.sınıf = m.sınıf
AND m.ders = r.ders
ORDER BY p.numara;

Right Outer Join : Joinin sağ tarafındaki tablonun tüm kayıtları getirilirken sol tarafta sadece şartı sağlayan kayıtlar getirilir.

SELECT sınıfListesi.ogrenciNo,sinavSonuclari.sinavNotu
FROM sınıfListesi 
RIGHT OUTER JOIN sinavSonuclari 
ON sınıfListesi.ogrenciNo = sinavSonuclari.ogrenciNo;

Full Outer Join : Her iki taraftaki tabloların da tüm kayıtlarının getirildiği Join tipidir.

SELECT sınıfListesi.ogrenciNo,sinavSonuclari.sinavNotu,sınıfListesi.ogrenciAdi,sınıfListesi.ogrenciSoyadı
FROM sınıfListesi 
FULL OUTER JOIN sinavSonuclari 
ON sınıfListesi.ogrenciNo = sinavSonuclari.ogrenciNo;

Son olarak eğer tabloların cartezyan çarpım şeklinde joinlenmesi isteniyorsa cross join kullanılabilir.

(+)  Operatörü where koşulunda sol tarafta kullanılır. Eğer birden fazla where koşulunda join işlemi yapılmak isteniyorsa tüm joinler için (+) operatörü ayrı ayrı kullanılmalıdır.  (+) operatoru sadece bir kolon için kullanılabilir.