Programlamaya Dair Notlar
tutorial etiketine sahip yayınlar gösteriliyor
SQL Ders35 - JOIN
SQL'de JOIN 2 veya daha fazla tabloyu birleştirmek için kullanılır. Bu birleştirme işlemi UNION da olduğu gibi düşey değil yatay bir biçimdedir. Dolayısıyla UNION operatöründeki gibi tabloların aynı kolonlara sahip olması gerekmez.
InnerLeft OuterRight OuterFull OuterSelf r1 tablosu
İki veya daha fazla tablonun kesişimini alır.
INNER JOIN tablo_ismi2
SELECT * FROM r1 INNERJOIN r2 ON r1.id=r2.id;
İki tablo ile işlem yapıldığı düşünülürse ilk tablonun tamamını, ikinci tablonun ise ilk tabloyla eşleşen kısımlarını alır.
LEFT JOIN tablo_ismi2
SELECT * FROM r1 LEFTJOIN r2 ON r1.id=r2.id;
İki tablo ile işlem yapıldığı düşünülürse ikinci tablonun tamamını, ilk tablonun ise ikinci tabloyla eşleşen kısımlarını alır.
RIGHT JOIN tablo_ism…
SQL Ders40 - CONSTRAINTS | FOREIGN KEY
Başka bir tablonun PRIMARY KEY'i geçerli tabloda FOREIGN KEY olarak adlandırılır.
CREATE TABLE tablo_ismi(
degisken_ismi degisken_tipi FOREIGN KEY REFERENCES tablo_ismi(kolon_ismi)
CONSTRAINT sınırlandırma_ismi FOREIGN KEY (kolon_ismi)
FOREIGN KEY sınırlandırmasını daha önce oluşturulmuş bir tabloya ekleme
ALTER TABLE tablo_ismi
ADD FOREIGN KEY(kolon_ismi) REFERENCES tablo_ismi(kolon_ismi)
ADD CONSTRAINT sınırlandırma_ismi
FOREIGN KEY(kolon_ismi) REFERENCES tablo_ismi(degisken_ismi);
FOREIGN KEY sınırlandırmasını kaldırma
DROP CONSTRAINT sınırlandırma_ismi;
SQL Ders38 - CONSTRAINTS | UNIQUE
Bir kolondaki tüm verilerin farklı değerleri olmasını sağlar. Daha önce olan veriyi tabloya eklettirmez.
degisken_ismi degisken_tipi UNIQUE);
UNIQUE sınırlandırmasını daha önce oluşturulmuş bir tabloya ekleme
ADD UNIQUE (kolon_ismi);
Birden fazla kolonda UNIQUE sınırlandırmasını eklemek için
ADD CONSTRAINT sınırlandırma_ismi UNIQUE (kolon_ismi,kolon_ismi)
UNIQUE sınırlandırmasını kaldırmak için
ALTER TABLE tabllo_ismi
ALTER COLUMN degisken_ismi degisken tipi;
CREATETABLE test (t int UNIQUE);
ALTERTABLE test ADDUNIQUE(t);
ALTERTABLE test ALTERCOLUMN T int;
SQL Ders39 - CONSTRAINTS | PRIMARY KEY
NOT NULL ve UNIQUE kombinasyonudur. Her tablo için bir tane mevcuttur.
degisken_ismi degisken_tipi PRIMARY_KEY);
CONSTRAINT sınırlandırma_ismi PRIMARY_KEY(kolon/kolonlar_ismi);
PRIMARY KEY sınırlandırmasını daha önce oluşturulmuş bir tabloya ekleme
ADD PRIMARY KEY (kolon_ismi);
ADD CONSTRAINT sınırlandırma_ismi PRIMARY KEY (kolon/kolonlar_ismi);
PRIMARY KEY sınırlandırmasını kaldırma
CREATETABLE test(t int NOTNULLCONSTRAINT pm_key PRIMARYKEY(t) );
ALTERTABLE test ADDCONSTRAINT pm_key PRIMARYKEY(t);
ALTERTABLE test DROPCONSTRAINT pm_key;
SQL Ders37 - CONSTRAINTS | NOT NULL
Bir kolonun değerinin NULL olarak bırakılmamasını sağlar.
CREATE TABLE tablo_ismi(degisken_ismi degisken_tipi NOT NULL);
NOT NULL sınırlandırmasını ekleme
ALTER COLUMN kolon_ismi kolon_tipi NOT NULL;
NOT NULL sınırlandırmasını kaldırma
ALTER COLUMN kolon_ismi kolon_tipi NULL;
CREATETABLE test(t int NOTNULL);
ALTERTABLE test ALTERCOLUMN t int NULL;
SQL Ders36 - CONSTRAINTS
SQL'de tablodaki verileri için özel kısıtlamalar belirtebilirsiniz. Bu kısıtlamalara contraints denilmektedir. Kısıtlamalar kolon seviyesinde veya tablo seviyesinde olabilir. Kolon seviyesindeki kısıtlamalar sadece kolonu kapsarken, tablo seviyesindeki kısıtılamalar tüm tabloyu kapsar.
SQL'de sıklıkla kullanılan kısıtlamalar (constraints)
NOT NULL Bir kolonun değerinin NULL olarak bırakılmamasını sağlar.UNIQUE Bir kolondaki tüm verilerin farklı değerleri olmasını sağlar.PRIMARY KEY NOT NULL ve UNIQUE kombinasyonudur. Her tablo için bir tane mevcuttur.FOREIGN KEY Başka bir tablonun PRIMARY KEY'i geçerli tabloda FOREIGN KEY olarak adlandırılır.CHECK Bir tablonun kolonlarının özel bir koşula bağlı olarak atanmasını sağlar. Örneğin, ilgili kolona 0'dan küçük sayılar girilememesi gibi.DEFAULT Tabloya bir veri eklendiğinde ilgili kolona ait bir değer yoksa, hali hazırda bulunan DEFAULT değer kullanılır.INDEX Veritabanına hızlı veri kaydetmek ve almak için indexleme yapar.
SQL Ders43 - CONSTRAINTS | INDEX
Veritabanına hızlı veri kaydetmek ve almak için indexleme yapar.
CREATE UNIQUE INDEX index_ismi
ON tablo_ismi (kolon1, kolon2, ...);
CREATE INDEX index_ismi
INDEX sınırlandırmasını silme
DROP INDEX table_ismi .index_ismi;
SQL Ders42 - CONSTRAINTS | DEFAULT
Tabloya bir veri eklendiğinde ilgili kolona ait bir değer yoksa, hali hazırda bulunan DEFAULT değer kullanılır.
degisken_ismi degisken_tipi DEFAULT deger;
DEFAULT sınırlandırmasını daha önce oluşturulmuş bir tabloya ekleme
ALTER COLUMN kolon_ismi SET DEFAULT deger;
DEFAULT sınırlandırmasını silme
ALTER COLUMN kolon_ismi DROP DEFAULT;
SQL Ders41 - CONSTRAINTS | CHECK
Bir tablonun kolonlarının özel bir koşula bağlı olarak atanmasını sağlar. Örneğin, ilgili kolona 0'dan küçük sayılar girilememesi gibi.
degisken_ismi degisken_tipi CHECK (kosul)
CONSTRAINT sınırlandırma_ismi CHECK (kosul)
CHECK sınırlandırmasını daha önce oluşturulmuş bir tabloya ekleme
ADD CHECK (kosul);
ADD CONSTRAINT sınırlandırma_ismi CHECK (kosul)
CHECK sınırlandırmasını silme
SQL Ders34 - UNION | UNION ALL
SQL'de UNION ve UNION ALL operatörü 2 veya daha fazla tablonun sorgu sonuçlarını birleştirmek için kullanılır.
Bu operatörü kullanabilmek için gerekli kurallar;
Sonucu birleştirilecek tablolar aynı sayıda kolon içermelidir.Sonucu birleştirilecek tabloların kolon tipleri karşılıklı eşleşmelidir.Sonucu birleştirilecek tabloların kolonları aynı sırada olmalıdır. Kopya satırların tekrar tekrar gösterilmemesi için UNION operatörü kullanılır.
SELECT * FROM p1 UNIONSELECT * FROM p2;
Kopya satırların tekrar tekrar gösterilmesi için UNION ALL operatörü kullanılır.
SELECT * FROM p1 UNIONALLSELECT * FROM p2;
SQL Ders33 - VIEW
SQL'de VIEW operatörü sanal tablo oluşturmak için kullanılır.
CREATE VIEW view_ismi AS
FROM tablo _ismi;
CREATEVIEW istanbullular ASSELECT * FROM kisiler WHERE sehir='istanbul';
SELECT * FROM istanbullular;
ALTER VIEW view_ismi AS
ALTERVIEW istanbullular ASSELECT * FROM kisiler WHERE sehir='londra';
DROP VIEW view_ismi;
SQL Ders32 - UPDATE
SQL'de UPDATE operatörü tablo üzerinde günceleme yapmayı sağlar.
UPDATE kisiler SET sehir='istanbul'WHERE ad='enes';
SQL Ders31 - ANY | ALL | EXIST | NOT EXISTS
SQL'de ANY operatörü herhangi biri anlamı, ALL operatörü hepsi anlamı, EXIST operatörü mevcut ise ve NOT EXISTS operatörü mevcut değilse anlamı taşır.
WHERE kolon_ismi (<,>,=,.....) ANY ( ALT SORGU )
WHERE kolon_ismi (<,>,=,.....) ALL ( ALT SORGU )
WHERE EXIST ( ALT SORGU )
WHERE NOT EXIST ( ALT SORGU )
SELECT id FROM kisiler WHERE id > ANY( SELECT id FROM kisiler );
kisiler tablosunda idsi herhangi birinden daha büyük olan kişilerin idlerini geri döndürür.
SELECT id FROM kisiler WHERE id >= ALL( SELECT id FROM kisiler );
kisiler tablosunda idsi hepsinden büyük veya eşit olan kişilerin idlerini geri döndürür.
SELECT id FROM kisiler WHEREEXISTS( SELECT * FROM kisiler WHERE id=3 );
Alt sorgu doğru ise tüm idleri döndürür.
SQL Ders30 - HAVING
SQL'de HAVING operatörü GROUP BY operatörüne koşul koymak için kullanılır. WHERE operatörü her bir tablo verisine koşul koymak için kullanılıyordu. HAVING operatörü ise gruplama yapıldıktan sonra bu gruplara bir koşul koymak için kullanılır.
GROUP BY kolon_ismi
SELECT ulke,count(ulke) FROM kisiler WHERE id BETWEEN2AND4GROUPBY ulke HAVINGCOUNT(id)>=2ORDERBYcount(id) DESC;
Yukarıdaki sorgu kisiler tablosunun verilerini idsi 2 ve 4 arasında olan verileri ülkelere göre gruplandırır ve bu gruplandırmada ülkedeki kisi sayısı 2 veya daha fazla ise onları idleri azalan sırada ülke ve ülkedeki kişi sayısı kolonlarına koyar.
SQL Ders29 - GROUP BY
SQL'de GROUP BY operatörü kolonları ortak değerlere göre gruplamayı sağlamaktadır.
SELECT ulke,count(ulke) FROM kisiler GROUPBY ulke ORDERBYcount(id) DESC;
Yukarda kisiler arasında hangi ülkeye kaç kişi mensup olduğunu görülebilmesi için gerekli sorgu yazılmıştır.
SQL Ders20 - SELECT NULL
SQL'de NULL verilerin ilgili kolonda değeri atanmayan değerleridir. SQL sorgularda duruma göre NULL veya NOT NULL komutları kullanılabilir.
WHERE kolon_ismi IS NULL;
WHERE kolon_ismi IS NOT NULL;
kolon_ismi kolon_tipi NOT NULL
SELECT * FROM personeller WHERE AD ISNOTNULL;
SQL Ders19 - SELECT SUM
SQL'de SUM operatörü belirli bir kolondaki satir değerlerinin toplanmasını sağlamaktadır.
SELECTSUM(MAAS) AS toplam FROM personeller;
SQL Ders18 - SELECT IN
SQL'de IN operatörü çoklu OR operatörünü indirgemek için kullanılır. Birçok OR operatörü yerine tek bir IN operatörü ile aynı iş yapılmış olur.
WHERE kolon_ismi IN (deger1,deger2);
SELECT * FROM personeller WHERE ID IN (1,3,5);
SQL Ders17 - SELECT AS
SQL'de AS operatörü tablo kolonuna geçici isim vermek için kullanılır.
SELECT kolon_ismi AS gecici_isim
SELECT ID ASNO, AD AS ISIM, MAAS AS GELİR FROM personeller;
SQL Ders28 - LIKE
SQL'de LIKE komutu WHERE koşuluyla birlikte belli bir patterne (desen) sahip veriyi aramak için kullanılır.
% operatörü 0,1 veya daha çok karakter yerine geçer._ operatörü 1 karakter yerine geçer. Örnek kullanımlar aşağıda belirtilmiştir.
WHERE kolon_ismi LIKE 'e%' -> 'e' ile başlayanlar.
WHERE kolon_ismi LIKE '%e' -> 'e' ile bitenler.
WHERE kolon_ismi LIKE '%e%' -> 'e' içerenler.
WHERE kolon_ismi LIKE '%e_' -> sondan 2. harfi 'e' olanlar.
WHERE kolon_ismi LIKE '_e_' -> 3 harfli olup ortadaki harfi 'e' olanlar.
WHERE kolon_ismi LIKE 'e%e' -> 'e' ile başlayıp 'e' ile bitenler
, SqlQuery28.sql SELECT * FROM personeller WHERE AD LIKE'%es%';