Kayıtlar

SQL Ders35 - JOIN

Resim
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.

JOIN türleri
InnerLeft OuterRight OuterFull OuterSelf  r1 tablosu

 r2 tablosu
Inner Join

İki veya daha fazla tablonun kesişimini alır.


SELECT kolon_ismi
FROM tablo_ismi
INNER JOIN tablo_ismi2
ON kolon_ismi=kolon_ismi2


SqlQuery35.sql
SELECT * FROM r1 INNERJOIN r2 ON r1.id=r2.id;

Left Outer Join

İ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.


SELECT kolon_ismi
FROM tablo_ismi
LEFT JOIN tablo_ismi2
ON kolon_ismi=kolon_ismi2


SqlQuery35_2.sql
SELECT * FROM r1 LEFTJOIN r2 ON r1.id=r2.id;

Right Outer Join

İ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.


SELECT kolon_ismi
FROM tablo_ismi
RIGHT JOIN tablo_ism…

SQL Ders40 - CONSTRAINTS | FOREIGN KEY

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)
);


veya


CREATE TABLE tablo_ismi(
degisken_ismi degisken_tipi
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)
;


veya


ALTER TABLE tablo_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


ALTER TABLE tablo_ismi
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.


CREATE TABLE tablo_ismi(
degisken_ismi degisken_tipi UNIQUE);


veya


CREATE TABLE tablo_ismi(
degisken_ismi degisken_tipi
UNIQUE(degisken_tipi));


UNIQUE sınırlandırmasını daha önce oluşturulmuş bir tabloya ekleme


ALTER TABLE tablo_ismi
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
DROP CONSTRAINT sınırlandırma_ismi;


veya


ALTER TABLE tablo_ismi
ALTER COLUMN degisken_ismi degisken tipi;


SqlQuery38.sql
CREATETABLE test (t int UNIQUE);
SqlQuery38_2.sql
ALTERTABLE test ADDUNIQUE(t);
SqlQuery38_3.sql
ALTERTABLE test ALTERCOLUMN T int;

SQL Ders39 - CONSTRAINTS | PRIMARY KEY

PRIMARY KEY 

NOT NULL ve UNIQUE kombinasyonudur. Her tablo için bir tane mevcuttur.


CREATE TABLE tablo_ismi(
degisken_ismi degisken_tipi PRIMARY_KEY);


veya


CREATE TABLE tablo_ismi(
degisken_ismi degisken_tipi
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


ALTER TABLE tablo_ismi
ADD PRIMARY KEY (kolon_ismi);


veya


ALTER TABLE tablo_ismi
ADD CONSTRAINT sınırlandırma_ismi PRIMARY KEY (kolon/kolonlar_ismi);


PRIMARY KEY sınırlandırmasını kaldırma


ALTER TABLE tablo_ismi
DROP CONSTRAINT sınırlandırma_ismi;


SqlQuery39.sql
CREATETABLE test(t int NOTNULLCONSTRAINT pm_key PRIMARYKEY(t) );
SqlQuery39_2.sql
ALTERTABLE test ADDCONSTRAINT pm_key PRIMARYKEY(t);
SqlQuery39_3.sql
ALTERTABLE test DROPCONSTRAINT pm_key;

SQL Ders37 - CONSTRAINTS | NOT NULL

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 TABLE tablo_ismi
ALTER COLUMN kolon_ismi kolon_tipi NOT NULL;


NOT NULL sınırlandırmasını kaldırma


ALTER TABLE tablo_ismi
ALTER COLUMN kolon_ismi kolon_tipi NULL;


SqlQuery37.sql
CREATETABLE test(t int NOTNULL);
SqlQuery37_2.sql
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

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
ON tablo_ismi (kolon1, kolon2, ...);


INDEX sınırlandırmasını silme


DROP INDEX table_ismi .index_ismi;