Tüm dersler
YBS 1. sınıf · Veri Tabanına Giriş · Ünite 5

SQL’e Giriş: Veri Tipleri ve Veri Tanımlama

SQL nedir, DDL, DML ve DCL komut grupları, SQL Server veri tipleri, CREATE TABLE, kısıtlamalar, ALTER TABLE, DELETE, TRUNCATE, DROP ve .sql, .mdf, .bak dosyaları.

SQL (Structured Query Language, Yapısal Sorgulama Dili), veri tabanlarında kayıt eklemek, değiştirmek, silmek ve sorgulamak için tasarlanmış dildir. Önce matematiksel söz dizimli SQUARE, ardından İngilizceye benzeyen SEQUEL geliştirilmiş; bu dil daha sonra SQL adını almıştır. Microsoft SQL Server, MySQL, PostgreSQL ve Oracle SQL kullanan sistemlerdendir.

Komut grupları

  • DDL (Veri Tanımlama Dili): Veri tabanının yapısıyla ilgilenir. CREATE (oluştur), ALTER (yapıyı değiştir), DROP (tamamen sil), TRUNCATE (içini boşalt) ve RENAME.
  • DML (Veri İşleme Dili): Tablonun içindeki satırlarla çalışır. SELECT, INSERT, UPDATE ve DELETE.
  • DCL (Veri Kontrol Dili): Yetkileri yönetir. GRANT yetki verir, REVOKE geri alır, DENY açıkça yasaklar.

VIEW oluşturmak, ALTER TABLE ve TRUNCATE birer DDL işlemidir. Kullanıcı oluşturma ve değiştirme komutları (CREATE USER, ALTER USER) veri işleme komutu değildir.

Derste veri tabanı motoru olarak SQL Server Express, yönetim arayüzü olarak SQL Server Management Studio (SSMS) kurulur. SQL Server arka planda çalışan bir servistir; tabloları görmek ve sorgu yazmak için SSMS gerekir.

Veri tipleri

Doğru veri tipi gereksiz bellek kullanımını önler ve yanlış veri girilmesini engeller.

  • Tam sayılar: bigint (8 bayt), int (4 bayt, en yaygın), smallint (2 bayt), tinyint (1 bayt, SQL Server'da 0–255), bit (0 veya 1; evet/hayır gibi ikili durumlar).
  • Ondalıklı ve parasal: decimal/numeric (basamak sayısı tanımlanır), float ve real (yaklaşık değerli), money ve smallmoney.
  • Tarih ve zaman: date, time, datetime, datetime2, smalldatetime, datetimeoffset.
  • Metin: char(n) her zaman n karakterlik yer kaplar; varchar(n) girilen kadar yer kaplar. nchar ve nvarchar Unicode destekler. Türkçe karakterlerin bozulmaması için nvarchar tercih edilir.

Tablo oluşturma ve kısıtlamalar

Veri tabanı CREATE DATABASE, tablo CREATE TABLE ile oluşturulur. USE komutların hangi veri tabanında çalışacağını, GO komut gruplarının ayrılmasını belirtir. IDENTITY(1,1) bir sütunun değerini her yeni kayıtta 1'den başlayıp birer artırır.

  • PRIMARY KEY: Satırı benzersiz tanımlar; NULL ve tekrar içeremez. Tabloda bir tane olur ama birden çok sütundan oluşabilir.
  • FOREIGN KEY: Sütunu başka bir tablonun birincil anahtarına bağlar; orada bulunmayan değerin girilmesini engeller.
  • UNIQUE: Değerlerin tekrar etmesini engeller; bir tabloda birden çok olabilir.
  • NOT NULL: Sütunun boş bırakılmasını engeller.
  • CHECK: Değerin bir koşulu sağlamasını zorunlu kılar. Örnek: CHECK (Sinif BETWEEN 1 AND 4).
  • DEFAULT: Değer girilmezse kullanılacak varsayılan değeri belirler.

NULL "değer yok" demektir; 0 ya da boş metinle aynı şey değildir. Yabancı anahtar nedeniyle önce bağımsız tablo (Bolum), sonra ona bağlı tablolar (Ogrenci, Dersler) oluşturulur.

ALTER TABLE

Dolu bir tablonun yapısını, tabloyu silmeden değiştirir: ADD ile sütun eklenir (eski kayıtlarda yeni sütun NULL başlar), DROP COLUMN ile sütun silinir, ALTER COLUMN ile veri tipi değiştirilir, ADD CONSTRAINT ile sonradan anahtar eklenir. ALTER TABLE yapıyı, UPDATE ise satırlardaki veriyi değiştirir.

DELETE, TRUNCATE ve DROP

  • DELETE (DML): WHERE ile seçilen satırları siler; her satırı günlüğe yazdığı için yavaştır ama geri alınabilir. IDENTITY sayacını sıfırlamaz.
  • TRUNCATE (DDL): Tablonun bütün içeriğini çok hızlı boşaltır; WHERE almaz, tablo boş bir şablon olarak kalır ve sayaç sıfırlanır.
  • DROP (DDL): Tabloyu yapısıyla birlikte tamamen siler.

Veri tabanı her INSERT, UPDATE ve DELETE işlemini önce işlem günlüğüne (log) yazar; elektrik kesilirse yarım kalan işlem yeniden açılışta geri alınır (ROLLBACK).

Taşıma ve yedekleme

  • .sql (script): Veri tabanını sıfırdan kuran komutları içeren düz metin dosyasıdır. Sürüm farklarından en az etkilenir ama büyük verilerde yavaştır; yedekleme dosyası değildir.
  • .mdf: SQL Server'ın ana veri dosyasıdır. Sunucu çalışırken kilitlidir; taşımak için Detach ve Attach yapılır.
  • .bak: Veri tabanının sıkıştırılmış yedeğidir. Sistem çalışırken alınabilir ve Restore ile geri yüklenir. Üst sürümde alınan yedek alt sürüme yüklenemez.
Sponsorlu alan

Bu sayfa, Yeşim Ülgen Sönmez · Yunus Emre Demir tarafından hazırlanan ders notunun özetidir. Şekiller, tablolar ve çözümlü örneklerin tamamı için ünitenin PDF notuna bak.