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



Benzer belgeler
Charindex() CHARINDEX

Veri Tabanı-I 9.Hafta

6 Aritmetiksel Operatörler ve Hazır Fonksiyonlar

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

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

Laboratuvar 2 Tek Kayıt Fonksiyonları

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

SQL DERS NOTLARI

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

SQL Komutları (2) Uzm. Murat YAZICI

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

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

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

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

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

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

VERİTABANI. SQL (Structured Query Language)

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

SQL Kod ile Tablo Oluşturma

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

Mysql Veritabanı Komutları

«BM364» Veritabanı Uygulamaları

YAPISAL SORGULAMA DİLİ (SQL)

Emrah UYSAL 1

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

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

Veritabanı. SQL (Structured Query Language)

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

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

VERİTABANI ve YÖNETİMİ

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

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

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

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

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

Veri Tabanı Tasarım ve Yönetimi

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.

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

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

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

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

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

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.

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

SQL (Structured Query Language)

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

Oracle da kullanılan veri tipleri:

ÜNİTE 8 SQL Dili ve T-SQL Uygulamaları

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

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

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

KULLANICI TANIMLI FONKSİYONLAR

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

VERİ TABANI ve YÖNETİMİ

Like Joker Karakterler, Order By, Group By

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.

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

ACCESS PLATFORMUNDA SQL

Veri Tabanı-I 12.Hafta

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.

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

Microsoft SQL Server Sorgulama

Veritabanı Tasarımı COUNT, DISTINCT, NVL

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

Len() fonksiyonu yardımı ile kendisine parametre olarak verilen karaktersel veya başka bir tip bilginin uzunluğu bulunur.

VERİ TABANI YÖNETİM SİSTEMLERİ 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

Bilgisayar Uygulamaları. MySql

«BM364» Veritabanı Uygulamaları

İNTERNET TABANLI PROGRAMLAMA- 12.ders

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

Sayfa 1 / 8. Tabo yapıları

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

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

Bir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir.

Veri Tabanı Programlamaya Giriş

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

Nesne Tabanlı Programlama

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

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

MODÜL. Verileri Sorgulamak" Yaşar GÖZÜDELİ.

TEMEL STRING İŞLEMLERİ

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

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Đ

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

Internet Programming II

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

3 Sql Veri Tipleri. Veritabanı 1

BİLİŞİM TEKNOLOJİLERİ

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

Bölüm 7: Microsoft Transact - SQL

KULLANICI TANIMLI FONKSİYONLAR (Devam)

Internet Programming II

3 Sql Veri Tipleri ve Örnek Veritabanı Tasarımı. Veritabanı 1

15 Aralık 2011 / Perşembe.

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

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

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

Transkript:

I. SQL FONKSİYONLARI SQL Server'da Fonksiyonlar, hesaplamalarda ve özellikle sistem hakkında bilgi almada yaygın olarak kullanılan araçlardır. Transact-SQL (T-SQL) programlama dilinde değişik kategorilerle adlandırılan fonksiyonlar vardır. Bunlardan en yaygını veriler üzerinde işlem yapan toplama ya da gruplama olarak adlandırabileceğimiz aggregate fonksiyonlarıdır. A. GRUPLAMA FONKSİYONLARI Gruplama (aggregate) fonksiyonları bir dizi değer üzerinde hesaplama yaparlar ve bir sonuç değer döndürürler. Toplama ya da gruplama fonksiyonları olarak adlandırabileceğimiz bu fonksiyonlar genellikle GROUP BY deyimi ile kullanılırlar. Gruplama fonksiyonları aşağıdaki ifadeler içinde kullanılabilirler. SELECT deyiminin listesinden (bir subquery olarak) Bir COMPUTE ya da COMPUTE BY sözcüğü ile. 1 / 40

Bir HAVING sözcüğü ile. Transact-SQL programlama dilinde şu aggregate fonksiyonları kullanılır: AVG COUNT GROUPING MAX MIN SUM STDEV 2 / 40

STDEVP VAR VARP NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Bütün hakları saklıdır. Ticari olarak kullanılamaz. Bakınız: www.farukcubukcu.com Adı geçen ve telif haklı olan ürünler bilgi amaçlı olarak kullanılmıştır. AVG (T-SQL) Fonksiyonu Bir grup içindeki değerlerin ortalamasını döndürür. Null değerler dikkate alınmaz. Kullanım Biçimi: 3 / 40

AVG([ALL DISTINCT] ifade) Argümanları: ALL Ortalama fonksiyonunu bütün değerlere uygular. DISTINCT İşlemin her tek değer için uygulanacağını belirtir. Diğer bir deyişle tekrar eden değerlerin yerine birisi kullanılır. 4 / 40

ifade Sayısal bir değeri olan ifade ya da kolon adı. Örnek: Aşağıdaki örnekte satış miktarları toplanmakta ve ortalaması alınarak iki ayrı sonuç değeri verilmektedir: USE Northwind GO SELECT AVG(quantity), SUM(quantity) FROM [Order Details] 5 / 40

GO COUNT (T-SQL) Fonksiyonu Bir grup içindeki eleman sayısını verir. Kullanım Biçimi: COUNT({[ALL DISTINCT] ifade] *}) Argümanları: 6 / 40

ALL Fonksiyonunu bütün değerlere uygular. DISTINCT İşlemin her tek değer için uygulanacağını belirtir. Diğer bir deyişle tekrar eden değerlerin yerine birisi kullanılır. ifade Bir ifade ya da kolon adı. * 7 / 40

Bir tablodaki bütün satırların sayısını döndürmek için kullanılır. COUNT(*) herhangi bir paratme tre ile kullanılmaz ve DISTINCT ile kullanılmaz. COUNT(*) ile null ve tekrar eden değerler dahil bütün elemanlar sayılır. Örnek: Aşağıdaki örnekte ürünler tablosundaki ürünler sayılır. DISTINCT ile tekrara izin verilmez. USE Northwind GO SELECT COUNT(DISTINCT productname) 8 / 40

FROM products GO MAX (T-SQL) Fonksiyonu İfade içindeki maksimum değeri döndürür. Kullanım Biçimi: MAX([ALL DISTINCT] ifade) Argümanları: 9 / 40

ALL Fonskiyonunu bütün değerlere uygular. MIN (T-SQL) FOnksiyonu İfade içindeki minimum değeri döndürür. Kullanım Biçimi: MIN([ALL DISTINCT] ifade) 10 / 40

Argümanları: ALL Fonskiyonunu bütün değerlere uygular. Örnek: Aşağıdaki örnekte en küçük satış adedi elde edilmektedir: USE Northwind 11 / 40

GO SELECT MIN(quantity) FROM [Order Details] GO SUM Fonksiyonu Değerlerin toplamlarını verir. SUM fonksiyonu sadece sayısal alanlarda kullanılır. Kullanım Biçimi: SUM ([ALL DISTINCT] ifade) Argümanları: 12 / 40

ALL Toplama (aggregate) fonksiyonunu bütün değerlere uygular. ALL seçeneği varsayım olarak kullanılır. DISTINCT SUM fonksiyonunu tek değerlerin (unique) toplamını vermesini sağlar. İfade Bir sabit, bir kolon, fonksiyon ya da bir aritmetik işlem. Örnek: USE pubs GO -- Satır toplamları 13 / 40

SELECT type, price, advance FROM titles ORDER BY type COMPUTE SUM(price), SUM(advance) BY type B. TARİH VE ZAMAN FONKSİYONLARI (T-SQL) Bu fonksiyonlar tarih (date) ve zaman (time) üzerinde işlemler yapmayı sağlar. Tarih ve zaman fonksiyonları şunlardır: DATEADD DATEDIFF DATENAME 14 / 40

DATEPART DAY GETDATE MONTH YEAR CONVERT DATEADD Belli bir tarihin üzerine değer eklenerek yeni bir tarih değeri üretir. Kullanım biçimi: DATEADD ( tarihkısmı, sayı, tarih) Argümanları: 15 / 40

Tarih kısmı Tarih Parçası Kısaltması Year yy, yyyy Quarter qq, q Month mm, m Dayofyear 16 / 40

dy, y Day dd, d Week wk, ww Hour hh Minute mi, n Second ss, s 17 / 40

Millisecond ms sayı Tarih kısmını artırmak için kullanılan değer. tarih Tarih değerini döndüren tarih bilgidi. Örnekler: Yayın tarihinin 30 gün sonrası: USE pubsgoselect DATEADD(day, 30, pubdate) FROM titlesgo Örnek: Son on gün içinde yapılan siparişler: 18 / 40

SELECT ord_num, ord_date FROM sales WHERE (ord_date >= DATEADD(day, -10, GETDATE())) DATEDIFF İki tarih arasındaki gün sayısını verir. Kullanımı: DATEDIFF ( Tarih parçası, başlangıç tarihi, bitiş tarihi) Argümanları: Tarih parçası Tarih Parçası Kısaltması Year 19 / 40

yy, yyyy Quarter qq, q Month mm, m Dayofyear dy, y Day dd, d Week 20 / 40

wk, ww Hour hh Minute mi, n Second ss, s millisecond Ms Örnek: Şu anki tarih ile yayın tarihi arasındaki fark: 21 / 40

USE pubsgoselect DATEDIFF(day, pubdate, getdate()) FROM titlesgo DATEPART (T-SQL) Belirtilen tarihin istenen parçasına karşılık olarak bir tamsayı döndürür. Kullanım Biçimi: DATEPART(tarihparçası, tarih) Argümanları: Tarih parçası 22 / 40

Tarih bilgisinin bir kısmını ifade eden bilgi. Tarih bölümü Kısaltma year yy, yyyy quarter qq, q month mm, m dayofyear 23 / 40

dy, y day dd, d week wk, ww weekday Dw hour Hh minute 24 / 40

mi, n second ss, s millisecond Ms Örnek: Aşağıdaki örnekte şu anki tarihin karşılık geldiği ay adı ve ay numarası bulunmaktadır: SELECT GETDATE() 25 / 40

Tarihi verir: SELECT DATEPART(month, GETDATE()) Ayı verir: DAY (T-SQL) Bir tarih bilgisinin gün kısmını verir. Kullanım Biçimi: 26 / 40

DAY(tarih) Argümanları: tarih datetime ya da smalldatetime tarih bilgisi. Aşağıdaki örnekte verilen tarihin gün kısmı verilmektedir: 27 / 40

SELECT DAY('26/03/1999') AS 'Gün' GO Sonuç: Gün ------------ 26 MONTH (T-SQL) Bir tarih bilgisinin ay kısmını verir. 28 / 40

Kullanım Biçimi: MONTH(tarih) Argümanları: tarih datetime ya da smalldatetime tarih bilgisi. Aşağıdaki örnekte verilen tarihin ay kısmı verilmektedir: 29 / 40

SELECT MONTH('26/03/1999') AS 'Ay' GO Sonuç: Ay ------------ 03 YEAR (T-SQL) Bir tarih bilgisinin yıl kısmını verir. Kullanım Biçimi: 30 / 40

YEAR(tarih) Argümanları: tarih D. KARAKER FONKSİYONLARI String (karakter) alanları işlemek için yaygın kullandığımız fonksiyonlar bu alana girer. Transact -SQL dilinde kullanılan bazı karakter fonksiyonları şunlardır: 31 / 40

- ASCII - CHAR - CHARINDEX - DIFFERENCE - LEFT - LEN - LOWER - LTRIM - NCHAR - REPLICATE - REVERSE - SUBSTRING - QUOTENAME - STUFF - REPLACE - STR - SOUNDEX - PATINDEX - SPACE - RIGHT - RTRIM - UPPER - UNICODE ASCII Bir karakter ifadenin en soldaki değerinin ASCII kodunu döndürür. Kullanımı: 32 / 40

ASCII ( karakter ifade) Karekter ifade char ya da varchar türündedir. Döndürdüğü tür: Int Örnek: Bizim Ev cümlesinin bütün karakterlerinin ASCII değerini döndürür: SET TEXTSIZE 0SET NOCOUNT ON-- değişken oluştur.declare @konum int, @karakte r char( 15) -- değişkenlere ilk değer ver. SET @ konum = 1 SET @ karakter = ' Bizim Ev ' WHILE @ konum <= DATALENGTH( @ karakter ) 33 / 40

BEGIN SELECT ASCII( SUBSTRING(@ karakter, @ konum, 1)), CHAR( ASCII(SUBSTRING(@ karakter, @ konum, 1))) SET @ konum = @ konum + 1 END SET NOCOUNT OFF GO CHARINDEX Bir karakter dize içinde belirtilen bir ifadenin (karakterin) başlangıç konumunu döndürür. Kullanımı: CHARINDEX ( ifade1, ifade2[, başlangıç konumu] ) 34 / 40

İfade1: aranacak karakterleri belirtir. İfade2: İfade1'deki karakterlerin aranacağı karakterleri belirtir. Başlangıç konumu ise aramanın başlanacağı konumu belirtir. Döndürdüğü tür: Int İfadelerden birisi NULL ise CHARINDEX fonksiyonu NULL değerini döndürür. İfade1, İfade2 içinde bulunamazda 0 değeri döner. Örnek: ADI alanında BOYASI sözcüğünün başladığı konumu döndürür. SELECT CHARINDEX('BOYASI', adi)from urun -- arama için başlangıkç konumu belirtme k isters ek SE LECT CHARINDEX ('BOYASI', adi, 5) FROM urun Yalnızca adlar listesi: 35 / 40

select left (adi,charindex(' ', adi)) from cariana LEFT Bir karakter dizesinin sol taraftan belirtilen sayı kadar keser. Kullanımı: LEFT ( karakter dize, tarmsayı) Örnek: Adların soldan beş karakteri: USE ornekgoselect LEFT(adi, 5) FROM carianaorder BY kodugo LEN Dize verinin uzunluğunu döndürür. Kullanımı: LEN ( karakter dize) 36 / 40

Örnek: Adı alanının uzunluğu: SELECT LEN(adi) AS 'Uzunluk'FROM cariana use ornek select substring (adi,charindex(' ',adi)+1,(len(adi)-charindex(' ',adi))) from cariana -- soyadını ayırmak LTRIM Önündeki boşlukları siler. Kullanımı: LTRIM ( karakter dize) 37 / 40

RIGHT Belirtilen dizenin sağ tarafından keser. Kullanımı: RIGHT ( karakter dizesi, tamsayı) Arguments Örnek: Adı alanını sağlan 10 karakteri: SELECT RIGHT(adi, 10) FROM cariana RTRIM Karakter dizesinin arkasındaki boşlukları kaldırır. Kullanımı: RTRIM ( karakter dize) Örnek: Bir alan güncelleme: update deneme 38 / 40

set alan1 = rtrim(alan1) + rtrim('a') STUFF Belirtilen uzunluktaki karakterleri siler ve yerine belirtilen diğer karakterleri ekler. Syntax STUFF ( karaker dize, başlangıç, uzunluk, karakter dize) Örnek: use ornekselect STUFF(tel, 7, 1, '8') from cariana-- telefon numarasında 7 karakt eri 9 il e değiştirmek SUBSTRING Bir karakter dizesinin içinden belli karakterleri seçer. Kullanımı: SUBSTRING ( karakter dize, başlangıç, uzunluk) Örnek: Adı alanının içinde üçüncü karakter başlayım 4 tane karakteri döndürmek: 39 / 40

SELECT SUBSTRING(adi, 3, 4)FROM cariana Adı soyadı alanından soyadını çekmek: sel ect substring ( adi,charindex (' ', adi )+1,( len ( adi )- charindex (' ', adi ))) from cariana 40 / 40