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

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

Veritabanı. SQL (Structured Query Language)

SQL Kod ile Tablo Oluşturma

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

Veri Tabanı Tasarım ve Yönetimi

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

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

VERİTABANI. SQL (Structured Query Language)

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

VERİTABANI ve YÖNETİMİ

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

ACCESS PLATFORMUNDA SQL

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

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

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

SQL (Structured Query Language)

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

5 Sorgulama İşlemleri. Veritabanı 1

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

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

Mysql Veritabanı Komutları

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

BİLİŞİM TEKNOLOJİLERİ

İNTERNET TABANLI PROGRAMLAMA- 12.ders

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

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

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

Oracle da kullanılan veri tipleri:

Veri Tabanı-I 9.Hafta

BİLİŞİM TEKNOLOJİLERİ

Veritabanına Uygulanması

6 Aritmetiksel Operatörler ve Hazır Fonksiyonlar

SORGULAR VE ÇEŞİTLERİ II

SQL e Giriş. Uzm. Murat YAZICI

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

10 Birden Fazla Tablo Üzerinde Sorgulama

SQL Query and Table Application

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

Veri Tabanı Programlamaya Giriş

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'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

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

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ı II Alt Sorgular

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

SQL DİĞER Deyimler ve Komutlar

VERİTABANI Veritabanı Sorgulama

Bilgisayar Uygulamaları. MySql

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

STORED PROCEDURE LER (Saklı Yordamlar)

Veritabanı ve Yönetim Sistemleri

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

BİLİŞİM TEKNOLOJİLERİ

Like Joker Karakterler, Order By, Group By

Birden Çok Tabloda Sorgulama (Join)

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

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

Veri Tabanı Hafta Dersi

Veri Tabanı Hafta Dersi

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

YAPISAL SORGULAMA DİLİ (SQL)

VERİTABANI Veritabanı Yönetimi

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ü

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

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

Birleştirme (JOIN) işlemi

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

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

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

Veritabanı Tasarımı. Tablo Değiştirme

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

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

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

5 Sorgulama İşlemleri. Veritabanı 1

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

Emrah UYSAL 1

SQL (Structured Query Language)

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

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

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

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Đ

15 Aralık 2011 / Perşembe.

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.

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

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

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

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

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

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

Veri Tabanı-I 12.Hafta

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

Oracle Database 11g: Introduction to SQL

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

İLİŞKİSEL VERİTABANLARINDA BİRLEŞTİRME

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

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

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

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

Transkript:

TEMEL SQL SORGU ÖRNEKLERİ Sorgu İle Veritabanı Oluşturma create database veritabanı_adı Örnek : create database db_okul Yukarıdaki sorguyu çalıştırdığımızda db_okul adında bir veritabanı oluşturulur. Örnek: create database db_market Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur. Sorgu yazma penceresinde hangi veritabanı üzerinde çalışıyorsak sadece o veritabanı ile ilgili sorgulama yapabiliriz. Başka bir veritabanına geçiş yapmak istersek use ifadesini kullanmalıyız. Örnek: Şu anda db_okul veritabanı üzerinde çalıştığımızı varsayalım ve db_market veritabanına geçmeye çalışalım. use db_market Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market veritabanına geçiş yapmış oluruz. Yani sadece db_market veritabanı üzerinde sorgulama yapabiliriz. db_okul veritabanı ile ilgili sorgulama yapamayız. Not: create database ve use ifadeleri ile MS Access te veritabanı oluşturamıyoruz. Çünkü MS Access te başlangıçta veritabanı oluşturmuş oluyoruz. Bu sql ifadelerini MS SQL Server veritabanı yazılımında kullanabiliriz. Burada bilgimiz olması açısından bu sql sorgularına yer verildi. Sorgu İle Tablo Oluşturma ( create table tablo_adi Sütun1 veritipi özellikler, Sütun2 veritipi özellikler, Sütun3 veritipi özellikler, SütunN veritipi özellikler ) Örnek : tbl_ogrenciler adında ogr_no, ogr_ad, ogr_soyad alanlarının olduğu bir tablo oluşturalım. create table tbl_ogrenciler( ogr_no int, ogr_ad varchar(30), ogr_soyad varchar(30) ) Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 1

Örnek : tbl_personel adında p_no, p_ad, p_soyad,p_bolum alanlarının olduğu, tbl_bolum adında bolum_no, bolum_ad alanlarının olduğu iki adet tablo oluşturalım. create table tbl_personel( p_no int, p_ad varchar(30), p_soyad varchar(30), p_bolum int ) create table tbl_bolum( bolum_no int, bolum_ad varchar(30) ) Sorgu İle Tablo Silme drop table tablo_adi Örnek : drop table tbl_ogrenciler drop table tbl_personel drop table tbl_bolum Yukarıdaki 3 sorgu çalıştırıldığında tbl_ogrenciler, tbl_personel, tbl_bolum tabloları silinir.(silme işlemini yaparken tabloların kapalı olması gerekir. Açık olursa silme işlemi gerçekleşmez, Access hata verir. Sorgu ile Tabloya Sütun Ekleme alter table tablo_adi add column sütun_adi veri türü Örnek : tbl_ogrenciler tablosuna yazili_notu adında int tipinde sütun ekleyelim. alter table tbl_ogrenciler add column yazili_notu int Örnek: tbl_ogrenciler tablosuna ogr_bolum adında varchar(20) veri türünde sütun ekleyelim. alter table tbl_ogrenciler add column ogr_bolum varchar(20) Örnek: tbl_personel tablosuna p_sehir adında varchar(30) veri türünde sütun ekleyelim. alter table tbl_personel add column p_sehir varchar(30) Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 2

Sorgu ile Tablodaki Sütun Özelliklerini Değiştirme alter table tablo_adi alter column sütun_adi veri türü Örnek : tbl_ogrenciler tablosundaki ogr_bolum sütununun veri türü varchar(20) dir. Bu sütunun veri türü bilgisini int olarak değiştirelim. alter table tbl_ogrenciler alter column ogr_bolum int Örnek : tbl_personel tablosundaki p_sehir alanının veri türü uzunluğu varchar(30) dur. Bunu varchar(40) yapalım. alter table tbl_personel alter column p_sehir varchar(40) Sorgu İle Tablodan Sütun Silme alter table tablo_adi drop column sütun_adi Örnek : tbl_ogrenciler tablosundaki yazili_notu alanını silelim. alter table tbl_ogrenciler drop column yazili_notu Örnek : tbl_personel tablosundaki p_sehir alanını silelim. alter table tbl_personel drop column p_sehir SELECT Deyiminin Yapısı SELECT deyimi ile bir tablodaki kayıtlara ait bir sütun, birden fazla sütün veya tüm sütunları seçerek verileri listeleyebiliriz. select sütun_adları from tablo_adı Örnek : tbl_ogrenciler tablosundaki öğrencilerin adını listeleyelim. select ogr_ad from tbl_ogrenciler Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 3

Örnek : tbl_ogrenciler tablosundaki öğrencilerin no, ad ve soyad bilgilerini listeleyelim. select ogr_no, ogr_ad, ogr_soyad from tbl_ogrenciler Örnek : tbl_ogrenciler tablosundaki öğrencilerin tüm bilgilerini listeleyelim. Örnek : tbl_ogrenciler tablosundaki ogr_no, ogr_ad, ogr_soyad alanlarını sırasıyla Öğrenci Numarası, Öğrenci Adı, Öğrenci Soyad şeklinde göstererek listeleyelim. select ogr_no as [Öğrenci Numarası], ogr_ad as [Öğrenci Adı],ogr_soyad as [Öğrenci Soyad] from tbl_ogrenciler Örnek : tbl_ogrenciler tablosundaki ogr_no alanını Numarası, ogr_ad ve ogr_soyad alanlarını ise birleştirerek Adı Soyadı şeklinde göstererek listeleyelim. select ogr_no as [Numarası], ogr_ad+" "+ogr_soyad as [Adı Soyadı] from tbl_ogrenciler Tablodaki Verilerin Sınırlandırılması (WHERE Kullanımı) select sütun_adları from tablo_adi where koşul Örnek : tbl_ogrenciler tablosunda il_adi Şırnak olan öğrencilerin ad ve soyad bilgilerini listeleyelim. select ogr_ad, ogr_soyad from tbl_ogrenciler where il_adi = "Şırnak" Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 4

Örnek : tbl_ogrenciler tablosunda ortalama notu 100 olan öğrencilerin tüm bilgilerini listeleyelim. where ortalama=100 Örnek : tbl_ogrenciler tablosunda ortalama notu 100 olmayan öğrencilerin tüm bilgilerini listeleyelim. where not ortalama=100 Örnek : tbl_ogrenciler tablosunda soyadı olmayan yani NULL olan öğrencileri listeleyelim. where ogr_soyad is null Örnek : tbl_ogrenciler tablosunda soyadı NULL olmayan yani soyadı bilgisi olan öğrencilerin tüm bilgilerini listeleyelim. where ogr_soyad is not null Örnek : tbl_ogrenciler tablosunda adı me harfleri ile başlayan öğrencilerin tüm bilgilerini listeleyelim. where ogr_ad like "me*" Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 5

Örnek : tbl_ogrenciler tablosunda adı a harfi ile biten öğrencilerin tüm bilgilerini listeleyelim. where ogr_ad like "*a" Örnek : tbl_ogrenciler tablosunda ortalama not bilgisi 50 ile 100 arasında olan(50 ve 100 dahil) öğrencilerin ad, soyad ve ortalama bilgilerini listeleyelim. select ogr_ad,ogr_soyad,ortalama from tbl_ogrenciler where ortalama between 50 and 100 Örnek : tbl_ogrenciler tablosunda ortalama not bilgisi 60 tan büyük ve 85 e eşit veya küçük olan öğrencilerin ad, soyad ve ortalama bilgilerini listeleyelim. select ogr_ad,ogr_soyad,ortalama from tbl_ogrenciler where ortalama>60 and ortalama<=85 Örnek : tbl_ogrenciler tablosunda ortalama not bilgisi 50 den küçük olan öğrencilerin ad, soyad ve ortalama bilgilerini listeleyelim. select ogr_ad,ogr_soyad,ortalama from tbl_ogrenciler where ortalama<50 Örnek : tbl_ogrenciler tablosunda ortalama bilgisi 78 ve 100 e eşit olan öğrencilerin tüm bilgilerini listeleyelim. where ortalama in (78,100) Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 6

Örnek : tbl_ogrenciler tablosunda ogr_ad bilgisi kadir, melike ve fatma ya eşit olan öğrencilerin tüm bilgilerini listeleyelim. where ogr_ad in ("kadir","melike","fatma") Tablodaki Verilerin Sıralanması (ORDER BY Kullanımı) ORDER BY tablodaki verilerin herhangi bir sütuna göre küçükten büyüğe veya büyükten küçüğe doğru sıralanması için kullanılır. ORDER BY ile ASC ve DESC ifadeleri kullanılır. ASC ifadesi küçükten büyüğe sıralarken DESC ifadesi büyükten küçüğe sıralar. ORDER BY kullanılırken ASC veya DESC yazılmadığında varsayılan olarak küçükten büyüğe sıralar. Örnek : tbl_ogrenciler tablosundaki tüm kayıtları ortalama bilgisine göre küçükten büyüğe doğru sıralayarak listeleyelim. Yöntem - 1 : order by ortalama Yöntem 2 : order by ortalama asc Yukarıdaki iki sorgu çalıştırıldığında aynı sonucu üretir. Örnek : tbl_ogrenciler tablosundaki tüm kayıtları ortalama bilgisine göre büyükten küçüğe doğru sıralayarak listeleyelim. order by ortalama desc Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 7

Örnek : tbl_ogrenciler tablosundaki tüm kayıtları ogr_ad bilgisine göre büyükten küçüğe (Z den A ya)doğru sıralayarak listeleyelim. order by ogr_ad desc Örnek : tbl_ogrenciler tablosundaki tüm kayıtları ortalama bilgisine göre büyükten küçüğe doğru sıralayıp listeleyelim. Eğer ortalama bilgisi eşit olan kayıtlar varsa bu eşit olan kayıtları kendi arasında ogr_soyad bilgisine göre büyükten küçüğe( Z den A ya) doğru sıralasın. order by ortalama desc, ogr_soyad desc Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 8

Tek Satır Fonksiyonları LCASE-UCASE Örnek : tbl_ogrenciler tablosundaki ogr_ad, ogr_soyad alanlarını büyük harfle ve sütün başlıklarını AD ve SOYAD olarak, il_adi alanını küçük harfle ve sütün başlığını İL olarak, ogr_bolum alanının sütün başlığını BÖLÜM olarak gösteren SQL kodunu yazalım. select ucase(ogr_ad) as AD, ucase(ogr_soyad) as SOYAD, lcase(il_adi) as İL, ogr_bolum as BÖLÜM from tbl_ogrenciler LEN Örnek : tbl_ogrenciler tablosundaki ogr_soyad alanındaki soyisimlerin karakter sayısını bulup sütün başlığı Soyisim Karakter Sayısı olacak şekilde listeleyen SQL kodunu yazalım. select ogr_soyad, len(ogr_soyad) as [Soyisim Karakter Sayısı] from tbl_ogrenciler NOW Örnek : Bilgisayarımızdaki tarih ve saat bilgisini gösteren SQL kodunu yazalım. select now() DAY-MONTH -YEAR Örnekler : Aşağıda önce şimdiki tarihin gün-ay-yıl bilgisini gösteren sql kodlarını, sonra belirtilen tarihin gün-ay-yıl bilgisini gösteren sql kodlarını yazalım. Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 9

select day(now()) ----> 18 select day(#29/10/1923#) ----> 29 select month(now()) ----> 3 select month(#29/10/1923#) ----> 10 select year(now()) ----> 2018 select year(#29/10/1923#) ----> 1923 DATEPART Örnekler : Aşağıda önce şimdiki tarih ile belirtilen tarih arasındaki gün-ay-yıl farklarını gösteren sql kodlarını, sonra belirtilen iki tarih arasındaki gün-ay-yıl farklarını gösteren sql kodlarını yazalım. SELECT DateDiff('d',#12/5/2002#,Now()) ----> 5582 SELECT DateDiff('d',#12/5/2002#,#10/28/2015#) ----> 4710 SELECT DateDiff('m',#12/5/2002#,Now()) ----> 183 SELECT DateDiff('m',#5/10/1980#,#7/27/1997#) ----> 206 SELECT DateDiff('yyyy',#12/5/2002#,Now()) ----> 16 SELECT DateDiff('yyyy',#5/10/1980#,#7/27/1997#) ----> 17 Çoklu Satır (Grup) Fonksiyonları AVG Örnek : tbl_ogrenciler tablosundaki ortalama not bilgilerinin ortalamasını bulan ve sütun başlığını Not Ortalaması şeklinde gösteren SQL kodunu yazalım. select avg(ortalama) as [Not Ortalaması] from tbl_ogrenciler ----> 83,9090909090909 SUM Örnek : tbl_ogrenciler tablosundaki ortalama not bilgilerinin toplamını bulan ve sütun başlığını Toplam Not şeklinde gösteren SQL kodunu yazalım. select sum(ortalama) as [Toplam Not] from tbl_ogrenciler ----> 923 MAX Örnek : tbl_ogrenciler tablosunda en büyük ogr_no yu bulan ve sütün başlığını En Büyük No şeklinde gösteren sql kodunu yazalım. select max(ogr_no) as [En Büyük No] from tbl_ogrenciler ----> 102 MIN Örnek : tbl_ogrenciler tablosunda en küçük ogr_no yu bulan ve sütün başlığını En Küçük No şeklinde gösteren sql kodunu yazalım. select min(ogr_no) as [En Küçük No] from tbl_ogrenciler ----> 5 Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 10

COUNT Örnek : tbl_ogrenciler tablosundaki kayıt sayısını bulan ve sütun başlığını Öğrenci Sayısı şeklinde gösteren sql kodunu yazalım.(null değerler dahil) select count(*) as [Öğrenci Sayısı] from tbl_ogrenciler ----> 11 Örnek : tbl_ogrenciler tablosundaki kayıt sayısını ogr_soyad sütünuna göre bulan ve sütun başlığını Öğrenci Sayısı şeklinde gösteren sql kodunu yazalım.(null değerler dahil değil) select count(ogr_soyad) as [Öğrenci Sayısı] from tbl_ogrenciler;----> 10 **count eğer sütun ile birlikte kullanılırsa null değerler dahil edilmez. Tabloda sevim adlı öğrencinin soyad bilgisi null olduğu için bu kaydı dikkate almadı. Birden Fazla Sütuna Göre Gruplama (GROUP BY Kullanımı) Örnek : tbl_ogrenciler tablosuna göre her bölümde okuyan öğrenci sayısını gösteren sql kodunu yazalım. select ogr_bolum, count(*) as [Öğrenci Sayısı] from tbl_ogrenciler group by ogr_bolum Örnek : tbl_ogrenciler tablosuna göre her bölümün not ortalamasını gösteren sql kodunu yazalım. select ogr_bolum, avg(ortalama) as [Not Ortalaması] from tbl_ogrenciler group by ogr_bolum Örnek : tbl_ogrenciler tablosuna göre İstanbul, Kocaeli, Şırnak illerinde okuyan öğrenci sayısını gösteren sql kodunu yazalım. select il_adi, count(*) as [Öğrenci Sayısı] from tbl_ogrenciler where il_adi in ("İstanbul","Kocaeli","Şırnak") group by il_adi Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 11

Grup Koşullarının Kullanımı(HAVING) Örnek : tbl_ogrenciler tablosuna göre not ortalaması 85 ve üzeri olan bölümleri gösteren sql kodunu yazalım. select ogr_bolum, avg(ortalama) as [Not Ortalaması] from tbl_ogrenciler group by ogr_bolum having avg(ortalama)>=85 Örnek : tbl_ogrenciler tablosuna göre öğrenci sayısı 2 ve üzerinde olan illeri gösteren sql kodunu yazalım. select il_adi, count(*) as [Öğrenci Sayısı] from tbl_ogrenciler group by il_adi having count(*)>=2 Örnek : tbl_ogrenciler tablosuna göre İstanbul, Kocaeli, Şırnak illerinden öğrenci sayısı 1 den büyük olanları gösteren sql kodunu yazalım. select il_adi, count(*) as [Öğrenci Sayısı] from tbl_ogrenciler where il_adi in ("İstanbul","Kocaeli","Şırnak") group by il_adi having count(*)>1 Tabloların Birleştirilmesi Aşağıdaki iki tablo üzerinde birleştirme(join) sorguları yazılmıştır. Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 12

INNER JOIN (Eşiti Olan Birleştirme) Birleştirmenin yapıldığı her iki tabloda da eşleşen kayıtlar listelenir. Örnek : tbl_urunler tablosu ile tbl_kategoriler tablosunu where ve inner join ile birleştirelim. select * from tbl_urunler, tbl_kategoriler where tbl_urunler.kategori_id=tbl_kategoriler.kategori_id select * from tbl_urunler inner join tbl_kategoriler on tbl_urunler.kategori_id=tbl_kategoriler.kategori_id Yukarıdaki iki sorgu çalıştırıldığında aşağıdaki kayıtlar listelenecektir. Birinci sorgu where koşuluyla da eşiti olan birleştirmenin yapılabildiğini göstermek için yazılmıştır. Biz inner join kullanmaya devam edeceğiz. Örnek : tbl_urunler ve tbl_kategoriler tablolarını kullanarak urun_id, urun_adi, kategori_adi şeklinde ortak değere sahip olan kayıtları listeleyen sql kodunu yazalım. select urun_id, urun_adi, tbl_kategoriler.kategori_adi from tbl_urunler inner join tbl_kategoriler on tbl_urunler.kategori_id=tbl_kategoriler.kategori_id Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 13

RIGHT JOIN (Eşiti Olmayan Birleştirme) Birleştirmenin sağ tarafında olan tablodaki tüm kayıtlar listelenirken sol tarafındaki tabloda eşleşen kayıtlar listelenir. Örnek : select * from tbl_urunler right join tbl_kategoriler on tbl_urunler.kategori_id=tbl_kategoriler.kategori_id LEFT JOIN (Eşiti Olmayan Birleştirme) Birleştirmenin sol tarafında olan tablodaki tüm kayıtlar listelenirken sağ tarafındaki tabloda eşleşen kayıtlar listelenir. Örnek : select * from tbl_urunler left join tbl_kategoriler on tbl_urunler.kategori_id=tbl_kategoriler.kategori_id Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 14

Alt Sorgular Alt sorgular yukarıdaki iki tabloya göre yazılmıştır. Tek Satır Alt Sorguları Örnek : Personel numarası 111 olan personel ile aynı bölümde çalışan personelllerin ad, soyad ve bolum bilgilerini listeleyen sql sorgusunu yazalım. select p_ad, p_soyad, p_bolum from tbl_personel where p_bolum = (select p_bolum from tbl_personel where p_no=111) Çoklu Satır Alt Sorguları Örnek : Şırnaklı personellerin çalıştığı bölümlerdeki personellerin ad, soyad, bölüm ve şehir bilgilerini listeleyen sql sorgusunu yazalım. select p_ad, p_soyad, p_bolum, p_sehir from tbl_personel where p_bolum in (select p_bolum from tbl_personel where p_sehir="şırnak") Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 15

Örnek : 5 numaralı bölümdeki en düşük maaşlı personelin maaşından daha yüksek maaş alan personelleri listeleyelen sql sorgusunu yazalım. select * from tbl_personel where p_maas>any (select p_maas from tbl_personel where p_bolum=5) Örnek : 5 numaralı bölümdeki en yüksek maaşlı personelin maaşından daha düşük maaş alan personelleri listeleyen sql sorgusunu yazalım. Örnek : 5 numaralı bölümdeki en yüksek maaşlı personelin maaşından daha yüksek maaş alan personelleri listeleyen sql sorgusunu yazalım. select * from tbl_personel where p_maas>all (select p_maas from tbl_personel where p_bolum=5) 5 numaralı bölümdeki en yüksek maaş 5500TL ve bu maaştan daha yüksek maaşlı personel olmadığı için sorgu sonucu boş döndü. Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 16

Örnek : 5 numaralı bölümdeki en düşük maaşlı personelin maaşından daha düşük maaş alan personelleri listeleyen sql sorgusunu yazalım. select *from tbl_personel where p_maas<all (select p_maas from tbl_personel where p_bolum=5) EK SORGULAR Örnek : tbl_personel tablosuna göre personellerin p_no, p_ad, p_soyad, bolum_ad bilgilerini listeleyen sql sorgusunu yazalım. select p_no, p_ad, p_soyad, bolum_ad from tbl_personel inner join tbl_bolum on tbl_personel.p_bolum=tbl_bolum.bolum_no Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 17

Örnek : tbl_personel tablosuna p_maas adında sütun ekleyen sql sorgusunu yazınız. alter table tbl_personel add column p_maas currency Örnek : tbl_personel tablosuna giriş_tarihi adında sütun ekleyen sql sorgusunu yazınız. alter table tbl_personel add column giris_tarihi datetime Yenişehir MTAL Web Programcılığı Veritabanı Organizasyonu 2017-2018 18