29 Nisan 2007 Pazar

SQL SERVER 2005 DEVAMI

SELECT İfadesi
Select ifadesi bir tablodan verileri seçmek için kullanılır. Elde edilen veriler sonuç kümesi olarak adlandırılır ve yine bir tablo görüntüsü şeklinde görüntülenir.
Söz dizimi:
SELECT
FROM
Belirli Sütunların Görüntülenmesi
Çoğu durumda tablomuzda sakladığımız tüm veriyi görmektense, o an için ihtiyaç duyduğumuz kısmını görüntülemek isteriz. Bunun için Select ifadesini takiben, kullanılacak sütun adları belirtilir.
Örnek: Northwind veritabanındaki Employees tablosunda çalışanlar ile ilgili bilgiler saklanır. Bize personelimizin sadece telefon numaraları gerekli olduğunda aşağıdaki alanları görüntülememiz yeterlidir.
Sorgu:
USE northwind
SELECT firstname,lastname,homephone
FROM employees
Sonuç:
Tüm Sütunları Görüntülemek
Bir tablodaki tüm alanları görüntülemek için ise tek tek bütün sütun adlarını belirtmekten daha kolay bir yol vardır. Select ifadesinden sonra asterix(*) işaretini yazdığınızda SQL bunu ‘tablodaki tüm sütunlar’ olarak yorumlayacaktır.
Sonuç:
WHERE Yantümcesi
WHERE yantümcesi görüntülemek istediğimiz verileri belirli bir kritere göre seçebilmemizi sağlar. Bu da, örneğin günlük satış bilgilerinin tutulduğu, 100.000 kayıttan oluşan satışlar tablosundaki sadece son 3 gün içerisindeki satışları görmemizi sağlar.
Where yantümcesinin kullanımı zorunlu değildir. Fakat bir koşula bağlı veri seçmek istediğimizde FROM yantümcesinden sonra eklenebilir.
Söz dizimi: SELECT FROM
WHERE
Operatörler (İşleçler)
Aşağıdaki operatörleri WHERE ifadesi ile birlikte sınanmasını istediğiniz koşulları oluştururken kullanabilirsiniz.
Operator
İfade
=
Eşittir
<>
Eşit Değildir, Farklı
>
Büyük
<
Küçük
>=
Büyük veya Eşit
<=
Küçük veya Eşit
BETWEEN
Arasında
LIKE
Metin arama
Not: SQL’in bazı sürümlerinde <> operatörü != şeklinde de kullanılabilir.


Örnek: Northwind veritabanında Customers tablosundan, Kanada daki müşterileri görüntülemek istediğimizde Country alanına bir koşul belirtmemiz gerekecektir.
Aşağıdaki örnek kodları çalıştırıp sonuçlarını inceleyiniz.
Birim fiyatı 20$ dan büyük olan ürünleri listelemek için Ürünler (Products) tablosunda UnitPrice alanı için bir koşul belirtmemiz gerekir.
USE northwind
SELECT ProductID,ProductName,UnitPrice
FROM products
WHERE unitprice>20
01.01.1998 tarihinden itibaren verilmiş olan siparişleri görüntülemek için;
USE northwind
SELECT OrderID,CustomerID,OrderDate
FROM Orders
WHERE OrderDate>'1/1/1998'
LIKE ifadesi
LIKE kelimesi sütundaki değerlerin, joker karakterler kullanılarak oluşturduğumuz bir arama koşulu ile karşılaştırılmasını sağlar.
Söz dizimi: SELECT FROM
WHERE LIKE
Joker Karakter
Anlamı
%
Herhangi uzunlukta karakter
_
Herhangi tek karakter
[]
Belirtilen aralıkta herhangi bir karakter
[^]
Belirtilen aralıkta olmayan herhangi bir karakter
Örnek: Müşterilerimiz içerisinden ilk harfi K olanları listelemek istediğimizde;
Sorgu:
USE northwind
SELECT * FROM Customers
WHERE CustomerID LIKE 'K%'
Örnek arama koşulları:
LIKE ‘BR%’ İlk iki harfi BR olan tüm kayıtlar
LIKE ‘Br%’ İlk iki harfi Br olan tüm kayıtlar
LIKE ‘%een’ Son üç harfi een olan tüm kayıtlar
LIKE ‘%en%’ İçerisinde en ifadesi geçen tüm kayıtlar
LIKE ‘_en’ Son iki harfi en olan üç harften oluşan tüm kayıtlar
LIKE ‘[CK]%’ C veya K harfleriyle başlayan tüm kayıtlar
LIKE ‘[S-V]ing ing ile biten ve ilk harfi S ile V harfleri arasında olan dört harfli herhangi kelime
LIKE ‘M[^c]%’ M ile başlayan ikinci harfi c olmayan tüm kayıtlar


SQL AND & OR & NOT MANTIKSAL OPERATÖRLERİ
AND ve OR Mantıksal operatörlerini birden fazla koşulu birleştirmek için kullanırız.
AND operatörü kullanarak, birleştirilen koşulların tümüne uyan satırlar listelenir.
OR operatörü kullanılarak, birleştirilen koşullardan en az birine uyan satırlar listelenir.
NOT operatörü kendisinden sonra gelen koşulu sağlamayan kayıtları listeler.
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.
Söz dizimi: SELECT FROM
WHERE AND [AND ...]

SELECT FROM
WHERE OR [OR ...]
Örnek: Personel nosu 5 olan çalışanın 1998 yılından sonra aldığı siparişleri listelemek için kontrol edilmesi gereken iki koşul vardır.
Örnek: Berlin’deki veya Amerika’daki üreticileri listelemek istediğimizde;
Sorgu: Sonuç:
USE northwind
SELECT SupplierID,CompanyName,City,Country
FROM Suppliers
WHERE Country='USA' OR City='Berlin'
ORDER BY city,country

Bir Listedeki Elemanların Aranması – IN
IN sözcüğünü bir listedeki elemanlardan herhangi biriyle eşleşen satırları görüntülemek için kullanırız.
NOT IN arama kriterini ise listede olmayan değerleri aramak için kullanırız.
NOT koşul bildirimi diğer arama koşullarına göre biraz daha yavaş çalışır. Performans açısından çok sık kullanılması tavsiye edilmez.
IN ile elde ettiğimiz sonuçları OR kullanarakta elde edebiliriz.

Örnek: Japonya ve İtalyadaki üreticileri görmek istediğimizde;

Sorgu: Sonuç:
USE northwind
SELECT companyname, country
FROM suppliers
WHERE country IN ('Japan', 'Italy')
GO
Boş Değerlerin Görüntülenmesi- NULL Değerler
Veri girişi sırasında alana herhangi bir değer girilmezse ve alan için herhangi bir varsayılan değer atanmamışsa, alanda boş (null) değeri saklanır. Null değeri boşluk(‘ ‘) veya sıfır(0) değerinden farklıdır.
Belirli bir alanına hiçbir değer girilmemiş kayıtları listelemek için IS NULL arama kriteri kullanılır.
Bir tablodaki hangi alanların varsayılan değerleri olacağına veya alanın NULL değere izin verip vermediğine, tablo tasarımı sırasında karar verilir.
Eğer boş olmayan satırları listelemek gerektiğinde IS NOT NULL arama kriterini kullanılır.

Örnek: Aşağıdaki örnek fax numarası girilmemiş firmaları listeler.

Sorgu: Sonuç:
USE northwind
SELECT companyname, fax
FROM suppliers
WHERE fax IS NULL
GO


SQL Select Distinct
DISTINCT kelimesi bir sütundaki benzersiz kayıtları listeler. Bir sütunda belirli bir kelime iki veya daha fazla sayıda tekrarlanıyor olabilir. Distinct anahtar kelimesi ile her tekrarlanan kelime sadece bir kez listelenir.
Söz dizimi: SELECT DISTINCT FROM [WHERE ]
Örnek: Hangi ülkelerdeki üreticilerle çalıştığımızı görmek isteyelim. Bu durumda tek bir ülkeden birden fazla firma ile çalışıyor olabiliriz.
Sorgu: Sonuç:
USE northwind
SELECT DISTINCT country
FROM suppliers
ORDER BY country


SQL Order By
ORDER BY yantümcesi satırları, belirtilen sütun(lar)a göre sıralamak için kullanılır.
ORDER BY ile hangi sütuna göre sıralayacağımızı ve sıralamanın artan veya azalan şekilde yapılacağını belirleriz. Sıralama yönü belirtilmez ise SQL veriyi artan şekilde sıralar.
Sıralama yapılacak alanlar SELECT ifadesinde yer almak zorunda değildir.
Söz dizimi:
SELECT FROM
ORDER BY ,

SQL SERVER 2005

SQL NEDİR?
SQL, ingilizce açık adıyla "Structured Query Language"(Yapılandırılmış Sorgulama Dili) bir veritabanı sorgu dilidir. SQL ile veritabanına yeni tablolar, yeni kayıtlar ekleyip, silebilir, var olanlar üzerinde düzenlemeler ve sorgular yapabilirsiniz. SQL ile Oracle, db2, Sybase, Informix, Microsoft SQL Server, MS Access gibi veritabanı yönetim sistemlerinde çalışabilirsiniz. SQL, standard bir veritabanı sorgu dilidir, bütün gelişmiş veritabanı uygulamalarında kullanılır.
Transact-SQL
SQL, düzeltilmesi veya değiştirilmesi istenen bilgileri açıkça belirtmeye izin veren ve yerine getirilebilecek başlıca işlemleri tanımlamamızı sağlayan bir komut takımıdır. Bu komutların oluşturduğu yapıya Transact-SQL dili denir. Transact-SQL ile veri ve sorgulara erişebilir, güncelleyebilir ve ilişkisel veritabanı sistemini yönetebilirsiniz. Transact –SQL komutları kullanım amaçlarına göre üç genel kategoriye ayrılır.

SQL Veri İşleme Dili (Data Manipulation Language-DML)
SQL Veri İşleme Dili veri girmek, değiştirmek, silmek ve verileri almak için kullanılan DML komutlarının tümüdür. En sık kullanılan DML komutları ve kullanım amaçları aşağıdaki gibidir.
SELECT : Veri seçmek
DELETE : Veri silmek
UPDATE : Veri güncellemek
INSERT : Veri girmek

SQL Veri Tanımlama Dili (Data Definition Language-DDL)
SQL Veri Tanımlama Dili verilerin tutulduğu nesneler olan tabloların yaratılmasını, silinmesini ve bazı temel özelliklerinin düzenlenmesini sağlar. En sık kullanılan bazı DDL komutları ve kullanım amaçları aşağıdaki gibidir.

CREATE TABLE : Yeni bir tablo yaratmak
ALTER TABLE : Tabloda değişiklik yapmak
DROP TABLE : Tabloyu silemek
CREATE INDEX : Tabloda dizin oluşturmak
SQL Veri Kontrol Dili (Data Control Language-DCL)
SQL Veri Kontrol Dili bir veritabanı kullanıcısı veya rolü ile ilgili izinlerin düzenlenmesini sağlar. Aşağıdaki tablo DCL komutlarını ve fonksiyonlarını göstermektedir.

GRANT :Kullanıcıya yetki vermek
DENY :Kullanıcı, grup veya rolü herhangi bir eylem için engeller.
REVOKE :Daha atanmış olan yetki veya engeli kaldırır.