Ana içeriğe atla

T-SQL Nedir? SQL Server için Transact-SQL’e Yeni Başlayanlar Rehberi

T-SQL’in ne olduğunu, SQL’i nasıl genişlettiğini ve SQL Server’da sorgulama, otomasyon ve işlemsel mantık için pratik örneklerle nasıl kullanılacağını öğrenin.
Güncel 17 Nis 2026  · 13 dk. oku

T-SQL (Transact-SQL), Microsoft SQL Server ile kullanım için özel olarak tasarlanmış, standart SQL’in Microsoft tarafından genişletilmiş halidir. SQL’in veri sorgulama ve yönetimi için temel yeteneklerinin tümünü içerirken, T-SQL daha güçlü ve dinamik veritabanı mantığı yazmanıza olanak tanıyan işlemsel programlama özellikleri ekler.

Bu rehberde, T-SQL’in nasıl çalıştığını ve gerçek senaryolarda nasıl etkili şekilde kullanılacağını göstereceğim. Ayrıca veritabanlarını sorgulama, saklı yordam yazma ve rutin iş akışlarını otomatikleştirme gibi yaygın kullanım alanlarını pratik örneklerle ele alacağım.

SQL’e yeniyseniz, SQL’e Giriş kursuyla başlayın; biraz deneyiminiz varsa Orta Düzey SQL kursunu deneyin. Ayrıca indirip kullanabileceğiniz SQL Temelleri Cheat Sheet’inin, en yaygın SQL fonksiyonlarını içerdiği için yararlı bir başvuru olduğunu düşünüyorum.

T-SQL Nedir ve SQL’den Nasıl Farklıdır

T-SQL’i daha iyi anlamak için, SQL’i evrensel bir dil, T-SQL’i ise uzmanlaşmış bir mesleki lehçe olarak düşünebilirsiniz.

SQL (Structured Query Language), ilişkisel veritabanlarıyla etkileşim kurmak için kullanılan standart dildir. Bildirimsel bir dildir; yani hangi sonucu istediğinizi (örneğin veri seçme veya filtreleme) belirtirsiniz ve sorgunun nasıl çalıştırılacağına veritabanı motoru karar verir.

Öte yandan T-SQL, Microsoft SQL Server’da kullanılan Microsoft’un SQL uzantısıdır. Standart SQL’in üzerine işlemsel programlama yetenekleri ekleyerek işlemlerin adım adım nasıl yürütüleceğini kontrol etmenize izin verir.

Bu tanımdan hareketle, T-SQL temel sorgulamanın ötesine geçen ve aşağıdakileri içeren çeşitli güçlü özellikler sunar:

  • Değişkenler: Betiklerde veriyi bellekte saklamak ve yeniden kullanmak için DECLARE ve SET anahtar sözcüklerini kullanabilirsiniz

  • Denetim akışı: Hangi kodun çalışacağını ve yürütmeyi kontrol etmek için IF, WHILE ve BEGIN...END gibi mantıkları kullanabilirsiniz.

  • Hata yönetimi: T-SQL, hatayı yakalayıp tüm işlemi çökertmeden düzgünce ele almayı sağlayan TRY...CATCH bloklarını sunar.

  • : Veritabanı içinde çalışan, yeniden kullanılabilir mantık blokları oluşturabilirsiniz.

SQL Server ile çalışıyorsanız, DataCamp’in bu konuda pek çok yararlı kaynağı olduğunu bilin. Başlamak için, veri analizi için SQL Server’ın temellerini öğrenmek üzere DataCamp’in SQL Server’a Giriş kursunu almanızı öneririm.

Temel T-SQL Söz Dizimi ve Yapısı

T-SQL, standart SQL ile aynı temel söz dizimini kullanır; dolayısıyla SQL’e aşinaysanız, kolayca anlayacaksınız. Bu bölümde, basit ve pratik örneklerle T-SQL’in en yaygın deyimlerini anlatacağım.

SELECT, INSERT, UPDATE, DELETE

Bu komutlar, T-SQL’in üzerinde çalıştığı Microsoft SQL Server da dahil olmak üzere çoğu SQL lehçesinde standarttır.

SELECT

Belirli tablolardan veri çekmek için kullanılır. Örneğin, aşağıdaki sorgu Customers tablosundan FirstName ve LastName alanlarını getirir.

-- Retrieve data from the Customers table
SELECT FirstName, LastName
FROM Customers
WHERE Country = ‘USA’;  -- Filters rows to only customers in the USA

INSERT

Bu komut tabloya yeni veri eklemek için kullanılır. Aşağıdaki sorgu customers tablosuna yeni bir satır ekler.

-- Insert a new row into a table
INSERT INTO customers (FirstName, city)
VALUES (‘Alice’, ‘Nairobi’);

UPDATE

Bu komut, veritabanındaki mevcut verileri değiştirmek için kullanılır. Örneğin, aşağıdaki sorgu “Alice” adlı kullanıcı için şehir adını “Mombasa” olarak değiştirir.

-- Update existing data
UPDATE customers
SET city = ‘Mombasa’
WHERE FirstName= ‘Alice’; -- Always use WHERE to avoid updating all rows

DELETE

Bu komut veriyi veritabanından siler. Örneğin, aşağıdaki sorgu FirstName değeri “Alice” olan satırı kaldırır.

-- Delete data from a table
DELETE FROM customers
WHERE FirstName= ‘Alice’; -- Filters which rows to remove

Daha fazla bilgi için, SQL Server fonksiyonlarını kullanarak verileri özetleme ve analiz etmeyi öğrenebileceğiniz SQL Server Temelleri beceri yolumuzu denemenizi öneririm.

Yığın (batch) yürütme

T-SQL’in kendine özgü özelliklerinden biri, kodu yığınlar halinde yürütmesidir. Yığın, SQL Server’a tek bir birim olarak gönderilen bir veya daha fazla SQL deyiminden oluşur.

GO anahtar sözcüğü yığınları ayırmak için kullanılır:

-- First batch
SELECT * FROM Customers;
GO  

-- Second batch (executed separately)
SELECT * FROM Orders;
GO

Şunları not etmek önemlidir:

  • GO bir T-SQL komutu değildir, ancak SQL Server Management Studio gibi araçlar tarafından tanınır.

  • Bir yığının sonunu ve diğerinin başlangıcını bildirir.

  • Değişkenler yığınlar arasında kalıcı değildir. Geçici nesneler ise aynı oturum içinde yığınlar arasında kalıcıdır.

Açıklamalar ve biçimlendirme

T-SQL’de, SQL kodunuzu okumayı ve bakımını kolaylaştırmak için açıklamalar kullanabilirsiniz. Aşağıda gösterildiği gibi tek satırlı veya çok satırlı açıklamalar kullanabilirsiniz:

-- This query retrieves all customers
SELECT * FROM Customers;
/* This query retrieves customers
   from the USA and Canada */
SELECT * 
FROM Customers
WHERE Country IN ('USA', 'Canada');

T-SQL’de Değişkenler ve Veri Türleri

T-SQL, değerleri değişkenlerde saklamanıza ve sorgularda kullanmanıza olanak tanır; böylece betikleriniz daha esnek ve dinamik olur. Bu değişkenlerin nasıl oluşturulacağına bakalım.

Değişken tanımlama

Bir değişken oluşturmak için DECLARE anahtar sözcüğünü kullanırsınız. Geleneğe göre, tüm T-SQL değişken adları @ sembolüyle başlamalıdır.

 -- Declares a variable to store text
DECLARE @CustomerName VARCHAR(50); 

Değer atama

Değer atamak için SET (tekil değerler için önerilir) veya SELECT (tablodan çekerken kullanışlı) kullanabilirsiniz.

-- Assign using SET 
SET @CustomerName = 'Alice';

-- Assign using SELECT 
SELECT @Age = 30;

Örneğin, aşağıdaki sorgu, değeri sabitlemek yerine bir değişken kullanarak Londra’da yaşayan müşterilerin bir listesini döndürür.

-- Assign the variable city 
DECLARE @City VARCHAR(50);
SET @City = 'London';

-- Use the variable in a query
SELECT name, city
FROM customers
WHERE city = @City; -- Filters results based on variable value

Yaygın veri türleri

Aşağıdakiler, SQL veri türleri genelinde yaygın olarak kullanılan bazı T-SQL veri türleridir:

  • INT: Tam sayılar, örneğin 1, 100.

  • VARCHAR(n): İsim ve e-posta gibi değişken uzunluklu metinler.

  • DATETIME: Tarih ve saat değerleri

  • DECIMAL(p, s): Para birimi gibi sabit duyarlıklı sayılar.

T-SQL’de Denetim Akışı (IF, WHILE, BEGIN...END)

T-SQL’in avantajlarından biri, sorgularınıza programlama mantığı eklemenize izin vermesidir. Sadece veri çekmek yerine, kodun nasıl ve ne zaman çalışacağını kontrol edebilirsiniz. Aşağıda denetim akışı mantığına örnekler bulunuyor.

IF...ELSE (Koşullu yürütme)

IF deyimi, yalnızca belirli bir koşul sağlandığında bir kod bloğunu yürütmenize olanak tanır. Koşul yanlışsa, alternatif bir işlem sağlamak için ELSE kullanabilirsiniz.

Örneğin, aşağıdaki sorgu toplam sipariş sayısını sayar; sayı 100’ün üzerindeyse “Yüksek sipariş hacmi”, 100’ün altındaysa “Düşük sipariş hacmi” yazdırır.

DECLARE @TotalOrders INT;

SELECT @TotalOrders = COUNT(*) 
FROM Orders;  -- Count total number of orders

IF @TotalOrders > 100
BEGIN
    PRINT 'High order volume';  -- Runs if condition is true
END
ELSE
BEGIN
    PRINT 'Low order volume';  -- Runs if condition is false
END

WHILE döngüleri (Yinelemeli mantık)

WHILE döngüsü, bir koşul doğru olduğu sürece bir kod bloğunu tekrarlar. Bu, “parça parça” yapılması gereken işler veya test verisi üretimi için kullanışlıdır.

Aşağıdaki sorgu sayacı 1’den başlatır ve 5’e ulaşana kadar mevcut sayıyı yazdırıp 1 artırır.

DECLARE @Counter INT = 1;

WHILE @Counter <= 5
BEGIN
    PRINT @Counter;  -- Prints numbers from 1 to 5
    SET @Counter = @Counter + 1;  -- Increment counter
END

BEGIN...END (Deyimleri gruplama)

BEGIN...END akışı, birden fazla deyimi tek bir blok halinde gruplamak ve tümünün atomik olarak birlikte yürütülmesini sağlamak için kullanılır.

Örneğin, aşağıdaki sorgu hem “ABD’de müşteri bulundu” hem de “İşleme devam ediliyor.” ifadelerini yazdırır. BEGIN...END olmadan, IF’ten sonraki yalnızca ilk deyim yürütülürdü.

IF EXISTS (SELECT 1 FROM Customers WHERE Country = 'USA')
BEGIN
    PRINT 'Customers found in USA';
    PRINT 'Proceeding with operation';  -- Both statements run together
END

Denetim akışı ne zaman kullanışlıdır?

T-SQL’de denetim akışı yaygın olarak şu amaçlarla kullanılır:

  • Otomasyon: Zamanlanmış betikleri veya bakım görevlerini çalıştırma
  • Veri doğrulama: Veri ekleme veya güncellemeden önce koşulları kontrol etme
  • Yığın işleme: Veriyi adımlarla veya döngülerle işleme
  • İş mantığı: Kuralları doğrudan veritabanı içinde uygulama

T-SQL’de Saklı Yordamlar

Saklı yordam, tekrar tekrar kullanabileceğiniz kaydedilmiş T-SQL deyimleri koleksiyonudur. Uygulamanızdan her seferinde sunucuya devasa bir kod bloğu göndermek yerine, kodu sunucuda saklar ve yalnızca adını çağırırsınız.

Saklı yordamlar, defalarca yeniden kullanılabildikleri için faydalıdır. Önceden derlenmiş yürütme planları verimliliği artırır ve karmaşık mantığı basit bir arayüzün arkasında gizler.

Örneğin, bu saklı yordam verdiğiniz kimliğe göre bir müşterinin ad ve soyadını getirir.

-- Create a stored procedure named GetCustomerByID
CREATE PROCEDURE GetCustomerByID
    @CustomerID INT  -- Input parameter to pass a customer ID
AS
BEGIN
    -- Select the first and last name of a customer
    SELECT FirstName, LastName
    FROM Customers
    WHERE CustomerID = @CustomerID; -- Filter to match the given ID
END;

Ardından saklı yordamı aşağıdaki sorguyla çalıştırabilirsiniz:

-- Calls the procedure
EXEC GetCustomerByID @CustomerID = 1;  

T-SQL’de Fonksiyonlar

T-SQL, veriyi dönüştürmek için kullanılan yerleşik fonksiyonlar ve kullanıcı tanımlı fonksiyonlar (UDF) içerir.

Yerleşik fonksiyonlar

Bu fonksiyonlar SQL Server’da hazır bulunur ve doğrudan sorgularda kullanılabilir.

Metin (string) fonksiyonu

Bu, metin veri türlerini dönüştüren bir fonksiyondur. Örneğin, aşağıdaki sorgu Customers tablosundaki tüm adları alır ve büyük harfe çevirir.

-- Converts text to uppercase
SELECT UPPER(FirstName)  
FROM Customers;

Tarih fonksiyonu

Bu fonksiyon tarih fonksiyonlarını dönüştürür. Aşağıdaki sorgu mevcut sistem tarih ve saatini döndürür.

-- Returns current date and time
SELECT GETDATE();  

Toplam (aggregate) fonksiyon

Bunlar, bir tablodaki değerleri toplulaştırmak için kullanılan fonksiyonlardır. Örneğin, aşağıdaki sorgu Customers tablosundaki toplam satır (müşteri) sayısını sayar.

-- Counts rows
SELECT COUNT(*) AS TotalCustomers
FROM Customers;  

Kullanıcı tanımlı fonksiyonlar (UDF)

Mantığı birden fazla sorguda yeniden kullanmak için kendi fonksiyonlarınızı da oluşturabilirsiniz. 

Skaler fonksiyon

Skaler fonksiyon tek bir değer döndürür ve biçimlendirme veya hesaplama gibi tek bir hesaplanmış değere ihtiyaç duyduğunuzda kullanışlıdır. Aşağıdaki sorguda fonksiyon, ad ve soyadı girdisi alır ve tek bir tam ad olarak döndürür.

-- Create a function that combines the first and last name
CREATE FUNCTION GetFullName 
(@FirstName VARCHAR(50), @LastName VARCHAR(50))
RETURNS VARCHAR(100)
AS
BEGIN
    RETURN @FirstName + ' ' + @LastName; -- Concatenates the two values
END;

Tablo değerli fonksiyonlar

Tablo değerli fonksiyonlar bir tablo döndürür. Örneğin, aşağıdaki fonksiyon belirtilen ülkeye ait tüm müşterilerin olduğu bir tablo döndürür.

-- Create a table-valued function named GetCustomersByCountry
CREATE FUNCTION GetCustomersByCountry (@Country VARCHAR(50))
RETURNS TABLE -- Specifies that the function returns a table
AS
RETURN
(
    -- Select all columns from the Customers table
    SELECT *
    FROM Customers
    WHERE Country = @Country -- Filter rows by the given country
);

SQL Server Geliştiricisi kariyer yolumuzun tamamını denemenizi öneririm; yalnızca saklı yordamları oluşturma, güncelleme ve çalıştırma becerilerini kazandırmakla kalmayıp, toplulaştırma fonksiyonları, birleştirme, ekleme ve silme işlemleri ve çok daha fazlasında da yardımcı olacaktır.

T-SQL’de Hata Yönetimi

T-SQL, tüm betiği durdurmadan hataları ele almak için TRY...CATCH bloklarını kullanır. Bu, betiklerin beklenmedik şekilde çökmesini engellediği ve hata ayıklama veya günlükleme için anlamlı mesajlar döndürmenize olanak tanıdığı için önemlidir.

Örneğin, aşağıdaki sorgu hataya neden olan bir hesaplamayı çalıştırmayı dener, hatayı yakalar ve çökme yerine okunabilir bir hata mesajı yazdırır.

BEGIN TRY
    -- Attempt to run this code
    SELECT 1 / 0;  -- This causes a divide-by-zero error
END TRY
BEGIN CATCH
    -- Runs if an error occurs in the TRY block
    PRINT 'An error occurred: ' + ERROR_MESSAGE(); -- Displays the error message
END CATCH;

T-SQL’de İşlemler (Transactions)

Bir işlem (Transaction), bir grup işlemin ya hep birlikte başarılı olmasını ya da birlikte başarısız olmasını sağlar. Bu, güç kesintisi güncellemenin ortasında olsa bile veritabanınızın tutarlı kalmasını garanti eden ACID ilkesini izler.

Aşağıdaki örnekte, işlem bir hesaptan diğerine para aktarır ve her iki değişikliği birlikte kaydeder.

BEGIN TRANSACTION; -- Start the transaction

-- Deduct money from Account 1
UPDATE Accounts
SET Balance = Balance - 100
WHERE AccountID = 1;

-- Add money to Account 2
UPDATE Accounts
SET Balance = Balance + 100
WHERE AccountID = 2;

COMMIT; -- Save all changes permanently

Bir şeyler ters giderse, işlemi iptal etmek ve veriyi önceki durumuna döndürmek için ROLLBACK fonksiyonunu kullanabilirsiniz.

-- Undo all changes made in the current transaction
ROLLBACK; 

T-SQL’de işlemler, özellikle finansal uygulamalar gibi kısmi güncellemelerin tutarsızlıklara yol açabileceği kritik sistemlerde veri bütünlüğünü sağladığı için önemlidir.

SQL Server’da işlemler ve hata yönetimini kapsayan SQL Server’da İşlemler ve Hata Yönetimi kariyer yolumuzu deneyebilirsiniz.

Veri Analizi için Yaygın T-SQL Özellikleri

T-SQL, özellikle veri profesyonelleri için kullanışlı bazı araçlar içerir. Bazı örneklere ve bunların veri analizinde nasıl uygulanacağına bakalım.

Pencere fonksiyonları

Pencere fonksiyonları, satırları tek bir sonuçta gruplamadan satırlar arasında hesaplamalar yapar. Çoğunlukla sıralama, kümülatif toplamlar ve ileri analitiklerde kullanılır.

Aşağıdaki örnekte, sorgu her müşteriye CustomerID değerine göre benzersiz bir satır numarası atar.

-- Assigns row numbers to customers
SELECT 
    FirstName,
    ROW_NUMBER() OVER (ORDER BY CustomerID) AS RowNum -- Assigns row numbers
FROM Customers;

Sorguda;

  • ROW_NUMBER(): Benzersiz satır numarası atar

  • RANK(): Eşitliklerde boşluk bırakarak sıra atar

  • OVER(): Pencereyi tanımlar (sıralama/bölümlendirme)

İndirip kullanabileceğiniz SQL Pencere Fonksiyonları Cheat Sheet’imize göz atmanızı öneririm; burada SQL’deki farklı pencere fonksiyonu türleri için kullanışlı bir başvuru rehberi bulacaksınız. Ayrıca, veriyi özetlemek için pencere fonksiyonları da dahil olmak üzere, veri analizinde T-SQL kullanımını daha fazla öğrenmek için Orta Düzey SQL Server kursumuza da göz atın.

Ortak tablo ifadeleri (CTE)

CTE’ler (Common Table Expressions), bir sorgu içinde yeniden kullanabileceğiniz geçici bir sonuç kümesi oluşturur. Aşağıdaki sorgu, ABD müşterilerinin geçici bir listesini oluşturur ve ardından buradan veri çeker.

-- Define a CTE
WITH CustomerCTE AS (
    SELECT FirstName, Country
    FROM Customers
    WHERE Country = 'USA' -- Filter only USA customers
)

-- Query the CTE
SELECT *
FROM CustomerCTE;

Öte yandan, özyinelemeli CTE’ler tanımlarının içinde kendilerine başvuruda bulunan özel bir CTE türüdür ve sorgunun tekrarlı işlemler yapmasına olanak tanır. Bu, organizasyon şemaları gibi hiyerarşik verilerle çalışmak için idealdir.

CTE’leri ve özyinelemeli CTE’leri içeren gelişmiş sorguları pratik örneklerle nasıl yazacağınızı öğrenmek için SQL Server’da Hiyerarşik ve Özyinelemeli Sorgular kursumuzu almanızı öneririm.

Geçici tablolar

Geçici tablolar, bir oturum sırasında kısa süreli kullanım için veriyi saklar. Veriyi aşamalandırma, çok adımlı dönüşümleri basitleştirme veya karmaşık sorgularda performansı artırma için kullanışlıdır.

t-SQL’de geçici tabloların nasıl çalıştığını göstermek için aşağıdaki üç sorgu bloğunu ele alalım. İlk blok bir geçici tablo oluşturur, sonra müşteri verisiyle doldurur ve aynı oturum içinde sorgular.

-- Create a temporary table
CREATE TABLE #TempCustomers (
    FirstName VARCHAR(50),
    Country VARCHAR(50)
);
-- Insert data into the temporary table
INSERT INTO #TempCustomers
SELECT FirstName, Country
FROM Customers;
-- Retrieve data from the temporary table
SELECT * FROM #TempCustomers;

Geçici tabloların # ile öneklenmiş olduğunu ve oturum sona erdiğinde otomatik olarak silindiklerini not etmek önemlidir.

T-SQL ve Diğer SQL Lehçeleri

Tüm SQL lehçeleri aynı temeli paylaşır, ancak her veritabanı sistemi kendi söz dizimini ve özelliklerini ekler. T-SQL, özel olarak Microsoft SQL Server için tasarlanmıştır; bu da nasıl çalıştığını ve en iyi nerede kullanıldığını etkiler.

T-SQL vs. PostgreSQL (PL/pgSQL)

PostgreSQL, T-SQL’e benzer şekilde işlemsel mantık için PL/pgSQL kullanır, ancak farklı söz dizimi ve güçlü yönlere sahiptir. Aşağıdaki tablo bu farkları özetler:

Kategori

T-SQL (SQL Server)

PostgreSQL (PL/pgSQL)

İşlemsel dil

T-SQL’e gömülü

PL/pgSQL kullanır

Değişken söz dizimi

DECLARE @count INT;

SET @count = 10;

DECLARE count INT := 10;

Değişken adlandırma

@ öneki kullanır (Örneğin, @var)

Önek yok (Örneğin, var)

Blok yapısı

Daha basit, çoğu zaman örtük veya BEGIN…END

Açık: DO, DECLARE, BEGIN gerekir

Örnek blok

Standart T-SQL yığını

DO $ ... $ içine sarılır

Gelişmiş veri türleri

Sınırlı

Gelişmiş yerel destek (JSONB, Diziler, Geometrik)

Araçlar ve entegrasyon

SQL Server araçlarıyla sıkı entegrasyon

Platformlar arası esnek

Ekosistem

Windows, Azure, SSMS ve Power BI için optimize

Açık kaynak, çoklu platform

İlişkisel veritabanları tasarlamayı ve sorgularınızı performansı artıracak şekilde yapılandırmayı öğrenmek için Veritabanı Yöneticileri için SQL beceri yolumuza göz atın.

T-SQL vs. MySQL

MySQL da işlemsel SQL’i destekler, ancak daha basit ve sınırlı bir yaklaşımla. Aşağıdaki tablo bu iki lehçenin söz dizimi ve özellik farklarını karşılaştırır.

Kategori

T-SQL (Microsoft)

MySQL

Satır sınırlama

SELECT TOP 5 * FROM Table

SELECT * FROM Table LIMIT 5

Hata yönetimi

Güçlü TRY...CATCH blokları

Daha sınırlı DECLARE HANDLER söz dizimi

İşlemsel mantık

Zengin, yapılandırılmış ve yüksek düzeyde programlanabilir

Daha basit ve sınırlı işlemsel özellikler

Analitik

Pencere fonksiyonları ve CTE’ler

Temel analitik özellikler (yeni sürümlerde gelişiyor)

Ekosistem

SQL Server ve kurumsal araçlarla bağlantılı

Hafif; LAMP yığınının (Linux, Apache vb.) kalbinde

En uygun kullanım

Karmaşık iş mantığı ve veri ambarı

Web uygulamaları ve yüksek hızlı okuma işlemleri

T-SQL’in Gerçek Dünya Kullanım Alanları

T-SQL, basit veri sorgulamanın ötesinde yaygın olarak kullanılır. Bir veri profesyoneli olarak faydalı bulduğum örneklerden bazıları şunlardır:

Raporlama sorguları

T-SQL, raporların doğrudan veritabanından üretilmesinde yaygın olarak kullanılır. Örneğin, bölgeye göre satışları toplulaştırabilir veya pencere fonksiyonlarını kullanarak en iyi performans gösteren ürünleri sıralayabilirsiniz.

ETL süreçleri (Extract, Transform, Load)

T-SQL, veri mühendisleri tarafından veri hatlarında veriyi hazırlamak ve taşımak için kullanılır. Örneğin, aşama (staging) tablolarından veri çıkarabilir, biçimleri dönüştürebilir, tutarsızlıkları temizleyebilir ve nihai raporlama tablolarına yükleyebilirsiniz.

Veri temizleme betikleri

Veri tabanınızda milyonlarca satır ve tutarsız adres biçimleri varsa, WHILE döngüleri veya CTE’ler kullanan bir T-SQL betiğiyle yinelemeleri tespit edebilir, eksik değerleri doldurabilir veya biçimleri standartlaştırabilirsiniz.

Uygulamalarda arka uç mantığı

Birçok uygulama, iş mantığını veritabanı içinde ele almak için T-SQL’e dayanır. CRUD işlemleri için saklı yordamları kullanabilir, veri eklemeden önce doğrulamalar yapabilir veya kritik işlemler için işlem (transaction) yönetimini kullanabilirsiniz.

Yaygın Hatalar ve En İyi Uygulamalar

T-SQL, gelişmiş veritabanı sorgulama için faydalı olsa da, birkaç yaygın sorunla karşılaşmanız olasıdır. T-SQL kullanırken karşılaştığım yaygın hatalardan bazıları şunlardır:

  • Kümeye dayalı mantık yerine döngülerin aşırı kullanımı: WHILE gibi döngüleri satır-satır işlemler için kullanmak performansı yavaşlatabilir. SQL, verilerle küme halinde çalışmak üzere tasarlanmıştır.

  • Zayıf indeks farkındalığı: İndekslerin doğru kullanılmaması, özellikle büyük tablolarda sorguları yavaşlatabilir.

  • İşlemleri doğru kullanmamak: Birbiriyle ilişkili birçok işlemi bir işlem (transaction) içine almadan çalıştırmak, bir şeyler yarıda ters giderse verinizi tutarsız bırakabilir.

  • Hata yönetimini görmezden gelmek: TRY...CATCH bloklarını atlamak, hata ayıklamayı zorlaştırır ve üretimde betiklerin sessizce veya öngörülemez şekilde başarısız olmasına neden olabilir.

Daha verimli ve güvenilir sorgular yazmanıza yardımcı olacak önerdiğim en iyi uygulamalar şunlardır:

  • Kümeye dayalı sorguları tercih edin: Mümkün olduğunda döngüler yerine JOIN, GROUP BY ve pencere fonksiyonlarını kullanın. Bu, SQL Server’ın veriyi verimli şekilde işleyecek biçimde tasarımına uygundur.

  • Okunabilir, bakımı kolay kod yazın: Açık adlandırma kuralları kullanın, sorguları tutarlı biçimde biçimlendirin ve gerektiğinde açıklamalar ekleyin. Bu, kodunuzu okunabilir, hata ayıklaması ve iş birliği yapması kolay hale getirir.

  • Yordamları test edin: Saklı yordamları ve sorguları farklı girdilerle her zaman test edin; doğru çalıştıklarından ve uç durumları ele aldıklarından emin olun.

Sonuç

T-SQL, programlama yetenekleri ekleyerek standart SQL’i genişletir ve otomasyon, veri işleme ve analiz için esnek ve güçlü bir araç haline getirir. Değişkenler, saklı yordamlar ve hata yönetimi gibi özelliklerle daha dinamik ve verimli veritabanı çözümleri oluşturmanıza olanak tanır.

Bir sonraki adım olarak, yetkin bir veri analisti olmak için SQL’de Associate Veri Analisti kariyer yolumuzu denemenizi öneririm. SQL’de Raporlama kursumuz da karmaşık raporlar oluşturma konusunda yetkinleşmenize yardımcı olacaktır. Son olarak, SQL’i iş sorunlarını çözmek için kullanmadaki ustalığınızı sergilemek ve diğer profesyoneller arasında öne çıkmak için SQL Associate Sertifikamızı almanızı öneririz.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Veri analitiği, iş zekâsı ve veri bilimi alanlarında pratik deneyime sahip Veri Bilimi Teknik Yazarı. SQL, Python, Power BI, Databricks ve veri mühendisliği üzerine, gerçek dünya analitik çalışmalarına dayanan, uygulamaya dönük ve sektöre odaklı içerikler yazıyorum. Yazılarım teknik derinlikle iş etkisi arasındaki köprüyü kurarak profesyonellerin veriyi güvenle karara dönüştürmelerine yardımcı olur.

T-SQL SSS

T-SQL, standart SQL’den nasıl farklıdır?

SQL esas olarak bildirimseldir; T-SQL ise bildirimsel sorgulamayı işlemsel programlama ile birleştirerek işlemlerin nasıl yürütüleceğini kontrol etmenize olanak tanır.

T-SQL öğrenmeden önce SQL öğrenmem gerekir mi?

Evet, T-SQL doğrudan SELECT, INSERT, UPDATE ve DELETE gibi temel SQL kavramları üzerine kurulduğu için SQL’in temel düzeyde anlaşılması önemlidir.

T-SQL tüm SQL lehçelerinde mevcut mu?

Hayır, T-SQL Microsoft ekosistemine özeldir ve başlıca Microsoft SQL Server ve Azure SQL gibi ilgili araçlarla kullanılır.

Saklı yordamlar nedir ve neden kullanışlıdır?

Saklı yordamlar, veritabanı içinde çalışan yeniden kullanılabilir T-SQL kod bloklarıdır. Performansı artırmaya, tutarlılığı sağlamaya ve uygulama mantığını basitleştirmeye yardımcı olurlar.

T-SQL’de pencere fonksiyonları ne için kullanılır?

Pencere fonksiyonları, veriyi gruplamadan satırlar arasında karşılaştırma yapmak, sıralama ve kümülatif toplamlar gibi ileri analiz görevleri için kullanılır.

Konular

DataCamp ile SQL öğrenin

Program

Veritabanı Yöneticileri için SQL

16 sa
Kendine güvenen, yüksek kazançlı bir SQL DBA olmak için ihtiyacınız olan veritabanı becerilerini kazanın. PostgreSQL veritabanınızı nasıl oluşturacağınızı, büyüteceğinizi ve yöneteceğinizi öğrenin.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör