Transact SQL Kavramı – Not

  • Microsoft’un veri tabanı sorgulama dilidir. Transact-SQL, SQL Server ve istemci (client) arasında iletişimi sağlayan SQL sorgulama dilinin gelişmiş bir versiyonudur. Transact Structured Query Language kelimelerinin kısaltmasıdır.
  • T-SQL kullanarak veri tabanına kayıt eklenebilir, silinebilir, güncellenebilir ya da sorgulama ve raporlama yapılabilir.
  • T-SQL ile döngü veya mantıksal işlemler yapmak için bir derleyiciye gerek yoktur.
  • Herhangi bir programlama dili öğrenmeden de T-SQL ile tüm amaçlarınıza hitap edecek projeler gerçekleştirebilirsiniz.
  • T-SQL ifadelerini çalıştırabilmek için bir Management Studio ile SQL Server’a erişmeniz gerekir.
  • Komutları işlevlerine göre şu şekilde ayrılır:
    • DDL(Data Definition Language): Veri Tanımlama Dili
    • DML (Data Manipulation Language): Veri İşleme Dili
    • DCL (Data Control Language): Veri Kontrol Dili

Veri Tanımlama Dili (DDL)

Sql Server içinde veritabanı, tablo ve kullanıcı tanımlı veri tipleri gibi nesneler oluşturmak ve bunları yapılandırmak için kullanılır. Temel komutları şunlardır:

  • CREATE  (Nesne oluşturmak)
  • ALTER (Nesnede değişiklik yapmak)
  • DROP (Nesne silmek)

Not: ALTER komutu nesnelerin “adını” değiştirmek için kullanılamaz.

 

Kullanılışı:

CREATE    nesne_tipi      nesne_adi
 
CREATE DATABASE Person

Person isimli veritabanı oluşturur.

—————————————————————

CREATE TABLE Personel 
(
Personel_Id int, 
AD varchar (10),
SOYAD varchar(10),
)

Personel isimli bir tablo oluşturur. Tablo Sütunları da Personel_Id, AD ve SOYAD dır.

Sütun adında türkçe karakter veya boşluk kullanılacaksa ifade köşeli paranteze alınmalı [ ] Yani şöyle:

 [BABA ADI]

—————————————————————

ALTER    nesne_tipi    nesne_adi    
degisim_cumlesi
ALTER TABLE Personel
ADD BABA_AD varchar(20) NOT NULL

Personel isimli tabloya BABA_AD isimli sütun ekler. 20 karakter olarak ayarlanan bu  alan ve boş bırakılamaz.

—————————————————————

ALTER       nesne_tipi        nesne_adi

degisim_cumlesi

ALTER TABLE Personel
ALTER COLUMN AD varchar (5)

AD isimli sütunu sadece 5 karakter girilebilecek şekilde günceller.

—————————————————————

DROP    nesne_tipi   nesne_adi

DROP TABLE Personel

Personel isimli tabloyu tamamen siler.

—————————————————————

Veri Tabanı Adı Değiştirme

SP_RENAMEDB     eski_ad,      yeni_ad

SP_RENAMEDB  Person,  Elemanlar

Person isimli veritabanı Elemanlar olarak güncellenir.

Tablo Adı Değiştirme

SP_RENAME      eski_ad,      yeni_ad

SP_RENAME    Personel,    insanlar

Personel isimli tablo adı insanlar olarak güncellenir.

—————————————————————

Veri İşleme Dili (DML)

Veri tabanı içindeki veriler ile ilgili işlemler yapılmasını sağlar. Temel komutları şunlardır:

  • SELECT (Verileri seçmek)
  • INSERT  (Yeni veriler eklemek)
  • UPDATE  (Veriler üzerinde değişiklik-güncelleme yapmak)
  • DELETE  (Veri silmek)

 

Kullanılışı:

SELECT   sütunadi1, sütunadi2, sütunadi3 …

FROM    tablo_adi

WHERE  koşul

SELECT       AD, SOYAD      FROM      Personel

Personel tablosundan ad ve soyad sütunları seçilir.

—————————————————–

SELECT   *  FROM Personel

Personel tablosundaki her şey seçilir.

—————————————————–

 SELECT * FROM Personel WHERE AD='ALİ'

PERSONEL tablosunun AD bölümündeki ALİ leri seçer.

—————————————————–

SELECT * FROM Personel WHERE AD LIKE '%U%'

Personel tablosundan ADının ortasında U harfi olanları seçer. ilk harfleri ve son harfleri ne olursa olsun.

—————————————————–

 SELECT * FROM Personel WHERE  MAAS LIKE '%8'

Personel tablosundan MAAS ının sonu 8 ile bitenleri seçer. ilk rakamlar/kısım

ne olursa olsun.

—————————————————–

SELECT *  FROM Personel WHERE AD LIKE 'NA%'

Personel tablosundan  AD ı   NA   ile başlayanları seçer. sonu ne olursa olsun.

—————————————————–

SELECT * FROM Personel WHERE AD LIKE '[B-H]%'

Personel tablosundan AD ı  B den H ye kadar olanları seçer. sonu ne olursa olsun.

—————————————————–

 SELECT * FROM Personel WHERE AD LIKE '[B-H]E%'

Personel tablosundan AD ı  B den H ye kadar olanlardan başlayanlar,

ikinci harfi E olanları seçer. sonu ne olursa olsun.

—————————————————–

SELECT * FROM Personel WHERE AD LIKE '[B-H]_[ML]%'

Personel tablosundan ADı  B den H ye kadar olan harflerden başlayıp,

ikinci harfinden sonrası M ya da L olanları seçer. sonu ne olursa olsun.

( _ (alt tire ) herhangi  bir karakter demektir. )

—————————————————–

 SELECT * FROM Personel WHERE AD LIKE '%[NTU]'

Personel tablosundan ADı  N veya T veya U ile bitenleri seçer. başı ne

olursa olsun.

—————————————————–

 SELECT * FROM Personel WHERE AD LIKE '[^B-H]%'

Personel tablosundan ADı   B den H ye kadar olanların dışındakiler seçilir.

Sonu ne olursa olsun.

—————————————————–

 SELECT * FROM Personel WHERE AD NOT LIKE '[B-H]%'

Personel tablosundan ADı B den H ye kadar olanların dışındakiler ve sonu ne olursa olsun diyemeyeceğimiz veriler seçilir.

Burada bir üstteki ifadeden farklı olan şey ^ işaretinden sadece parantez içi

etkileniyorken  NOT  ifadesi ile tüm ifadenin etkilenmesidir.

—————————————————–

SELECT * FROM Personel WHERE MAAS >1000 AND BİRİMİ='TL'

Personel tablosundan MAASı 1000 den yüksek ve BİRİMi TL olanları seçer.

—————————————————–

SELECT * FROM Personel WHERE MAAS>1000 OR  BİRİMİ='TL'

Personel tablosundan MAASı 1000 den yüksek veya Birimi TL olanları seçer.

—————————————————–

SELECT * FROM Personel WHERE (MAAS BETWEEN 1000 AND 1500) AND DEPARTMAN='GUVENLİK'

Personel tablosundan MAASı 1000 ile 1500 arasında olmakla birlikte DEPARTMANI güvenlik olanları seçer.

—————————————————–

 
 SELECT * FROM Personel  WHERE (MAAS  SELECT * FROM Personel WHERE (MAAS > BETWEEN 1000 AND 1500) AND DEPARTMAN='GUVENLİK' OR 'SEKRETER')

Personel tablosundan (DEPARTMANI güvenlik veya sekreter olanlar) ve (MAASı 1000 ve 1500 arasında olanlar) seçilir.

—————————————————–

SELECT * FROM Personel WHERE (MAAS NOT BETWEEN 1000 AND 1500) AND (DEPARTMANI IN ('GUVENLİK', 'SEKRETER', 'HİZMETLİ'))

Personel tablosundan (MAASı 1000 ve 1500 arasında olmayanlar) ve (DEPARTMANI güvenlik veya sekreter veya hizmetli olanlar) seçilir.

—————————————————–