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

Benzer belgeler
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.

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

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

IN ve NOT IN Tablodaki alan içeriklerine ulaşmak için IN deyimi 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:

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

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

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

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

6 Aritmetiksel Operatörler ve Hazır Fonksiyonlar

MT487_2005guz_final_cevaplar (cevaplar vurgulu ve koyu yazılmıştır)

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

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

SQL Kod ile Tablo Oluşturma

Emrah UYSAL 1

SQL Komutları (2) Uzm. Murat YAZICI

Birden Çok Tabloda Sorgulama (Join)

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

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

Mysql Veritabanı Komutları

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

ACCESS PLATFORMUNDA SQL

LİMANLAR GERİ SAHA KARAYOLU VE DEMİRYOLU BAĞLANTILARI MASTER PLAN ÇALIŞMASI

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

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

SQL Query and Table Application

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)

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.

3. basamak. Otomobil Kamyonet Motorsiklet

YGS-1 YGS-2 YGS-3 YGS-4 YGS-5 YGS-6

VERİTABANI ve YÖNETİMİ

TABLO-4. LİSANS MEZUNLARININ TERCİH EDEBİLECEĞİ KADROLAR ( EKPSS 2014 )

TABLO-3. ÖNLİSANS MEZUNLARININ TERCİH EDEBİLECEĞİ KADROLAR ( EKPSS 2014 )

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

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

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

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

Oracle da kullanılan veri tipleri:

Veritabanı Tasarımı COUNT, DISTINCT, NVL

TAŞRA TEŞKİLATI MÜNHAL TEKNİKER KADROLARI

VERİ TABANI ve YÖNETİMİ

Fren Test Cihazları Satış Bayiler. Administrator tarafından yazıldı. Perşembe, 05 Mayıs :26 - Son Güncelleme Pazartesi, 30 Kasım :22

VERİTABANI. SQL (Structured Query Language)

BÖLÜM -VII- BÖLGESEL AZALTMA KATSAYILARI

KULLANICI TANIMLI FONKSİYONLAR

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

2015 KOCAELİ NÜFUSUNUN BÖLGESEL ANALİZİ TUİK

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

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

OTO KALORİFER PETEK TEMİZLİĞİ - VİDEO

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

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

VERİTABANI Veritabanı Sorgulama

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

Bilgisayar Uygulamaları. MySql

KPSS-2014/3 Sağlık Bakanlığı ve Bağlı Kuruluşlarının Sözleşmeli Pozisyonlarına Yerleştirme (Ortaöğretim)

İleri Teknolojili Tıbbi Görüntüleme Cihazları Yoğunluğu. Prepared by: Siemens Turkey Strategy and Business Development, SBD Istanbul, March 2010

SQL DİĞER Deyimler ve Komutlar

Veri Tabanı Tasarım ve Yönetimi

Iftardan Sahura Lezzetle Afiyetle

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

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.

Microsoft SQL Server Sorgulama

Like Joker Karakterler, Order By, Group By

IPARD Ankara 12 Haziran 2015

YAPISAL SORGULAMA DİLİ (SQL)

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

KULLANICI TANIMLI FONKSİYONLAR (Devam)

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

Talepte Bulunan PersonelinÜnvanlara Göre Dağılımı

BÖLÜM -VI- BÖLGESEL AZALTMA KATSAYILARI

Mart SAGMER İstatistikleri

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

BÖLÜM -VI- BÖLGESEL AZALTMA KATSAYILARI

Ocak SAGMER İstatistikleri

Mart SAGMER İstatistikleri

Mart 2012 SAGMER İstatistikleri

Ocak SAGMER İstatistikleri

Ağustos SAGMER İstatistikleri

LİSTE - II TÜRKİYE HALK SAĞLIĞI KURUMU - TAŞRA

Kasım SAGMER İstatistikleri

Haziran SAGMER İstatistikleri

Ocak SAGMER İstatistikleri

Tüvturk Araç Muayene Gezici Mobil İstasyon Programı

Ocak SAGMER İstatistikleri

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Mart SAGMER İstatistikleri

KULLANICI TANIMLI FONKSİYONLAR (Devam)

Mayıs 2012 SAGMER İstatistikleri

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

İL ADI UNVAN KODU UNVAN ADI BRANŞ KODU BRANŞ ADI PLANLANAN SAYI ÖĞRENİM DÜZEYİ

KURUM ADI KADRO ADI KONT.

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

«BM364» Veritabanı Uygulamaları

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

Mayıs 2014 SAGMER İstatistikleri

İlişkisel Veri Tabanları I

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

Transkript:

SQL FONKSİYONLARI SQL lisanında hesaplama ve sayma işlemlerinde kullanılmak üzere bir çok fonksiyon vardır. Yapı SQL içinde tanımlı bir fonksiyonu kullanmak için genel yapı Fonksiyon_adı(Fonksiyonun argümanları) table şeklindedir. Genel olarak iki fonksiyon türü vardır. Skaler fonksiyonlar Küme fonksiyonları Kümeleşme fonksiyonları Küme fonksiyonları bir kümeye bir sayı karşılık getiren fonksiyonlardır. Bu fonksiyonların kullanıldığı deyimlerinin listesinde fonksiyonun kendisi dışında başka kolonlar da olacaksa bu durumda bu kolonların GROUP BY deyiminde görünmesi gerekir. SQL Server daki önemli küme fonksiyonları Fonksiyon Fonksiyonun işlevi AVG(Kolon) Kolonun ortalamasını hesap eder COUNT(Kolon) Bir kolonun NULL olmayan değerlerini içeren satırların sayısı COUNT(*) Seçilen satırların sayısı COUNT(DISTINCT kolon) Bir kolonun farklı olan değerlerinin sayısı MAX(kolon) Bir kolonun değerlerinin maksimumu MIN(kolon) Bir kolonun değerlerinin minimumu STDEV(kolon) Bir kolonun değerlerinin standart sapması SUM(kolon) Bir kolonun değerlerinin toplamı VAR(kolon) Bir kolonun değerlerinin standart varyansı Örnekler: IL ve tablosunu kullanarak örnekler verelim. WHERE COUNT(*) AS SAY IL (ILAD LIKE 'A%')

SAY 11 Bu sonucu yorumlamak için öncelikle aşağıdaki SQL ifadesi düşünelim: * IL WHERE (ILAD LIKE 'A%') Bu deyim sonuçta bir küme verir. Bu kümede kaç eleman vardır? sorusunun cevabını almak için ayni SQL deyimini WHERE COUNT(*) AS SAY IL (ILAD LIKE 'A%') olarak yazıyoruz. Bu ilişki yukarıdaki fonksiyonların neden küme fonksiyonları olarak adlandırıldığını açıklıyor. Çünkü COUNT fonksiyonu aslında * ile başlayan deyimin sonuç kümesine bir değer atıyor. O halde IL tablosunda A harfi ile başlayan 11 il olduğunu anlıyoruz. COUNT(*) AS SAY WHERE (ILKOD = 1) SAY 14 Bu sonucu yorumlamak için öncelikle * WHERE (ILKOD = 1) SQL deyiminin sonuç kümesinin ILKOD = 1 olan tüm ilçeler olacağına dikkat edelim. O halde 14 bu kümede bulunan eleman sayıdır. Bir başka deyişle ILKOD u 1 olan ilin, yani Adana nın 14 ilçesi vardır.

SQL GROUP BY ve HAVING Acaba tek bir SQL deyimi ile, her ilin kaç ilçesi olduğunu bulabilir miyiz? Her bir ILKOD = x için COUNT(*) AS SAY WHERE (ILKOD = x) Yazdığımızda ILKOD u x olan ilçelerin sayısını bulacağımızı biliyoruz. O halde A x kümesi ILKOD u x olan ilçeleri gösterdiğine göre {A 1, A 2,, A n } kümesi üzerinde tanımlı olan bir COUNT yazmak gerekir. Böylece COUNT(A x ) bize ILKOD u x olan ilçelerin sayısını verir. SQL de bu işlem aşağıdaki gibi yapılır. COUNT(*) AS SAY, ILKOD GROUP BY ILKOD ORDER BY ILKOD Bu ifadeyi şöyle yorumlamamalıyız. Önce tablosunu ILKOD a göre grupla, bir başka deyişle {A 1, A 2,, A n } kümesini oluştur. Sonra her bir grubun eleman sayısını ILKOD a göre tasnif ederek göster. Nihayet sonuçları ILKOD a göre sırala Bu SQL aşağıda ilk birkaç satırı verilmiş sonuç kümesini verir. SAY ILKOD 14 1 9 2 19 3 8 4 7 5..

Aynı sonuçlar daha çok bilgi içerecek şekilde aşağıdaki SQL ile elde edilebilir. COUNT(*) AS SAY,.ILKOD, IL.ILAD INNER JOIN IL ON.ILKOD = IL.ILKOD GROUP BY.ILKOD, IL.ILAD ORDER BY.ILKOD SAY ILKOD ILAD 14 1 Adana 9 2 Adıyaman 19 3 Afyon 8 4 Ağrı 7 5 Amasya Aşağıdaki örnekleri karşılaştıralım. COUNT(DISTINCT AD) AS SAY SAY 925 COUNT(AD) AS SAY

SAY 945 Bu sonuçlardan ; toplam 945 ilçe olduğu halde adları birbirinden farklı 925 ilçe olduğunu anlaşılıyor. Acaba adları birden fazla satırda geçen ilçeleri bulabilir miyiz? Bunun için HAVING deyimine gerek olacaktır. Aslında HAVING deyimi, küme fonksiyonları içinde geçen argümanlar için WHERE deyiminin yerini tutar. COUNT(AD) AS SAY, AD GROUP BY AD HAVING (COUNT(AD) > 1) SAY AD 2 Altınyayla 2 Aydıncık 2 Ayvacık 2 Bayat 2 Bozkurt 2 Edremit 2 Gölbaşı 2 Gönen.. Fakat bu sonuç yeteri kadar bilgi vermiyor. Birden fazla ilde aynı adı taşıyan ilçeleri, il adlarıyla birlikte vermek istersek nasıl bir SQL yazabiliriz?

Neden aşağıdaki SQL bu sonuçu görmeye yeterli olmuyor? COUNT(.AD) AS SAY,.AD, IL.ILAD INNER JOIN IL ON.ILKOD = IL.ILKOD GROUP BY.AD, IL.ILAD HAVING (COUNT(.AD) > 1) Yukarıda açıklana sonuç kümesini aşağıdaki SQL ile elde edebiliriz IL.ILAD,.AD INNER JOIN IL ON.ILKOD = IL.ILKOD WHERE (.AD IN ( AD GROUP BY AD HAVING (COUNT(.AD) > 1))) ORDER BY.AD, IL.ILAD ILAD Burdur Sivas İçel Yozgat Çanakkale Samsun Afyon Çorum AD Altınyayla Altınyayla Aydıncık Aydıncık Ayvacık Ayvacık Bayat Bayat

Denizli Kastamonu Balıkesir Van.. Bozkurt Bozkurt Edremit Edremit. Aşağıdaki üç SQL deyimin sonuçlarını ayrı, ayrı yorumlayabilir misiniz? WHERE SIRANO, AD, SOYAD Kişiler (AD IN ( ORDER BY AD, SOYAD AD GROUP BY AD HAVING Kişiler COUNT(*) > 1 AND AD = Kişiler.AD)) WHERE IL.ILKOD, IL.ILAD IL LEFT OUTER JOIN ON IL.ILKOD =.ILKOD (.KOD IS NULL) COUNT(AD) AS SAY, AD Kişiler WHERE (AD IN ( AD Kişiler GROUP BY AD HAVING COUNT(*) > 1 AND AD = Kişiler.AD)) GROUP BY AD

Skaler Fonksiyonlar Skaler fonksiyonların argümanları belirli bir tipte bir alan veya bir ifadedir. Bu fonksiyonların değerleri önceden tanımlanan tipte bir değerdir. Karakter dizilerine uygulanan bir takım faydalı skaler fonksiyonlar. Her bir örnekte c bir karakter dizisidir. Fonksiyon Fonksiyonun işlevi UPPER (c) Karakter dizisini büyük harfe çevirir LOWER (c) Karakter dizisini küçük harfe çevirir SUBSTRING(c,basla,Karakter_sayısı) Karakter dizisinin basla yıncı karakterinden Karakter_sayısı kadar harf alınmasıyla elde edilen dizi LEN(c) Karakter dizisindeki harf sayısı CHARINDEX(Aranan_dizi, c) Karakter dizisinde Aranan_dizi varsa Aranan_dizi nin geçtiği ilk harfin dizideki yeri, aksi halde 0. LEFT(c,Karakter_sayısı) Karakter dizisinde soldan Karakter_sayısı kadar harf alınmasıyla elde edilen dizi RIGHT(c,Karakter_sayısı) Karakter dizisinde sağdan Karakter_sayısı kadar harf alınmasıyla elde edilen dizi Kuşkusuz daha pek çok fonksiyon vardır. Örneğin GETDATE() Sistemin tarih ve zamanını verir