SQL Server Komutları

Merhaba bugün sizlere en temel sql server komutlarından bahsedeceğim.

SQL komutları ile veri tabanında işlem yapılabilmesi için önce veri tabanı sonra da veri tabanında kullanılacak tablolar tanımlanmalıdır. Tabloları tanımlarken kullanılacak veri tiplerini daha önceki yazımızda bahsetmiştik. SQL Server’da veritabanı oluşturmak için CREATE DATABASE deyimi kullanılır.

CREATE: Bu komut isim ile belirtilen isimde bir veri tabanı oluşturur. Bir veri tabanı içerisinde çok sayıda veri tabanı kütüğü ya da tablo bulunabilir. Her tabloda saklanan verilerle ilgili alanlar bulunmalıdır.

Kullanımı: Create Database veritabanı_adi

Create Database deneme;
Create Database okul;
Create Database sirket;

USE: Önceden oluşturulmuş veri tabanını aktif hale getirir.

Kullanımı: Use (veritabanı_adı)

Use deneme;
Use okul;
Use sirket;

CREATE TABLE: Tablo oluşturmak için kullanılır. Kullanılacak tüm alanlar bu deyim içerisinde belirtilmelidir.

Kullanımı: Create table tablo_adı(sutün adı ve tipi)

Create table bolum(bolkod smallint primary key , bol_adi char(15))

INSERT INTO: Bir tabloya veri girişi ya da veri yüklenmesi işlemi için kullanılır.

Kullanımı: INSERT INTO tablo adı Values veriler;

insert into bolum values(536,'Yazılım Mühendisliği');

SELECT: Tablo üzerinden gerekli bilgileri elde etmek ve sorgulama yapmak için kullanılır. Tablo adı ile belirtilen tablo içindeki tüm bilgiler koşulsuz olarak listelenecektir. SELECT sözcüğünü izleyen kısmında  “ * ” karakterinin bulunması, ilgili tablodaki bütün alan isimlerinin ve bu alanlardaki bilgilerin listelenmesini sağlayacaktır. FROM ifadesinden sonra ise kullanılacak tablo adı belirtilebilir.

Kullanımı: SELECT * FROM tablo_adi

Select bolkod, bol_adi From bolum veya Select * From bolum

Select komutunun genel kullanımı:

SELECT  [ DISTINCT | ALL ]  < sütun (lar) >  FROM  <tablo adı (lar)>

[  WHERE          < şart  (lar) >   ]

[   GROUP BY    < sütun (lar) > ]

[   HAVING   < grup kısıtlaması  > ]

[  ORDER BY  <sütun  (lar)  [ASC |  DESC > ]  ]

DISTINCT: Birbirleriyle aynı olan satırların, listeleme esnasında bir kez yazılmasını sağlayan ifadedir.

Kullanımı: SELECT DISTINCT sutün_adi FROM tablo_adi

SELECT DISTINCT adi FROM ogrenci

ORDER BY: Listelenecek bilgilerin belirli bir alan adına göre sıralanmasını sağlamak için kullanılan komuttur.

  • ASC: Sözcüğü nota göre sıralamanın artan olarak yapılmasını sağlar.
  • DESC: Nota göre sıralamanın azalan olarak yapılmasını sağlar.

Ayrıca tablo içindeki veriler sıralanırken aynı anda birden fazla alana göre sıralama yapmak mümkündür.

Kullanımı: SELECT * FROM tablo_adi ORDER BY sütun_adı ASC

SELECT * FROM notlar ORDER BY final ASC
SELECT * FROM notlar ORDER BY final ASC, vize DESC

Karşılaştırma ifadeleri: (NOT, OR, AND), birden fazla koşula göre sıralama işlemlerinde bu ifadeler kullanılır.

İfade          Sembol

  • >                    Büyük
  • <                    Küçük
  • =                    Eşit
  • <=                   Küçük Eşit
  • >=                   Büyük Eşit
  • <>                   Eşit Değil

WHERE: Tablo içindeki bilgilerin bir koşula göre sıralanması için kullanılır. Nümerik, karakter ve tarih türünde kullanılabilir.

Kullanımı: SELECT * FROM tablo_adi WHERE sütun_adi ifade şart

SELECT * FROM ögrenci WHERE yasi < 19 and adi='mehmet'
SELECT adi FROM ogrenci WHERE yasi BETWEEN 10 AND 15
SELECT * FROM ogrenci WHERE Dog_Tarihi > '1979/09/19'

BETWEEN: Belirli bir aralık içindeki bilgileri listelemek için deyimi kullanılır.

Kullanımı: SELECT * FROM tablo_adi WHERE sutün_adi BETWEEN baslangıc AND bitis

SELECT * FROM notlar WHERE final BETWEEN 40 AND 70 ORDER BY final ASC

LIKE: Karakter türü verilerde, veri içerisinde geçen belirli bir kelime veya verileri bulmak için kullanılır. % sembol A harfinin öncesi ve sonrasında herhangi bir bilgi alabileceğini gösterir. LIKE sözcüğünü, alt tire( _ ) sembolü ile birlikte kullanmakta mümkündür.

SELECT * FROM ogrenci WHERE adi LIKE '%A%'
SELECT * FROM ogrenci WHERE adi LIKE '__A%'
SELECT * FROM ogrenci WHERE adi LIKE 'A_K_T'

IN: Belli bir kolonun kümesi verilerek işlerin daha kolay yapılmasını sağlar.

SELECT * FROM notlar WHERE numara IN ( SELECT numara FROM ogrenci WHERE bolkod=531)

ANY: Aşağıdaki örnek soru çerçevesinde bu sözcüğün SELECT komutu içindeki etkisi açıklanacaktır.

SELECT * FROM Personel WHERE maas < ANY( SELECT maas FROM Personel WHERE bol_no=2 ) AND bol_no=1

ALL: “Hepsi, tamamı” anlamdaki bu sözcük, SELECT komutu içerisinde belirli bir koşulu sağlayan bir gruptan tamamı sağlanan koşullarla ilişkili olarak kullanılır.

SELECT* FROM notlar WHERE final > ALL (SELECT final FROM notlar WHERE op_kod=421)

Nested Select: Bazı sorgulamalar, özelliği itibarı ile iç içe SELECT komutlar kullanılması gerektirebilir. İçteki SELECT komutunun bulduğu sonuç, dıştaki SELECT komutunun işlevi yere getirmesi iç kullanılır.

SELECT proje_ad,yer FROM Proje WHERE bl_no in(SELECT bol_no FROM Personel WHERE adres LIKE '%Fatih%'

Aritmetik İşlemler: SELECT komutu ile veri tabanında mevcut tablolardan listeleme yaparken, tabloda ayrı bir sütun olarak yer almamış ve bir hesaplama sonucunda üretilebilecek bilgileri de liste içine katmak mümkündür.

Senaryo: Aşağıdaki SELECT komutu ile bir personel tablosunda personelin şu anda geçerli olan maaşı ile bu maaşın %10 zamlı şekli listelenmektedir.

SELECT ad, soyad, maas, maas*1.1 FROM personel;

SELECT ogrenci_no, ders_adi, vize*0.4 + final*0.6 FROM notlar WHERE ogrenci_no=1;

SQL tablo içerisindeki çeşitli matematiksel ifadelerin sonucunu otomatik olarak üretmeyi sağlayan fonksiyonlara sahiptir.

SUM FONKSİYONU: Tablo içerisinde belirli bir sütuna göre toplama işlemi gerçekleştirir.

Kullanımı: Select SUM sütun_adi FROM tablo_adi;

SELECT SUM(maas) FROM personel

AVG FONKSİYONU: Belirli bir alan üzerinde aritmetik ortalama(avarage) hesaplamak için kullanılır.

Kullanımı: Select AVG sütun_adi FROM tablo_adi;

SELECT AVG(maas) FROM personel

MAX: Fonksiyonu içinde belirlenen sütun içindeki en büyük değeri bulmak için kullanılır.

Kullanımı: Select MAX sütun_adi FROM tablo_adi;

SELECT MAX(maas) FROM personel

MIN: Fonksiyonu içinde belirlenen sütun içindeki en küçük değeri bulmak için kullanılır.

Kullanımı: Select MIN sütun_adi FROM tablo_adi;

SELECT MIN(maas) FROM personel

COUNT: Tablo içerisinde herhangi bir alanda sayma işlemi gerçekleştirir.

Kullanımı: Select COUNT sütun_adi FROM tablo_adi;

SELECT COUNT(cinsiyet) FROM personel WHERE cinsiyet='bayan'
SELECT COUNT(*) FROM personel
SELECT COUNT(DISTINCT adi) FROM personel

GROUP BY: Kümeleme fonksiyonları, kullanılırken tablodaki bilgileri, bazı özelliklere göre gruplandırarak bu gruplandırılmış veri üzerinde sorgulama yapmak mümkündür. Bu işlem için, GROUP BY ifadesi kullanılır.

SELECT cinsiyet, AVG(ort) FROM ogrenci GROUP BY cinsiyet

HAVING: Gruplandırarak, kümele fonksiyonlarını uygularken, koşul da verilebilir. Bu durumda, grup üzerindeki hesaplamalarla ilişkili koşul belirtirken, HAVING sözcüğünü kullanmak gerekir.

SELECT adi FROM ogrenci GROUP BY adi HAVING adi LIKE 'Ali'

Örnek: Finali 50’den yüksek olup ortalama finalleri 60’a eşit ya da büyük olan öğrenci numaralarını ve final ortalamalarını listeleyin.

select no,AVG(final) from notlar where final>50 group by no having AVG(final)>=60

Veritabanı Temel Sorguları

INSERT INTO: Tabloya veri eklemek

Kullanımı: INSERT INTO  tablo_adi (Sütun adı1,sütun adı2,……….sütun adı) VALUES (değer1,değer2,……………..değer n);

INSERT INTO ogrenci (adi soyadi, no) VALUES ('Çağlar','Telef',125414);

DELETE: Tablodan veri silmek

Kullanımı: DELETE FROM tablo_adi;

DELETE FROM ogrenci WHERE ogrenci_no=125414;

UPDATE: Tabloda kayıt güncelleme İşlemi

Kullanımı: UPDATE tablo_adi SET sütun ifade deger WHERE koşul

UPDATE ogrenci SET ort=50 WHERE ort<50 AND ort>45

Tabloların yapısını değiştirmek

ALTER TABLE: komutu ile bir tablonun yapısında değişiklik yapmak mümkündür.

  • Mevcut tabloya yeni bir sütun eklemek

Kullanımı: ALTER TABLE tablo_adi ADD yeni_sütun_adi yeni_sütun_tipi;

ALTER TABLE ogrenci ADD yas INT NOT NULL;
  • Mevcut tabloda bir sütun üzerinde değişiklik yapmak

Mevcut bir kolon üzerinde değişiklik yapma, değişken uzunluklu bir veri tipine sahip olan kolonun genişliğini arttırma ile sınırlıdır. Bu anlamda, kolon genişliğini azaltma ya da veri tipini değiştirme mümkündür. Bu işlem için ALTER TABLE komutuna MODIFY deyiminin eklenmesi ile gerçekleştirilir.

Kullanımı: ALTER TABLE tablo_adi MODIFY yeni_ad yeni_tipi;

Alan tipini değiştirmek için, ALTER TABLE komutuna ALTER COLUMN deyiminin eklenmesi gerekir.

ALTER TABLE ogrenci ALTER COLUMN adi INT
  • Mevcut Bir Tablodan bir kolon Silme

Tablo üzerinden alan silmek için, ALTER TABLE komutuna DROP COLUMN deyimi eklenmesi gerekir.

Kullanımı: ALTER TABLE tablo_adi DROP COLUMN sütun_adı

ALTER TABLE personel DROP COLUMN cinsiyet
  • Mevcut Bir Tablonun Bir Kolonunun Adını Değiştirme

Tablonun adını değiştirmek için, ALTER TABLE komutuna RENAME TABLE deyiminin eklenmesi gerekir.

Kullanımı: ALTER TABLE tablo_adi RENAME eski_adi yeni_adi

ALTER TABLE ogrenci RENAME adi ogr_adi
  • Mevcut Bir Tablonun Tümüyle Silinmesi

Bir tablonun tamamını silmek için DROP TABLE komutu kullanılır.

Kullanımı: DROP TABLE tablo_adi;

DROP TABLE ogrenci;
  • Tablodaki verilerin silinmesi

TRUNCATE TABLE  Delete komutundan bir farkı bulunmaktadır. Örnek olarak tablomuzda 25 kayıt varsa Delete komutu ile bir kayıt silinirse toplam kayıt sayısı 24 olmaktadır. Fakat yeni kayıt eklendiğinde Id si 26 olacaktır. Truncate Table komutu ile silinirse ID’ler sıfırlanmaktadır.

Kullanımı: TRUNCATE TABLE tablo_adi;

TRUNCATE TABLE ogrenci;

Temel veritabanı komutlarını bahsettik.