EBE-368 Veri Tabanı Yönetim Sistemleri SQL

Benzer belgeler
EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Cebir ve İlişkisel Hesaplama

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

ACCESS PLATFORMUNDA SQL

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

YAPISAL SORGULAMA DİLİ (SQL)

Mysql Veritabanı Komutları

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

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

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

Emrah UYSAL 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

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

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

SQL Komutları (2) Uzm. Murat YAZICI

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

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

Veritabanı Yönetim Sistemleri İleri SQL

Birden Çok Tabloda Sorgulama (Join)

Bilgisayar Uygulamaları. MySql

Oracle da kullanılan veri tipleri:

KISITLAMALAR (CONSTRAINT)

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.

SQL Kod ile Tablo Oluşturma

10 Birden Fazla Tablo Üzerinde Sorgulama

VERİTABANI. SQL (Structured Query Language)

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

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

Veri Tabanı-I 9.Hafta

Veri Tabanı Hafta Dersi

Microsoft SQL Server Sorgulama

VERİTABANI Veritabanı Sorgulama

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

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

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

SQL DİĞER Deyimler ve Komutlar

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

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

Veritabanına Uygulanması

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

Veri Tabanı Programlamaya Giriş

Veri Tabanı II Alt Sorgular

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

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

Alper VAHAPLAR

Veritabanı 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.

SQL e Giriş. Uzm. Murat YAZICI

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

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

Birleştirme (JOIN) işlemi

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

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.

Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210)

İNTERNET TABANLI PROGRAMLAMA- 12.ders

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

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

Sql Komutlarından Select Sorgusu Ve Myadmin Üzerinden Anlatımı

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

Örnek: HAFTA12B isimli bir kullanıcı tanımlayalım. Bu kullanıcıya gerekli yetkileri verelim.

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

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

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

SQL Query and Table Application

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

Veri tabanı içinde bulunan tablolardakibazı sütunlarda bulunan bilgilerin, herkes tarafından görülmesi istenmeyebilir.

Fonksiyonlar, Count, Sum, Avg, Max, Mın, Lower, Upper, Length, Round, Mod, Left, Right, Concat, If

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

Veritabanı. SQL (Structured Query Language)

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

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi

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

EROL AKGÜL

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

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

Veri Tabanı Tasarım ve Yönetimi

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

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

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

VERİTABANI ve YÖNETİMİ

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

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

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

Veritabanı Tasarımı. Çoklu Satır Alt Sorgular

Sayfa 1 / 8. Tabo yapıları

Like Joker Karakterler, Order By, Group By

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

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

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

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

Veri Tabanı-I 12.Hafta

TESİ. aşağıdaki. UML deki. karşılığı. 1. yapılsın: sorgular 0..* * aşağıdakilerin. a) S1 ve S2 b) S1 ve S2 0..*

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

BÖLÜM -2: VERİLERİ SINIRLAMA VE SIRALAMA

SQL (Structured Query Language)

Veritabanı Tasarımı. Birincil Anahtar, İkincil Anahtar ve Kontrol Kısıtlamaları

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

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

Transkript:

EBE-368 Veri Tabanı Yönetim Sistemleri SQL Dr. Dilek Küçük

SQL Sorgu Dili [1] Ogrenci no ad soyad yas ortalama 21325 Necla Yılmaz 18 2,9 21345 Öykü Okan 20 2,1 21378 Elçin Demir 19 3,3 21389 Özgür Kara 19 3,1 21370 Serkan Özdemir 20 1,8 Ders ders_adi kredi VTYS111 3 TARIH300 4 TURKCE222 2 MANTIK250 3 DersKaydi ogrenci_no ders harf_notu 21345 VTYS111 A 21389 TARIH300 B 21378 TURKCE222 A 2

SQL Sorgu Dili [2] SELECT [DISTINCT] select-listesi FROM from-listesi WHERE koşul SELECT DISTINCT ad, yas FROM Ogrenci; ad yas Necla 18 Öykü 20 Elçin 19 Özgür 19 Serkan 20 3

SQL Sorgu Dili [3] SELECT O.no, O.ad, O. soyad, O.yas, O.ortalama FROM Ogrenci AS O WHERE ortalama > 3; no ad soyad yas ortalama 21378 Elçin Demir 19 3,3 21389 Özgür Kara 19 3,1 WHERE den sonraki koşul; AND, OR, veya NOT ile birleştirilmiş <ifade> <operatör> <ifade> şeklinde koşullar olabilir. <ifade> bir kolon ismi veya sabit ve bir aritmetik ifade, <operatör> ise <, <=, =, <>, >=, > operatörlerinden biri olabilir. 4

SQL Sorgu Dili [4] VTYS111 dersini alan öğrencilerin adlarını bulunuz. SELECT O.ad FROM Ogrenci O, DersKaydi DK, WHERE O.no = DK.ogrenci_no AND DK.ders = VTYS111 ; ad Öykü 5

SQL Sorgu Dili [5] Kredisi 4 olan dersleri alan öğrencilerin ad ve soyadlarını bulunuz. SELECT O.ad, O.soyad FROM Ogrenci O, DersKaydi DK, Ders D WHERE O.no = DK.ogrenci_no AND DK.ders = D.ders_adi AND D.kredi = 4; ad Özgür soyad Kara 6

SQL Sorgu Dili [6] En az bir ders alan öğrencilerin ad ve soyadlarını bulunuz. SELECT O.ad, O.soyad FROM Ogrenci O, DersKaydi DK WHERE O.no = DK.ogrenci_no; ad Öykü Elçin Özgür soyad Okan Demir Kara 7

SQL Sorgu Dili [7] SELECT O.ad O.soyad as ogrenci_adi FROM Ogrenci O WHERE yas > 19; ogrenci_adi Öykü Okan Serkan Özdemir SELECT ad, soyad FROM Ogrenci WHERE ad like Ö% ; ad Öykü Özgür soyad Okan Kara 8

SQL Sorgu Dili [8] UNION, INTERSECT, EXCEPT SELECT ad, soyad SELECT ad, soyad FROM Ogrenci FROM Ogrenci WHERE ortalama > 3 UNION SELECT ad, soyad WHERE yas < 20 INTERSECT SELECT ad, soyad FROM Ogrenci FROM Ogrenci WHERE ortalama < 2; WHERE ortalama > 3; SELECT ad, soyad FROM Ogrenci WHERE ortalama > 3 OR ortalama < 2; SELECT ad, soyad FROM Ogrenci WHERE yas < 20 AND ortalama > 3; 9

SQL Sorgu Dili [9] ÇOK DÜZEYLİ SORGULAR (NESTED QUERIES) VTYS111 dersini alan öğrencilerin adlarını bulunuz. SELECT ad FROM Ogrenci WHERE no IN (SELECT ogrenci_no FROM DersKaydi WHERE ders = VTYS111 ); 10

SQL Sorgu Dili [10] Kredisi 4 olan dersleri alan öğrencilerin ad ve soyadlarını bulunuz. SELECT ad, soyad FROM Ogrenci WHERE no IN (SELECT ogrenci_no FROM DersKaydi WHERE ders IN (SELECT ders_adi FROM Ders WHERE kredi = 4)); 11

SQL Sorgu Dili [11] VTYS111 dersini alan öğrencilerin adlarını bulunuz. SELECT O.ad FROM Ogrenci O WHERE EXISTS (SELECT * FROM DersKaydi DK WHERE DK.ders = VTYS111 AND DK.ogrenci_no = O.no); 12

SQL Sorgu Dili [12] Ortalaması Necla isimli öğrenciden yüksek olan öğrencilerin adlarını bulunuz. SELECT O.ad FROM Ogrenci O WHERE O.ortalama > ANY (SELECT O2.ortalama FROM Ogrenci O2 WHERE O2.ad = Necla ) Ortalaması tüm öğrencilerden yüksek olan öğrencilerin adlarını bulunuz. SELECT O.ad FROM Ogrenci O IN ile =ANY, NOT IN ile <>ALL denktir. WHERE O.ortalama > ALL (SELECT O2.ortalama FROM Ogrenci O2); 13

SQL Sorgu Dili [13] Tüm dersleri alan öğrencilerin adlarını bulunuz. SELECT O.ad FROM Ogrenci O WHERE NOT EXISTS ((SELECT D.ders_adi FROM Ders D) EXCEPT (SELECT DK.ders 1. Alternatif FROM DersKaydi DK WHERE DK.ogrenci_no = O.no)); 14

SQL Sorgu Dili [14] Tüm dersleri alan öğrencilerin adlarını bulunuz. SELECT O.ad FROM Ogrenci O 2. Alternatif WHERE NOT EXISTS (SELECT D.ders_adi FROM Ders D WHERE NOT EXISTS (SELECT DK.ders FROM DersKaydi DK WHERE DK.ogrenci_no = O.no AND DK.ders = D.ders_adi)); 15

SQL Sorgu Dili [15] Gruplama Gerektiren Sorgular COUNT([DISTINCT] A): A kolonundaki (benzersiz) değerlerin sayısı. SUM ([DISTINCT] A): A kolonundaki (benzersiz) değerlerin toplamı. AVG([DISTINCT] A): A kolonundaki (benzersiz) değerlerin ortalaması. MAX(A): A kolonundaki değerlerin en büyüğü. MIN(A): A kolonundaki değerlerin en küçüğü. 16

SQL Sorgu Dili [16] Öğrencilerin ortalama yaşını bulunuz. SELECT AVG(yas) FROM Ogrenci; Ortalaması 3 ün üstünde olan öğrencilerin yaş ortalamasını bulunuz. SELECT AVG(yas) FROM Ogrenci WHERE ortalama > 3; 17

SQL Sorgu Dili [17] Toplam öğrenci sayısını bulunuz. SELECT COUNT(*) FROM Ogrenci; Birbirinden farklı öğrenci isimlerinin sayısını bulunuz. SELECT COUNT(DISTINCT ad) FROM Ogrenci; 18

SQL Sorgu Dili [18] En genç öğrencinin adını ve yaşını bulunuz. SELECT ad, yas FROM Ogrenci WHERE yas = (SELECT MIN(yas) FROM Ogrenci); 19

SQL Sorgu Dili [19] SELECT [DISTINCT] select-listesi FROM from-listesi WHERE koşul GROUP BY grup-listesi HAVING grup-koşulu 20

SQL Sorgu Dili [20] Her yaş seviyesindeki (grubundaki) en yüksek ortalamayı bulunuz. SELECT FROM GROUP BY yas max 18 2,9 20 2,1 19 3,3 O.yas, MAX(O.ortalama) Ogrenci O O.yas; SELECT ten sonra gelen ifadelerden grup fonksiyonları dışındakilerin GROUP BY ifadesinde de bulunmaları gerekir. 21

SQL Sorgu Dili [21] Her ders için bu dersi alan öğrencilerin sayısını bulunuz. SELECT FROM GROUP BY ders, COUNT(ogrenci_no) DersKaydi ders; 4 kredili her ders için bu dersi alan öğrencilerin sayısını bulunuz. SELECT FROM DK.ders, COUNT(DK.ogrenci_no) DersKaydi DK, Ders D WHERE DK.ders = D.ders_adi AND D.kredi = 4 GROUP BY DK.ders; 22

SQL Sorgu Dili [22] 18 den büyük yaşta en az 2 öğrenci bulunan her yaş grubu için en düşük ortalamayı bulunuz. SELECT FROM O.yas, MIN(O.ortalama) Ogrenci O WHERE O.yas > 18 GROUP BY O.yas HAVING COUNT(*) > 1; HAVING ifadesinde sadece GROUP BY ifadesindeki kolonlar veya grup fonksiyonları bulabilir. 23

SQL Sorgu Dili [23] En az 2 öğrenci bulunan her yaş grubundaki 18 den büyük yaştaki öğrenciler için en düşük ortalamayı bulunuz. SELECT O.yas, MIN(O.ortalama) FROM Ogrenci O WHERE O.yas > 18 GROUP BY O.yas HAVING 1 < (SELECT COUNT(*) FROM Ogrenci O2 WHERE O.yas = O2.yas); 24

SQL Sorgu Dili [24] OUTER JOIN Join işlemi sırasında eşleşmeyen kayıtlar için de sonuç dönmesi için kullanılır. SELECT O.no, DK.ders FROM Ogrenci O NATURAL LEFT OUTER JOIN DersKaydi DK; SELECT O.no, DK.ders FROM Ogrenci O NATURAL RIGHT OUTER JOIN DersKaydi DK; SELECT O.no, DK.ders FROM Ogrenci O NATURAL FULL OUTER JOIN DersKaydi DK; 25

SQL Sorgu Dili [25] NULL Değerler >, <, = gibi işlemlerin argümanlarından en az biri NULL ise sonuç da bilinmeyendir. Bu işlemler sonucunda yanlış (false) olan kayıtlar dışında bilinmeyen sonucunu çıkaran kayıtlar da atılır. Aritmetik işlemler argümanlarından en az biri NULL ise NULL değer dönerler. Grup fonksiyonlarından sadece COUNT(*) NULL alanları da sayar. Diğerlerinin tümü (COUNT, SUM, MAX) NULL değerleri göz ardı eder. Eğer COUNT dışındakiler sadece NULL değerler üzerinde çalışıyorsa sonuç yine NULL dur. 26

SQL Sorgu Dili [26] Tablo Kısıtlaması [1] CREATE TABLE Ogrenci ( no INTEGER, ad CHAR(30), soyad CHAR(30), yas INTEGER, ortalama REAL, CHECK (ortalama >= 0 AND ortalama <= 4.0)); 27

SQL Sorgu Dili [27] Tablo Kısıtlaması [2] CREATE TABLE DersKaydi (ogrenci_no INTEGER, ders_adi CHAR(20), harf_notu CHAR(1), PRIMARY KEY (ogrenci_no, ders), FOREIGN KEY (ogrenci_no) REFERENCES Ogrenci ON DELETE CASCADE ON UPDATE NO ACTION CHECK (18 < (SELECT O.yas FROM Ogrenci O WHERE O.no = DersKaydi.ogrenci_no))); 28

SQL Sorgu Dili [28] ALAN KISITLAMALARI VE YENİ TÜRLER CREATE DOMAIN ortalamadegeri INTEGER DEFAULT 1 (CHECK VALUE >= 0 AND VALUE <= 4.0) (CREATE TABLE ortalama ORTALAMADEGERI, ) CREATE TYPE ortalamaturu AS INTEGER 29

SQL Sorgu Dili [29] KOŞULLAR (ASSERTIONS) CREATE TABLE Ogrenci (no INTEGER, ad CHAR(30), soyad CHAR(30), yas INTEGER, ortalama REAL, CHECK (ortalama >= 0 AND ortalama <= 4.0) CHECK ((SELECT COUNT(no) FROM Ogrenci) + (SELECT COUNT(ders_adi) FROM Ders) < 100)); * Tablo kısıtlamaları tanımlandıkları tablo boş değilken kontrol edilirler. * Ogrenci tablosu boşken Ders tablosuna 100 den fazla kayıt eklenebilir. CREATE ASSERTION kucukokul CHECK ((SELECT COUNT(no) FROM Ogrenci) + (SELECT COUNT(ders_adi) FROM Ders) < 100) 30

Kaynak: Ramakrishnan, R. ve Gehrke, J., Database Management Systems, 2003, McGraw-Hill, 3. baskı. Teşekkürler 31