SQL Nedir? Veritabanlarıyla Çalışma Mantığı
SQL, ilişkisel veritabanlarındaki yapılandırılmış verilerle iletişim kurmayı sağlayan bir dildir. Verileri eklemek, okumak, güncellemek ve silmek için kullanılan SQL'in veritabanı yönetim sistemiyle aynı şey olmadığı; tablo, satır, sütun ve sorgu kavramları üzerinden açıklanır.
Bu yazıda (6)
SQL, uygulamaların ve kullanıcıların ilişkisel veritabanlarında bulunan verilerle iletişim kurmasını sağlayan özel amaçlı bir dildir. Bir web sitesindeki kullanıcı bilgilerini getirmekten bir şirketin kayıtlarını güncellemeye kadar pek çok işlem, SQL komutlarıyla veritabanına bildirilir.
SQL’in Tanımı ve Temel Amacı
SQL, özellikle ilişkisel veritabanı yönetim sistemlerinde yapılandırılmış verileri yönetmek için kullanılan bir sorgulama dilidir. Buradaki temel amaç, verinin nerede ve hangi dosyada tutulduğunu tek tek bilmeden veritabanından bilgi istemek veya veriler üzerinde değişiklik yapmaktır. SQL, birden fazla kaydı tek bir komutla ele alabilir; kullanıcı çoğu durumda veritabanının istenen kayda hangi yoldan ulaşacağını ayrıntılı biçimde tarif etmez. Bu yönüyle SQL, verinin kendisiyle uygulama arasındaki iletişimi kolaylaştırır.
SQL’in çalışma mantığı, kullanıcının amacını belirten bir komut yazmasına dayanır. Örneğin bir okul veritabanında öğrencilerin adlarının ve sınıflarının tutulduğunu düşünelim. Kullanıcı, yalnızca 6-A sınıfındaki öğrencileri görmek istediğinde veritabanına hangi kayıtların ve hangi koşulla getirileceğini belirten bir sorgu gönderir. Veritabanı yönetim sistemi bu sorguyu yorumlar, ilgili tabloyu tarar ve koşula uyan satırları sonuç olarak döndürür. Kullanıcı dosyaların fiziksel konumunu veya arama sırasında hangi dizinin kullanılacağını bilmek zorunda değildir.
SQL yalnızca veri okumak için kullanılmaz. Yeni bir öğrenci kaydı eklemek, mevcut öğrencinin sınıf bilgisini değiştirmek ya da artık kullanılmayan bir kaydı kaldırmak da SQL komutlarıyla yapılabilir. Bu nedenle SQL, veritabanındaki bilgileri sorgulama, değiştirme ve belirli ölçüde yapılandırma görevlerini ortak bir dil üzerinden yürütür. SQL’in geçmişi ve standartlaşması hakkında burada yalnızca temel çerçeve vermek yeterlidir; farklı SQL lehçeleri ve standart ayrıntıları ayrı bir konudur.
SQL ile Veritabanı Yönetim Sistemi Arasındaki Fark
SQL bir program veya veritabanı sunucusu değil, verilerle iletişim kurmak için kullanılan dildir. Veritabanı yönetim sistemi ise veritabanlarını oluşturan, saklayan, sorguları çalıştıran ve sonuçları yöneten yazılımdır. Örneğin bir SQL komutu, veritabanından belirli kayıtları istemek için kullanılan talimatı ifade eder; bu talimatı alan ve uygulayan yapı ise veritabanı yönetim sistemidir.
Aralarındaki ilişkiyi bir konuşma örneğiyle düşünebiliriz: SQL, isteğin kurulduğu ortak dil; veritabanı yönetim sistemi ise bu isteği yerine getiren yazılım ortamıdır. Bir uygulama SQL sorgusunu gönderdiğinde sistem sorgunun söz dizimini değerlendirir, ilgili tablo ve kayıtları bulur, ardından sonucu uygulamaya iletir. Bu nedenle SQL öğrenmek, veritabanı yönetim sisteminin kendisini kurmak veya yönetmekle aynı anlama gelmez. SQL farklı sistemlerde ortak bir temel sunsa da uygulamalar arasında bazı söz dizimi ve özellik farkları bulunabilir.
SQL’in Veritabanlarında Kullanım Alanları
SQL’in başlıca kullanım alanları verileri okumak, eklemek, güncellemek ve silmektir. Bir uygulama yeni bir kullanıcı oluşturduğunda ilgili bilgileri veritabanına eklemek için SQL kullanılabilir. Kullanıcı giriş yaptığında kayıtlı hesap bilgilerini bulmak, bir ürünün fiyatı değiştiğinde bu değeri güncellemek veya artık tutulması gerekmeyen bir kaydı kaldırmak da SQL’in görevleri arasındadır. Böylece veritabanındaki bilgiler uygulamanın ihtiyaçlarına göre sürekli kullanılabilir ve güncel tutulabilir.
SQL, veritabanının yapısını tanımlamak ve değiştirmek için de kullanılabilir. Tabloların oluşturulması, mevcut yapıların düzenlenmesi ve verilere erişim yetkilerinin yönetilmesi bu geniş kullanım alanına girer. Komutlar işlevlerine göre kabaca veri sorgulama, veri tanımlama, veri değiştirme ve erişim denetimi gruplarında ele alınır. Bu gruplar, SQL içindeki farklı görevleri anlamayı kolaylaştıran sınıflandırmalardır; ayrıntılı komut listeleri bu temel girişin kapsamı dışındadır.
Bir kütüphane uygulamasında kitap adı, yazar ve ödünç alma durumu gibi bilgiler tutulabilir. Uygulama kitap ararken veriyi okur, yeni kitap kaydederken veri ekler, kitabın durumunu değiştirirken güncelleme yapar. Tablolar arası JOIN işlemleri, gruplama ve toplama sorguları, veritabanı tasarımı, güvenlik ve işlem yönetimi ise SQL’in daha ileri konularıdır.
Temel SQL Sorgusu Mantığı
SQL sorgusu, veritabanından hangi verinin isteneceğini ve hangi koşulların uygulanacağını bildiren ifadedir. Bir sorguda genellikle sonuçta hangi sütunların gösterileceği, verinin hangi tablodan alınacağı ve hangi kayıtların koşulu karşıladığı belirtilir. Bu yapı, doğal dildeki “hangi bilgiyi, nereden ve hangi şartla istiyorum?” sorusuna benzer. SQL çoğunlukla sonucun nasıl adım adım hesaplanacağını değil, hangi sonucun istendiğini ifade eder; işlemi nasıl gerçekleştireceğine veritabanı yönetim sistemi karar verir.
Örneğin ogrenciler adlı tabloda ad ve sinif sütunları bulunduğunu varsayalım. Yalnızca 6-A sınıfındaki öğrencilerin adlarını istemek için şu temel biçim kullanılabilir:
SELECT ad FROM ogrenciler WHERE sinif = '6-A';
Bu ifadede SELECT gösterilecek sütunu, FROM verinin alınacağı tabloyu, WHERE ise seçilecek satırları sınırlayan koşulu belirtir. Sonundaki noktalı virgül birçok SQL ortamında ifadenin bittiğini gösterir. Sorgu çalıştırıldığında sistem ogrenciler tablosundaki satırları inceler ve sinif değeri 6-A olanların adlarını sonuç tablosunda gösterir. Aynı mantıkla farklı bir koşul yazılarak belirli bir ürün, tarih veya kullanıcı kaydı aranabilir. JOIN, gruplama ve toplama gibi daha ileri sorgu teknikleri bu temel seçme mantığının ötesindeki konulardır.
Tablo, Satır ve Sütun Kavramları
İlişkisel veritabanlarında veriler çoğunlukla tablolar içinde düzenlenir. Tablo, belirli bir konuya ait kayıtların bir arada tutulduğu yapıdır; örneğin ogrenciler tablosu öğrenci bilgilerini barındırabilir. Sütun, her kaydın hangi özelliğini tuttuğunu gösterir. ad, sinif ve numara sütunları öğrencinin adı, sınıfı ve numarası gibi alanları temsil eder. Satır ise bu sütunlarda yer alan tek bir kaydı ifade eder; bir öğrencinin adı, sınıfı ve numarasının birlikte bulunduğu kayıt bir satırdır.
Bu yapıyı bir elektronik tabloya benzetmeden de basitçe şöyle düşünebiliriz: sütunlar verinin türünü veya özelliğini, satırlar ise bu özelliklere ait kayıtları düzenler. SQL sorguları çoğunlukla bu tablo, satır ve sütunlar üzerinde çalışır. Örneğin SELECT ad ifadesi yalnızca ad sütununu seçerken, WHERE sinif = '6-A' koşulu hangi satırların sonuçta yer alacağını belirler. Böylece tablo bütün veriyi barındırır, sütunlar gösterilecek veya değerlendirilecek alanları belirtir, satırlar da koşullara göre seçilen kayıtları oluşturur.
Bir okul kitaplığı tablosunda kitap_adi, yazar ve durum sütunları bulunabilir. Her satır farklı bir kitabı temsil eder; durum sütununda “rafta” veya “ödünçte” gibi bilgiler yer alabilir. SQL, bu yapı sayesinde uygulamanın yalnızca ihtiyaç duyduğu sütun ve satırları istemesine yardımcı olur.
SQL’in Yaygın Kullanım Alanları ve Araçları
SQL; web uygulamalarında kullanıcı, ürün ve sipariş verilerini yönetmekte, veri analizinde kayıtları incelemekte ve kurumsal yazılımlarda iş bilgilerini saklayıp sorgulamakta kullanılır. SQL sorguları bir uygulamanın içinden çalıştırılabileceği gibi, veritabanı yönetim sistemlerinin sunduğu komut satırı veya görsel araçlar üzerinden de yazılabilir.
Bir okul kitaplığında kitap adı, yazar ve ödünç alma durumu gibi bilgiler tablo halinde tutulabilir. Kitap arama ekranı, rafta bulunan kitapları listelemek için veritabanına SQL sorgusu gönderir; yeni kitap eklendiğinde veya bir kitap ödünç verildiğinde ilgili kayıt güncellenir.
SQL ile veritabanı yönetim sistemini karıştırmayın: SQL iletişim ve sorgu dilidir; veritabanı yönetim sistemi ise sorguları çalıştıran ve verileri yöneten yazılımdır. SELECT, FROM ve WHERE ifadelerinin sırasıyla neyi belirlediğini ayırt etmek temel sorgu mantığını gösterir.
Sık sorulan sorular
SQL bir veritabanı mıdır?
Hayır. SQL, veritabanındaki verilerle iletişim kurmak için kullanılan bir dildir; verileri saklayan ve sorguları çalıştıran yapı veritabanı yönetim sistemidir.
SQL ile hangi işlemler yapılabilir?
Veriler okunabilir, yeni kayıtlar eklenebilir, mevcut kayıtlar güncellenebilir ve gerekli durumlarda kayıtlar silinebilir. Veritabanı yapısını tanımlamak ve erişim yetkilerini düzenlemek de SQL’in kullanım alanları arasındadır.
SQL sorgusunda SELECT, FROM ve WHERE ne işe yarar?
SELECT gösterilecek sütunları, FROM verinin alınacağı tabloyu, WHERE ise sonuçta yer alacak satırları belirleyen koşulu ifade eder.
Tablo, satır ve sütun arasındaki fark nedir?
Tablo verilerin bulunduğu bütündür. Sütun her kaydın bir özelliğini, satır ise bu özelliklere ait tek bir kaydı temsil eder.
- •Wikipedia (EN) — SQL — SQL / girisen.wikipedia.org