VERİTABANI. SQL (Structured Query Language)



Benzer belgeler
SQL Komutları (2) Uzm. Murat YAZICI

Veritabanı. SQL (Structured Query Language)

Veri Tabanı Tasarım ve Yönetimi

VERİTABANI ve YÖNETİMİ

SQL e Giriş. Uzm. Murat YAZICI

SQL Kod ile Tablo Oluşturma

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

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

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

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

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

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

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

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

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

VERİTABANI Veritabanı Sorgulama

Çok tablolu sorgulamalar

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

SQL (Structured Query Language)

YAPISAL SORGULAMA DİLİ (SQL)

SQL (Structured Query Language)

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

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ü

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

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

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

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

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

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

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

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

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

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

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

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

ACCESS PLATFORMUNDA SQL

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

Veri Tabanı II Alt Sorgular

Birleştirme (JOIN) işlemi

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

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

VERİTABANI Veritabanı Yönetimi

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

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

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

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

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

SQL Query and Table Application

Oracle da kullanılan veri tipleri:

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

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

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

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

15 Aralık 2011 / Perşembe.

Veritabanı Tasarımı. Alt Sorgu Temelleri

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

BİLİŞİM TEKNOLOJİLERİ

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

BİLİŞİM TEKNOLOJİLERİ

Like Joker Karakterler, Order By, Group By

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

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.

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

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

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

Veri Tabanı Programlamaya Giriş

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

Bilgisayar Uygulamaları. MySql

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

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

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

SQL DİĞER Deyimler ve Komutlar

İNTERNET TABANLI PROGRAMLAMA- 12.ders

Veri Tabanı Hafta Dersi

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

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

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

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

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.

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

İleri Seviye Select Cümlecikleri

Birden Çok Tabloda Sorgulama (Join)

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

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

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

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

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

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

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

Veritabanı Yönetim Sistemleri

5 Sorgulama İşlemleri. Veritabanı 1

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

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

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

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

Veri Tabanı-I 12.Hafta

Veri Tabanı-I 9.Hafta

STORED PROCEDURE LER (Saklı Yordamlar)

Transkript:

VERİTABANI SQL (Structured Query Language)

SQL'de Gruplama Bir tablonun satırları gruplara ayrılarak fonksiyonların bunlara uygulanması mümkündür. Gruplara ayırmak için SELECT deyimi içerisinde GROUP BY ifadesi kullanılır. Örnek: OGRENCI tablosunda bulunan her bölüm için öğrenci sayısını ve burs toplamını hesaplayan SQL İfadesi : SELECT BOLUM, COUNT(ADI) AS SAYI, SUM (BURS) AS TOPLAM, FROM OGRENCI GROUP BY BOLUM

GROUP BY Komutu Kullanılırken Dikkat Edilmesi Gereken Bazı Hususlar: GROUP BY ile takma isimler kullanılmaz. GROUP BY ile tanımlanan sütunların belirtilen sütunlara göre artan sırada olduğu varsayılır. Sıralamayı azalan şekilde düzenlemek için ORDER BY komutu kullanılır. GROUP BY içinde belirtilen sütun isimleri grup fonksiyonu içinde yer almak zorunda değildir. GROUP BY içinde belirtilen sütun isimleri SELECT listesinde yer almak zorunda değildir.

Birden Fazla Sütuna Göre Gruplandırma GROUP BY ifadesi ile birden fazla sütuna göre gruplandırma yapmak mümkündür. Örnek: Her BOLUM ve BOLUM içindeki GOREV'lere göre personeli gruplayarak MAAS ortalamalarını elde etmek amacıyla aşağıdaki SQL cümlesi yazılır. SELECT BOLUM, GOREV, AVG (MAAS) FROM PERSONEL GROUP BY BOLUM, GOREV

Grupta Koşul Kullanılması : Grup işlemleri yapılırken istenen bazı koşullar HAVING ifadesi ile kullanılabilir. Örnek: OGRENCI tablosunun içerisinde sadece BILGISAYAR ve ENDUSTRI bölümleri için her bölümün ortalama burs ücretini hesaplayan SQL ifadesi SELECT BOLUM, AVG(BURS) AS ORTALAMA FROM OGRENCI GROUP BY BOLUM HAVING BOLUM IN('BILGISAYAR','ENDUSTRI')

Örnekler Personel tablosunun içerisinde sadece 10, 20, 30 numaralı bölümler için her bölümün ortalama ücretlerini hesaplayan SQL cümlesi: SELECT Bolum_No AS [Bölüm No], AVG (Ucret) AS Ortalama FROM Personel GROUP BY Bolum_No HAVING Bolum_No IN (10, 20, 30) Personel tablosunda ortalama ücreti 3500 den büyük olan bölümlerin numarasını ve o bölümdeki en yüksek ücreti hesaplayan SQL cümlesi: SELECT Bolum_No AS [Bölüm No], MAX (Ucret) AS [En Çok] FROM Personel GROUP BY Bolum_No HAVING Bolum_No >3500

ÇOKLU TABLO İŞLEMLERİ SELECT ifadesi birden fazla tablodan da sorgulama yapmak istendiği durumlarda da kullanılabilir. Birden fazla tablodan sorgulama yapılmak istendiği durumlarda tabloların belirli bir sütuna göre birbirlerine bağlanması gerekir. Örnek: Bir işyerinde çalışanların kişisel bilgilerini PERSONEL tablosundan, bölüm bilgilerini BOLUM tablosundan almak için yazılacak SQL ifadesi SELECT PERSONEL.PERNO, PERSONEL.AD, PERSONEL.BOL_NO, BOLUM.BOL_AD, BOLUM.BOL_TEL FROM PERSONEL, BOLUM WHERE PERSONEL.BOL_NO=BOLUM.BOL_NO

UNION ve UNION ALL Operatörleri UNION operatörü verilen şart ifadesine uygun olarak, çift kayıtları göz ardı eder ve her iki kümedeki tüm kayıtları seçer. Buna karşılık verilen şart ifadesine uygun olarak çift kayıtlarda dahil olmak üzere tüm kayıtların seçilmesi isteniyorsa UNION ALL operatörü kullanılır. Örnek: OGRENCI tablosunda adı M ile başlayanları veya bölümü B ile başlayanları listelemek için SQL ifadesi. SELECT ADI, OGRNO, BOLUM FROM OGRENCI WHERE ADI LIKE 'M*' UNION SELECT ADI, OGRNO, BOLUM FROM OGRENCI WHERE BOLUM LIKE 'B*'

UNION ve UNION ALL Operatörleri Üstteki SQL ifadesi ile aynı olan kayıtlar görüntülemez. Aynı olan kayıtlarında görüntülenmesi isteniyorsa UNION ALL anahtar kelimesi kullanılır. SELECT ADI, OGRNO, BOLUM FROM OGRENCI WHERE ADI LIKE 'M*' UNION ALL SELECT ADI, OGRNO, BOLUM FROM OGRENCI WHERE BOLUM LIKE 'B*'

Çoklu SELECT Deyimi Bu tip SQL ifadelerinde, ana SELECT sorgusu bir başka alt SELECT sorgusundan elde edilen sonuçları kullanır. SELECT liste FROM tablo WHERE ifade, işleç (SELECT liste FROM tablo) Ana sorgu ile alt sorgu birbirine WHERE, HAVING ve FROM anahtar kelimeleri ile kullanılabilir.

Örnek: Öğrenci numarası "0901.10111" olan öğrencimizden daha fazla burs alan öğrencileri listeleyecek SQL ifadesi SELECT AD, OGRNO, BURS FROM OGRENCI WHERE BURS> (SELECT BURS FROM OGRENCI WHERE OGRNO='0901.10111')

Grup Fonksiyonlarının Kullanılması Grup fonksiyonları sadece bir değer döndürdükleri için, bu tür fonksiyonlar tek satır alt sorgulama işlemlerinde kullanılabilir. Örnek: Personel içerisinde ortalama maaştan daha fazla maaş alan personeli listelemek için SQL ifadesi : SELECT ADI, MAAS FROM PERSONEL WHERE MAAS> (SELECT AVG(MAAS) FROM PERSONEL)

HAVING İle Grup Şartlarının Tanımlanması Örnek: "SATIN ALMA" bölümünde en yüksek ücret alan personelin ücretinden daha fazla ücret alan bölümleri listeleyen SQL ifadesi: SELECT BOLUM, MAX(MAAS) AS [EN FAZLA MAAŞ] FROM PERSONEL GROUP BY BOLUM HAVING MAX(MAAS)> (SELECT MAX(MAAS) FROM PERSONEL WHERE BOLUM='SATIN ALMA')

Çoklu Satır Alt Sorgusu Alt sorgudan bir satır yerine daha fazla sayıda satır elde ediliyorsa bu kez sorgu çoklu satır alt sorgusu olarak değerlendirilir. Bu tür sorgular aşağıdaki operatörler yardımıyla gerçekleştirilir. IN operatörü : Liste içerisindeki değerlerden seçme işlemini gerçekleştirir Örnek: Her bölümdeki en fazla maaşları belirleyerek, bu belirlenen değerlerle aynı maaşı alan personeli listelemek için gerekli SQL ifadesi : SELECT AD, MAAS, BOLUM FROM PERSONEL WHERE MAAS IN( SELECT MAX(MAAS) FROM PERSONEL GROUP BY BOLUM)

Çoklu Satır Alt Sorgusu ANY Operatörü : Alt sorgu tarafından üretilen her bir değer ana sorgu içinde belirlenen bir değerle karşılaştırmak söz konusu ise ANY operatörü kullanılır. Bu operatör "=, <, >" operatörlerinden biri ile kullanılabilir. =ANY ifadesi IN tanımı ile eşdeğerdir. <ANY en çoktan daha az anlamına gelir >ANY en az dan daha büyük anlamına gelir. Örnek: Personel tablosunda en fazla maaş alan HİZMETLİ'den daha az maaş alan personeli listelemek için SQL ifadesi : SELECT ADI, MAAS, GOREV FROM PERSONEL WHERE MAAS <ANY (SELECT MAAS FROM PERSONEL WHERE GOREV='HİZMETLİ')

Çoklu Satır Alt Sorgusu ALL OPERATÖRÜ : Alt sorgu tarafından üretilen tüm değerlerin, ana sorgu içerisinde bir girdi olarak kullanılması söz konusu ise ALL operatörü kullanılır. <ALL en küçükten daha küçük anlamına gelir >ALL en büyükten daha büyük anlamına gelir. Örnek: Maaşı tüm bölümlerin ortalama maaşından daha küçük olan personeli listelemek için SQL ifadesi : SELECT ADI, MAAS FROM PERSONEL WHERE MAAS <ALL(SELECT AVG(MAAS) FROM PERSONEL GROUP BY BOLUM)

Veri Ekleme, Güncelleme ve Silme İşlemleri

SELECT deyimi ile yapılan işlemler sorgulama işlemleridir. Bu sorgulamalar Tablo üzerinde herhangi bir değişikliğe yol açmazlar. Eğer bir tabloya yeni bir kayıt eklenmesi, bir satır güncelleme yapılması ya da bir satırın silinmesi isteniyorsa, SELECT deyim ile bu gerçekleşmez. Bunlar için INSERT, UPDATE ve DELETE deyimleri kullanılır.

Tabloya Satır Ekleme (INSERT) INSERT INTO tablo (sütunlar) VALUES (değerler) Bu deyim çalıştırıldığında tabloya yeni bir satır eklenir. Örnek: OGRENCI tablosuna yeni bir kayıt ekleyelim. SELECT * FROM OGRENCI INSERT INTO OGRENCI(NO, ADI, ADRES) VALUES('0901.10999', 'ALİ YILDIZ', 'MALATYA') Örnek: NULL değerinin girilmesi SELECT * FROM OGRENCI INSERT INTO OGRENCI(NO, ADI, ADRES) VALUES('0901.10999', 'ALİ YILDIZ', NULL)

Tablodaki Verileri Güncelleme (UPDATE) Bir tablonun içerdiği değerler değiştirilmek istendiğinde UPDATE deyimi kullanılır. UPDATE tablo SET sütunl =değer1, sütun2=değer2,... WHERE şart Örnek: Personel tablosunda sici nosu A9765 olan memurun DOGUMYERI'ni 'SIVAS' olarak değiştirmek istiyoruz. UPDATE PERSONEL SET DOGUMYERI='SIVAS' WHERE SICIL_NO='A9765'

Örnek : Maaşları 1000 ile 2500 arasında olan çalışanın maaşını 3000 yapan SQL ifadesi: UPDATE PERSONEL SET MAAS=3000 WHERE MAAS BETWEEN 1000 AND 2500; OGRENCI tablosunda yer alan kayıtlardan ADRES'i İstanbul ve Ankara olanlanrın tümünü Sakarya yapan SQL ifadesi : UPDATE OGRENCI SET ADRES='SAKARYA' WHERE ADRES IN ('İstanbul', 'Ankara')

Tablodan Satır Silmek (DELETE) Tabloda yer alan bir ya da daha fazla satırı silmek için DELETE deyimi kullanılır. DELETE [FROM] tablo [WHERE şart] Örnek: OGRENCI tablosunun tüm kayıtlarını silmek için : DELETE FROM OGRENCI Örnek: OGRENCI tablosu içerisinde yer alan BOLUM_KODU 12 olan bölümü silmek için : DELETE FROM OGRENCI WHERE BOLUM_KODU= 12