06.27.11

Temel Sql Komutları-2

merhaba arkadaşlar. bu dersimizde sql komutlarımıza devam ediyoruz.
geçen dersimizde belirttiğimiz gibi.top komutuna değer girdiğimizde girdiğimiz değer kadar olan kayıtları getiriyordu..

Kullanış şeklimizi değiştirirsek sonuna percent der isek o sayı değil de yüzde olur.. mesela aşağıdaki koddda top 50 percent demişim. bu ne demek toplam kayıtların yüzde ellisini getir. 100 kayıt var ise 50 kaydı getirecek. bu sayede kayıtları yüzde şeklinde getirebiliyoruz.

1
SELECT TOP 1000 *FROM TblCaddeler;
1
SELECT TOP 50 percent *FROM Categories

Lıke komutu veritabanında arama yapmak için kullanılır.. adi LIKE’me%’ dediğimiz zaman adı alanında me ile başlayaan kayıtları getirir mesut mehmet gibi LIKE’%pe’ dediğimiz zaman adı alanında son iki karakterleri getirir aktepe gibi LIKE’%sa%’ dediğim zaman içinde sa olan tüm kayıtları getirir. salih gibi.% işaretinin koyulduğu yerlere dikkat edin.

1
2
3
4
SELECT *FROM personeller WHERE adi LIKE'me%'
SELECT *FROM personeller WHERE adi LIKE'%pe'
SELECT *FROM personeller WHERE adi LIKE'%sa%'
SELECT *FROM personeller WHERE adi NOT LIKE'%sa%'

Like komutunun ek kullanımları

1
2
3
SELECT *FROM Categories WHERE CategoryName LIKE'_r%' --ikinci harfi r ile başlayan verileri getir.
SELECT *FROM Categories WHERE CategoryName LIKE'[bc]%' --ilk harfi b veya c ile başlayan verileri getir.
SELECT *FROM Categories WHERE CategoryName LIKE'c[^t]%' -- ilk harfi c ile başlayan ama ikinci harfi t olmayan

IN komutu bir alanda birden fazla veri aramayı sağlar..bulduklarını listeler bulamadıklarını listelemez.yani listelenecek kayıtların tümü mutlaka olmak zorunda değil.

1
SELECT *FROM Personeller WHERE Adi IN('mesut','adem','rıza');

BETWEEN komutu seçili aralıkları listelemek için kullanılır..bir alanda 15 ile 35 arasındaki sayılara ait kategorileri getir dediğimizde buna bu aralığa ait veriler getirilir..

1
SELECT *FROM Personeller WHERE maas BETWEEN 630 AND 2300

Inner Join birlestirilen tablolarda iliskinin saglandigi tüm kayitlari getirir.

1
SELECT Kategoriler.KategoriAdi,Filmadi,Yonetmen,Senarist FROM Kisafilm INNER JOIN Kategoriler ON Kisafilm.KategoriID=Kategoriler.KategoriID

Union komutu
Birden fazla tablodaki alanları listelemeye yarar..burada tek dikkat edilecek husus alan adlarının aynı olmasıdır..

1
2
SELECT Adi FROM Personel_Adi UNION
SELECT Adi FROM Müdür_Adlari

Burada gördüğünüz üzere Personel_Adi ve Müdür_Adları tablosunda Adi alanı ortak bu alanlarda bulunan verileri tek alanmış gibi listeler…

Drop komutu..

Drop komutu tablo veya database silmek içni kullanılır…

1
2
DROP TABLE Personel_Adi
DROP DATABASE SirketŞirket Tablosunu Siler..

where şartı ile NULL ifadesini kullanırsak bize değer girilmemiş kayıtları getirir.. not null dersek değer girilmiş kayıtları getirir.

1
SELECT *FROM Müdür_Adlari WHERE Adi IS NOT NULL

Tablo yaratmak için create table komutu kullanılır..

1
2
3
4
5
6
CREATE TABLE Personel
(
id INT PRIMARY KEY IDENTITY(1,1),
isim nvarchar(500),
soyisim nvarchar(25)
)

yukarıdaki komutta id alanının PRIMARY KEY yani sadece tekrarsız bir kayıt olacağını belirtmiş oluyoruz.. IDENTITY ise id alanına otomatik sayı ver anlamı yüklüyoruz..(1,1) ise 1 den başla 1 er 1er arttır anlamında… diğer değişkenlerimiz tanımlanırken degisken degisken türü parantez içi kaç karakter alacağı…