420 likes | 668 Views
SQL - S tructured Q uery L anguage. Türkçe anlamı: Yapılandırılmış Sorgu Dili. Teknogezgin .com. SQL nedir? Kullanım amaçları nelerdir?. Verileri yönetmek ve tasarlamak için kullanılan bir veritabanı yönetim sistemidir .
E N D
SQL-StructuredQueryLanguage Türkçeanlamı:Yapılandırılmış Sorgu Dili Teknogezgin.com
SQL nedir? Kullanım amaçları nelerdir? • Verileri yönetmek ve tasarlamak için kullanılan bir veritabanı yönetim sistemidir. • Ayrıca Bir veritabanından bilgi çekmeye, sorgulamaya yarayan bir program dilidir. • Belirli komutlar yoluyla veritabanına veri gönderilmesi, verinin işlenmesi, düzenlenmesi, silinmesi gibi işlemler yapılır.
SQL nedir? Kullanım amaçları nelerdir? • Sql IBM tarafından 1975 yılında yaratılmıştır. • SQL temelde, nesne-ilişkili (object-relational) veritabanı yönetim sistemlerini desteklemek için tasarlanmıştır. • Fakat bu amacın ötesinde, ANSI ve ISO standartları tarafından belirlenmiş, birçok özelliğe sahiptir. • SQL ile yalnızca veri tabanı üzerinde işlem yapılabilir.
SQL nedir? Kullanım amaçları nelerdir? • SQL'e özgü cümleler kullanarak veri tabanına kayıt eklenebilir, olan kayıtlar değiştirilebilir, silinebilir ve bu kayıtlardan listeler oluşturulabilir. • Kısa tarihçesi: SQL dili ilişkisel alanda büyük ilgi görmüş ve İlişkisel Veri Tabanı Yönetim Sistemlerinin (VTYS) tümünde yer alan standart dil görünümü kazanmıştır. Bu nedenle Veri Tabanı konusunda çalışan tüm bilişim teknik personeli tarafından bilinmesi gereken bir dil konumundadır.
SQL nedir? Kullanım amaçları nelerdir? • SQL dilini kullanan ve en çok bilinen veri tabanları ise şunlardır: • 1- Sybase, 2- Mysql, 3- Mssql, 4- PostgreSQL, 5- Microsoft SQL Server, 6- Oracle, 7- Firebird • Ana Sql komutları nelerdir? • 1- SELECT: Veritabanından bilgi almak-çekmek-kopyalamak için kullanılır. • 2- UPDATE: Veritabanını güncellemek için kullanılır. • 3- DELETE: Veritabanından bir veya birden fazla satırı silmek için kullanılır. • 4- INSERT INTO: Veritabanına yeni bir satır eklemek için kullanılır.
SQL nedir? Kullanım amaçları nelerdir? Çok bilinen bazı ilişkisel veri tabanı yönetim sistemleri şunlardır: Oracle, Sybase, MS SQL Server, Access, Ingres... Her ne kadar çoğu veri tabanı yönetim sistemi SQL’i kullansa da çoğunun kendilerine özgü ek özellikleri vardır.
SQL nedir? Kullanım amaçları nelerdir? • Neden veri tabanlarına ihtiyaç duyarız? • Veritabanı, adı üstünde verilerin saklı olduğu yerdir. Bilgiyi hızlı bir şekilde kullanıcılara ulaştırırken, sıralarken, sınıflandırırken ve benzeri işlemlerle dinamik sayfalar oluştururken bize lazım olacak temel şeydir. • Mssql nedir? • Mssql Server bir veritabanı sunucu yazılımıdır. Veritabanlarının oluşturulmasını ve yönetilmesini sağlar. Verilerin organizasyonunu merkezi olarak yapan Sql Server client uygulamaların server üzerindeki verilere erişmesinide sağlar. • Mysql nedir? • MySQL, altı milyondan fazla sistemde yüklü bulunan çoklu iş parçacıklı (multi-threaded), çok kullanıcılı (multi-user), hızlı ve sağlam (robust) bir veritabanı yönetim sistemidir.
SQL nedir? Kullanım amaçları nelerdir? • SQL veri tanımlama deyimlerinden başlıcaları şunlardır: • CREATE TABLE tablo_adı • Yeni bir tablo oluşturmak için kullanılır. • ALTER TABLE tablo_adı • Yeni bir sütun eklemek, sütunun tipini veya uzunluğunu değiştirmek vb. yapısal değişiklikler yapılması için kullanılır. • DROP TABLE tablo_adı • Tabloyu fiziksel olarak siler. • TRUNCATE TABLE tablo_adı • Tablodaki tüm verileri siler (tablo yapısı kalır)
DDL ve DML nedir? • DDL (Açılımı:Data DefinitionLanguage, Türkçe anlamı: Veri Tanımlama) • DDL deyimleri veritabanı üzerinde nesne yaratmak için kullanılırlar. En yaygın kullanılan DDL deyimleri şunlardır: CREATE, ALTER, DROP. CREATE Deyimi:Tablo ve view gibi bir veritabanı nesnesi yaratmayı sağlayan deyimdir. Yapısı: CREATE<Tablo adı>
DDL ve DML nedir? Örnek: CREATE TABLE Musteri ( mus_idchar(4) NOT NULL mus_ad varchar(40) NULL, ili varchar(20) NULL, ulkechar(2) NULL, adres varchar(30) NULL ) Not: Char, varchar, integer, numeric gibi sözcükler tablo alanlarındaki temsil edilecek verinin türünü belirtir.
DDL ve DML nedir? ALTER Deyimi: Daha önce oluşturulmuş nesnenin değiştirilmesini sağlar. Örneğin bir tablonun tasarımını değiştirmek gibi. Örnek:Müşteir tablosunun alanlarına «tel» adlı bir alan daha ekleyin. ALTER TABLE Musteri ADD tel varchar(20)NOT NULL DROP Deyimi:Bir nesnenin silinmesini sağlar. Örnek: Müşteri tablosunun verilerini ve tabloyu silin. DROP TABLE Musteri
DDL ve DML nedir? DML (Açılımı: Data ManipulationLanguage Türkçe anlamı:Veri Düzenleme Dili). Veritabanı içindeki verileri elde etmek ve değiştirmekle ilgili SQL deyimleridir. • SELECT: Verileri istediğimiz şekilde seçebilmemizi sağlar. • Örnek: SELECT ilçe, postakodu FROM tabloIlceler WHERE plakaKodu = '13'bitlis'in ilçeleri ile posta kodlarını gösterir. • INSERT: Tablo içine yeni kayıt eklememizi sağlar. • Örnek: UPDATE tabloIlceler SET postakodu = '06720' WHERE ilce = 'Bala'Bala'nın posta kodunu değiştirir.
DDL ve DML nedir? • UPDATE: Tablodaki bilgileri değiştirmemizi sağlar. • Örnek: INSERT INTO tabloIlceler VALUES (, 'Yenişehir', , , '53')Yeni veriler ekler • DELETE: Kayıt yada kayıtları silmemizi sağlar. • Örnek: DELETE FROM tabloIlceler WHERE plakaKodu = '53'plakaKodu 53 olan bütün verileri siler SQL’in en önemli ve en çok kullanılan deyimi SELECT deyimidir.
Triggerın türkçe anlamı tetikleyicidir. • Klasik manada triggerlar veri degisiminin hemen ardından devreye giren ozel bir storeprocedure gibi yapılardır . • Trigger mantıgında karsımıza iki adet sözde tablolar gelmekdedir ve biz bu sözde tablolar uzerinde bazı işlemlerimizi yaparız • Buradan anlaşılacağı gibi bir tablodaki değişikliği başka bir tabloda istediğimiz şekilde otomatik olarak değiştirmek istediğimizde trigger kullanırız. • Tetiklenecek işlem tamamen bizim belirlediğimiz çerçevede başka bir kayıt eklemek,rapor almak ve genelde kontrol mekanizmaları oluşturmak için kullanılır • Bir kaydın eklenmesi(insert),silinmesi(delete)veya değiştirilmesi(update)durumlarında otomotik olarak devreye girecektir
SQL server 2005 DDL tetikleyici adında yeni bir kavramı destekler • Tetikliyiciler,görünümler ve tablolar üzerinde tanımlanabilir
Trigger ve checkconstraint'lerin kullanım amacı nedir? Avantaj ve dezavantajları nelerdir? • 3 çeşit trigger vardır. Bunlar: • 1. Insert tetikleyici (ilgili tabloda ekleme islemi oldugu anda) • 2. Delete tetikleyici (ilgili tabloda silme islemi oldugu anda) • 3. Update tetikleyici (ilgili tabloda güncelleme islemi oldugu anda)
1.İNSERT Tetikleyici:Bir tablo üzerinde yeni kayıtlar girildikten sonra devreye giren tetikleyicidir • İnsert tetikleyici devreye girdikten sonra inserted tablosunda yeni eklenen kayıtların bir kopyası tutulur • İnserted tablosu asıl tablonun yapısal bir kopyası olup tetikleyici sonlanana kadar saklanır • Eğer bir tabloya birden fazla kayıt girildiyse tetikleyici her kayıt için ayrı ayrı devreye girmez,Çünkü SQL server satır bazında tetikleyici desteği sağlamamakta
DELETE TETİKLEYİCİSİ: • Tablodan bir kayıt silindiğinde otomatik olarak yapılması istenen işlemler için DELETE tetikleyicisi kullanılır • DELETE tetikleyicisi çalıştıktan sonra silinen kayıt deleted sahte tablosuna kaydedilir • Deleted tablosunun inserted tablosundan farkı asıl tablodan silinen kayıt artık deleted tablosunda yer almaktadır
UPDATE TETİKLEYİCİSİ: • Tablo üzerinde kayıt yada kayıtlarda güncelleme olduğunda devreye girecek olan tetikleyicidir
Trigger ve checkconstraint'lerin kullanım amacı nedir? Avantaj ve dezavantajları nelerdir? • Trigger Ne Zaman Kullanılır? • Değişiklikleri takip etmek, • Birincil anahtar üretmek, • Karmaşık iş kurallarını gerçekleştirmek, • E-posta atmak gibi olayları otomatik olarak yapmak, • Standart hata mesajlarının dışında bir hata mesajı elde etmek, • Veritabanı erişimlerini takip edebilmek, • Nesnede meydana gelebilecek değişiklikleri takip ve engellemektir.
Trigger ve checkconstraint'lerin kullanım amacı nedir? Avantaj ve dezavantajları nelerdir? • Trigger’ın avantajları nelerdir? • Modifikasyonuna ne neden olursa olsun çalışırlar • update olayında çalısabilecegi gibi, hem update hem de insert durumlarında daçalıstırılabilir
Her trigger bir veya daha fazla veridegistirme isleminde harekete geçecek sekilde tanımlanır • Nispi olarak triggerlar daha az zaman kaybına neden olurlar • Triggerların getirdigi en büyük avantaj otomatik olarak devreye girmeleridir
Trigger ve checkconstraint'lerin kullanım amacı nedir? Avantaj ve dezavantajları nelerdir? • SQL Server'da bir çok constraint (kısıt) kullanılabilir. "Check Constraint" verinin doğruluğunu ve bütünlüğünü korumak üzere kullanılan bir kısıttır. Check constraint eklenmiş bir kolona yeni bilgi eklenirken veya bilgi güncellenirken, veri yazılmış olan kurallara göre kontrol edilir ve kurala uymuyorsa bir hata verilir ve veri kaydedilmez.
Trigger ve checkconstraint'lerin kullanım amacı nedir? Avantaj ve dezavantajları nelerdir? • Check constraint ifadesi, true veya false döndüren bir kural setidir. Check constraint sadece false değer döndüğünde hata verir. Eğer ifade null döndürürse, bunu true gibi değerlendirir ve herhangi bir hata vermeden veriyi günceller. Örneğin bir kolonda sınavlardan alınacak notları tutacak olalım. Notlar da 0-100 arasında değişiyor olmalı. Grade alanına bu kısıtı ekleyelim ve 100 ün üzerinde data girilmesini engelleyelim.ALTER TABLE myTable ADD CONSTRAINT CK_Grade CHECK(Grade <= 100 AND Grade >= 0)
Trigger ve checkconstraint'lerin kullanım amacı nedir? Avantaj ve dezavantajları nelerdir? • Eğer tablomuzda veriler varsa ve daha önceden girilmiş verilerin kontrol edilmesini istemiyorsak withnocheck ifadesiyle bunu yapabiliriz. Aksi takdirde, veriler eklenen kurala uygun hale getirilene kadar checkconstraint eklenemez.ALTER TABLE myTable WITH NOCHECK ADD CONSTRAINT CK_Grade CHECK(Grade <= 100 AND Grade >= 0)
Trigger ve checkconstraint'lerin kullanım amacı nedir? Avantaj ve dezavantajları nelerdir? • Constraints(kısıtlar) kolonlarda yer almasına izin vereceğimiz değerleri belirleyen kuralları tanımlamamızı ve veri bütünlüğünü koruyan standart mekanizmayı sağlar. Veri bütünlüğünü sağlayan mekanizmalar arasında kısıtlar(constraints), trigger(tetikleyici), stored procedure(saklanmış yordamlar) ve default(varsayılan)lara göre daha çok tercih edilir. Check(kontrol) kısıtları bir kolondaki değerin geçerliliğini başka bir kolonla karşılaştırarak elde edebilmemize olanak sağlar.
Storedprocedure ve fonksiyonların kullanım amaçları nelerdir? • Stored Procedures SQL’de vazgeçilmez veri tabanı objelerindendir. Türkçemizde karşılığı saklı yordam olarak kabul edilmektedir. Bir takım SQL deyimlerinden oluşmaktadır ve özellikle C#, VB, ASP.NET tabanlı projelerimizde veri tabanı ile işlem yaparken sık sık başvurduğumuz yöntemlerdendir. Çeşitli parametreler alır ve geriye değer döndürürler.
Storedprocedure ve fonksiyonların kullanım amaçları nelerdir? • Örneğin şöyle bir işlem hayal edelim. Bir veritabanımız var ve bu veri tabanımızda bölümler ve çalışanlar olmak üzere birbiri ile ilişkili olan tablolarımız var. İlişki de şu şekilde, çalışanlar tablomda BolumID diye bir alanım ve bu alan Bolumler tablosu ile ilişkili. Bunu resmedelim :
Storedprocedure ve fonksiyonların kullanım amaçları nelerdir? • Genel amaçlı StoredProcedure’lerin 4 çeşidi bulunmaktadır. • Sistem StoredProcedure : Master veritabanında tutulan kullanımında sp_ prefixi kullanılan storedprocedurelardır. Veritabanı üzerinde sistemle alakalı yönetimsel işlerde kullanılırlar. • Kullanıcı Tabanlı StoredProcedure : Uygulamalarımız için kullandığımız splerdir.Bu spleri çok rahat oluşturup silebilir ve değiştirebiliriz.
Storedprocedure ve fonksiyonların kullanım amaçları nelerdir? • Extended Stored Procedure : Genelde .dll şeklinde derlenmiş olup Database Server ın işlevselliğini artıran bir çeşit stored procedure lerdir. Yalnız Master veritabanına eklenirler. • CLR Stored Procedure : CLR ortamında herhangi bir dili kullanarak da stored procedure ler geliştirilen bir tür Stored procedure çeşididir.
Storedprocedure ve fonksiyonların kullanım amaçları nelerdir? • StoredProcedureler, Database server da tutulduğu için çok hızlı çalışırlar bununda sebebi 1 defa yalnız derledikten sonra 1 daha derlenmeye ihtiyaç duymamalarıdır. Halbuki Uygulama katmanında yazmış olduğunuz SQL kodu her çağırmada tekrar tekrar derlenmek zorundadır. Buda büyük çaplı projelerde ve 1 den çok client a hizmet eden serverlar için büyük bir zaman kaybı demektir. • Network trafiği açısından mükemmel bir tasarruf sağlar.
Storedprocedure ve fonksiyonların kullanım amaçları nelerdir? • SQL ifadelerine otomatik parametreleme sağlar. SQL ifadelerinin geçtiği yerdeki bütün parametreleri değiştirme yerine sadece SP içindeki parametreleri yada kuralları değiştirip istediğinizi gerçekleştirebilirsiniz.Buda uygulamanızı modüler olmasını sağlar uygulamaların karmaşıklığını giderir. • Storedprocedureler yazılırken programlama ifadelerine ek olarak (İf,while,for vb.) T-SQL komutlarını da kullanabilirsiniz. • Storedprocedureler sadece giriş ve çıkış parametreleri uygulama katmanında göründüğü için daha güvenilirdir. Database server ına erişim genelde kullanıcı ID si ve şifreyle gerçekleştiğini düşünürsek SP kullanmanın kodlarımız açısından bir güven unsuru teşkil etmiş olduğunu açıkça söyleyebiliriz.
Aggregation fonksiyonları niçin kullanılır? • Bir sütundaki tüm satırlara uygulanırlar, bir hesap yapıp geriye tek bir değer döndürürler. • Aggregation fonksiyonları başlıca şunlardır: • AVG • COUNT • FIRST • LAST • MAX • MIN • SUM
Aggregation fonksiyonları niçin kullanılır? • AVG ve SUM Fonksiyonları • SUM Fonksiyonu ile seçilen bir satırdaki tüm kayıtların toplamı hesaplanıp geri döndürülür, AVG Fonksiyonu ile ise tüm kayıtların ortalaması döndürülür. • Tüm filmlerin IMDB Puanlarının toplamına ulaşalım ; • SELECT SUM(IMDB_Puan) AS Toplam_Puan FROM Filmler • Tüm filmlerin IMDB Puanlarının ortalamasına ulaşalım ; • SELECT AVG(IMDB_Puan) AS Ortalama_Puan FROM Filmler
Aggregation fonksiyonları niçin kullanılır? • COUNT Fonksiyonu • COUNT Fonksiyonu ile oluşturduğunuz sorgunun ürettiği satır sayısı bulunur ve geriye döndürülür. Eğer COUNT fonksiyonunu sadece bir sütun için uygularsanız NULL olmayan, yani değeri boş olmayan kayıtların sayısı bulunur. • Tüm filmlerin sayısına COUNT fonksiyonunu kullanarak ulaşabiliriz ; • SELECT COUNT(*) AS Toplam_Film_Sayısı FROM Filmler
Aggregation fonksiyonları niçin kullanılır? • FIRST ve LAST Fonksiyonları • Seçtiğiniz sütun için ilk satıra FIRST Fonksiyonu ile, son satıra ise LAST Fonksiyonu ile ulaşabilirsiniz. • İlk tarih değerine ve son IMDB_Puan değerine ulaşalım ; • SELECT FIRST(Tarih) AS İlk_Tarih, LAST(IMDB_Puan) AS Son_IMDB_Puan FROM Filmler
Aggregation fonksiyonları niçin kullanılır? • MAX ve MIN Fonksiyonları • Seçilen sütundaki en büyük değere MAX Fonksiyonu ile, en küçük değere MIN Fonksiyonu ile ulaşabilirsiniz. • IMDB Puanı en yüksek filmin puanına ulaşalım ; • SELECT MAX(IMDB_Puan) AS En_Yüksek_Puan FROM Filmler
İç içe (alt) SQL sorgusu nedir? • Bazı durumlarda karmaşık iç içe sorgular yazmak gerekebilir.Bir sorgunun sonucuna göre başka bir sorguyu çalıştırmak isteyebiliriz.Bu durumda sorgularımızı iç içe yazabiliriz.Alt sorgu bir veya birden fazla sonuç üretebilir.Eğer sorgu alt sorgudan gelen tek sonuç ile işlem yapacaksa MAX,MIN,AVG gibi gruplama fonksiyonları veya tek değer döndüren SELECT sorguları yazılabilir.
İç içe (alt) SQL sorgusu nedir? • Örneğin; • SELECT * FROM Tablo WHERE Alan>(SELECT AVG(ALan) FROM Tablo) SELECT * FROM Roller WHERE Rol_ID>(SELECT AVG(Rol_ID) FROM Roller) • Sorgu çalıştırıldığında Roller tablosundan Rol_ID değeri ortalamasından büyük olan kayıtlar listelenir.
İç içe (alt) SQL sorgusu nedir? • Eğer alt sorgu birden fazla sonuç üretiyorsa WHERE ile birlikte IN kullanılarak bütün sonuç işlemden geçirilir. • SELECT * FROM Roller WHERE Rol_ID IN (SELECT Rol_ID FROM Roller WHERE Rol_Ad LIKE 'Öğ%') • Sorgu çalıştırıldığında Roller tablosundan Rol_Ad değeri ‘Öğ’ ile başlayan kayıtlar listelenicektir.
Yararlanılan kaynaklar • http://tr.wikipedia.org • http:// www.bilgisayarmuhendisleri.com • http:// www.sqlogren.com • http:// www.nedir.com