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



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

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

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

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

SQL Komutları (2) Uzm. Murat YAZICI

VERİTABANI Veritabanı Yönetimi

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

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

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

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

SQL e Giriş. Uzm. Murat YAZICI

Veritabanı. SQL (Structured Query Language)

Veri Tabanı Tasarım ve Yönetimi

VERİTABANI. SQL (Structured Query Language)

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

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

Oracle da kullanılan veri tipleri:

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

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?

ACCESS PLATFORMUNDA SQL

Microsoft SQL Server Sorgulama

SQL Kod ile Tablo Oluşturma

SQL (Structured Query Language)

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

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

VERİTABANI ve YÖNETİMİ

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

Oracle Database 11g: Introduction to SQL

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

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

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

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

Veri Tabanı Programlamaya Giriş

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

VERİTABANI Veritabanı Sorgulama

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

VERİ TABANI ve YÖNETİMİ

Mysql Veritabanı Komutları

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

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

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

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

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

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

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

Veritabanı Tasarımı. Tablo Oluşturma

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210)

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

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

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

VERİ TABANI YÖNETİM SİSTEMLERİ II. 9. FORMLAR ve ORACLE FORMS PROGRAMINDA FORM OLUŞTURMA

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

T-SQL NEDİR? Microsoft T-SQL Transact-SQL

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

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

YAPISAL SORGULAMA DİLİ (SQL)

«BM364» Veritabanı Uygulamaları

Veri Tabanı Hafta Dersi

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

Bölüm 10: PHP ile Veritabanı Uygulamaları

Veritabanı Tasarımı. DML İşlemleri ve Görünümler

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

SQL Stored Procedure

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

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ü

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

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.

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

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

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.

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

Durhan GABRALI Veritabanı Organizasyonu Dersi (11B)

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

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

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

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

«BM364» Veritabanı Uygulamaları

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

Veritabanı Tasarımı. Veritabanı Hareketleri

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

BİLİŞİM TEKNOLOJİLERİ

Bilgisayar Uygulamaları. MySql

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

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

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

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

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

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

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

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

Mü hendislikte Veri Tabanları Dersi Uygülamaları (MS-Access/SQL)

Veritabanı Yönetim Sistemleri İleri SQL

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

Transkript:

ÜNİTE 8 SQL Dili ve T-SQL Uygulamaları Terimler Gözden Geçirme Sınava Hazırlık İçin İngilizce Sorular Diğer Kaynaklar Üniteyi tamamlayan okuyucu; SQL ve Transact- SQL dilinin tarihini tanımlar. Transact-SQL dilinin temel deyimlerini ve deyim gruplarını açıklar. Transact-SQL dilinin değişken tanımlama ve temel aritmetik işlem yeteneklerini tanımlar. Temel veri işleme yeteneklerini açıklar. Tipik sorguları yazabilir. Konu 8.1: SQL ve Transact-SQL Dili Konu 8.2: Transact-SQL Deyimleri Konu 8.3: SQL Server Management Studio New Query Penceresi Konu 8.4: SQL Deyimlerinin Kategorileri Konu 8.5: DDL Deyimleri Konu 8.6: DML Deyimleri Konu 8.7: DCL Deyimleri Konu 8.8: Reserved Words Konu 8.9: Lokal Değişkenler Konu 8.10: Aritmetik İşlemler Konu 8.11: SELECT Deyimi Konu 8.12: Gruplama (Group By) Konu 8.13: INSERT Deyimi Konu 8.14: UPDATE Deyimi Konu 8.15: DELETE Deyimi Konu 8.16: Transact-SQL Fonksiyonları Konu 8.17: SUM Fonksiyonu Konu 8.18: MIN ve MAX Fonksiyonları Konu 8.19: COUNT Fonksiyonu Konu 8.20: Dönüştürme (Convert) Fonksiyonları Konu 8.21: Tarih ve Zaman Fonksiyonları Konu 8.22: JOIN Deyimi Konu 8.23: JOIN Türleri Konu 8.24: UNION Deyimi Konu 8.25: Veri Bütünlüğü (Data Integrity) Konu 8.26: Veri Bütünlüğünü Sağlamak Konu 8.27: Bir Kısıtlama (Constraint) Yaratmak Konu 8.28: CHECK Kısıtlaması Konu 8.29: PRIMARY KEY Kısıtlaması Konu 8.30: FOREIGN KEY Kısıtlaması Konu 8.31: DEFAULT Kısıtlaması Konu 8.32: RULE Kısıtlaması Konu 8.33: Döngü ve Karar Yapıları Konu 8.34: Deyim Blokları Konu 8.35: IF Deyimi Konu 8.36: CASE WHEN Deyimi Konu 8.37: WHILE Deyimi Konu 8.39: View Kullanımı Konu 8.40: Bir View Yaratmak

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 46 Konu 8.1: SQL ve Transact-SQL Dili Şekil 8.1: SQL dilinin gelişmeleri.» SQL, standart bir veritabanı işleme dili olarak kabul görmüştür.» Dr. E. F Codd tarafından 1970 li yıllarda geliştirilmiştir.» Zaman içinde ANSI (American Standards National Instutite), ve ISO (International Standards Organizations) değişik SQL standartları geliştirmiştir.» Microsoft SQL Server, ek özellikleriyle geliştirdiği Transact-SQL dili, özgün yapılara ve bileşenlere sahip olmanın yanı sıra standart olarak tablo tanımlama, veri girme ve değiştirme, ayrıca stored procedure desteği gibi ek özellikleriyle geniş bir oldukça yeteneklidir. İlişkisel veritabanı (relational database) modeli ile birlikte, veritabanlarındaki verilerin işlenmesi için standart bir dil olarak SQL (Structured Query Language) dili tasarlanmıştır. SQL dilinin ana amacı ilişkisel veritabanları (tabloları ve view ları) sorgulamaktır. Bu sorgulama (query) işlemi verilerin işlenmesini, elde edilmesi, girilmesi, güncellenmesi ve silinmesini de kapsar. SQL dilinin geliştirildiği 1970'li yıllardan günümüze gelene kadar farklı sürümleri ve düzenlemeleri çıkan SQL dilinin belli standartları vardır. Bunlardan bazıları SQL-92, ANSI SQL gibi standartlardır. Bu nedenle çeşitli dokümanlarda bir SQL sözdizimi yazılırken SQL versiyonları da belirtilir. Bu standart SQL dillerinin dışında arada Oracle ve Ingres firması da birleşerek SQL Access Group adında bir standart yayınlamışlardır. Microsoft şirketinin geliştirdiği SQL dili ise Transact-SQL olarak adlandırılır. SQL Server 2005 ile birlikte Microsoft Transact-SQL dilinde yenilikler yapılmıştır. Microsoft Transact-SQL Dili Transact-SQL, SQL (Structured Query Language) dilinin bir versiyonudur. Microsoft Transact-SQL (T-SQL olarak da anılıyor), 1992 yılında çıkan en son ANSI SQL standartlarını desteklemektedir. Bu SQL versiyonu (ANSI SQL-92) yapılan birçok eklemeyle SQL dilinin fonksiyonlarını artırmıştır. Transact SQL deyimleri SQL Server 2005 te SQL Server Management Studio içinden, SQLCMD gibi komut satırı programlarından ve programlama yapılan ortamlarda (client ya da server) Visual Basic gibi dillerin içinde uygulanır.

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 47 Konu 8.2: Transact-SQL Deyimleri Şekil 8.2: Bir SQL cümlesi (sorgusu).» Açıklama satırları oluşturmak için -- karakterleri kullanılır: -- view yaratmak CREATE VIEW musteri_view AS SELECT Kodu, Adı, Soyadı, Grubu FROM musteri» Transact SQL i T-SQL olarak da kullanıyoruz. Transact-SQL deyimleri SQL Server ın yardımcı programları içinde ya da programlama ortamlarında verileri işlemek için yazılır ve işletilir. Örneğin Visual Basic programlama dilinde Access ve SQL veritabanlarına erişmek ve veri işlemek için Transact SQL deyimleri kullanılır. Örneğin bir veritabanı içindeki tablonun bütün satırlarını listelemek: SELECT * FROM <tablo adı> Şekil 8.3: SQL Server Management Studio da New Query penceresinde bir sorgu

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 48» SQL Server 2005 te eski örnek veritabanı olan Northwind veritabanının yanı sıre Adventureworks adlı yeni bir örnek veritabanı daha vardır. Kurulum seçeneklerinden ya da Internet ten indirilerek örnek veritabanı olarak kullanılabilir.» SQL Server 2005 te şema kavramı gelmiştir. Şema birden çok tabloyu ve diğer nesneyi belli bir ad içinde toplar. Örnekteki SATIS.MUSSABIT, SATIS şeması içindeki MUSSABIT tablosudur. Örnek: CUSTOMER tablosundaki verileri elde etmek için: USE ADVENTUREWORKS SELECT * FROM SALES.CUSTOMER Bu deyimler bir ya da daha çok satırdan oluşabilir. T-SQL dili. Büyük/Küçük harf duyarlı değildir. Yani komutları büyük ya da küçük harfle yazılabilir. use adventureworks select * from sales.customer Deyim ya da cümle sonlarını belirtmek için ; karakteri kullanılabilir: USE ADVENTUREWORKS; SELECT * FROM SALES.CUSTOMER; Genelde cümleler gruplar halinde işlenir. Bu gruplar buffer (tampon) alanında çalıştırılır. Bu nedenle deyimleri birbirinden ayırmak için GO deyimi kullanılır. USE FCSATIS2 SELECT * FROM SATIS.MUSSABIT GO USE ADVENTUREWORKS SELECT * FROM SALES.CUSTOMER GO Özellikle CREATE deyimi ile nesnelerin yaratılmasının ardından GO deyimi kullanılır. NOT: SQL Server 2005 te veritabanı üzerinde şema kavramı gelmiştir. Şema birden çok tabloyu ve diğer nesneyi belli bir ad içinde toplar. Örneğin SATIS.MUSSABIT, SATIS şeması içindeki MUSSABIT tablosudur. SQL Server 2000 de bu anlamda şema kullanımı yoktur. Ancak varsayım olarak dbo kullanılmaktadır. Bu nedenler örnekleri SQL Server 2000 üzerindeki bir veritabanı üzerinde uygularken doğrudan tablo üzerinden alınacak şekilde yazılabilir.

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 49 Konu 8.3: SQL Server Management Studio New Query Penceresi Şekil 8.3: SQL Server Management Studio aracı içinde New Query penceresi içinde bir sorgu.» SQL Server Management Studio programı içinde yer alan New Query bölümü sorguların yazıldığı ve çalıştırıldığı yerdir. SQL Server 2000 de SQL sorgularının yazıldığı ve çalıştırıldığı yer Query Analyzer programıdır. SQL Server 2005 te ise SQL Server Management Studio programı içinde yer alan New Query bölümü sorguların yazılmasını ve çalıştırılmasını sağlar. Sözdizimi Kuralları Transcat-SQL (T-SQL) deyimleri ve argümanları satır satır yazılarak sorgu oluşturulur. ; Noktalı Virgül Deyim sonunda istenirse sonlandırıcı olarak kullanılabilir. Örnek: SELECT * FROM SATIS.MUSSABIT; :: İki tane iki nokta Deyimleri gruplamak ve etiket (Label) tanımı için kullanılabilir. USE FCSATIS; GRANT SELECT ON OBJECT::SATIS.MUSSABIT TO farukuser; GO

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 50 Sorguları Çalıştırmak SQL Server Management Studio programı içinde yer alan New Query bölümü içinde sorguları çalıştırmanın birçok yöntemi vardır. Sorgu komutlarının yazılmasının ardından F5 tuşu ya da Execute düğmesi ile sorgu çalıştırılır. Sorgunun çalıştırılmasının ardından sonuçlar ekranda değerlendirilir ya da kaydedilmesi sağlanır. Sorgu sonucu veri elde edilecekse; çıktı ekranda görülür. Sorgu sonucu bir güncelleme ya da yaratma işlemi ise Command(s) completed successfully. şeklinde işlemin başarılı bir şekilde yapıldığına ilişkin bir mesaj görüntülenir. Sorguyu İptal Etmek Çalışan sorguyu iptal etmek için Cancel Executing Query seçeneği ya da Ctrl+Break tuşu kullanılır. Object Browser New Query penceresi içinde sorgu yazan programcının çalışacağı veritabanı, tablolar ve diğer nesneleri görüntüler. Object Browser içinde yer alan klasörler: Kullanıcı tabloları (user tables) Sistem tabloları (system tables) View lar Fonksiyonlar Şekil : SQL Server Management Studio da New Query penceresinde bir sorgu Şablonlar (Templates) SQL Server 2005, T-SQL deyimleriyle sorgu oluşturmak için çok sayıda hazır şablona sahiptir. Bu şablonlar standart bir yapı olarak kabul edilip gerekli değişikliklerle sorgu yazmak kolaylaşır. Hazır şablonlara SQL Server Management Studio programı içinde yer alan New Query bölümü penceresinde View

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 51 menüsünde Teplates Explorer ile ulaşılır. Templates Explorer içinde çok sayıda kategori içinde çok sayıda şablon vardır: Create Database Create Function Create Index Create Procedure Create Statistics Create Table Create Trigger Create View Using Cursor Şekil : SQL Server Management Studio da View menüsünden Teplate Explorer. Database ile ilgili şablonlar.» Örneğin CREATE DATABASE şablonu ile bir veritabanı yaratmak için gerekli kodlar görülebilir. Örnek: DATABASE bölümünde yer alan CREATE DATABASE şablonu -- ============================================= -- Create database template -- ============================================= USE master GO -- Drop the database if it already exists IF EXISTS ( SELECT name FROM sys.databases WHERE name = N'<Database_Name, sysname, Database_Name>' ) DROP DATABASE <Database_Name, sysname, Database_Name> GO CREATE DATABASE <Database_Name, sysname, Database_Name> GO

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 52 Konu 8.4: SQL Deyimlerinin Kategorileri Şekil 8.4: SQL dilinin deyimlerinin ana kategorileri.» SQL deyimleri işlevlerine göre şu şekilde kategorilendirilir: DDL (Data Definition Language): Veri tanımlama deyimleri. DML (Data Manipulation Language) : Veri düzenleme dili deyimleri. DCL (Data Control Language): Veri kontrol dili deyimleri. SQL deyimleri, veritabanları üzerinde çeşitli işlemleri yerine getirirler. Veritabanından veri elde etmek için SELECT, ekleme yapmak için INSERT, güncelleme yapmak için UPDATE, silme yapmak için DELETE deyimleri kullanılır. Bu tür işlemlerin yanı sıra veri yapıları oluşturmak, izinler vermek için de deyimler vardır. SQL deyimleri işlevlerine göre şu şekilde kategorilendirilir: DDL (Data Definition Language): Veri tanımlama deyimleri. DML (Data Manipulation Language) : Veri düzenleme deyimleri. DCL (Data Control Language): Veri kontrol deyimleri. Veritabanı işlemlerinde sıklıkla kullandığımız deyimler DML sınıfına girer. SELECT INSERT UPDATE DELETE

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 53 Konu 8.5: DDL Deyimleri Şekil 8.5: Bir DDL deyimi. Tablo yaratmak.» DDL deyimleri veritabanı üzerinde nesne yaratmak için kullanılırlar. En yaygın kullanılan DDL deyimleri şunlardır: CREATE ALTER DROP DDL deyimleri veritabanı üzerinde nesne yaratmak için kullanılırlar. En yaygın kullanılan DDL deyimleri şunlardır: Tablo 16-1: DDL Deyimleri Deyim Açıklama CREATE Yeni bir veritabanı yaratır. DATABASE CREATE TABLE Yeni bir tablo yaratır. CREATE Deyimi CREATE deyimi tablo, view, stored procedure gibi bir veritabanı nesnesini yaratmayı sağlar. Tablo Yaratmak Veritabanı üzerinde bir tablo yaratmak için CREATE deyimi kullanılır. Kod : Tablo Yaratmak CREATE TABLE Ornek1 ( mus_id char(4) NOT NULL, mus_ad varchar(40) NULL, ili varchar(20) NULL, ulke char(2) NULL, adres varchar(30) NULL )

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 54 NOT: Char, varchar, integer, numeric gibi sözcükler tablo alanlarındaki temsil edilecek verinin türünü belirtir.

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 55 Konu 8.6: DML Deyimleri Şekil 8.6: Bir DML deyimi. INSERT deyimi ile tabloya veri girişi.» Veritabanı içindeki verileri elde etmek ve değiştirmekle ilgili SQL deyimleridir. SELECT INSERT UPDATE DELETE Veritabanı içindeki verileri elde etmek ve değiştirmekle ilgili SQL deyimleridir. SELECT INSERT UPDATE DELETE SELECT Deyimi Veritabanındaki verilere erişmenin diğer bir deyişle onları elde etmenin; raporlama ya da bir sonuç kümesi anlamında kullanmanın en sık şeklidir. Genellikle bir ya da daha çok tablonun bütün alanları ya da belli alanları (kolonları) için SELECT deyimi yazılır. Temel Yapısı: SELECT <kolonlar> FROM <tablo> Örnek: USE FCSATIS SELECT * FROM SATIS.MUSSABIT GO NOT: SQL Server 2005 te tablolar bir şema içinde yer alır. Örnekte MUSSABIT tablosu SATIS şeması içindedir. Şema kullanılmazsa varsayım olarak (geriye dönük olsun diye) dbo dur. Ancak çok sayıda tablonun izinlerini daha kolay yönetmek ve adlandırmak için şema kullanımı önerilir. Şemalar hakkında daha geniş bilgi için Ünite 8 e bakınız.

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 56 Konu 8.7: DCL Deyimleri Şekil 8.7: Bir DCL deyimi. Nesne üzerinde izin düzenlemek.» DCL deyimleri verilere erişimle ilgili izinleri düzenlemek için kullanılır. Veritabanındaki kullanıcı haklarını düzenlemek için kullanılan deyimlerdir. Örneğin GRANT, DENY, REVOKE gibi.

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 57 Konu 8.11: SELECT Deyimi Şekil 8.11: Bir SELECT deyimi.» SELECT deyimini kullanmadan önce veritabanını belirtmek için USE deyimi kullanılır. SELECT deyimi veritabanındaki verilere erişmenin, diğer bir deyişle onları görmenin ya da onları elde etmenin en sık kullanılan yoludur. Genellikle bir ya da daha çok tablonun bir ya da çok kolonu (alanı) için yazılır. Temel sözdizimi: SELECT [ALL] [DISTINCT] [TOP] liste [INTO yeni tablo] FROM [tablo] [WHERE ifade] [GROUP BY ifade] [HAVING ifade] [ORDER BY ifade] [COMPUTE ifade] Argümanların anlamları: ALL ALL sözcüğü bütün satırların sonuç listesinde görünmesini sağlar. DISTINCT DISTINCT sözcüğü sonuç listesindeki kayıtları yalnızca tek (unique) olarak yer almasını sağlar. TOP TOP ile belirtilen sayıda satırın sorgu sonucu olarak döndürülmesi sağlanır. TOP <ifade> [ PERCENT ] [ WITH TIES ]

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 58 LIKE Deyimi SELECT deyimiyle bir ya da daha çok tablodan veriler elde edilir. Elde edilen verileri seçmek için.. ile başlayan gibi belli bir kalıba uygun seçimler yapmak için LIKE deyimi kullanılır.

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 59

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 60 Konu 8.12: Gruplama (Group By) Şekil 8.12: Bir gruplama işlemi.» Aggregation Satırların SUM, AVG gibi fonksiyonla ara toplamlarının alınmasını sağlayan işlemdir.» Gruplamada Kullanılan Fonksiyonlar: AVG MAX MIN SUM STDEV COUNT STDEVP VAR VARP SELECT deyimi ile tablo satıları sırasıyla listelenir. Bu liste içinde sayısal bir alanın toplanması ya da ara toplam alınması gibi gereksinimleri karşılamak için GROUP BY deyimi kullanılır. Gruplandırma belli bir kolon bazında ve belli bir fonksiyonla yapılır. Örneğin sipariş listesini; belli bir ürün grubuna göre adet kolonlarını toplayarak almak gibi. SQL deyimleri içinde GROUP BY sözcüğü ile gruplandırma yapılır. Sözdizimi: GROUP BY <ifade> İfade Gruplama yapılacak ifadeyi ya da kolonu belirtir. Örnek: Sipariş numarasına göre sipariş adetlerinin toplamını almak için: Kod : GROUP BY ile Sipariş Toplamı USE FCSATIS2; GO SELECT SIPARISNO, SUM(ADET) AS TOPLAM FROM SATIS.SIPDETAY GROUP BY SIPARISNO ORDER BY SIPARISNO; Aşağıdaki örnekte SalesOrderDetail (sipariş detay) tablosundan her bir siparişin toplam değerini verir.

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 61 Konu 8.16: Transact-SQL Fonksiyonları Şekil 8.16: T-SQL fonksiyon grupları.» T-SQL (Transact SQL) dilinde çok sayıda hazır fonksiyon vardır. SQL Server da fonksiyonlar (functions), hesaplamalarda, tarih ve zamanla ilgili işlemlerde, text verilerin işlenmesinde ve özellikle sistem hakkında bilgi almada yaygın olarak kullanılır. Transact-SQL (T-SQL) dilinde değişik kategorilerle çok sayıda fonksiyon vardır. Yaygın kullanılan fonksiyon kategorileri: Gruplama Fonksiyonları Karakter Veri Fonksiyonları Tarih ve Zaman Fonksiyonları Matematiksel Fonksiyonlar Sistem Fonksiyonları

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 62 Terimler DDL (Data Definition Language) Veri tanımlama deyimleri. Örneğin CREATE TABLE deyimiyle bir tablo yaratmak. DML (Data Manipulation Language) Veri düzenleme dili deyimleri. Örneğin UPDATE deyimi ile bir tablo üzerinde güncelleme yapmak. DCL (Data Control Language) Veri kontrol dili deyimleri. Örneğin izinlerin düzenlenmesini sağlayan deyimler. Tablo Tablolar ilişkisel veritabanı içindeki varlıkların fiziksel temsilidir. Tablo içindeki veriler satırlar şeklinde saklanır. Her bir satır kayıt (record) olarak adlandırılır ve benzersiz (unique) olarak bir varlığa karşılık gelir. Transact-SQL Transact-SQL, SQL (Structured Query Language) dilinin bir versiyonudur. Microsoft Transact - SQL, 1992 yılında çıkan en son ANSI SQL standartlarını desteklemektedir. Bu SQL versiyonu (ANSI SQL-92) yapılan birçok eklemeyle SQL'in fonksiyonlarını artırmıştır. Veri Türleri (data type) Veri türleri, kolonlara girilen veri için önemli bir özelliktir. Alanın içeriğini, formatını, uzunluğunu vb. belirler. Örneğin Integer olarak belirtilen bir sayısal alan belli bir uzunlukta tam sayı veri saklayabilir.

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 63 Gözden Geçirme 1. SQL dilinin tarihi ve amacı hakkında bilgi veriniz. 2. Transact SQL dilinin özelliklerini sayınız. 3. SQL Server 2000 ve SQL Server 2005 teki XML desteğini ve yapılabilecekleri tartışın. 4. View ların yararlarını açıklayın? 5. Ad hoc sorguların zayıf tarafları nelerdir? Bu konudaki diğer kodlama teknikleri nelerdir? 6. Bir SQL deyimini nerede uygularız? Hangi ortamda yazılır ve örnek olarak ne gibi işlemler yerine getirilir? 7. Gruplama nedir? Gruplama fonksiyonlarını sayınız. 8. DELETE TABLE ile DROP TABLE komutları arasındaki farkları açıklayın. 9. SQL Fonksiyonlarının türlerini açıklayın.

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 64 Sınava Hazırlık İçin İngilizce Sorular NOT: Bu sorular, orijinal sınav sorusu ya da gerçek sınavda çıkacağı iddia edilen sorular değildir. Ünite konularına göre derlenmiş ve İngilizce olarak hazırlanmıştır. Amacımız tipik İngilizce sorulara, soru tekniklerine Türkçe leriyle birlikte sizleri alıştırmaktır. 1. Tipik İngilizce Soru: You are a database administrator for fc-holding company. You use SQL Server 2005 to store a production information. Now you need to some possible performance improvements on the database. Which of the following can improve the performance? A. Table partitioning B. Indexing C. Triggers D. Stored Procedures Türkçesi: fc-holding şirketinde veritabanı yöneticisi olarak çalışmaktasınız. Üretim bilgilerini depolamak için SQL Server 2005 kullanıyorsunuz. Şimdi de veritabanı üzerinde olası performans artırımı yapmak istiyorsunuz. Aşağıdakilerden hangisi performansı artırır?

ÜNİTE 8: SQL DİLİ VE T-SQL UYGULAMALARI 65 Diğer Kaynaklar Genel Kitaplar Building Software: A Practioner s Guide, Nikhilesh Krishnamurthy and Amitabh Saran, 0-8493-7303-4, Auerbach Publications, 2008. Code Complete: A Practical Handbook of Software Construction, Steve McConnell (Review by Daniel Read), Microsoft Press, 1993, ISBN 1556154844. Hatasız Kodlama, Steve Maguire, Microsoft Press, 1993, Arkadaş Yayınları. Software Engineering, a practitioner s approach, fifth edition, Roger S. Pressman, Mc Graw Hill, 2001, ISBN 0073655783. A Concise Introduction to Software Engineering, Pankaj Jalote, Springer, 2008, ISBN: 978-1-84800-301-9. Üniteye İlişkin Kitaplar Programming SQL Server 2005, Microsoft Press, 2005. Beginnig SQL Server 2005, Wrox, 2006. A Developers Guide to SQL Server 2005, Addison Wesley, 2006. Genel Web Kaynakları Web Sitesi (URL) http://www.swtech.com/ http://www.programmersheaven.com/ http://www.developers.net http://www.ddj.com/ http://www.softdevarticles.com/ http://www.java2s.com/ Üniteye İlişkin Web Kaynakları Web Sitesi (URL) http://msdn.microsoft.com http://sqljunkies.com http://www.sqldbatips.com http://www.sqlservercentral.com http://www.sqlskills.com http://www.sqlteam.com http://www.w3schools.com/sql/default.asp http://msdn.microsoft.com/enus/library/bb264565(sql.90).aspx http://www.1keydata.com/sql/sql.html http://msdn.microsoft.com/en-us/library/ms186775.aspx İçeriği Yazılım geliştirme ve ürünler hakkında bilgiler. Yazılım geliştirmeye ilişkin genel makaleler, downloads vb. Yazılım geliştirmeye ilişkin genel makaleler, downloads vb. Dr. Dobb s Portal. Software magazine. Yazılım geliştirme makaleleri. C#, SQL, ASP.net ve diğer konularda geniş bilgi kaynağı. İçeriği Database ve programlama kaynağı. Database ve programlama kaynağı. Database ve programlama kaynağı. Database ve programlama kaynağı. Database ve programlama kaynağı. Database ve programlama kaynağı. SQL Dili sözdizimi. Temel SQL deyimleri örneklerle anlatımlı. SQL deyimleri. Örneklerle anlatımlı. IDENTITY ve ilgili deyimler. NOT: Başvurabileceğiniz diğer kaynaklar olarak verilen Web siteleri ve URL'ler zaman içinde taşınmış ya da kaldırılmış olabilir.