SQL yazmak basit ama SQL Server Management Studio’yu gerçekten anlamak? İşte o seni usta yapar.
Bugün, SQL Server Management Studio’yu- yani SSMS’i – ilk kez tüm detaylarıyla tanıyacaksın.
Burada yazdığınız her satırın, veriyi nasıl harekete geçirdiğini birlikte göreceğiz.
Artık sıra, veritabanı dünyasında en çok zaman geçireceğimiz aracı keşfetmeye geldi.
SSMS’i anlamak, SQL öğrenmenin yarısıdır.
Çünkü burada attığınız her adım, yazacağınız her sorgu ve yöneteceğiniz her tablo bu ekranın içinden geçecek.
🧭 Object Explorer – “Verinin Haritası”
Bakın, hemen sol tarafta duran bölüm Object Explorer.
Burası, verinin tüm mimarisini önünüze seren bir harita gibi.
Veritabanlarını, tabloları, prosedürleri, kolonları… hepsini buradan yönetiyorsunuz.
Sanki bir şehrin sokaklarında dolaşıyor gibi, veri yapılarının arasında geziniyorsunuz.
✍️ New Query – Hikâyenin Başladığı Sayfa
“Yeni bir sorgu yazmak istediğimizde ‘New Query’ butonuna tıklarsın. Açılan boş sayfa… aslında bizim hikâyemizin ilk satırı. Buraya yazılan her komut, SQL Server’a bir talimat veriyor. Ve o talimatın sonucu, veritabanındaki milyonlarca veriyi etkileyebiliyor.
🤖 Otomatik Tamamlama – Arka Planda Çalışan Asistan
Bir tablo adını yazmaya başladığınız anda SSMS size yardımcı olur. Otomatik tamamlama devreye girer, ihtiyacınız olan komutları karşınıza çıkarır. Bu özellik, kod yazmanıza hız katar… ama aynı zamanda hata yapmanızı da engeller.
🚀 Execute & F5 – Komutu Hayata Geçirme Anı
Kod hazır olduğunda o meşhur an gelir:
F5 tuşuna bastığınız anda komutunuz çalıştır.
İşte bu yüzden SSMS bir editör gibi düşünmeyin, bir kontrol panelidir.
Şimdi biraz daha derine inelim.Bir geliştirici sadece kod yazmaz; kodunu yönetir, yorumlar ekler, düzenler ve gerektiğinde karışık bir yapıyı akıcı hale getirir. Bu yüzden birazdan göreceğiniz özellikler, SQL yazarken gerçekten akışta kalmanızı sağlayacak.
📐 SQL Yazım Kuralları – Okunabilir Kodun İnşası
SQL kısa ve net bir dil gibi görünür… ama iş büyüdüğünde kod karmaşıklaşır.
Bu yüzden kodunuzu yapılandırmak, uzun vadede size zaman kazandırır.
Profesyoneller SQL’i şu akışla yazar:
- İlk satırda SELECT
- Hemen altında FROM
- Altında varsa WHERE
- Sonra GROUP BY
- En altta ORDER BY
Bu düzen, karmaşık sorguları bile saniyeler içinde anlamanızı sağlar.
Bir mimarın plan okuması gibi… gözünüz nereye bakacağını bilir.
Örnek yazdığım kodlar aşağıdadır.



Alias Kullanımı – Kolonlara Farklı isimler Vermek

Bir kolon adını daha açıklayıcı yapmak istediğinizde alias kullanırız.
AS ile tamamen kendinize ait başlıklar oluşturabilirsiniz.
Bu hem raporlamayı güzelleştirir… hem de kodu daha okunabilir hale getirir.
Kolonları bunun yerine kendi belirlediğiniz şekilde hatta Türkçe karakter dahi yazabilirsiniz.
Bunu yapmak için kolon adından hemen sonra AS kullanırız. Boşluksuz kullanacaksınız direk yazabilirsiniz. Ancak boşluklu yazacaksanız Tek Tırnak içinde veya [ Köşeli Parantez] içinde yazabilirsiniz.




SQL Kodlarına Yorum Satırı, Açıklama Ekleme
— (iki tire) ile Comment yapmış oluyoruz. SQL kodlarınıza açıklama ekleyebilirsiniz. SQL’i anlamak için açıklama çok kullanacağız. Ayrıca çalışmasını istemediğiniz komutları da bu şekilde pasif edebilirsiniz.

Birden Fazla Satıra Açıklama Ekleme veya Pasif Etme
Eğer birden fazla satırda açıklama yapmak istiyorsanız her satıra tek tek tire tire koymak zahmetli olur onun yerine açıklama’nın başlayacağı yere /* yapıp bitiş satırına da */ yaparak birden çok alanı pasif edebilir veya açıklamalarınızı yazabilirsiniz.

Kodları Seçerek belirli bir SQL Kodunu çalıştırma
Daha önce söylemiştim. F5 tuşu ile SQL kodlarımızı çalıştırırız. Ancak bir dosya da birden fazla SQL kodu varsa ve hepsini çalıştırmak istemiyorsanız sadece o SQL komutunu Shift ile seçerek sadece seçilen kodu çalıştırabilirsiniz. Eğer seçim yapmadan F5 tuşuna basarsanız sayfadaki tüm SQL kodları çalışır.
Eğitim boyunca tek bir dosyada SQL Kodu yazarak anlatacağım. Dolayısıyla hep sorgularımızı Shift ile ya da Mouse ile seçerek ondan sonra F5 tuşuna basıp sorguyu çalıştıracağız.

Sorgu Grid Ekranını Kaldırma / Getirme Ctrl + R
F5 ile sorgunun sonucunu gördüğünüz grid ekranı kod ile yoğunlaştığınızda bazen geçici olarak kaldırmak isteyebilirsiniz. Bunun için Ctrl + R tuşuna basmanız yeterli. Tekrar Ctrl + R yaptığınızda kaybolan grid ekranı tekrar gelecektir.
Shift + Mouse Tekerleği ile SQL görünüm Ayarları Yakınlaştır Uzaklaştır
Tablo veya Sütunları Kod Ekranına Sürükleme
Query Ekranında kodları manuel yazıyoruz. Ama Kolaylık olması için Tablo adları veya kolon adlarını Object Explorer ekranından açıp kod satırına sürükleyebilirsiniz.
Aşağıdaki Tablonun ismini sürükledim. Normalde elle yazsaydık
Select * From Personel yazardık. Ancak Sürüklediğimizde [dbo]. Geliyor. Bu kısım Database Şemasıdır. Her ne kadar şema belirlemesek de SQL varsayılan olarak dbo şemasını atar.
Şema Nedir?
Şema ne için kullanılır derseniz tek bir database’de hem finans, hem insankaynakları gibi birçok farklı kategori aynı database de tutmak istediğimizde tablolar hangi bölümün ayırt etmek için şema kullanırız.

Neden Köşeli Parantez Koydu
Bazı tablolarda boşluk koyulmuş olabiliriz. Bu düşünce ile SQL her sürüklemede köşeli parantez koyarak veriyi sürükler. Her iki kodda çalışır.
Tablo Sütunlarını Sorgu Ekranına Sürükleme
Bir de personel tablosunun kolonlarını sürükleyerek çağırmak istediğimizde aşağıdaki gibi tüm kolonları getirmiş olur. Bunun için Object Explorer’da ilgili tabloda iken Artıya basıp Columns klasörünü olduğu gibi kod ekranına sürükleyebilirsiniz. Ya da Colunms ekranını açıp belirli kolonları da sürükleyebilirsiniz. Yazmak veya sürüklemek hangisi kolayınıza giderse onu yapabilirsiniz.
SELECT id, sicil, ad, soyad, cinsiyet, unvan, telNo, birim, sehir, maas, tarih, fazlaMesai, prim, mailAdresi, Yıl, Yıldan Kalan Ay, Aydan Kalan Gün FROM [dbo].[personel]

Select’den sonraki yıldız karakterinin üzerine geldiğinizde tüm kolonları görmebilirsin
Select’den sonra yazdığımız Yıldız üzerine geldiğimiz de tüm kolonların ismini görebilirsiniz.

SQL Sorgu Sonucunu Grid’den Excel’e Kopyala
Bazen sorguladığımız sonuçları Excel’e veya başka bir yere kopyalamak isteriz. Bu durumda grid üzerinde tablo köşesinden seçip Ctrl + C yapabilir veya sağ tuş yapıp Copy ile tüm verileri Excel’e yapıştırabilirsiniz.


Ancak başlıklarını bu şekilde almayacaktır.

Bunun Yerine Grid tamamını seçtikten sonra “Copy Width Headers” seçerseniz

Veriler başlıkları ile Excel veya başka platformları yapıştırabilirsiniz.

Kapanış
İlk adımı attınız. Şimdi gerçek SQL hikayesi başlıyor
Gördüğünüz gibi SSMS, sadece bir pencere değil; veriyi yönetmek için elinizdeki en güçlü araç.
Artık komutları nerede yazacağınızı, nasıl çalıştıracağınızı, kodları nasıl açıklayacağınızı ve ekrana tamamen hâkim olmayı biliyorsunuz.
Bu temel, ileride yazacağınız her sorgunun omurgası olacak.
Ve şimdi… bir sonraki adımda veriyi sadece okumayacağız; kendi tablolarımızı oluşturup veri girmeye başlayacağız.
Yani birazdan… verinin mimarı olmaya hazırlanıyoruz.Formun Üstü
































Hadi bu tabloyu biraz veriyle dolduralım. Sizin için verileri ben bu şekilde doldurdum.
Tabloda tekrar eden verileri renklendiriyorum.
İşte! Tam da burada anlatmak istediğim sorunu görüyoruz Arkadaşlar.
Bakın neler oluyor:
Müşteri bilgileri için bir Müşterilertablosu oluşturuyoruz. Her Müşteriye bir Numara atayalım
Ürün bilgileri için bir Ürünler tablosu,
Ödeme yöntemleri için bir Ödeme Yöntemleritablosu oluşturuyoruz.
Ana Siparişler tablosunda ise artık;
Müşteri adı yazmak yerine, MüşteriID yazıp karşılık gelen numarasını yazıyoruz.
Ürün adı yazmak yerine ÜrünID yazıyoruz.
Artık “Ahmet Tekstil”in ismini değiştirmek için Müşteriler tablosundaki tek bir satırı güncellememiz yeterli oluyor!
İnanılmaz değil mi?
Şu an ekranda gördüğünüz, Siparişler tablomuzdaki MüşteriID aslında bir referanstır.
Buradaki ‘3’ rakamı, ‘Ahmet Bey’in kimlik kartı numarası gibi.
Siparişi Veren 3 Numarayı Alıp, Müşteriler tablosuna gittiğinde, birebir o numarayı buluyoruz ve ‘Ahmet Bey’in tüm bilgilerine bu sayede ulaşabiliyoruz.
Excel’de DÜŞEYARA Bilenler durumu kavrayacaktır.
İşte ilişkisel veri tabanınındaki bu işlemi İkincil Anahtar, yani Foreign Key dediğimiz kavram yapıyor.
Bu bağ, sadece bir bağlantı değil, aynı zamanda bir güvenlik mühendisidir. Veri bütünlüğünü otomatik olarak sağlar.
Örnek verecek olursak;
Siparişler tablosunda siparişi olan bir müşteriyi (örneğin ID’si 3 olan Ahmet Bey’i) Müşteriler tablosundan silmeye kalktığınızda, veri tabanı size izin vermez. Sizi uyarır: “Dur! Bu müşteriye ait aktif siparişler var. Önce onları silmelisin.” der
Ya da Ürünler tablosunda olmayan bir ÜrünID (mesela 999) ile yeni bir sipariş girmeye çalıştığınızda, veri tabanı yine reddedecektir: “Böyle bir ürün yok, lütfen geçerli bir ürün kodu girin.” Der size.
Düşünün, Örneğin Ziraat Bankasına gidip yeni bir hesap açtırdınız. Banka size hemen benzersiz hiçbir müşterisinde olmayan bir müşteri numarası verir.
İşte bu numara, bankanın devasa veri tabanının Müşteriler tablosundaki (Birincil Anahtarınız) yani Primary Key olarak sizin adınıza bir kayıt açılır.
Bu Tablomuzda Primary Keyiniz Müşteri No’dur.
ilaveten adınız, soyadınız, adresiniz, anne kızlık soyadınız gibi sadece sizi ilgilendiren sabit bilgileriniz tutulur.
Şimdi, Ziraat Bankasında bir işlem yaptığınızı hayal edin.
ATM’den Para çekiyorsunuz, İnternet Bankacılığından havale yapıyorsunuz veya fatura ödüyorsunuz.
Banka, bu işlemi kaydederken, Banka İşlemleri veya Hesaplar gibi bir tabloya şunları yazar: ‘Şu tarihte, şu ATM’den, 500 TL çekilmiştir.’
Ama asla bu kaydın içine sizin adınızı ve soyadınızı tekrar tekrar yazmaz! Yapacağı şey çok basittir.
Görselde gördüğünüz gibi O kaydın ‘MüşteriID’ sütununa sizin o benzersiz müşteri numaranızı (yani 1234567’i) yazar. Karşılığında da Banka İşlemlerinde 1234567’ye karşılık gelen kayıtlar size ait işlemlerdir.
İşte Banka İşlemleri Tablosundaki yazan 1234567 kaydı bir Foreign Key yani İkincil Anahtardır. ‘dir.
Banka, Mustafa Bey 500 TL çekti’ raporunu oluşturmak istediğinde, Banka İşlemleri tablosundaki MüşteriID’yi alır, Müşteriler tablosundaki ID ile birleştirir (JOIN işlemi yapar) ve işlemi yapan kişinin siz olduğunu anlar.
Excel’de Düşeyara bilenler ne demek istediğimi anlayacaklardır.
Yani, Primary Key (Müşteri Numaranız) sizi tanıtken, Foreign Key ile yaptığınız tüm işlemleri fiziksel bir bağ gibi birbirine bağlıyor.
Primary Key Benzersiz kayıtlara verilir. Foreign Key ise benzersiz kayıtlarla bağ kuran yapı diyebiliriz.
İşte veri tabanı ilişkilerinin büyüsü ve mantığı tam olarak budur.
Şimdi şu görsele bir bakın. Ne kadar çok tablo, ne kadar çok ilişki varsa, bir rapor almak için o kadar çok JOIN işlemi yapmamız işlemi yapmamız gerekiyor.
Tekar hatırlatıyım JOIN Excel’deki DÜŞEYARA gibidir. Onlarda Tablodaki verileri DÜŞEYARA ile çağırdığınızı düşünün
Bu da veritabanı için ekstra iş yükü demek ve raporlama için yapacağınız sorguları yavaşlayacaktır.
Yani, normalize edilmiş bir yapı, güncelleme için hızlıdır, ama sorgulama için nispeten yavaştır.













