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

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

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

BÖLÜM- 11: BÜYÜK VERİ KÜMELERİ

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

Veritabanı Tasarımı. Alt Sorgu Temelleri

Emrah UYSAL 1

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

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

BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK

Oracle Database 11g: Introduction to SQL

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

Emrah UYSAL 1

BÖLÜM- 3: TEK SATIR FONKSİYONLARI

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

Emrah UYSAL 1

Veri Tabanı II Alt Sorgular

Veriyi ve Bilgiyi Organize Etmek. Bilgisayar Mühendisliğine Giriş 1

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

SQL Komutları (2) Uzm. Murat YAZICI

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

EXISTS VE NOT EXISTS fonksiyonları

KULLANICI TANIMLI FONKSİYONLAR

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.

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

Oracle da kullanılan veri tipleri:

Veritabanı Tasarımı. Self-Join ve Hiyerarşik Sorgular

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

Microsoft SQL Server Sorgulama

T-SQL NEDİR? Microsoft T-SQL Transact-SQL

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

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

Veritabanı Tasarımı. Büyük/Küçük Harf ve Karakter İşleme

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

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

ORACLE DERS 1 SQL E GİRİŞ

Veritabanı Tasarımı COUNT, DISTINCT, NVL

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

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

Emrah UYSAL 1

Veritabanı Tasarımı. SQL Deyimi Anatomisi

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

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.

Veritabanı. SQL (Structured Query Language)

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

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

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

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

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

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

PostgreSQL ve PL/pgSQL

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

SQL Kod ile Tablo Oluşturma

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

Veri Tabanı-I 9.Hafta

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.

İş Zekası için Dört-Katmanlı Veri Modellemesi Gerçekleştirimi. Harun Gökçe EG Yazılım, TOBB ETÜ

Advanced Oracle SQL Tuning

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

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

PostgreSQL ve PL/pgSQL

Birleştirme (JOIN) işlemi

YAPISAL SORGULAMA DİLİ (SQL)

SQL DİĞER Deyimler ve Komutlar

Veri Tabanı Tasarım ve Yönetimi

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

«BM364» Veritabanı Uygulamaları

Sayfa 1 / 8. Tabo yapıları

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

EROL AKGÜL

Mysql Veritabanı Komutları

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

VERİ TABANI YÖNETİM SİSTEMLERİ II. 3. SQL PROGRAMLAMA BLOKLARI ve AKIŞ DENETİMİ

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

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

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

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

Birden Çok Tabloda Sorgulama (Join)

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

VERİTABANI. SQL (Structured Query Language)

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

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

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

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

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

VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER)

HP Yazılım Zirvesi - İstanbul 20 May Wyndham Grand Levent Erdem Alaşehir / Finansbank Güvenlik Olay Korelasyonunda Büyük Veri Kullanımı

Transact-SQL SQL NEDİR? Transact-SQL. SQL Veri İşleme Dili (Data Manipulation Language-DML) SQL Veri Tanımlama Dili (Data Definition Language-DDL)

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.

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır.

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

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

Veri Tabanı Programlamaya Giriş

Unutulmuş Özellikler: Oracle Veritabanına Yaptığınız Yatırımı Sonuna Kadar Kullanın

BİLİŞİM TEKNOLOJİLERİ

Veritabanı Tasarımı. Basit Eşleme: Dönüşüm İşlemi

Veritabanı Tasarımı. Join Yantümceleri

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

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

Transkript:

BÖLÜM- 13: ALT SORGULAR İLE VERİ İŞLEME Birden fazla sütuna sahip alt sorgular yazmak Scalar alt sorgular yazmak Birbiri ile ilişkili alt sorgulardaki problemleri çözmek İlişkili alt sorgular kullanarak update yapmak EXISTS ve NOT EXISTS operatörlerini kullanmak WITH operatörünü kullanmak

ÇOK SÜTUNLU ALT SORGU ÇİFT YÖNLÜ John ile aynı müdüre ve bölüme sahip personelleri listeleyelim SELECT employee_id,first_name, last_name,manager_id, department_id FROM hr.employees WHERE (manager_id, department_id) IN (SELECT manager_id, department_id FROM hr.employees WHERE first_name = 'John');

ÇOK SÜTUNLU ALT SORGU TEK YÖNLÜ SELECT employee_id, first_name, last_name,manager_id, department_id FROM hr.employees WHERE manager_id IN (SELECT manager_id FROM hr.employees WHERE first_name = 'John') AND department_id IN (SELECT department_id FROM hr.employees WHERE first_name = 'John') AND first_name <> 'John';

SCALAR ALT SORGULAR Bu sorgu tiplerinde alt sorgular bir sütun ve bir satır geri dönerler. Bu dönülen değerler genelde sayısal değerlerdir. Kullanım alanlarına örnek vermek gerekirse : DECODE ve CASE gibi şart cümlelerinde GROUP BY ifadelerinde WHERE, SET ve UPDATE cümlelerinde

SCALAR ALT SORGULAR Personel tablosunda 1800 nolu lokasyona ait personeller Kanada diğerlerini Amerika olacak şekilde listeleyelim SELECT employee_id, first_name, last_name, (CASE WHEN department_id = (SELECT department_id FROM hr.departments WHERE location_id = 1800) THEN 'Canada' ELSE 'USA' END) location FROM hr.employees;

İLİŞKİLİ ALT SORGULAR İlişkili alt sorgular satır satır çalışır. Alt sorgular, dış sorgudaki her bir satır için ayrı ayrı çalışır.

İLİŞKİLİ ALT SORGULAR Kendi departmanlarının ortalama maaşından yüksek maaş alan personelleri listeleyelim SELECT first_name,last_name, salary, department_id FROM hr.employees e WHERE salary > (SELECT AVG(salary) FROM hr.employees WHERE department_id = e.department_id);

İLİŞKİLİ ALT SORGULAR En az 2 defa iş değiştirmiş elemanları listeleyelim SELECT e.employee_id, first_name,last_name,e.job_id FROM hr.employees e WHERE 2<= (SELECT COUNT(*) FROM hr.job_history WHERE employee_id = e.employee_id);

EXİSTS Bu operatör, satırların alt sorgu içerisinde olup olmadığını kontrol eder. Bir çeşit test eder. Eğer alt sorguda satıra uygun kayıt bulunursa, sonuç TRUE olur ve alt sorgu içinde arama sona erer. Eğer alt sorguda satıra uygun kayıt bulunamazsa, sonuç FALSE olur ve alt sorgu içinde arama devam eder.

EXİSTS En az 1 personeli bulunan müdürleri listeleyelim SELECT employee_id, last_name, job_id, department_id FROM hr.employees outer WHERE EXISTS ( SELECT 'T' FROM hr.employees WHERE manager_id = outer.employee_id);

NOT EXISTS Personeli bulunmayan departmanları listeleyelim SELECT department_id, department_name FROM hr.departments d WHERE NOT EXISTS (SELECT 'T' FROM hr.employees WHERE department_id = d.department_id);

İLİŞKİSEL UPDATE ALTER TABLE hr.employees ADD(department_name VARCHAR2(25)); UPDATE hr.employees e SET department_name = (SELECT department_name FROM hr.departments d WHERE e.department_id = d.department_id); select * from hr.employees;

WİTH WITH bağlacı sayesinde, karmaşık bir sorguda birden fazla tekrarlayan aynı sorgu bloğunu bir SELECT cümlesinde kullanabiliriz. WITH sorgu bloğunun sonuçları kullanıcının geçici tablo alanlarında (temporary tablespace) depolanır. WITH bağlacı performans arttıran bir kullanıma sahiptir.

WİTH Toplam maaşı Bölümlerinin ortalama maaşından yüksek olan personelleri listeleyelim WITH dept_costs AS ( SELECT d.department_name, SUM(e.salary) AS dept_total FROM hr.employees e JOIN hr.departments d ON e.department_id = d.department_id GROUP BY d.department_name), avg_cost AS ( SELECT SUM(dept_total)/COUNT(*) AS dept_avg FROM dept_costs) SELECT * FROM dept_costs WHERE dept_total > (SELECT dept_avg FROM avg_cost) ORDER BY department_name;