Microsoft SQL Server etiketine sahip kayıtlar gösteriliyor.
Microsoft SQL Server etiketine sahip kayıtlar gösteriliyor.

SQL'de IN ve NOT IN Kullanımları

  • IN İngilizce'de de olduğu gibi içinde anlamına gelmektedir.
  • IN komutu her zaman WHERE kriterinden sonra kullanılmaktadır.
  • Sahip olduğumuz verilerden sadece istediklerimize IN komutuyla ulaşabiliriz.
  • NOT IN, IN komutunun tam tersidir. Sahip olduğumuz verilerden istemediklerimizi NOT IN sözcüğüyle belirtiriz.
  • NOT koşul bildirimi diğer arama koşullarına göre daha yavaş çalışır.
  • IN ile elde edebildiğimiz bütün sonuçlar OR kullanılarakta alınabilir.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu
Örnek Sorgu 1 : SELECT SupplierID, ProductName, UnitPrice FROM Products
WHERE SupplierID IN(5, 8) ORDER BY ProductName
(Satıcı kimlik kodu 5 ve 8 olan ürünleri IN operatörü kullanarak listeleyelim.)

  
Örnek Sorgu 2 : SELECT CustomerID FROM Orders WHERE OrderID
IN ( SELECT OrderID FROM [Order Details] WHERE ProductID = 27)
(27 numaralı ürünü sipariş veren tüm müşterileri listeleyelim.)  




Örnek Sorgu 3 : SELECT CompanyName,Country FROM Customers
WHERE Country NOT IN ('UK','Mexico','Germany','USA','Brazil')
(Customers tablosunda Ülkesi
UK, Mexico, Germany, USA, Brazil dışındakileri listeleyelim.)  


SQL'de Mantıksal Operatörler (Logical Operators)

Mantıksal operatörler iki karşılaştırma işleminin sonucunu birleştirmek için kullanılır.
  • AND her iki taraf da True ise True, diğer durumlarda True değerini verir. Birleştirilen koşulların tümüne uyan kayıtları bize listeler.
  • OR Her iki taraf da False ise False, diğer durumlarda True değerini verir. Tanımladığımız koşullardan en az bir tanesine uyan kayıtları listeler. 
  • BETWEEN ifadesi de AND operatörü ile aynı işlemleri gerçekleştirebilmektedir. 
  • NOT operatörü ise kendisinden sonra gelen koşulu sağlamayan kayıtları listeler. 
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu
Örnek Sorgu AND : SELECT OrderID, ShipName FROM Orders WHERE CustomerID LIKE '%EN%' AND ShipVia=3
(Orders tablosunda CustomerID değerinin içinde “EN” ifadesi geçenleri ve ShipVia değeri 3’e eşit olan verilerin tamamını listeler.)
 
 
Örnek Sorgu OR :  SELECT OrderID, ShipName, ShipVia FROM Orders WHERE OrderID LIKE 'q2313qwe12' OR ShipVia=3
(Orders tablosunda OrderID değeri 'qwe2313qwe12' değerini içerenler ya da ShipVia değeri 3’e eşit olan değer varsa sorguyu çalıştır, verileri listele.)


Örnek Sorgu NOT : SELECT OrderID, ShipName, ShipVia FROM Orders WHERE NOT (ShipVia=3 OR ShipVia=2)
(Orders tablosunda ShipVia değeri 2 ya da 3 olmayan değerleri listeler.)
 

Örnek Sorgu BETWEEN : SELECT  OrderID, OrderDate FROM Orders WHERE  OrderDate Between '1/1/1996' And '1/1/1998'
(1 Ocak 1996  ile 1 Ocak 1998 tarihleri arasındaki siparişleri listelemek isteyelim.)
 
 
NOT :
Parantez kullanımı ikiden fazla koşul olması durumunda koşulların öncelik sırasını belirler.
Parantez kullanılmaması durumunda SQL önce NOT, sonra AND ve en son da OR mantıksal operatörünü işler. 

SQL'de LIKE ve JOKER Karakterlerin Kullanımı

  • LIKE Belirttiğiniz şeye benzeyenleri seçer. 
  • Sütundaki değerlerin, joker karakterler ile bir arama koşulu ile karşılaştırılmasını sağlar.      
  • Belirli aralıklardaki belli harflerle başlayan veya biten değerler için joker karakterler kullanılır.
  • Like filitreleme sırasında kullanılırken sadece metin alanlarında kullanılabilmektedir. Sayısal ve tarih değerindeki alanların filitrelenmesinde kullanılamaz.
  • Ayrıca yine Like komutundan sonra gelen filtre değeri ( ' ) tek tırnak içerisinde yazılması gerekmektedir.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu

Örnek Sorgu 1 : SELECT ProductName FROM Products WHERE ProductName LIKE 'R%'
('Products' (Ürünler) tablosunda 'R' harfi ile başlayan ürünlerin listesini alalım.)

Örnek Sorgu 2 : SELECT ProductName FROM Products WHERE ProductName LIKE '%cha%'
('Products' (Ürünler) tablosunda içinde 'cha' geçen ürün isimlerinin listesini alalım.)


Örnek Sorgu 3 : SELECT ProductName FROM Products WHERE ProductName LIKE '____ost'
('Products' (Ürünler) tablosunda 7 harfli bir ürün adı var, son üç harfi 'ost'. Bu ürünü bulalım.)


Örnek Arama Koşulları : 

SQL'de Karşılaştırma Operatörlerinin Kullanımı

  • SQL kriterlerle sorgular yapmamıza izin verir.
  • SQL içinde verileri çeşitli açılardan karşılaştırmak için karşılaştırma operatörleri kullanılmaktadır.  
  • Karşılaştırma operatörlerinde karşılaştırdığımız veri tiplerine dikkat etmemiz gerekmektedir.     
  • Karakter veri türü ile ancak karakter türünde başka bir veri; bir sayısal veri ile ancak sayısal olan başka bir veri karşılaştırılabilir.
  • Karşılaştırma ifadesinde karşılaştırılan verilerin türü aynı olmalıdır.

NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu

Örnek Sorgu 1 : SELECT * FROM Products WHERE UnitPrice =15
('Products' (Ürünler) tablosunda UnitPrice (Birim Fiyatı ) '15' olan ürünler



Örnek Sorgu 2 : SELECT * FROM Products WHERE UnitPrice < >15
('Products' (Ürünler) tablosunda UnitPrice (Birim Fiyatı ) '15' olmayan diğer bütün ürünler



Örnek Sorgu 3 : SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice>60
('Products' (Ürünler) tablosunda UnitPrice (Birim Fiyatı ) '60''dan büyük olan ürünler


WHERE Komutunun Kullanımı

WHERE :  Görüntülemek istediğimiz verileri belirli bir kritere göre seçebilmemizi sağlar. Bir koşulu belirterek sadece o koşula uyan kayıtların seçilmesini sağlar. WHERE kullanımı zorunlu olmamakla birlikte koşullu veri seçmek istediğimizde FROM ifadesinden sonra eklenir.

WHERE ile birlikte kullanılan Operatörler




 
Kullanımı :  
SELECT <sütun adı>
FROM <tablo adı>
WHERE <koşullar>





NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu

Örnek Sorgu 1 : SELECT * FROM Orders WHERE ShipName ='Island Trading'
('Orders' tablosundaki ShipName değeri 'Island Trading' olan bütün veriler)


Örnek Sorgu 2 : SELECT ProductName, UnitPrice FROM Products WHERE UnitPrice >= 40
('Products' tablosundaki fiyatı 40 liradan büyük ve eşit olan veriler)


Örnek Sorgu 3 : SELECT ProductName, UnitPrice FROM Products WHERE UnitPrice BETWEEN 17 and 20
('Products' tablosundaki fiyatı 17 ve 20 arasında değişen veriler)

SELECT Komutunun Kullanımı

SELECT :  En sık kullanılan komutlardan birisidir. Veri tabanından bir alan seçmemizi sağlar. Seçilen alanı bir sonuç tablosunda saklar. Genellikle bir ya da daha çok tablonun bütün alanları ya da belli alanları için SELECT komutu yazılır. 

Kullanımı :  SELECT <sütun adı> FROM <tablo adı>

NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu

SELECT ile Tablodaki Bütün Sütunları Seçmek
Bir tablodaki tüm alanları görüntülemek için tek tek bütün sütun adlarını belirtmekten daha kolay bir yöntem vardır. SELECT ifadesinden sonra "*" işaretini yazdığınızda SQL bunu ‘tablodaki tüm sütunlar’ olarak yorumlayacaktır. 

SQL Server'ımızda 'New Query' (Yeni Sorgu) diyerek boş bir sorgu sayfası açalım.

Sorgumuz: SELECT * FROM Region 
('Region' tablosundaki bütün verileri göster diyoruz.Sonuçları Results Tablosunda görebiliriz.)  


SELECT ile Tablodaki Belirli Sütunların Görüntülenmesi   
Sorgulamalarımızda çoğu zaman bir tablodaki tüm veriler yerine sadece bir kısmına ihtiyaç duyarız. Bu durumlarda sorgulamada "*"  işareti ihtiyacımızı karşılamayacaktır. Bu nedenle "*" işareti yerine ihtiyacımız olan sütun isimlerini SELECT ifadesinin ardından yazarak gerekli verilerin görüntülenmesini sağlayabiliriz. 

Sorgumuz: SELECT RegionDescription FROM Region
('Region' tablomuzdaki 'RegionDescription' sütununu seçip görüntülenmesini sağlıyoruz.











SQL DML, DDL ve DCL Komutları

SQL DML (Data Manipulation Language) Veri İşleme Dili 

Veri girmek, değiştirmek, silmek ve verileri almak için kullanılan DML komutlarının tümü olarak tanımlanır. Kısaca veritabanında bilgi üzerinde çalışmayı sağlar. Bilgiyi çağırma, bilgiye yeni bir şeyler ekleme, bilgiden bir şeyler silme, bilgiyi güncelleştirme işlemlerini yapar. 

Temel dört komutu vardır:
  • SELECT : Veritabanındaki nesneden alan çağırmayı ve gereken bilgiyi görebilmeyi sağlar.
  • UPDATE : Nesnede bilgi güncellemeyi sağlar.
  • INSERT : Nesneye alan eklemeyi sağlar.
  • DELETE : Nesneden alan silmeyi sağlar.
SQL DDL (Data Definition Language) Veri Tanımlama Dili

Verilerin tutulduğu nesneler olan tabloların yaratılmasını, silinmesini ve bazı temel özelliklerinin düzenlenmesini sağlar. 

En yaygın kullanılan DDL komutları şunlardır: 
  • CREATE TABLE : Veritabanı üzerinde bir tablo yaratmak için kullanılır.
  • ALTER TABLE : Tabloda değişiklik yapmak, yeni bir sütun eklemek, sütunun tipini veya uzunluğunu değiştirmek gibi yapısal değişiklikler yapılması için kullanılır.
  • DROP TABLE :  Tabloyu fiziksel olarak siler. (verilerle birlikte)
  • TRUNCATE TABLE : Tablodaki verileri siler fakat tablo yapısı kalır.
  • CREATE INDEX : Index oluşturmak için, tablonun sütun adı üzerinde indeks oluşturur.
  • CREATE VIEW : Görüntü oluşturmak için kullanılır.
  • DROP VIEW : Görüntüyü siler.

SQL DCL (Data Control Language) Veri Kontrol Dili 

Veri Kontrol Dili bir veritabanı kullanıcısı veya rolü ile ilgili izinlerin düzenlenmesini sağlar. DCL komutlarını kullanabilmek için SQL Server'da varsayılan değer (default) olarak yetki sahibi olan gruplar: sysadmin , dbcreator , db_owner , db_securityadmin 'dir. Sunucuya dışarıdan bir erişim sağlamak için bir giriş (login) oluşturulmalıdır.

Temel DCL komutları şunlardır:
  • GRANT  : Veritabanı kullanıcısına, veri tabanı rolüne veya uygulama rolüne izinler vermek için kullanılan komuttur.
  • DENY : Kullanıcıların haklarını kısıtlayan komuttur.
  • REVOKE : Daha önce yapılan tüm kısıtlama ve izinleri iptal eden komuttur. Bir nesneyi oluşturan kullanıcının REVOKE ile nesne üzerindeki yetkilendirme ve kullanma hakkı yok edilemez. REVOKE komutunu, sys_admin rolüne veya db_owner, db_securityadmin sabit veri tabanı rollerine sahip kullanıcılar ve nesne için dbo olan kullanıcı çalıştırabilir.

Command Prompt İle SQL Sorguları Çalıştırma

Command Prompt (Komut İstemcisi) ile Microsoft SQL Server'dan sorgulama nasıl ?

Öncelikle klasik başlat / çalıştır'a cmd yazarak yada  Accessories (Donatılar) yoluyla komut istemcisini açıyoruz. Komut satırında SqlCmd yazarak SQL sorgumuzu yazacağımız işlem satırına geçiyoruz.


Örnek sorgulamada bir önceki makalemde kurulumunu yaptığımız Northwind Database'i kullanacağım.
bk: Nortwind Database Kurulumu

İlk olarak Use Northwind komutuyla işlem yapacağımız database seçimini yapıyoruz.


Her işlem satırından sonra SQL Server Management Studio da Execute karşılığı olan Go komutuyla işlemi gerçekleştiriyoruz.

Örnek: Northwind Veritabanımızda kaç adet müşteri kayıtlı ?
SELECT  COUNT(*) AS 'MÜŞTERİ SAYISI' FROM Customers



Daha Yeni Kayıtlar Önceki Kayıtlar