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



Benzer belgeler
VERİTABANI. SQL (Structured Query Language)

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

SQL Kod ile Tablo Oluşturma

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

Veritabanı Tasarımı. Alt Sorgu Temelleri

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

VERİTABANI ve YÖNETİMİ

Veritabanı. SQL (Structured Query Language)

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

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

Veri Tabanı II Alt Sorgular

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

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

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

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

SQL DİĞER Deyimler ve Komutlar

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

Like Joker Karakterler, Order By, Group By

Veri Tabanı Tasarım ve Yönetimi

VERİTABANI Veritabanı Sorgulama

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

SQL (Structured Query Language)

SQL Komutları (2) Uzm. Murat YAZICI

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

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

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

Çok tablolu sorgulamalar

SQL Query and Table Application

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

İleri Seviye Select Cümlecikleri

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

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

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

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

Veritabanı Tasarımı COUNT, DISTINCT, NVL

BĐL378 - VERĐTABANI YÖNETĐM SĐSTEMLERĐ

SQL (Structured Query Language)

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

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

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

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

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

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

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

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

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

SQL e Giriş. Uzm. Murat YAZICI

Sql komutlarından DISTINCT, IN, NOT IN, IN(SELECT...), ANY, ALL, EXISTS, NOT EXISTS, UNION, EXCEPT, BETWEEN kullanımı

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

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

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

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

Veritabanı Yönetim Sistemleri İleri SQL

YAPISAL SORGULAMA DİLİ (SQL)

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

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

Bilgisayar Uygulamaları. MySql

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

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

Birden Çok Tabloda Sorgulama (Join)

BİLİŞİM TEKNOLOJİLERİ

Birleştirme (JOIN) işlemi

Veri Tabanı-I 9.Hafta

BİLİŞİM TEKNOLOJİLERİ

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

BĐL378 - VERĐTABANI YÖNETĐM SĐSTEMLERĐ

1. IT bölümünde çalışan tüm çalışanların isimlerini gösteren bir sorgu yazınız.

Emrah UYSAL 1

BĐL378 - VERĐTABANI YÖNETĐM SĐSTEMLERĐ

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

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

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

ACCESS PLATFORMUNDA SQL

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

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

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

İlişkisel Veri Tabanları I

T.C. ANADOLU ÜNİVERSİTESİ Fen Fakültesi Matematik Bölümü BİL378 Veri Tabanı Yönetim Sistemleri -Vize- Sales Order

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

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

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

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.

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

Veritabanı Tasarımı. İlişkisel Veritabanı Kavramlarına Giriş

Veri Tabanı-I 12.Hafta

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

VERİ TABANI ve YÖNETİMİ

Veritabanı Tasarımı. DML İşlemleri ve Görünümler

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

Lambda İfadeleri (Lambda Expressions)

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

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

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

Veritabanı Tasarımı. Seriler ile Çalışma

Veritabanı Tasarımı. Sütunlar, Karakterler ve Satırlar ile Çalışma

Microsoft SQL Server Sorgulama

WEBTIGER LOGO Ocak 2011

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

BÖLÜM- 13: ALT SORGULAR İLE VERİ İŞLEME

Transkript:

VERĐTABANI YÖNETĐM SĐSTEMLERĐ Öğr.Gör.Sedat Telçeken ANADOLU ÜNĐVERSĐTESĐ FEN FAKÜLTESĐ MATEMATĐK BÖLÜMÜ 2005 2006 Bahar Dönemi KARMAŞIK SORGULAR ALT SORGU: Sorgu esnasında; bir sorgudan elde edilen bir sonuç, başka bir sorguda kullanılabilmektedir. Bu gibi sorgulara alt sorgular(iç sorgular) denir. ÖRNEK: Hangi öğrencinin notu, Özlem isimli öğrencinin notundan daha fazladır? Öncelikle, Özlem isimli öğrencinin notunu bulmalı, daha sonra ise bu nottan daha yüksek olan öğrencileri bulmalı. SELECT Adı, Notu WHERE Notu > (SELECT Notu WHERE Adı = Özlem ); 1

Alt sorgu Düzenleme Kuralları Alt sorgu, ana sorgu içindeki karşılaştırma işlecinin sağında yer almalıdır. FROM sözcüğü içinde tanımlanan sorgular bu kuralın dışındadır. Bir alt sorgu parantez işaretleri arasında yer alır. Alt sorgu ORDER BY içermez. Bu sözcük sadece ana sorgu içerisinde yer alabilir. Alt sorgularda iki tür karşılatırma işleci Tek satır işleçleri Çoklu satır işleçleri bulunabilir. Tek satır alt sorguları Sadece bir değer döndüren alt sorgulardır. =, >, >=, <, <=, <> ÖRNEK: SELECT Adı, Memleketi WHERE Memleketi = (SELECT Memleketi WHERE Öğrenci_No = 201654); 2

Tek satır alt sorguları ÖRNEK: Öğrenci numarası 201654 olan öğrenciyle aynı memleketli olan ve 301987 numaralı öğrenciden daha çok not alan öğrencileri sorgulamak istiyoruz: SQL> SELECT Adı, Memleketi, Notu WHERE Memleketi = (SELECT Memleketi WHERE Öğrenci_No=201654) AND Notu > (SELECT Notu WHERE Öğrenci_No=301987); Grup fonksiyonları kullanımı Grup fonksiyonları sadece bir değer döndürdüğü için, bu tür fonksiyonlar tek satır alt sorgularda kullanılır. ÖRNEK: SELECT Adı, Notu WHERE Notu = (SELECT MIN(Notu) ); Benzer şekilde not örneği için AVG fonksiyonu da kullanılabilir. 3

HAVING kullanımı Ana sorguda grup fonksiyonu varsa, grup koşullarıda tanımlanacaktır. Bu durumda HAVING sözcüğü kullanılır. SELECT liste FROM tablo GROUP BY sütun HAVING fonksiyon işleç (SELECT fonksiyon FROM tablo); HAVING kullanımı ÖRNEK: En düşük ücreti 20 numaralı bölümün en düşük ücretinden daha büyük bölümleri listemek istersek; SQL> SELECT Bölüm_No, MIN(Ücret) AS En Az Ücret GROUP BY Bölüm_No HAVING MIN(Ücret) > (SELECT MIN(Ücret) WHERE Bölüm_No=20); 4

HAVING kullanımı ÖRNEK: En fazla ücret alan personelin ücreti 30 numaralı bölümün ortalama ücretinden daha fazla olan bölümleri listelemek istersek; SQL> SELECT Bölüm_No, MAX(Ücret) AS En Yüksek Ücret GROUP BY Bölüm_No HAVING MAX(Ücret) > (SELECT AVG(Ücret) WHERE Bölüm_No=30); Alt sorgularda hatalar Tek satır alt sorgularında, alt sorgu birden fazla değer üretmemelidir. SQL> SELECT Personel_No,Adı WHERE Ücret = (SELECT MIN(Ücret) GROUP BY Bölüm_No); Yukarıdaki sorgu hatalıdır, çünkü alt sorgudan birden fazla satır listeleyecektir. Ana sorgudaki = işleci sadece bir satıra göre işlem yapacağından sonuç alınamayacaktır. 5

Çoklu satır alt sorguları Alt sorgulardan birden fazla satır elde ediliyorsa bu kez sorgu çoklu satır alt sorgusu olmaktadır. IN : Liste içindeki değerlerden seçme işlemini yapar ANY : Alt sorgu tarafından döndürülen her bir değer için karşılatırma işlemini gerçekleştirir. ALL : Alt sorgu tarafından döndürülen tüm değerlerle karşılaştırma işlemi gerçekleştirilir. IN işleci ÖRNEK :Her bölümdeki en az ücretleri belirleyerek bunlarla aynı ücreti alan personeli görüntelemek için; SQL> SELECT Personel_No,Adı WHERE Ücret IN (SELECT MIN(Ücret) GROUP BY Bölüm_No); 6

ANY işleci Alt sorgu tarafından üretilen her bir değeri ana sorgu içinde belirlenen bir değerle karşılatırmak sözkonusu ise kullanılır. ( =, <, >) ile birlikte kullanımı sözkonusudur. ÖRNEK : En fazla kazanan MEMUR dan daha az maaşı olan personeli listelemek istersek; SQL> SELECT Adı, Ücret, Görevi WHERE Ücret <ANY (SELECT Ücret WHERE Görevi = MEMUR ); ANY işleci ÖRNEK : En düşük ücretli MEMUR dan daha fazla maaşı olan personeli listelemek istersek; SQL> SELECT Adı, Ücret, Görevi WHERE Ücret >ANY (SELECT Ücret WHERE Görevi = MEMUR ); 7

ALL işleci Alt sorguda üretilen tüm değerlerin, ana sorgu için bir girdi olarak kullanılması sözkonusu ise kullanılır. >ALL : en büyükten daha büyük <ALL : en küçükten daha küçük ÖRNEK : Ücreti tüm bölümlerin ortalama ücretinden daha büyük olan personeli listelemek istersek; SQL> SELECT Adı, Ücret WHERE Ücret >ALL (SELECT AVG(Ücret) GROUP BY Bölüm_No); Çok sütunlu alt sorgular Bazı uygulamalarda alt sorgunun birden fazla sütun üretmesi ve koşula bağlı olarak bunların girdi olarak kullanılması sözkonusudur. ÖRNEK : Đrfan isimli öğrenciyle aynı bölümde ve aynı notu alan öğrenciyi listelemek istersek; SQL> SELECT Öğrenci_No, Adı, Notu WHERE (Bölüm, Notu) IN (SELECT Bölüm, Notu WHERE Adı = Đrfan ); Ancak bu sorgudan Đrfan ın bilgileri de gelecektir. Bu bilgiler dahil edilmek istenmiyorsa; Sonuna AND Adı <> Đrfan ; eklenmelidir. 8

Çok sütunlu alt sorgular ÖRNEK : Ahmet isimli personel ile aynı yıl işe giren ve görevi Ahmet ile aynı olan personel olup olmadığını öğrenmek istersek; SQL> SELECT Adı, Görevi, Giriş_Tar AS GĐRĐŞ TARĐHĐ WHERE (Görevi,TO_CHAR(Giriş_Tar, YYYY )) IN (SELECT Görevi, TO_CHAR(Giriş_Tar, YYYY ) WHERE Adı = Ahmet ); FROM içinmde Alt Sorgu ÖRNEK : Bir bölümün ortalama ücretinden daha fazla ücret alan tüm personelin ortalama ücretlerini listelemek istersek; SELECT P.Bölüm_No, P.Adı, P.Ücret, S.Maaş P, (SELECT Bölüm_No, AVG(Ücret) AS Maaş GROUP BY Bölüm_No) S WHERE P.Bölüm_No = S.Bölüm_No AND P.Ücret > S.Maaş; 9