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

Benzer belgeler
Charindex() CHARINDEX

6 Aritmetiksel Operatörler ve Hazır Fonksiyonlar

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

Veritabanı. SQL (Structured Query Language)

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

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

VERİTABANI. SQL (Structured Query Language)

Veri Tabanı Tasarım ve Yönetimi

VERİTABANI ve YÖNETİMİ

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

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

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

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

Like Joker Karakterler, Order By, Group By

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

Laboratuvar 2 Tek Kayıt Fonksiyonları

Veri Tabanı-I 9.Hafta

SQL (Structured Query Language)

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

Veri Tabanı II Alt Sorgular

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) BİLİŞİM TEKNOLOJİLERİ T-SQL

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

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

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

TEMEL STRING İŞLEMLERİ

SQL Kod ile Tablo Oluşturma

SQL Komutları (2) Uzm. Murat YAZICI

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

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

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

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

VERİTABANI Veritabanı Sorgulama

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.

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

SQL e Giriş. Uzm. Murat YAZICI

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

SQL Query and Table Application

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

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

SQL (Structured Query Language)

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

Bilgisayar Uygulamaları. MySql

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

VERİ TABANI ve YÖNETİMİ

BİLİŞİM TEKNOLOJİLERİ

İNTERNET TABANLI PROGRAMLAMA- 12.ders

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

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ı. Alt Sorgu Temelleri

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

BİLİŞİM TEKNOLOJİLERİ

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

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

Veri Tabanı Programlamaya Giriş

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

YAPISAL SORGULAMA DİLİ (SQL)

SQL DİĞER Deyimler ve Komutlar

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

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

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

Birden Çok Tabloda Sorgulama (Join)

Oracle da kullanılan veri tipleri:

ACCESS PLATFORMUNDA SQL

5 Sorgulama İşlemleri. Veritabanı 1

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

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

Mysql Veritabanı Komutları

Birleştirme (JOIN) işlemi

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

Veritabanı ve Yönetim Sistemleri

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

Çok tablolu sorgulamalar

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

Internet Programming II

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

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

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

Veritabanı Tasarımı. Dönüşüm Fonksiyonları

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

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

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 Komutlarından Select Sorgusu Ve Myadmin Üzerinden Anlatımı

Veri Tabanı Hafta Dersi

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ü

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ı Tasarımı. SQL Deyimi Anatomisi

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

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

BİLİŞİM TEKNOLOJİLERİ

Veri Tabanı-I 12.Hafta

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

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.

Emrah UYSAL 1

KULLANICI TANIMLI FONKSİYONLAR

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

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

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

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

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

Karakter Değişkenlere İlişkin Komutlar

Transkript:

Alt Sorgular SQL Serverda sorgu içinde sorgu da oluşturulabilir. Sorgu içinde sorgu, içteki sorgunun dışta olan sorguya değer üretmesidir. Bu, bir değer veya birden fazla değer olabilir. IN ve NOT IN Tablodaki alan içeriklerine ulaşmak için IN deyimi kullanılır. Bir sınıftaki 16 ve 17 yaşındaki öğrencileri listelemek istediğinizi düşünün. IN deyimiyle sorgunun yazımı şu şekildedir: SELECT Ad,Soyad,Yas FROM Sinif WHERE Yas IN(16,17) Sorguyu çalıştırıp sonuçlarını Results ekranından görebilirsiniz. Sınıftaki öğrencilerden 16 yaşında olmayan öğrencileri listelemek istediğinizde, SELECT Ad,Soyad,Yas FROM Sinif WHERE Yas NOT IN(16) şeklinde bir sorgu yazmalısınız. İç İçe SELECT Hazırladığınız sorguyu karmaşıklıktan kurtarabilmeniz veya sorgunun işlevselliğini test edebilmeniz açısından parçalara ayırmanız gerekebilir. Bunun için iç içe SELECT kullanmanız gerekir. İç içe yazılan her SELECT sorgusu parantez içinde yazılmalıdır. Yazdığınız SELECT ifadesi geriye sadece bir değer döndürüyorsa buna tekil alt sorgu denir. T- SQL de kullanılan matematiksel fonksiyonlar (MIN, MAX, SUM vb.) veya WHERE ifadesiyle yazılan bir şart ile geriye tek bir değer döndürebilirsiniz. Yaşı 18 olan öğrenciyi bulmak istediğinizde, SELECT Ad,Soyad,Yas FROM Sinif WHERE Yas= ( SELECT Yas FROM Sinif WHERE Yas=18 ) şeklinde iç içe SELECT yazabilirsiniz. Sorguyu çalıştırıp sonuçlarını Results ekranından görebilirsiniz.

WHERE den sonra sorguları bağlamak için kullanılan = operatörü yerine diğer karşılaştırma operatörleri de kullanılabilir. Eğer, sorgunuzda geriye birden fazla değer döndürülüyorsa SQL Server hata verir. Hazırlanan alt sorgu asıl SELECT ifadesinin içinde de kullanılabilir. Öğrencilerin ad, soyad ve ortalama yaşlarını veren bir sorgu yazılacağını varsayınız. Sorgunun nasıl yazıldığına dikkat ederek sorguyu Query Editor e yazınız. Sorguyu çalıştırıp sonuçlarını Results penceresinde görebilirsiniz. Yazdığınız sorgu birden fazla değer döndürüyorsa sorguları IN deyimiyle birbirine bağlamanız gerekir. Yaşı 18 den küçük olan öğrencileri listeleyeceğinizi varsayınız. Yine sonucu Results penceresinden görebilirsiniz. Türetilmiş Tablolar Türetilmiş tablo, alt sorgularla çalışmanın özel bir hâlidir. İç içe sorgu yaparken elde edilen değerler hep bir sütun hâlinde gösterilmiştir. İç içe sorgular, bir sorgu sonucunun tabloymuş gibi tekrar sorgulanmasını da sağlar.

Türetilmiş tablo, FROM ifadesinden sonraki SELECT ifadesinin parantez içine yazılıp bir takma isim verilmesiyle oluşturulur. Yazılışı SELECT ifade FROM (SELECT ifade) AS takmaad Yaşı 16 dan büyük olan öğrencilerin cinsiyetleriyle beraber listeleneceğini varsayınız. Sorguyu aşağıdaki gibi yazınız. Sorguda, Sayi için türetilmiş tablo denir. Results penceresindeki sütun adlarının başlıkları da Sayi (Yasi,Cinsi) satırıyla verilmiş olur. Sorguyu çalıştırdığınızda Results penceresinin görünümü Uygulama 1: İç içe sorgulama yöntemiyle İlçe sayısı 20 den fazla olan Şehir Adlarını listeleyen T-SQL komutu aşağıdaki gibidir. SELECT Sehir.SehirAdi FROM Sehir WHERE Sehir.IDSehir IN(SELECT Ilce.IDSehir FROM Ilce GROUP BY Ilce.IDSehir HAVING COUNT(*)>=20)

Uygulama 2: Hiç alınmamış Ürün Adlarını İç İçe sorgulama yöntemiyle gösteren T-SQL komutu aşağıdaki gibidir. SELECT Urun.UrunAdi FROM Urun WHERE Urun.IDUrun NOT IN( SELECT SiparisDetay.IDUrun FROM SiparisDetay) Uygulama 3: Satılan Ürünlerin Adı, Birim Fiyatları ve bunların Ortalama Fiyatlarını İç İçe sorgulama yöntemiyle gösteren T-SQL komutu aşağıdaki gibidir. SELECT Urun.UrunAdi,Urun.Birimfiyati,ORT=( SELECT AVG(SiparisDetay.BirimFiyati) FROM SiparisDetay ) FROM Urun INNER JOIN SiparisDetay ON Urun.IDUrun=SiparisDetay.IDUrun Uygulama 4: 01.01.1980 tarihinden sonra doğmuş çalışanları Adı Soyadı ve Doğum Tarihi değerlerini Türetilmiş Tablo yöntemiyle gösteren T-SQL komutu aşağıdaki gibidir. SELECT YASLAR.* FROM ( SELECT Calisan.AdiSoyadi, Calisan.DogumTarihi ) YASLAR(ADSOYAD, DOGUM) WHERE YASLAR.DOGUM>'01.01.1980'

COMPUTE ve COMPUTE BY Deyimleri Toplama fonksiyonunu kullanarak sonuç olarak bir toplam değeri üretir. COMPUTE deyimi her SELECT ifadesiyle kullanılır. COMPUTE BY ise ORDER BY deyimine gerek duyar. Öğrenci notları tablosundaki öğrenci numarasına göre ortalama sütunundaki değerleri toplayarak bir sonuç üreten T-SQL kodlarıdır. SELECT ogrno, ort FROM Ogr_Notlar ORDER BY ogrno COMPUTE SUM(ort) Tarih ve Zaman Fonksiyonları Tarih ve zaman üzerinde işlem yapmayı sağlayan fonksiyonlardır. GETDATE () Fonksiyonu Şimdiki tarih ve saat değerini gösterir. SELECT GETDATE() DATEADD () Fonksiyonu Verilen bir tarihe istenilen sayıda bir tarih bilgisi eklemek için kullanılır. DATEADD fonksiyonunda dd gün mm ay yy yıl anlamındadır. Belirtilen tarih bilgisine 90 gün, 2 ay ve 2 yıl ekleyen T-SQL kodları sırasıyla... SELECT DATEADD(dd, 90, '02.10.2007') SELECT DATEADD(mm, 2, '02.10.2007')

SELECT DATEADD(yy, 2, '02.10.2007') DATEDIFF () Fonksiyonu Belirtilen iki tarih arasındaki gün sayısını göstermektedir. SELECT DATEDIFF(dd, '04.04.1974', '02.10.2007') Ayrıca hafta için wk, saat için hh, dakika için mi, saniye için ss kullanılabilir. DATEPART () Fonksiyonu Tarihle ilgili sayısal bilgilerin alınmasını sağlar. SELECT DATEPART(dd, '01.04.1974') SELECT DATEPART(mm, '01.04.1974') SELECT DATEPART(yy, '01.04.1974') YEAR() MONTH() DAY() Fonksiyonları SELECT YEAR('10.02.2010') Tarihin Yıl değerini döndürür 2010 SELECT MONTH('10.02.2010') Tarihin Ay değerini döndürür 02 SELECT DAY('10.02.2010') Tarihin Gün değerini döndürür 10 Uygulama 5: Çalışanların Adı Soyadı ve Yaşlarını gösteren T-SQL komutu aşağıdaki gibidir. SELECT Calisan.AdiSoyadi, DATEDIFF(YY,Calisan.DogumTarihi,GETDATE()) AS YAS

Uygulama 6: Çalışanların Adı Soyadı ve Yaşlarına göre Yaş Durumlarını gösteren T-SQL komutu aşağıdaki gibidir. SELECT Calisan.AdiSoyadi, CASE WHEN DATEDIFF(YY,Calisan.DogumTarihi,GETDATE())<=35 THEN 'GENÇ' WHEN DATEDIFF(YY,Calisan.DogumTarihi,GETDATE())<=45 THEN 'İKİNCİ BAHAR' WHEN DATEDIFF(YY,Calisan.DogumTarihi,GETDATE())>45 THEN 'YAŞLI' END AS YASDURUM Uygulama 7: Çalışanların Adı Soyadı ve 30 Yaşındaki Yıllarını gösteren T-SQL komutu aşağıdaki gibidir. SELECT Calisan.AdiSoyadi, DATEPART(YY,DATEADD(YY,30,Calisan.DogumTarihi)) AS YAS_30 Karakter Fonksiyonları Karakter alanlarla ilgili işlem yapmak için bu fonksiyonlar kullanılır. CHAR () ASCII kodu verilen karakteri görüntüler. ASCII() Verilen karakterin Ascii kodunu döndürür

SELECT CHAR(65) A harfini verir. SELECT ASCII(A) 65 rakamını verir. Değer int tipindedir. CHARINDEX() Bir metin içerisindeki metin parçasını istenilen konumdan itibaren arar. SELECT CHARINDEX ('bu',@soyad,1) LEFT () Metnin baş taraftan itibaren istenilen sayıdaki karakterleri alır. RIGHT () Metnin sonundan istenilen sayıdaki karakteri almak için kullanılır. ler: LTRIM () Metnin başında bulunan boşlukları siler. RTRIM () Metnin sonundaki boşlukları siler. ler:

LOWER () Metni küçük harfe çevirir. UPPER () Metnin tümünü büyük harfe çevirir. ler: LEN () Metnin uzunluğunu veren fonksiyondur. REVERSE () Metni ters çevirir.

SUBSTRING () Bir metinde belirtilen karakterden itibaren belirli sayıda karakter almak için kullanılır. Uygulama 8: Çalışanların Adı Soyadı ve Adı soyadının 3. Karakterinden itibaren 6 karakterlik Kod isimlerini gösteren T-SQL komutu aşağıdaki gibidir. SELECT Calisan.AdiSoyadi, SUBSTRING(Calisan.AdiSoyadi,3,6) AS KOD Uygulama 9: Çalışanları Adı Soyadı ve BÜYÜK küçük tersten va Karakter sayılarını gösteren T- SQL komutu aşağıdaki gibidir. SELECT Calisan.AdiSoyadi, UPPER(Calisan.AdiSoyadi) AS BUYUK, LOWER(Calisan.AdiSoyadi) AS KUCUK, REVERSE(Calisan.AdiSoyadi) AS TERSTEN, LEN(Calisan.AdiSoyadi) AS KAR_SAYISI

Uygulama 10: Çalışanların Adı Soyadının ilk ve son harflerinin ASCII kodlarını gösteren T-SQL komutu aşağıdaki gibidir. SELECT ASCII(SUBSTRING(Calisan.AdiSoyadi,1,1)) AS ILKHARF, ASCII(SUBSTRING(Calisan.AdiSoyadi,LEN(Calisan.AdiSoyadi),1)) AS SONHARF