MSSQL Sorgu Örnekleri

MSSQL Sorgu Örnekleri

Merhabalar,

Bildiğiniz gibi SQL’in temelinde yatan INSERT, UPDATE, SELECT ve DELETE komutlarının birbirleriyle çalışabilme imkanı vardır. Konu ile ilgili bir kaç örnek paylaşmak istiyorum.

Temelde sorguların kullanım şekli aşağıdaki gibi olduğunu hepimiz biliyoruz.

<br />SELECT * FROM TABLENAME<br />INSERT INTO TABLENAME(KOLON1, KOLON2, KOLON3) VALUES ('BLABLA','BLABLA','BLABLA')<br />DELETE TABLENAME --TUMUNU SILER<br />DELETE TABLENAME WHERE ID &gt; 10 --10DAN BUYUKLERI SILER<br />UPDATE TABLENAME SET KOLON1='FALAN', KOLON2='FILAN'<br />

Yalnız bazı durumlarda bu sorguların bize yetmemektedir.

Örnek bir senaryo verecek olursak;
2 ayrı database de 2 ayrı tablomuz olsun. Tablonun birinde ki verileri diğeriyle update etmek istediğimizde, (SQL dışında ki yazılım mantığıyla düşünürsek) önce bir connection kur, 1. tablodan verileri al sonra 2. tablodan verileri al, iç içe 2 döngü oluştur, sonra denk gelenleri birbirine eşitleyerek update sorgusunu çalıştır demeliyiz. Tabi performası bir kenara bırakalım büyük datalarda bu işlem saatler sürecektir…

Ama bu işlemi SQL de yapacak olursak aşağıda ki gibi bir sorgu datanın büyüklüğüne aldırış etmeden bir kaç saniyede istediğimizi yerine getirecektir.

<br />UPDATE TABLO1<br />SET<br />KOLON1=T2.KOLON1,<br />KOLON2=T2.KOLON2,<br />KOLON3=T2.KOLON3<br />FROM TABLO1 T1<br />INNER JOIN TABLO2 T2<br />ON T1.PARENTREF = T2.REF<br />WHERE<br />DATE_ &gt; GETDATE()<br />

Not: Where koşulunu ekleyip eklememek size bağlıdır.

Bu tür iç içe sorgu çeşitlerinin bildiğim kadarını aşağıdan bulabilirsiniz.

SUBQUERY Kullanımı (İç içe SELECT sorgusu)

<br />SELECT T1.KOLON1, T1.KOLON2, T1.KOLON3, (SELECT T2.KOLON2 FROM TABLO2 WHERE T2.REF=T1.PARENTREF) FROM TABLO1 T1<br />--Kural: İç sorguda yalnızca 1 alan alabilirsiniz. 2. alanı istediğinizde alabilirsiniz.<br />

UPDATE – SELECT Sorgusu (Bir tabloyu referans alarak diğer tabloyu güncelleme)

<br />UPDATE TABLO1<br />SET<br />KOLON1=T2.KOLON1,<br />KOLON2=T2.KOLON2,<br />KOLON3=T2.KOLON3<br />FROM TABLO1 T1<br />INNER JOIN TABLO2 T2<br />ON T1.PARENTREF = T2.REF<br />

INSERT – SELECT Sorgusu (Bir tabloyu baz alarak diğer bir tabloya veri aktarımı)

<br />INSERT INTO TABLO1(KOLON1, KOLON2, KOLON3)<br />SELECT KOLON1,KOLON2,KOLON3 FROM TABLO2<br />WHERE REF&gt;....<br /><br />--Kural alanların özelliklerini birbirini tutmalıdır.<br />--Yada diğer bir kullanım<br /><br />INSERT INTO TABLO1<br />SELECT * FROM TABLO2<br />--Kural: Tablo özelleri tamamen birbirini tutmalıdır. Kolon isimleri dahil.<br />

SELECT INTO Sorgusu (Genelde tabloyu yedekleme işleminde kullanılır)

<br />SELECT * INTO TABLO1_YDK FROM TABLO1<br />--Bu sorgu TABLO1 tablosunu TABLO1_YDK ismin başka bir tablo açarak içerisinde ki verileri aktaracaktır.<br />

Not: Ufak tefek yanlış yazımlarım veya syntax hatası olabilir.

İyi çalışmalar

2,337 total views, 0 views today

No Comments

Leave a Comment

Ulaşım için: Facebook: /ganigani Twitter: @abdulgani_demir


*

%d blogcu bunu beğendi: