T-SQL (Transact-SQL), Microsoft SQL Server ve Sybase Adaptive Server gibi veri tabanı yönetim sistemlerinde kullanılan SQL dilinin sürümünün bir sürümüdür. Aşağıda, T-SQL’de sıklıkla kullanılan temel taşıma ve bunların açıklama örnekleriyle birlikte verilmiştir
1.SELECT : Veritabanından veri çekmek için kullanılır.
SELECT FirstName, LastName
FROM Employees;
//Employees tablosundaki FirstName ve LastName sütunlarını döndürür.
2. WHERE: Kayıtları belirli bir koşula göre saklamak için kullanılır.
SELECT *
FROM Employees
WHERE Age > 30;
// Age yani yaş değerinin 30'dan büyük olan tüm çalışanları listeler.
3. INSERT: Yeni bir kayıt seçmek için kullanılır.
INSERT INTO Employees (FirstName, LastName, Age)
VALUES ('John', 'Doe', 28);
// Employees tabloya yeni bir çalışan ekler.
4. UPDATE : Var olan bir kaydı güncellemek için kullanılır.
UPDATE Employees
SET Age = 29
WHERE FirstName = 'John' AND LastName = 'Doe';
//Adı "John Doe" olan çalışanın yaşını 29 olarak günceller.
5. DELETE : Tablodan belirli bir kaydı silmek için kullanılır.
DELETE FROM Employees
WHERE Age < 25;
// Yaşı 25'ten küçük olan tüm çalışanlar siler.
6. JOIN :Birden fazla tabloyu belirli bir koşula göre birleştirmek için kullanılır.
SELECT Employees.FirstName, Departments.DepartmentName
FROM Employees
INNER JOIN Departments
ON Employees.DepartmentID = Departments.DepartmentID;
//Çalışanların adları ve çalışmaları departmanların adlarını döndürür.
7. GROUP BY : Sonuçları belirli bir sütuna göre gruplandırmak için kullanılır.
SELECT DepartmentID, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY DepartmentID;
// Her departmanda kaç çalışan olduğunu listeliyor.
8. HAVING : Gruplamanın ardından depolamak için kullanılır.
SELECT DepartmentID, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY DepartmentID
HAVING COUNT(*) > 5;
//Sadece 5'ten fazla çalışana sahip departmanları listeler.
9. ORDER BY: Sonuçları belirli bir sütuna göre sıralamak için kullanılır.
SELECT FirstName, LastName, Age
FROM Employees
ORDER BY Age DESC;
//Çalışanları yaşlarına göre azalan sırada listeler.
10. CASE :Şartlı mantık için kullanılır.
SELECT FirstName, LastName,
CASE
WHEN Age < 30 THEN 'GENÇ'
WHEN Age BETWEEN 30 AND 50 THEN 'ORTA YAŞLI'
ELSE 'Senior'
END AS AgeCategory
FROM Employees;
//Çalışanların yaşlarına göre GENÇ veya ORTA YAŞLI kategorilerinden birini döndürür.
11. STORED PROCEDURE : Saklı bir işlemi çalıştırmak için kullanılır.
CREATE PROCEDURE GetEmployeesByDepartment
@DepartmentID INT
AS
BEGIN
SELECT FirstName, LastName
FROM Employees
WHERE DepartmentID = @DepartmentID;
END;
// GetEmployeesByDepartment adında bir saklı prosedür oluşturur. Verilen DepartmentID parametresine göre çalışanları döndürür.
12. TRANSACTION : Bir işlem bloğunu atomik bir şekilde yürütmek için kullanılır.
BEGIN TRANSACTION;
UPDATE Accounts
SET Balance = Balance - 100
WHERE AccountID = 1;
UPDATE Accounts
SET Balance = Balance + 100
WHERE AccountID = 2;
COMMIT;
// Hesaplar arası para transferi işlemi gerçekleştirir. İşlem tamamlanmazsa, ROLLBACK ile geri alınabilir.
13. VIEW : Sanal bir tablo oluşturmak için kullanılır.
CREATE VIEW EmployeeDetails AS
SELECT FirstName, LastName, DepartmentName
FROM Employees
INNER JOIN Departments
ON Employees.DepartmentID = Departments.DepartmentID;
//Çalışan ve departman bilgilerini birleştirerek bir görünüm oluşturur.
14. INDEX :Sorgu performansını artırmak için kullanılır.
CREATE INDEX idx_Employee_LastName
ON Employees (LastName);
//Employees tablosundaki LastName sütununa bir indeks ekler.
15. CURSOR : Satır satır işlem yapmak için kullanılır.
DECLARE EmployeeCursor CURSOR FOR
SELECT FirstName, LastName
FROM Employees;
OPEN EmployeeCursor;
FETCH NEXT FROM EmployeeCursor;
CLOSE EmployeeCursor;
DEALLOCATE EmployeeCursor;
//Çalışanları satır satır işler.
OKU–>SQL Nedir? DDL, DML, DCL, TCL ve Sık kullanılan komutları nelerdir?