06-21-2012
|
#1
|
Prof. Dr. Sinsi
|
SQL Komutları - 1
CREATE TABLE isciler
(
PK int Primary Key,
ad varchar(50),
soyad varchar(20),
numara int,
tarih DateTime,
evlimi Bit,
Kazanc money,
ozgecmisi note
)
[ isciler adında bir tablo oluşturulur İçindeki alanlar PK ( Birincil Anahtar, Sayı )
AD ( Metin 50 Karekter ) SOYAD ( Metin 20 Karekter ) Numara ( Sayı ) Tarih ( Tarih Saat )
Evlimi ( Evet Hayır ) Kazanc ( Para ) Özgecmisi ( Not ) ]
DROP TABLE [TabloAdı]
[ Tabloyu siler ]
ALTER TALBE isciler ADD son NOTE
[ isciler tablosuna son adında bi alan olusturur alanın özellikleri not'tur ]
ALTER TALBE isciler ALTER son DateTime
[ isciler tablosundaki son alanının özelliğini tarih saat yap ]
[ Önce kayıt varsa değişecek tabloda ve yeni özellik eskisine uymazsa o alandaki bilgiyi siler ]
ALTER TABLE isciler DROP (column) ozgecmisi
[ İşçiler tablosundaki ozgecmisi alanını siler column yazılsada olur yazılmasada ]
[ Silincek alan Birincil anahtarsa silinemez ]
UNION [ Birleştirme ]
İki ayrı select komutunun sonucunda elde edilen tabloların birleşimi
işlemini gerçekleştirir
UNION ile birden fazla SELECT'in sonucu olan tabloların küme birleşimi
işlemine tabi tutulması için 2 koşul gereklidir
1- ) SELECT komutları sonucunda elde edilecek tablolar aynı sayıda
kolon içermelidirler
2)Sonuç tabloları karşılıklı olarak kolonların aynı veri tipi ve aynı
genişlikte olmalıdır
EXISTS : Mevcut İse
Klimadan dolayı servis kaydı açılmış magazalar Alt sorugdaki şartları sağlayan yani o kriterlere uyan kayıtların ana sorgu ( dış sorgu)daki tablodan getirilmesi
SELECT *
FROM magaza
WHERE EXISTS
(SELECT * FROM servis WHERE
magaza MAGAZAADI = servis MAGAZAADI
and ARIZASEBEBI="Klima");
57 SELECT *
FROM magaza
WHERE EXISTS
(SELECT * FROM servis WHERE
magaza MAGAZAADI = servis MAGAZAADI
);
57 Soru Join'le yapılır mı ?
[ Servisi Bilgisi Olan Magazaları Getir ]
58
SELECT *
FROM magaza
WHERE NOT EXISTS
(SELECT * FROM servis WHERE
magaza MAGAZAADI = servis MAGAZAADI
and ARIZASEBEBI="Klima");
Klima arızası olmayanlar gelir
60
SORU: servis kaydı mevcut olan ancak tutarı boş olan kayıtların magaza bilgilerinin listelenmesi
SELECT *
FROM magaza
WHERE EXISTS
(SELECT * FROM servis WHERE
magaza MAGAZAADI = servis MAGAZAADI
and TUTAR is null
);
SELECT *
FROM magaza
WHERE EXISTS
( SELECT * FROM servis WHERE
magaza MAGAZAADI = servis MAGAZAADI
);
UNION
SELECT *
FROM magaza
WHERE NOT EXISTS
( SELECT * FROM servis WHERE
magaza MAGAZAADI = servis MAGAZAADI
);
=
SELECT *
FROM magaza
SELECT * INTO magaza_yedek
FROM magaza
[ magaza tablosundaki tüm kayıtları magaza_yedek adlı yeni bir tablo oluşturup oraya aktarır eğer magaza_yedek adında önceden bi tablo varsa o tabloyu siler yeniden oluşturur ]
SELECT MAGAZAADI, SEHRI, ADRES INTO magaza_yedek
FROM magaza
WHERE MAGAZAADI like "*m*";
[ Magaza Adında "m" geçen magazaların yedeğini alır ama sadece sehri adresi magaza adını varsa başka alanlar onları almaz ]
SELECT *
FROM magaza
WHERE sehir<>"bebek" AND sehir="Istanbul"
|
|
|