Tablo
Ürünler
Kategoriler
Müşteriler
Satışlar
Satış-Detay
t_fiyat= satışın toplam fiyatı.
İçerik
u_no (PK),K_no, u_ad, fiyat, stok
K_no (PK),k_ad
M_no (PK),
m_ad,Soyad,Yas,Tel,Email,Adres,Sehir
S_no (PK),M_no, tarih,t_fiyat
D_no (PK), S_no, U_no, miktar
Aşağıdaki soruları, yukarıda açıklanan hayali veritabanını gözönünde bulundurarak çözünüz.
1. Müşteriler tablosunda bulunan tüm kayıtları Müşteriler2 adında yeni bir tabloya nasıl
aktarırız. Kodunuzu Müşteriler tablosu üzerinde IDENTITY (auto increment) kolon
olabileceğini gözönünde bulundurarak geliştiriniz.
2. 3 numaralı müşterinin ismini “ceren kaçmaz” olarak, email adresini [email protected]
olarak ve adres bilgisini de “Çankaya” olarak değiştiren kodu yazınız.
3. Satışlar tablosunu sıfırdan yeni oluşturduğunuzu hayal ederek, Müşteriler tablosuna referans
eden M_no kolonu üzerinde, Foreign Key tanımlayan kodu yazınız.(ipucu: Create
kullanacaksınız)
4. Tüm tabloları oluşturduğunuzu hayal edin. Fakat Ürünler tablosu ile Kategoriler tablosunu
ilişkilendirmeyi unutmuşsunuz. Bu durumda iki tabloyu K_no kolonu üzerinden ilişkilendiren
kodu yazınız.
5. Ürünler tablosunda bulunan en pahalı 10 ürünü listeleyen bir görünüm (view) oluşturun.
6. Müşteriler tablosu ve satış tablolarını birleştiriniz. Her müşteriye ait satış bilgilerini listeleyen
bir view oluşturunuz. Bunu yaparken de müşteriye ait m_no, ad,soyad,sehir bilgilerini ve
satışa ait s_no, tarih, t_fiyat bilgilerini listeleyiniz.
7. Fiyatı ortalama fiyattan daha yüksek olan ürünleri listeleyen bir view oluşturunuz.
8. izmirli_musteriler adında bir view oluşturacağınızı hayal edin. Bu listeye sadece izmirde
ikamet eden müşterilerin eklenmesine müsade etmek istiyorsunuz. Bunu gerçekleyen kodu
yazınız.
9. 7. soruda istenen view’i ortalamadan büyük ve eşit olanlar şeklinde güncelleyen kodu yazınız.
10. Mehmet Duran’nın hesabından, Ayşe Kaçmaz’ın hesabına 1500 TL havale yapıldığını hayal
edin. Bunu yapmak için aşağıdaki adımlar izlenir:
1. Mehmet Duran’ın bakiye bilgisini 1500 azalt.
2. Ayşe Kaçmaz’ın bakiye bilgisini 1500 arttır.
Şimdi senaryomuzun SQL kodlarını yazalım.
UPDATE hesap set bakiye = bakiye -1500
WHERE ad= ‘mehmet’ AND soyad=’duran’
UPDATE hesap set bakiye = bakiye +1500
WHERE ad= ‘ayşe’ AND soyad=’kaçmaz’
Şimdi gelelim tehlikeli bölüme.
1. Diyelimki birinci SQL sorgusunda bir hata oluştu ve sadece ikinci sorgu çalıştı. Mehmet
Duran’nın hesabından herhangibir eksilme olmadan Ayşe Kaçmaz’ın hesabına 1500 TL
transfer edilir :)
2. Ya da birinci sorgu çalışır ama ikinci sorgu çalışmaz. Bu durumda da Mehmet Duran’nın
hesabından 1500 TL eksilir, fakat Ayşe Kaçmaz’ın hesabına 1500 TL transfer gerçekleşmez
:0
Bankacılık sektörü gibi kritik işlemlerin gerçekleştiği ortamlarda bu tür problemlerin önüne
geçmek adına, yukarıdaki SQL kodunuzu nasıl güncellersiniz?
Download

Tablo İçerik Ürünler u_no (PK),K_no, u_ad, fiyat, stok Kategoriler