2008 09 Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları



Benzer belgeler
MT487_2005guz_final_cevaplar (cevaplar vurgulu ve koyu yazılmıştır)

1. Araçların tüm bilgilerini ve bağlı oldukları kiralama noktasının adres ve telefonunu içeren tam listesi:

KULLANICI TANIMLI FONKSİYONLAR (Devam)

Sayfa 1 / 8. Tabo yapıları

KULLANICI TANIMLI FONKSİYONLAR (Devam)

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

Tetikleyiciler (TRIGGER) Tetikleyiciler ne zaman kullanılırlar. Ardı Sıra Tetikleyiciler (After Triggers) Örnek

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

«BM364» Veritabanı Uygulamaları

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

KULLANICI TANIMLI FONKSİYONLAR

VERİ TABANI ve YÖNETİMİ

Kişiler tablosundan AD kolonu yusuf olan tüm satırları siler. ORDER BY deyimi bir tablodan SELECT ile seçilen verileri sıralamak için kullanılır.

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Mysql Veritabanı Komutları

ACCESS PLATFORMUNDA SQL

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

VERİTABANI ve YÖNETİMİ

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

SQL Kod ile Tablo Oluşturma

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

1 - Adi A Harfi İle Biten Kişilerin Listesi İçin Hangisi Kullanılmalıdır? Select * From Kisiler Where Adi End A Select * From Kisiler Where Adi Like

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir?

PostgreSQL ve PL/pgSQL

SQL TRIGGERS (Tetikleyiciler)

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

08221 Veri Tabanı II. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Hafta IV. Öğr. Gör. Murat KEÇECĠOĞLU

PostgreSQL ve PL/pgSQL

Bir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir.

SQL Komutları (2) Uzm. Murat YAZICI

Oracle da kullanılan veri tipleri:

SQL FONKSİYONLARI SQL lisanında hesaplama ve sayma işlemlerinde kullanılmak üzere bir çok fonksiyon vardır.

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

BAYİLERİMİZE ÖZEL. 13 Ağustos İlgili Modül/ler : Genel. İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL

TBİL UYGULAMA I DERSİ. Mobil Barkotlu Depo Programı Projesi PROJESİ Kurulum Rehberi

EXISTS VE NOT EXISTS fonksiyonları

Öğr.Gör.Murat KEÇECĠOĞLU. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

DML işlemleri. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı May Öğr. Gör. Murat KEÇECĠOĞLU

VERİ TABANI ve YÖNETİMİ

VERİTABANI. SQL (Structured Query Language)

EROL AKGÜL

Birden Çok Tabloda Sorgulama (Join)

VERİ TABANI YÖNETİM SİSTEMLERİ I

SORGULAR. Öğr.Gör.Volkan Altıntaş

SELÇUK ÜNİVERSİTESİ BOZKIR MESLEK YÜKSEKOKULU VERİTABANI-II DERSİ FİNAL SINAVI

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bölüm 4: DDL Veri Tanımlama Dili

Bilgisayar Uygulamaları. MySql

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Veri Tabanı-I 9.Hafta

Bölüm 3: DML Veri İşleme Dili

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

Öğr.Gör.Murat KEÇECĠOĞLU 27 May. 28 May Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

//bu ifadelerin ikisi de gerçekleşiyorsa havale işlemi gerçekleşmiştir fakat 1 tanesini çalışmazsa havale olmamıştır.

Emrah UYSAL 1

Veritabanı Yönetim Sistemleri

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

(SQL) Structured Query Language (Yapılandırılmış Sorgu Dili) İçindekiler

İNTERNET TABANLI PROGRAMLAMA- 12.ders

FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BİLGİSAYAR SİSTEMLERİ LABORATUVARI- DENEY NO:3 CLIENT SERVER ORTAMINDA VERİTABANI KULLANIMI

Veritabanı. SQL (Structured Query Language)

YAPISAL SORGULAMA DİLİ (SQL)

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

SQL Stored Procedure

Lıke Joker Karakterler, Is [not] Null, Order By, Group By, As

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

Veritabanı ve Yönetim Sistemleri

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2

Veritabanına Uygulanması

COMMIT: Oluşturulan transaction işlemi başarılı bir şekilde gerçekleştiğinde yapılan değişikliklerin veritabanına kalıcı olarak aktarılmasıdır.

SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir.

--Tüm personel kayıtlarını seçiniz. SELECT* FROM employees ;

1. GİRİŞ 2. YENİ TABLO EKLEME

STORED PROCEDURE LER (Saklı Yordamlar)

Veri Tabanı Programlamaya Giriş

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

Transkript:

2008 09 Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları Hayali bir şirket için BizimŞirket isimli bir veritabanı oluşturulmuş ve aşağıdaki tablolar yapılmıştır. Lütfen tabloları dikkatlice inceleyip, açıklamaları okuduktan sonra sorulara geçiniz. TABLOLAR Kategoriler MalSağlayanlar Müşteriler Personel SiparişDetaylar Siparişler Sayfa 1 / 5

Taşımacılar Ürünler AÇIKLAMALAR Ürünler tablosundaki KategoriNo yabancı anahtardır ve Kategoriler tablosundaki KategoriNo ile ilişkilendirilmiştir. Ürünler tablosundaki MalSağlayanNO yabancı anahtardır ve MalSağlayanlar tablosundaki MalSağlayanNO ile ilişkilendirilmiştir. Siparişler tablosundaki MüşteriID yabancı anahtardır ve Müşteriler tablosundaki MüşteriID ile ilişkilendirilmiştir. Siparişler tablosundaki PersonelNo yabancı anahtardır ve Personel tablosundaki PersonelNo ile ilişkilendirilmiştir. Siparişler tablosundaki GönderildiğiVasıta yabancı anahtardır ve Taşımacılar tablosundaki TaşıyanNO ile ilişkilendirilmiştir. SiparişDetaylar tablosundaki Sipariş_NO yabancı anahtardır ve Siparişler tablosundaki Sipariş_NO ile ilişkilendirilmiştir. SiparişDetaylar tablosundaki ÜrünNO yabancı anahtardır ve Ürünler tablosundaki ÜrünNO ile ilişkilendirilmiştir. Kategoriler, MalSağlayanlar, Personel, Siparişler, Taşımacılar, Ürünler tablolarının ilk kolonları için IDENTITY(1,1) geçerlidir. SiparişDetaylar tablosu üzerinde ([BirimFiyat]>=(0)) olacak şekilde, ([İndirim]>=(0) AND [İndirim]<=(1)) olacak şekilde ve ([Miktar]>(0)) olacak şekilde üç kısıtlama vardır. Ürünler tablosu üzerinde ([SiparişEdilenBirim]>=(0)) olacak şekilde, ([StoktakiBirim]>=(0)) olacak şekilde, ([BirimFiyat]>=(0)) olacak şekilde ve ([YenidenSiparişSeviyesi]>=(0)) olacak şekilde dört kısıtlama vardır. Personel tablosu üzerinde ([DogumTarihi]<getdate()) olacak şekilde bir kısıtlama vardır. SiparişDetaylar tablosunda Sipariş_NO, ÜrünNO ikilisinin bütün olarak birincil anahtar olduğuna dikkat ediniz. Bu bilgiler ışığında aşağıdaki sorulara cevap veriniz. Sayfa 2 / 5

1. Adresindeki Ülke bilgisinde Almanya geçen Müşterilerin tüm bilgilerini veren aşağıdaki SQL deyimini MüşteriID, ŞirketAd, Adres, Sehir, PostaKodu, Ülke, Telefon, Faks Müşteriler WHERE (Ülke = 'Almanya') 2. Almanya daki firmalardan sağlanan ve Tatlılar kategorisinde yer alan Ürünlerin ÜrünNO, ÜrünAd ve BirimFiyat bilgilerini listeleyen aşağıdaki SQL deyimini WHERE Ü.ÜrünNO, Ü.ÜrünAd, Ü.BirimFiyat Kategoriler K INNER JOIN Ürünler Ü ON K.KategoriNo = Ü.KategoriNo INNER JOIN MalSağlayanlar M ON Ü.MalSağlayanNO = M.MalSağlayanNO (M.Ülke = 'Almanya') AND (K.KategoriAd = 'Tatlılar') 3. Hiçbir sipariş alamamış Personellerin PersonelNo, Ad, SoyAd bilgilerini listeleyen aşağıdaki SQL deyimini WHERE P.PersonelNo, P.Ad, P.SoyAd Personel P LEFT OUTER JOIN Siparişler S ON P.PersonelNo = S.PersonelNo (S.PersonelNo IS NULL) 4. Sonuç kümesi olarak ÜrünNO, ToplamMiktar şeklinde iki bilgi getiren ve her bir Ürün den toplam kaç adet sipariş verildiğini gösteren aşağıdaki SQL deyimini ÜrünNO, SUM(Miktar) ToplamMiktar SiparişDetaylar GROUP BY ÜrünNO 5. Osman Tekin isimli bir kişi yeni işe başlamıştır. Doğum Tarihi 6 Haziran 1975 olduğuna göre bu yeni çalışanı Personel tablosuna giren aşağıdaki SQL deyimini INSERT INTO Personel (SoyAd, Ad, DogumTarihi) VALUES ('Tekin', 'Osman', '6.6.1975') 6. Bir önceki soruda bahsedilen yeni personelin Satış Temsilcisi unvanıyla işe başladığı bilgisi unutulduğuna göre bu eksikliği gidermek için Personel tablosunu güncelleyen aşağıdaki SQL deyimini tamamlayınız (Bir önceki soruda girilen yeni personelin PersonelNo sunun 27 olduğu bilinmektedir). UPDATE Personel SET Unvan = 'Satış Temsilcisi' WHERE (PersonelNo = 27) 7. ŞirketAd ı ABC Pazarlama olan Müşterinin 2008 yılında kaç adet sipariş verdiğini gösteren aşağıdaki SQL deyimini Sayfa 3 / 5

COUNT(*) SAY Siparişler S INNER JOIN Müşteriler M ON S.MüşteriID = M.MüşteriID WHERE (S.SiparişDate >= '01.01.2008') AND (S.SiparişDate < '01.01.2009') AND (M.ŞirketAd = 'ABC Pazarlama') 8. Her bir kategoride kaç farklı çeşit Ürün olduğunu gösteren aşağıdaki SQL deyimini K.KategoriAd, COUNT(DISTINCT Ü.ÜrünAd) SAY Ürünler Ü INNER JOIN Kategoriler K ON Ü.KategoriNo = K.KategoriNo GROUP BY K.KategoriAd 9. ŞirketAdı @ŞirketAd, Şehiri @Sehir, Ülkesi @Ülke ve Telefonu @Telefon ile verilen yeni bir Mal sağlayıcıyı, MalSağlayanlar tablosuna giren sp_ms_gir isimli saklı yordamı oluşturan aşağıdaki SQL deyimini tamamlayınız (Bu saklı yordam ile girilen bir Mal sağlayıcının daima yeni bir Mal sağlayıcı olduğu varsayılmaktadır). CREATE PROCEDURE sp_ms_gir @ŞirketAd nvarchar(40), @Sehir nvarchar(15), @Ülke nvarchar(15), @Telefon nvarchar(24) INSERT INTO MalSağlayanlar (ŞirketAd,Sehir,Ülke,Telefon) VALUES (@ŞirketAd,@Sehir,@Ülke,@Telefon) 10. ŞirketAdı XYZ Pazarlama, Şehiri Ankara, Ülkesi Turkey ve Telefonu 00903123386084 olan yeni bir mal sağlayıcıyı MalSağlayanlar tablosuna bir önceki sorudaki saklı yordamı kullanarak giren bir SQL deyimi yazınız. EXEC sp_ms_gir XYZ Pazarlama, Ankara, Turkey, 00903123386084 11. Hiç sipariş vermemiş olan Müşterilerin ŞirketAd, Sehir, Ülke ve Telefon bilgilerinin listesini veren v_hic_siparis_vermemis isimli bir VIEW oluşturan aşağıdaki SQL deyimini CREATE VIEW v_hic_siparis_vermemis M.ŞirketAd, M.Sehir, M.Ülke, M.Telefon Siparişler S RIGHT OUTER JOIN Müşteriler M ON S.MüşteriID = M.MüşteriID WHERE (S.MüşteriID IS NULL) 12. Sırasıyla, bir Ürün numarası, bir başlangıç tarihi ve bir bitiş tarihi verildiğinde Sipariş tarihi olarak bu başlangıç ile bitiş tarihleri arasında olan ve ürün numarası verilen Ürün numarası olan siparişlerden Miktar olarak toplam kaç adet sipariş verildiği Sayfa 4 / 5

bilgisini veren fn_ürün_sip isimli bir FONKSIYON oluşturan aşağıdaki SQL deyimini CREATE FUNCTION fn_ürün_sip ( @ÜrünNO INT, @BasTarih DATETIME, @BitTarih DATETIME) RETURNS INT BEGIN DECLARE @SAYI INT @SAYI = SUM(SD.Miktar) SiparişDetaylar SD INNER JOIN Siparişler S ON SD.Sipariş_NO = S.Sipariş_NO WHERE (S.SiparişDate >= @BasTarih) AND (S.SiparişDate <= @BitTarih) AND (SD.ÜrünNO = @ÜrünNO) END RETURN @SAYI 13. Şirketimizin bu zamana kadar çalıştığı Mal Sağlayıcı firmaların daha çok hangi ülkelerden olduğu merak edilmektedir. Bu sebeple hangi ülkeden kaç tane Mal Sağlayıcı firmayla çalışıldığını Sayıya göre azalan sırada gösteren aşağıdaki SQL deyimini Ülke, COUNT(Ülke) SAYI MalSağlayanlar GROUP BY Ülke ORDER BY SAYI DESC 14. Tek seferde Miktar olarak en fazla sayıda Ürün Sipariş etmiş Müşterinin Telefonunu gösteren aşağıdaki SQL deyimini M.Telefon Müşteriler M INNER JOIN Siparişler S ON M.MüşteriID = S.MüşteriID INNER JOIN SiparişDetaylar SD ON S.Sipariş_NO = SD.Sipariş_NO WHERE (SD.Miktar = ( MAX(Miktar) MaxMik SiparişDetaylar)) 15. Personellerimize doğum günü kutlamayı düşünüyoruz. Bu sebeple aşağıdaki SQL çalıştırıldığı gün kişinin doğum günü olacak şekildeki personellerin Ad ve Soyadlarını listeleyen aşağıdaki SQL deyimini Ad, SoyAd Personel WHERE (DAY(DogumTarihi) = DAY(GETDATE())) AND (MONTH(DogumTarihi) = MONTH(GETDATE())) Sayfa 5 / 5