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



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

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

Oracle da kullanılan veri tipleri:

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

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

Sayfa 1 / 8. Tabo yapıları

Mysql Veritabanı Komutları

ACCESS PLATFORMUNDA SQL

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

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

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

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.

Veri Tabanı-I 9.Hafta

SQL Komutları (2) Uzm. Murat YAZICI

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

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

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

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

KULLANICI TANIMLI FONKSİYONLAR (Devam)

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

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

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

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

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.

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

VERİTABANI ve YÖNETİMİ

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

KULLANICI TANIMLI FONKSİYONLAR

Bilgisayar Uygulamaları. MySql

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

KULLANICI TANIMLI FONKSİYONLAR (Devam)

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

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

SQL Kod ile Tablo Oluşturma

«BM364» Veritabanı Uygulamaları

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

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

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

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

YAPISAL SORGULAMA DİLİ (SQL)

VERİTABANI. SQL (Structured Query Language)

Veri Tabanı Programlamaya Giriş

Emrah UYSAL 1

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

EROL AKGÜL

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

İNTERNET TABANLI PROGRAMLAMA- 12.ders

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

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.

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Veritabanı ve Yönetim Sistemleri

SORGULAR VE ÇEŞİTLERİ II

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

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

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

Veritabanına Uygulanması

STORED PROCEDURE LER (Saklı Yordamlar)

5. Bölümü bilgisayar olanların üye numaralarını gösteren sql ifadesini yazınız?

VERİ TABANI ve YÖNETİMİ

Veri Tabanı-I 12.Hafta

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

Microsoft SQL Server Sorgulama

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

Veritabanı. SQL (Structured Query Language)

MSSQL. 4. Hafta Uygulama - 1 BPR255 Veritabanı CREATE DATABASE OKUL GO USE OKUL GO

Birden Çok Tabloda Sorgulama (Join)

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.

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

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

Veri Tabanı Yönetim Sistemleri Bölüm - 5

Her bölüm için kısa bazı girişler yapılacak ve bölüm içerisinde anlatılacak olan konuların genel başlıkları belirtilecektir.

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

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

Gruplama (aggregate) fonksiyonları bir dizi değer üzerinde hesaplama yaparlar ve bir sonuç

Veri Tabanı Tasarım ve Yönetimi

15 Aralık 2011 / Perşembe.

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

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

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

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

FUTBOL TAKIM ANALİZİ. YZM5510 İş Zekası Ders Projesi. Melih ATASOYLU ( )

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

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

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

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

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

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

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

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

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

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

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

BMB202. Veritabanı Yönetimi Ders 6. SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

MİRSİS BİLGİ TEKNOLOJİLERİ LTD. ŞTİ. MİCROSOFT SQL SERVER VERİTABANI VE SORGULARI

Veri Tabanı Hafta Dersi

SQL e Giriş. Uzm. Murat YAZICI

BÖLÜM- 5: BİRDEN FAZLA TABLODAN VERİ GETİRMEK

IN ve NOT IN Tablodaki alan içeriklerine ulaşmak için IN deyimi kullanılır.

Transkript:

OtoKira bir çok yerde kiralama noktası olan bir araba kiralama şirketidir. Bu şirket bu kiralama noktalarında değişik araçlara sahiptir. Bu şirketin veri tabanı aşağıdaki tablolardan oluşmaktadır. KiralananYer SatışYerNo int Birincil anahtar, IDENTITY(1,1) Adres varchar(255) Not null Telefon varchar(20) Not null Araç AraçPlakaNo varchar(10) Birincil anahtar Marka varchar(15) Not null Model varchar(15) Not null Renk varchar(15) KişiSayısı smallint Not null KiraBedeli money Not null SatışYerNo int Yabancı anahtar (KiralananYer) Müşteri MüşteriNo int Birincil anahtar, IDENTITY(1,1) Ad varchar(20) Not null Soyad varchar(20) Not null Adres varchar(255) Not null Telefon varchar(10) Not null Kiralama KiraNo int Birincil anahtar, IDENTITY(1,1) KiraBaşlangıçGün smalldatetime Not null TeslimEdilenGün smalldatetime DEFAULT(0) MüşteriNo int Yabancı anahtar (Müşteri) AraçPlakaNo varchar(10) Yabancı anahtar (Araç) SQL server da bir smalldatetime kolonu 0 ise bu tarih formatına çevrilince 01.01.1900 tarihine dönüşmektedir. O halde bir araç kiralanmış ve henüz geri getirilmemiş ise TeslimEdilenGün = 0 veya TeslimEdilenGün = '01.01.1900' dır, aksi halde bu kolona anlamlı bir tarih girilmiştir. OtoKira veri tabanı ile ilgili sorgular. 1. Araçların tüm bilgilerini ve bağlı oldukları kiralama noktasının adres ve telefonunu içeren tam listesi:

A.AraçPlakaNo, A.Marka, A.Model, A.Renk, K.Adres, A.KişiSayısı, A.KiraBedeli, K.Telefon Araç A INNER JOIN KiralananYer K ON A.SatışYerNo = K.SatışYerNo 2. Henüz geri getirilmeyen araçları, kiralayan müşteri ile birlikte veren liste. A.AraçPlakaNo, A.Marka, A.Model, M.Ad, M.Soyad, M.Telefon, K.KiraBaşlangıçGün Araç A INNER JOIN INNER JOIN Müşteri M ON K.MüşteriNo = M.MüşteriNo WHERE (K.TeslimEdilenGün = 0) 3. '01.01.2006' tarihinden önce kiraya verilen ve halen kirada olan araçların plaka numaraları nı içeren liste: A.AraçPlakaNo Araç A INNER JOIN WHERE (K.TeslimEdilenGün = 0) AND (K.KiraBaşlangıçGün < '01.01.2006') 4. Kiralama tablosuna '01.01.2006' tarihinde 2842 numaralı müşteriye kiralanan '01XX333' nolu aracın kiralandığını belirten bilgileri Kiralama dosyasına giren SQL. INSERT INTO Kiralama (KiraBaşlangıçGün, MüşteriNo, AraçPlakaNo) VALUES ('01.01.2006', 2842, '01 XX333') 5. En genel olarak Kiralama tablosuna @KiraBaşlangıçGün, @MüşteriNo, @AraçPlakaNo verildiğinde bu bilgileri giren saklı yordam. (Not : TeslimEdilenGün henüz belli olmadığından bu kolona boş veri girilmektedir. ) CREATE PROCEDURE sx_kiralama_gir @KiraBaşlangıçGün smalldatetime, @MüşteriNo int, @AraçPlakaNo varchar(10) INSERT INTO Kiralama (KiraBaşlangıçGün, MüşteriNo, AraçPlakaNo) VALUES (@KiraBaşlangıçGün, @MüşteriNo, @AraçPlakaNo) 6. '01.01.2006' tarihinde 2842 numaralı müşteriye kiralanan '01XX333' nolu aracın kiralandığını belirten bilgileri Kiralama tablosuna sx_kiralama_gir yordamı nı kullanarak giren SQL.

EXECUTE sx_kiralama_gir '01.01.2006', 2842, '01 XX333' 7. 41 numaralı müşterinin '03.23.2005' tarihinde kiraladığı '34XX222' plaka numaralı araç '03.25.2005' tarihinde teslim edildiğine göre Kiralama tablosunu güncelleyen SQL. SET TeslimEdilenGün = '03.25.2005' WHERE (KiraBaşlangıçGün = '03.23.2005') AND (MüşteriNo = 41) AND (AraçPlakaNo = '34XX222') 8. En genel olarak @KiraBaşlangıçGün günü @MüşteriNo ya kiralanan @AraçPlakaNo plaka numaralı araç @TeslimEdilenGün de iade edildiğinde Kiralama tablosunu güncelleyen saklı yordam. CREATE PROCEDURE sx_kiralama_güncelle @KiraBaşlangıçGün smalldatetime, @TeslimEdilenGün smalldatetime, @MüşteriNo int, @AraçPlakaNo varchar(10) SET TeslimEdilenGün = @TeslimEdilenGün WHERE (KiraBaşlangıçGün = @KiraBaşlangıçGün) AND (MüşteriNo = @MüşteriNo) AND (AraçPlakaNo = @AraçPlakaNo) 9. 41 numaralı müşterinin '03.23.2005' tarihinde kiraladığı '34XX222' plaka numaralı araç '03.25.2005' tarihinde teslim edildiğine göre Kiralama tablosunu sx_kiralama_güncelle yordamını kullanarak güncelleyen SQL. EXECUTE sx_kiralama_güncelle '03.23.2005', '03.25.2005', 41, '34XX222' 10. Kiralama tablosunda KiraNo = 6 olarak numaralandırılmış satırda bulunan aracın iade edildiği gün 03.24.2005 olduğuna göre Kiralama tablosunu güncelleyen SQL. SET TeslimEdilenGün = 03.24.2005 WHERE (KiraNo = 6) 11. En genel olarak Kiralama tablosunda @KiraNo no ile numaralandırı lmış satırda bulunan aracın iade edildiği gün @TeslimEdilenGün olduğuna göre Kiralama tablosunu güncelleyen saklıyordam. CREATE PROCEDURE sx_kiralama_güncelle_2 @KiraNo int, @TeslimEdilenGün smalldatetime SET TeslimEdilenGün = @TeslimEdilenGün WHERE (KiraNo = @KiraNo)

12. Kiralama tablosunda KiraNo = 6 olarak numaralandırılmış satırda bulunan aracın iade edildiği gün 03.24.2005 olduğuna göre Kiralama tablosunu sx_kiralama_güncelle_2 yordamını kullanarak güncelleyen SQL. EXECUTE sx_kiralama_güncelle_2 6, '03.24.2005' 13. 34 numaralı müşterinin '03.13.2005' tarihinde kiraladığı '34XX111' plaka numaralı araç teslim edildiğine göre müşterinin ödeyeceği ücreti belirleyen SQL deyimi. DATEDIFF(day, K.KiraBaşlangıçGün, K.TeslimEdilenGün)*A.KiraBedeli Ücret Kiralama K INNER JOIN WHERE (K.KiraBaşlangıçGün = '03.13.2005') AND (K.MüşteriNo = 34) AND (K.AraçPlakaNo = '34XX111') 14. 'Yeşil' araçların plaka numaraları, marka, model ile bulundukları yerlerin Adres ve Telefon listesi. A.AraçPlakaNo, A.Marka, A.Model, K.Adres, K.Telefon Araç A INNER JOIN KiralananYer K ON A.SatışYerNo = K.SatışYerNo WHERE (A.Renk = 'Yeşil') 15. 03.13.2005 tarihinde kiralanan araçların listesi. WHERE A.AraçPlakaNo, A.Marka, A.Model, M.Ad, M.Soyad, M.Telefon Araç A INNER JOIN INNER JOIN Müşteri M ON K.MüşteriNo = M.MüşteriNo (K.KiraBaşlangıçGün = '03.13.2005') 16. '34XX111' plaka numaralı araçtan '12.31.2005' tarihine kadar elde edilen toplam kira. SUM(DATEDIFF(day, K.KiraBaşlangıçGün, K.TeslimEdilenGün) * A.KiraBedeli) ToplamKira Kiralama K INNER JOIN WHERE (K.KiraBaşlangıçGün <= '12.31.2005') AND (K.AraçPlakaNo = '34XX111') 17. Halen kirada olan tüm araçların listesini veren bir VIEW. CREATE VIEW v_kirada KiraNo, KiraBaşlangıçGün, AraçPlakaNo, MüşteriNo Kiralama WHERE (TeslimEdilenGün = 0)

18. Kirada olmayan en az bir defa kiralanmış araçların plaka no, model ve marka bilgileri. DISTINCT A.AraçPlakaNo, A.Marka, A.Model Araç A INNNER JOIN WHERE (K.TeslimEdilenGün > 0) 19. Kirada olmayan araçların plaka no, model ve marka bilgilerini veren bir VIEW. CREATE VIEW v_kiradadegil A.AraçPlakaNo, A.Marka, A.Model dbo.araç A LEFT OUTER JOIN dbo. WHERE (K.AraçPlakaNo IS NULL) UNION A.AraçPlakaNo, A.Marka, A.Model dbo.araç A INNER JOIN dbo. WHERE (K. TeslimEdilenGün >0) 20. 7 günden daha fazla kiralanan araçların listesi. A.AraçPlakaNo, A.Marka, A.Model,A.Renk Araç A INNER JOIN WHERE (DATEDIFF(day, K.KiraBaşlangıçGün, K.TeslimEdilenGün)>7) 21. Arabaların birbirinden farklı renkleri. DISTINCT Renk Araç 22. Markası Renault ve modeli Scenic olan araçların bulundukları yerlere göre sayısını listeleyen bir SQL. COUNT(AraçPlakaNo) AraçSay, SatışYerNo Araç A WHERE (Marka = 'Renault') AND (Model = 'Scenic') GROUP BY SatışYerNo 23. v_kiradadegil VIEW unu kullanarak Markası 'VolksWagen' ve modeli 'Polo' olup da kirada olmayan araçların bulundukları yerlere göre sayısını listeleyen bir SQL. COUNT(A.AraçPlakaNo) AraçSay, A.SatışYerNo Araç A INNER JOIN v_kiradadegil V ON A.AraçPlakaNo = V.AraçPlakaNo

WHERE (A.Model = 'Polo') AND (A.Marka = 'VolksWagen ') GROUP BY A.SatışYerNo 24. SatışYerNo su 3 olan yerden hali hazırda kiralanmış durumda bulunan (yani halen şirkete teslim edilmemiş olan) Mercedes marka araçların sayısını veren SQL. COUNT(A.AraçPlakaNo) SAY Araç A INNER JOIN KiralananYer KY ON A.SatışYerNo = KY.SatışYerNo INNER JOIN WHERE (A.Marka = 'Mercedes') AND (K.TeslimEdilenGün = 0) AND (KY.SatışYerNo = 3) 25. Şu ana kadar en fazla hangi marka aracın kaç defa kiralandığını söyleyen SQL (Not: Şu anda kirada olanlar da dahil olmak üzere ve TOP deyimini kullanarak). TOP 1 A.Marka, COUNT(*) SAY Kiralama K INNER JOIN GROUP BY A.Marka ORDER BY COUNT(*) DESC 26. Yeni araç alımında bunu araç tablosuna ekleyen bir saklı yordam. CREATE PROCEDURE sx_araç_gir @AraçPlakaNo varchar(10), @Marka varchar(15), @Model varchar(15), @Renk varchar(15), @KişiSayısı smallint, @KiraBedeli money, @SatışYerNo int INSERT INTO Araç (AraçPlakaNo, Marka, Model, Renk, KişiSayısı, KiraBedeli, SatışYerNo) VALUES (@AraçPlakaNo, @Marka, @Model, @Renk, @KişiSayısı, @KiraBedeli, @SatışYerNo) 27. Hiç kiralanmamış olan araçların, araç plaka numaralarını listeleyen bir SQL. WHERE A.AraçPlakaNo Araç A LEFT OUTER JOIN (K.KiraNo IS NULL) 28. Adresinde Adana geçen müşterilerin, adresinde Adana geçmeyen Kiralama yerlerinden kiraladıkları araçların kiralama bilgilerini gösteren bir SQL.

K.KiraNo, K.KiraBaşlangıçGün, K.TeslimEdilenGün, K.MüşteriNo, K.AraçPlakaNo Kiralama K INNER JOIN Müşteri M ON K.MüşteriNo = M.MüşteriNo INNER JOIN INNER JOIN KiralananYer KY ON A.SatışYerNo = KY.SatışYerNo WHERE (M.Adres LIKE '%Adana%') AND (KY.Adres NOT LIKE '%Adana%') 29. Kiralama bedeli bakımından en pahalı araçların detaylarını gösteren bir SQL. * Araç WHERE (KiraBedeli = ( MAX(Kirabedeli) Araç)) 30. Şirkete en fazla para kazandıran Müşterinin Müşteri numarasını ve kazandırdığı toplam para miktarını gösteren bir SQL. TOP 1 K.MüşteriNo, SUM(DATEDIFF(day, K.KiraBaşlangıçGün, K.TeslimEdilenGün) * A.KiraBedeli) ToplamÜcret, A.KiraBedeli, K.KiraNo Kiralama K INNER JOIN WHERE (K.TeslimEdilenGün > 0) GROUP BY K.MüşteriNo, A.KiraBedeli, K.KiraNo ORDER BY ToplamÜcret DESC 31. Kaç (farklı) müşteri araba kiralamıştır sorusunun cevabını veren bir SQL. COUNT(DISTINCT MüşteriNo) SAY Kiralama 32. En az üç defa araba kiralamış müşterilerden kiralama adetlerini ve Müşteri numaralarını listeleyen bir SQL. (Not: her defasında bir tane araba kiralandığını varsayalım) MüşteriNo, COUNT(MüşteriNo) TAdet Kiralama WHERE (MüşteriNo IN ( MüşteriNo Kiralama GROUP BY MüşteriNo HAVING (COUNT(*) >= 1))) GROUP BY MüşteriNo