SQL(Structured Query Language)
Merhaba arkadaşlar,
Blog yazmanın aynı zamanda öğretici olacağına karar vererek, ilk yazımı sizlerle paylaşmanın heyacanıyla yazıyorum.
Bu yazımda, SQL sorgu diline temel ya da giriş seviyesinde değineceğiz.
SQL, İlişkisel Veritabanı Yönetim Sistemlerindeki (RDBMS) verileri işlemek için tasarlanmış Yapılandırılmış Sorgu Dili anlamına gelir. Günümüzde SQL, verilerle etkileşim için kullanılan en yaygın programlama dillerinden biridir.
1. SQL’e Giriş
1.1 SQL Nedir?
SQL, ilişkisel veritabanı yönetim sisteminde (RDBMS) depolanan verileri yönetmek için tasarlanmış bir programlama dilidir. Yapılandırılmış sorgu dilinin kısaltmasıdır. SQL bir veri tanımlama dili, veri işleme dili ve bir veri kontrol dilinden oluşur.
· Veri Tanımlama Dili, şema oluşturma ve değiştirme ile ilgilidir, örn. CREATE TABLE ifadesi veritabanında yeni bir tablo oluşturulmasına izin verir ve ALTER TABLE ifadesi mevcut bir tablonun yapısını değiştirir.
· Veri Düzenleme Dili, SELECT ifadesi gibi verileri sorgular. INSERT , UPDATE ve DELETE ifadeleri gibi verileri güncellemek için yapıları sağlar.
· Veri Kontrol Dili, kullanıcı yetkisi ve güvenliği ile ilgili olarak GRANT ve REVOKE ifadeleri gibi ifadelerden oluşur.
1.2 SQL Standardı
· SQL, 1970'den beri ilk ticari veritabanı dillerinden biriydi. O zamandan beri farklı veritabanı satıcıları, ürünlerinde bazı varyasyonlar ile SQL uyguladı. Tedarikçiler arasında daha fazla uyum sağlamak için, Amerikan Standartlar Enstitüsü (ANSI) 1986 yılında ilk SQL standardını yayınladı.
· ANSI daha sonra 1992'de SQL92 ve SQL2 olarak bilinen SQL standardını ve yine 1999'da SQL99 ve SQL3 olarak güncelledi. ANSI her seferinde SQL diline yeni özellikler ve komutlar ekledi.
· SQL Standardı şimdi hem ANSI hem de uluslararası Standartlar Organizasyonu tarafından ISO / IEC 9075 standardı olarak korunmaktadır. En son sürüm standardı SQL: 2011'dir.
· SQL standardı, veritabanı ürünlerinde SQL sözdizimi yapılarını ve davranışlarını resmileştirir. RDBMS'nin büyük şirketler yerine esas olarak topluluklar tarafından geliştirildiği MySQL ve PostgreSQL gibi açık kaynak veritabanları için daha da önem kazanmaktadır .
1.3 SQL Dialects
SQL standardında henüz bulunmayan yeni özellik ve yetenekleri sürekli olarak talep edilmektedir. Bu nedenle, SQL standardı olsa bile, çeşitli veritabanı ürünlerinde birçok SQL lehçesi vardır.
SQL'in en popüler dialectleri (lehçeleri) şunlardır:
· PL / pgSQL , SQL lehçesi ve PostgreSQL'de uygulanan uzantılardan oluşan, Yordamsal Dil / PostgreSQL anlamına gelir.
1.4 SQL Syntax
SQL bildirimsel bir dildir, bu nedenle sözdizimi doğal bir dil gibi okunur. SQL ifadesi, örneğin SELECT , INSERT , UPDATE veya DELETE gibi eylemi açıklayan bir fiille başlar . Fiili takiben özne ve yüklem vardır. SQL, kullanıcı dostu bir dildir, çünkü temel olarak geçici sorgular gerçekleştiren ve raporlar oluşturan kullanıcılar içindir. Günümüzde SQL, veri analistleri, veri bilimcileri, geliştiriciler ve veritabanı yöneticileri gibi son derece teknik kişiler tarafından kullanılmaktadır.
1.5 SQL Komutları
SQL birçok komuttan oluşur. Her SQL komutu genellikle noktalı virgül (;) ile sonlandırılır.Ve bir komutun sonunu işaretlemek için noktalı virgül (;) kullanır.
1.5.1 Değişmez Değerler
Değişmez değerler, sabitler olarak da bilinen açık değerlerdir. SQL üç tür değişmez değer sağlar: string, numeric ve binary.
1.5.2 Anahtar kelimeler
SQL; SELECT , INSERT , UPDATE , DELETE ve DROP gibi özel anlamları olan birçok anahtar kelimeye sahiptir . Bu anahtar kelimeler ayrılmış kelimelerdir.Bu nedenle bunlar tabloların, sütunların, dizinlerin(index), görünümlerin(view), depolanan yordamların(store procedure), tetikleyicilerin(trigger) veya diğer veritabanı nesnelerinin(database object) adı olarak kullanılmaz.
1.5.3 Tanımlayıcılar
Tanımlayıcılar, veritabanındaki tablolar, sütunlar, dizinler vb. gibi belirli nesnelere atıfta bulunur. SQL, anahtar kelimeler ve tanımlayıcılar açısından büyük / küçük harfe duyarlı değildir.
1.5.4 Yorumlar
SQL deyimlerini belgelemek için SQL yorumlarını kullanırsınız. SQL deyimlerini yorumlarla ayrıştırırken, veritabanı motoru yorumlardaki karakterleri yok sayar. Yorum satırları ardışık iki tire (--) ile gösterilir.
2. Verileri Sorgulama
· SELECT - SELECT ifadesi en basit biçimini kullanarak tek bir tablodaki verilerin nasıl sorgulanacağını gösterir.
3. Verileri Sıralama
· ORDER BY - verileri artan ve / veya azalan sırada bir veya daha fazla sütuna göre sıralar.
4. Verilere Filtre Uygulama
· DISTINCT - sonuç kümesinden kopyaların nasıl kaldıralacağını gösterir.
· LIMIT - LIMIT ve OFFSET ifadesini kullanarak bir sorgu tarafından döndürülen birkaç satırı kısıtlar.
· FETCH - herhangi bir satırı döndürmeye başlamadan önce bir sonuç kümesindeki N satırı atlatır.
· WHERE - verileri belirtilen koşullara göre filtreler.
· Karşılaştırma operatörleri (işleçleri) - WHERE yan tümcesinde koşulu oluşturmak için eşit, büyük veya eşit, küçük eşit veya eşit, eşit ve eşit olmayan karşılaştırma operatörlerini kapsar.
· Mantıksal operatörler - mantıksal operatörleri ve bir durumun gerçekliğini test etmek için kullanılır.
· AND - AND mantıksal operatörünü kullanarak verileri birden fazla koşula göre listeler.
· VEYA –iki koşuldan birini sağlama duruma göre listeler.
· BETWEEN - bir değer aralığındaki verileri seçmek için kullanılır.
· IN - bir değerin değerler listesinde olup olmadığını kontrol etmek kullanılır.
· LIKE - verileri belirli bir desene göre sorgular.
· IS NULL - bir ifadenin NULL olup olmadığını kontrol eder.
· NOT - mantıksal değilleme ifadesi olduğu için büyük,küçük,eşit gibi ifadeler tersine çevrilir.
5. Koşullu ifadeler
· CASE İfadesi - SQL ifadelerine if-then-else mantığını ekler.
6. Birden Fazla Tabloya Katılma
· SQL Aliases - Sorguları daha kısa ve daha anlaşılır hale getirir.
· INNER JOIN - birden çok tablodaki verileri birleştirmek için kullanılır.
· LEFT OUTER JOIN - birden fazla tablodan veri birleştirilmesine olanak tanıyan başka bir tür birleşim sağlar.
· CROSS JOIN -çapraz birleştirme işlemini kullanarak iki tablonun kartezyen çarpma işlemini gerçekleştirir.
· SELF JOIN - bir tablonun kendisi ile Join işlemine tabi tutulması işlemidir.
7. Toplama İşlevleri
SQL'de AVG, COUNT, SUM, MAX ve MIN dahil en sık kullanılan toplama işlevlerini sunar.
· AVG - bir kümenin ortalama değerini hesaplar.
· COUNT - bir kümedeki öğe sayısını döndürür.
· SUM - bir kümenin tüm veya farklı öğelerinin toplamını döndürür.
· MAX - bir kümedeki maksimum değeri bulur.
· MIN - bir kümedeki minimum değeri bulur.
8. Verileri Gruplama
· GROUP BY – gruplama yapmak için kullanılan fonksiyondur.Birden çok aynı olan kaydı bir defa listelemek için kullanılır.
· HAVING - GROUP BY deyimiyle özetlenen grupları filtrelemek için bir koşul belirtir.
· GRUPLAMA SETLERİ - birden çok gruplama kümesi oluşturur.
· ROLLUP - giriş sütunlarının hiyerarşisini göz önünde bulundurarak birden çok gruplama kümesi oluşturur.
· CUBE - giriş sütunlarının tüm olası bileşimleri için birden çok gruplama kümesi oluşturur.
9. SET Operatörlerini Kullanma
· UNION ve UNION ALL - iki veya daha fazla sorgunun sonuç kümesini, UNION ve UNION ALL operatörlerini kullanarak tek bir sonuç kümesinde birleştirir.
· INTERSECT - INTERSECT operatörünü kullanarak iki veya daha fazla sorgunun kesişimini döndürür.
· MINUS - Minus operatörünü kullanarak başka bir sonuç kümesinden diğer sonuç kümesi çıkarılır.
10. Alt sorgu
· Subquery - verileri sorgulamak için daha esnek bir sorgu oluşturmak üzere bir sorguyu başka bir sorgunun içine nasıl yerleşeceğini gösterir.
· Correlated Subquery - dış sorgudaki değerleri kullanan bir alt sorgu olan ilişkili alt sorguyu tanıtır.
· EXISTS - bir alt sorgudan döndürülen satırın varlığının nasıl kontrol edileceğini gösterir.
· ALL - tablonun bir sütunundaki değerleri bir sütun kümesiyle karşılaştırarak verilerin nasıl sorgulanacağını gösterir. İç sorgudan elde edilen sonuçları çalıştırır.
· ANY - tablonun sütunundaki bir değer kümedeki değerlerden biriyle eşleşiyorsa verileri sorgular. İç sorgudan elde edilen sonuçlardan en az biri için çalışır.
11. Veri İşleme Dili (DML) İfadeleri
· INSERT - tabloya bir veya daha fazla satır ekler.
· UPDATE - tablodaki mevcut verileri günceller.
· DELETE- verileri tablodan kalıcı olarak siler.
12. Veri Tanımlama Dili (DDL) İfadeleri
· CREATE TABLE - veritabanında yeni bir tablo oluşturur.
· ALTER TABLE - mevcut bir tablonun yapısını değiştirir.
· DROP TABLE - tabloları kalıcı olarak çıkarır.
· TRUNCATE TABLE - büyük bir tablodaki tüm verileri hızlı ve verimli bir şekilde siler.
13. Kısıtlamalar
· PRIMARY KEY - tablo için birincil anahtar(primary key) tanımlanır.
· FOREIGN KEY - yabancı anahtar(foreign key) kısıtlamasının temel amacı birincil anahtara sahip olan alanın diğer tabloda defalarca tekrar etmesini ve veri tutarlılığını sağlamaktır.
· UNIQUE - bir sütundaki veya bir sütun kümesindeki değerlerin benzersizliğini sağlar. İlgili sütunda veri tekrarını engeller.
· NOT NULL - NULL değerlerin girilmesini engeller. kriteri ile belirleyeceğimiz alan veya alanların boş geçilmesini engelleyebiliriz.
· CHECK - bir Boole ifadesine dayalı olarak bir veya daha fazla sütunda depolanmadan önce verileri doğrular.Belirtilen şartın sağlanıp saglanmadıgını kontrol eder.
Asya Manduz
Software Engineer
Algomedi Teknolojileri