AND ve OR ifadeleri birden fazla alanda işlem yapılacaksa kullanılan operatörlerdir. AND operatörü birinci durumla beraber ikinci durumunda olduğu zaman kullanılır. OR operatörü ise birinci durum veya ikinci durumun gerçekleşmesi durumunda kullanılır

ANd ve OR Kullanım Biçimi
SELECT  alan_adi1,alan_adi2
FROM tablo_adi
WHERE alan_adi1=sorgu_degeri AND alan_adi2=sorgu_degeri


SELECT  alan_adi1,alan_adi2
FROM tablo_adi
WHERE alan_adi1=sorgu_degeri OR alan_adi2=sorgu_degeri

Örnek Tablo Uygulaması:
Örnek olarak aşağıdaki gibi Personel isimli tablomuz olsun.
idAdi_soyadiSehirBolumMeslek_Kodu
1Salih ESKİOĞLUİstanbulBilgi İşlem Sorumlusu1234567
2Ayhan ÇETİNKAYAKocaeliİdari İşler Yöneticisi2345678
3Serkan ÖZGÜRELErzincanMuhasebe3456789
4İlhan ÖZLÜİstanbulBİlgi İşlem Sorumlusu2345678

Örnek1:

SELECT * FROM Personel WHERE Sehir='İstanbul' AND Bolum='Bilgi İşlem Sorumlusu'

Bu kod tablodaki Sehir alanında İstanbul ve Bolum alanında Bilgi İşlem Sorumlusu yazan kayıtları alır.
Çıktısı:
idAdi_soyadiSehirBolumMeslek_Kodu
1Salih ESKİOĞLUİstanbulBilgi İşlem Sorumlusu1234567
4İlhan ÖZLÜİstanbulBİlgi İşlem Sorumlusu2345678


Örnek2:SELECT * FROM Personel WHERE Sehir='İstanbul' AND Sehir='Kocaeli'

Bu kod Sehir alanında İstanbul ve Kocaeli yazan kayıtları alır.
Çıktısı:
idAdi_soyadiSehirBolumMeslek_Kodu
1Salih ESKİOĞLUİstanbulBilgi İşlem Sorumlusu1234567
2Ayhan ÇETİNKAYAKocaeliİdari İşler Yöneticisi2345678
4İlhan ÖZLÜİstanbulBİlgi İşlem Sorumlusu2345678

SQL AND ve OR Kullanımı

WHERE ifadesi tablodaki alanlarda okuma, güncelleme, silme gibi işlemleri yaparken belli kriterlere sahip kayıtlar üzerinde işlem yapmamızı sağlar. Where ifadesi belirtilmezse uygulanan komut bütün kayıtlar üzerinde geçerli olur. Mesela bir kaydı silmek istediğimiz zaman Where ifadesini kullanmazsak tablodaki bütün kaıtları silecektir.

Where Kullanım Biçimi
SELECT  alan_adi1,alan_adi2
FROM tablo_adi
WHERE alan_adi=sorgu_degeri
İlk bakışta kod biraz karışık görünebilir. Açıklayacak olursak;
SELECT ifadesi ile sorgunun bir seçme yani veritabanından okuma işlemi yapacağımız belirtmiş olduk. Sonrasında ise hangi alanlarda okuma yapacağımızı belirtiyoruz. Eğer silme işlemi yapacaksak select ifadesi yerine Delete ifadesi kullanılmalıdır.
FROM ifadesi ile veritabanı içindeki hangi tabloda işlem yapılacağı belirtiliyor.
WHERE ifadesi ile yapmak istediğimiz işlem (seçme, silme vs.) için gerekli parametreleri belirteceğimiz bölüm başlıyor.
Where ifadesinin hemen ardından hangi alandaki kritere göre işlem yapacaksan o alan adını yazıyoruz. sorgu_degeri ifadesi ile seçtiğimiz alandaki veri değerini giriyoruz.

Burada eşittir işareti yerine başka operatör işaretleride kullanılabilir. Mesele belli bir sayıdan büyük veya küçük olması durumlarına göre sorgulama yapılabilir. Veya iki tarih arası sorgulama yapılabilir. Aşağıdaki örneklerde detaylı olarak anlatılmıştır. Sayfanın sonunda eşittir dışındaki operatörleri ve ne işe yaradıkları tabloyu inceleyebilirsiniz.

Örnek Tablo Uygulaması:
Örnek olarak aşağıdaki gibi Personel isimli tablomuz olsun.
idAdi_soyadiSehirBolumMeslek_Kodu
1Salih ESKİOĞLUİstanbulBilgi İşlem Sorumlusu1234567
2Ayhan ÇETİNKAYAKocaeliİdari İşler Yöneticisi2345678
3Serkan ÖZGÜRELErzincanMuhasebe3456789
4İlhan ÖZLÜİstanbulBİlgi İşlem Sorumlusu2345678

Örnek1:

SELECT * FROM Personel WHERE Sehir='İstanbul'

Bu kod ile tablodaki Sehir alanında İstanbul bulunan kayıtları alır. Burada dikkat edilmesi gerek nokta Bolum alanı metinsel alan olduğu için eşittir işaretinden sonra aranmak istenen ifade tek tırnak işareti içinde yazılmıştır. Bazı veritabanı editör uygulamaları çift tırnak işareti kullanabilir.
Çıktısı:
idAdi_soyadiSehirBolumMeslek_Kodu
1Salih ESKİOĞLUİstanbulBilgi İşlem Sorumlusu1234567
4İlhan ÖZLÜİstanbulBİlgi İşlem Sorumlusu2345678


Örnek2:Delete  FROM Personel Where id=1

Bu örnekte Personel tabosundan silme işlemi yapılmaktadır. Normalde Select ifadesinden sonra hangi alanlarda işlem yapacağımızı belirtirdik. Ancak Delete komutu alanlarda işlem yapmaz ve direk olarak ilgili kaydı siler. Bu örnekte id alanında 1 yazan kaydın silinmesini belirttik. Genellikle kullanım kolaylığı açısından id alanları tabloda sayısal alan olarak işaretlenir. Sayısal alanlarda işlemler tırnak işareti olmadan yapılır. Aynı şekilde delete yerine select kullanarak kaydı seçtiğimizi varsaysak bile id alanı sayısal alan olduğu için tırnak işaretleri kullanılmaz.
Operatör işaretleri tablosu:
OperatörAçıklamasıKullanım ÖrneğiÖrnek Açıklaması
=Belirtilen değeri belirtilen adanda ararWhere Bolum='Bilgisayar'Bolum alaninda Bilgisayar yazan kayıtları seçer
<>Belirtilen değer dışındaki kayıtları ararWhere Bolum<>'Bilgisayar'Bolum alaninda Bilgisayar yazmayan kayıtları seçer.
>Belirtilen değerden büyük kayıtları arar.Where Maas>1000Maaşı 1000 TL nin üstünde olanları seçer. (1001 TL ve yukarısı)
>=Belirtilen değere eşit ve büyük olanları arar.Where Maas>=1000Maaşı 1000 TL ve üstünde olanları seçer. (1000 TL ve üstü)
<Belitilen değerden küçük olanları ararWhere Maas<750Maaşı 750 TL nin altında olanları seçer. (749 TL ve altı)
<=Belirtilen değere eşit ve küçük olanları ararWhee Maas<=750Maaşı 750 TL ve altında olanları seçer. (750 TL ve altı)
BetweenBelli bir aralıkta olan değerleri ararWhere Maas Between 750 and 1000Maaşı 750 TL ile 1000 TL arasında olanları seçer.
LikeBirkaç karakteri bilinen kayıtları ararWhere Sehir Like 'S%'Sehir alanında S ile başlayan kayıtları seçer.
InBirden fazla değerleri tek alanda arar.Where Sehir in ('İstanbul','Ankara')Sehir alanında İstanbul ve Ankara yazan kayıtları seçer.
Not: Between, Like ve IN operatörlerinin kullanımını detaylı olarak konu başlıklarında incelenmiştir.

SQL WHERE Kullanımı

DISTINCT ifadesi tablodaki belirtilen alanda bulunan kayıtlardan birer örnek alır. Yani tekrar eden kayıtlardan bir tane alır ve bunun yanına da tekrar etmeyen kayıtları koyarak bir veri kümesi oluşturur. Ne işimize yarar veya nerede kullanabiliriz sorusu akla gelebilir.

Mesela bir üyelerinizin depolandığı bir tablo olduğunu düşünün. Bu tablodan mesela İstanbul'da kaç tane üyeniz olduğunu bulmak istediğinizi düşünün. Yaptığınız programa bir açılır liste kutusu koyup illerin isimlerini tek tek yazabilirsiniz. Ancak bu durum hem bir zaman kaybı olur hemde sistemde kayıtlı olmayan ileri de listeleyeceği için, açılır liste kutusu açıldığında uzun bir liste olacaktır. Bunun yerine Distinct komutu kullanarak tablodaki Şehir alanında yazan kayıtlar tek düşürülür ve bir açılır liste kutusuna aktarılabilir. Böylece ilgili şehir seçilerek o şehirde kaç tane üyenizin olduğunu görebilirsiniz. Listede görünmeyen şehirden üyeniz olmadığı anlamını rahatlıkla çıkarabilirsiniz.
Distinct Kullanım Biçimi
SELECT DISTINCT alan_adi1,alan_adi2
FROM tablo_adi
Distinct kelimesinden sonra yazılacak olan alanlara otomatik olarak uygulanır. Yani birden fazla alan üzerinde Distinct yapılacaksa alanların başına tek tek yazılmaz. Ayrıca Distinct komutu tek başına kullanılamaz. Mutlaka SELECT ifadesi ile kullanılmalıdır.

Burada dikkat edilmesi gereken nokta çoklu distinct kullanımında belirtilen alanlardaki verileri bir bütün olarak ele alır ve diğer kayırlarda benzersiz alanları bulmaya çalışır. (örnek2 ve örnek3'e bakabilirisiniz.)

Örnek Tablo Uygulaması:
Örnek olarak aşağıdaki gibi Personel isimli tablomuz olsun.
idAdi_soyadiSehirBolumMeslek_Kodu
1Salih ESKİOĞLUİstanbulBilgi İşlem Sorumlusu1234567
2Ayhan ÇETİNKAYAKocaeliİdari İşler Yöneticisi2345678
3Serkan ÖZGÜRELErzincanMuhasebe3456789
4İlhan ÖZLÜİstanbulBİlgi İşlem Sorumlusu2345678

Örnek1:

SELECT DISTINCT Sehir FROM Personel

Bu kod ile tablodaki Sehir alanında bulunan kayıtları birer defa alır.
Çıktısı:
Sehir
İstanbul
Kocaeli
Erzincan


Örnek2:SELECT DISTNICT Sehir, Bolum FROM Personel

Bu örnekte Personel tabosundan adı soyadı ve bölüm bilgisinin tutulduğu alanlar seçilmektedir. Ancak burada dikkat edilmesi gerekn nokta iki alanın sanki tek bir alanmş gibi değelendirilmesidir.
Çıktısı:
SehirBolum
İstanbulBilgi İşlem Sorumlusu
Kocaeliİdari İşler Yöneticisi
ErzincanMuhasebe
Burada dikkat edeceğiniz üzere tablomuzdaki son satırı almadı. Çünkü Sehir ve Bolum alanlarını tek bir alanmış gibi düşündüğümüz zaman "İstanbul Bilgi İşlem Sorumlusu" ifadesi ortaya çıkar. Son satırdaki kayıtta aynı ifadeye denk gelmektedir. Bu sebeple dikkate alınmadı.
Örnek3:SELECT DISTNICT Sehir, Bolum, Meslek_Kodu FROM Personel

Bu örnekte Personel tabosundan adı soyadı ve bölüm bilgisinin tutulduğu alanlar seçilmektedir. Ancak burada dikkat edilmesi gerekn nokta iki alanın sanki tek bir alanmş gibi değelendirilmesidir.
Çıktısı:
SehirBolumMeslek_Kodu
İstanbulBilgi İşlem Sorumlusu1234567
Kocaeliİdari İşler Yöneticisi2345678
ErzincanMuhasebe3456789
İstanbulBİlgi İşlem Sorumlusu2345678
Bu örnekte ise bütün kayıtlar gelmiş oldu.  Çünkü Sehir, Bolum ve Meslek_kodu alanlarını tek bir alanmış gibi düşündüğümüz zaman; ilk satırı örnek verecek olursak "İstanbul Bilgi İşlem Sorumlusu 1234567" ifadesi ortaya çıkar. Sehir alanında iki tane İstanbul olmasına rağmen ikiside listelenmiştir. Çünkü iki kaydın Meslek_Kodu alanında yazan değer farklıdır.
Aynı tabloyu aşağıdaki kod ile çalıştırdığımız zaman:
Select Distinct Bolum, Meslek_kodu FROM Personel
Çıktısı:
BolumMeslek_Kodu
Bilgi İşlem Sorumlusu1234567
İdari İşler Yöneticisi2345678
Muhasebe3456789
Bilgi İşlem Sorumlusu2345678
Dikkat edileceği üzere Bilgi İşlem Sorumlusu alanı iki defa gelmiş oldu. Aynı mantıktan yola çıakrak alanların birleştirilmiş olduğunu düşünürsek, Bilgi İşlem Sorumlusu kayıtlarında Meslek_Kodu alanında 1234567 ve 2345678 verileri vardır. Dolayısı ile bu iki satır benzersiz değildir.

SQL DISTINCT Kullanımı(Tekrarlayan kayıtlar, Mükerrer kayıtlar)

SELECT ifadesi veritbanından verileri okumak için kullanılır. Veritbanındaki tablo üzerindeki bütün alanlardan veri çekilebileceği gibi belirteceğimiz bir kaç alandan da veri çekebiliriz. En azındna bir alan belirtmek gerekmektedir.
Select Kullanım BiçimiEğer bütün alanlardan veri çekeceksek, Select ifadesinden sonra * işareti konulur. Böylece bütün alanlardan veri çekileceği belirtilmiş olunur.
SELECT *
FROM tablo_adi
Eğer birkaç tane alanlardan veri çekeceksek, Select ifadesinden sonra alanarı virgüller ayırarak yazarız.
SELECT alan_adi1, alan_adi2
FROM tablo_adi

Örnek Tablo Uygulaması:
Örnek olarak aşağıdaki gibi Personel isimli tablomuz olsun.
idAdi_soyadiSehirBolumSicil No
1Salih ESKİOĞLUİstanbulBilgi İşlem Sorumlusu1234567
2Ayhan ÇETİNKAYAKocaeliİdari İşler Yöneticisi2345678
3Serkan ÖZGÜRELErzincanBilgi İşlem Sorumlusu3456789

SQL SELECT Kullanımı

Data TipiAçıklamaBoyut
TextMetinsel verileri depolar. Girilen sayıları da metinsel olarak depoalr. En fazla 255 karakter alır.
Memo255 karakterden fazla bilgi depoalamak istenildiğinde kullanılır. 65,536 karakter alır. 
Not:
 Bu alanda alfabetik sıralama yapılamaz. Ancak arama işlemleri yapılabilir.
Byte0 ile 255 arası tam sayılar için kullanılır. Virgüllü sayılar olmaz.1 byte
Integer-32,768 ve 32,767 arasındaki tam sayılar için kullanılır. Virgüllü sayılar olmaz.2 bytes
Long-2,147,483,648 and 2,147,483,647 arasındaki tam sayılar için kullanılır. Virgüllü sayılar olmaz.4 bytes
SingleTek basamaklı virgüllü ifadeler için kullanılır.4 bytes
DoubleÇok basamakalı virgüllü ifadeler için kullanılır.8 bytes
CurrencyPara birimi için kullanılır. 15 basamaklı tam sayı ve 4 basamaklı kuruş verisi saklanabilir. 
Not:
Hangi ülke para birimini kullanacağınızı seçebilirsiniz.
8 bytes
AutoNumberOtomatik numara alanıdır. Her kayıt eklendiğinde numara 1 artar. Genel olarak 1'den başlar4 bytes
Date/TimeTarih ve Saat verilerini saklamak için kullanılır.8 bytes
Yes/NoEvet/Hayır, Var/Yok, veya Açık/Kapalı gibi mantıksal verilerde kullanılır. Kodlamada True veya False ifadeleri ile sorgulanabilir. 
Not:
 Bu alan boş olarak geçilemez.
1 bit
Ole ObjectResim, ses, video gibi iki taban dosyalarını depolamak için kullanılır.1 GB'a kadar
HyperlinkWeb sayfaları dahil olmak üzere diğer dosyalara bağlantılar içerir.

MySQL Veri Tipleri

MySQL veritabanalrında temelde 3 tane veri tipi vardır: metinsel, sayısal ve tarih-saat.

Metinsel Veri Tipleri:
Data TipiAçıklama
CHAR(boyut)Boyut ile belirtilen uzunlukta boşluklar da dahil olmak üzere karakter depolar. Bu karkterler harf,  sayılar ve özel karakterlerden (% , & , +  gibi) oluşur. En fazla 255 karakter alır. Belirtilenden az karakter sayısı da girilse belirtilen boyut kadar yer kaplar.
VARCHAR(boyut)Boyut ile belirtilen uzunlukta boşluklar dahil olmak üzere karakter depolar. Bu karkterler harf ve sayılardan oluşur. En fazla 255 karakter alır. En fazla boyut ile belirtilen değer kadar karakter girişi olur. Eğer belirtilenden daha az karakter girilirse, girilen karakter kadar yer kaplar.
TINYTEXTEn fazla 255 karaktere kadar olan boşluklar dahil metinsel ifadeleri saklar.
TEXTEn fazla 65.535 karaktere kadar olan boşluklar dahil metinsel ifadeleri saklar.
BLOB(Binary Long OBjects). Binary yani ikili verilerin saklanacağı durumlarda kullanılır. En fazla 65.535 byte (yaklaşık 64 KB) veri saklanabilir.
MEDIUMTEXT16.777.215 karaktere kadar metinsel ifadeleri depolayabilir.
MEDIUMBLOB16.777.215 karaktere kadar iki kodlama verilerini saklar.
LONGTEXT4.294.967.295 karaktere kadar metinsel verileri depolayabilir.
LONGBLOB4.294.967.295 karaktere kadar ikili kodlama verisi depolayabilir.
ENUM(x,y,z,....)65535 adede kadar, ihtimalli girişlerde kullanılabilir. Giriş önceliğine göre sıralama yapılır. Giriş formatına örenk: ENUM('X','Y','Z','F')
SETYapısı ENUM'a benzemektedir. Ancak 64 taneye kadar giriş yapılabilir.
Sayısal Veri Tipleri:
Data TipiAçıklama
TINYINT(boyut)-128 ile 127 arasında değer alır. Boyut ile alabileceği sınırı belirtebiliriz.
SMALLINT(boyut)-32.768 ile 32.767 arasında değer alır. Boyut ile alabileceği sınırı belirtebiliriz.
MEDIUMINT(boyut)-8.388.608 ile 8.388.607 arasında değer alır. Boyut ile alabileceği sınırı belirtebiliriz.
INT(boyut)-2.147.483.648 ile 2.147.483.647  arasında değer alır. Boyut ile alabileceği sınırı belirtebiliriz.
BIGINT(boyut)-9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 arasında değer alır. Boyut ile alabileceği sınırı belirtebiliriz.
FLOAT(boyut,d)Küçük rakamlı virgüllü ifadeler için kullanılır. Boyut ile sayının virgüllü kısmı dahil alabileceği en fazla miktar belirtilirken d ile virgülden sonra kaç basamak olacağı belirtilir.
Boyut değeri en fazla 23 olabilir.
DOUBLE(boyut,d)yük rakamlı virgüllü ifadeler için kullanılır. Boyut ile sayının virgüllü kısmı dahil alabileceği en fazla miktar belirtilirken d ile virgülden sonra kaç basamak olacağı belirtilir.
Boyut değeri en fazla 53 olabilir.
DECIMAL(boyut,d)DOUBLE 'ın yetmediği durumlarda, virgüllü ifadeler için kullanılır. Boyut ile sayının virgüllü kısmı dahil alabileceği en fazla miktar belirtilirken d ile virgülden sonra kaç basamak olacağı belirtilir.
Boyut değeri en fazla 65 olabilir. Görüleceği üzere FLOAT, DOUBLE ve DECIMAL arasındaki temel fark boyut ile belirtilen basamak sayısıdır. İhtiyaca göre seçim yapılıp kullanılır.
Tarih-Zaman Veri Tipleri:
Data TipiAçıklama
DATE()Sadece tarih girişi için kullanılır. 'YYYY-AA-GG' şeklinde depolama yapar. '1000-01-01'  ile  '9999-12-31' arasındaki tarihleri destekler.
DATETIME()Tarih ve saat kombinasyonu için kullanılır. 'YYYY-AA-GG SS:DD:SS' şeklinde depolama yapar. '1000-01-01 00:00:00' ile  '9999-12-31 23:59:59' arasındaki tarihleri destekler.
TIMESTAMP()Depolama biçimi DATETIME() ile aynıdır. Ancak yazdığınız program üzerinden bu alan veri gönderimi yapılmaz. O anki tarih ve saati otomatik olarak ekler. Eğer elle bir tarih-saat eklenecekse o zaman veritipi DATETIME() olarak ayarlanmalıdır.
TIME()Sadece saat verisi saklamak için kullanılır. 'SS:DD:SS' (Saat-dakika-saniye) şeklinde saklar.
YEAR()2 veya 4 basamaklı YIL bilgisini saklamak için kullanılır. Dört basamalı verilerde 1901 ile 2155 arası değer saklanır. İki basamaklı verilerde ise 70 ile 69 (1970 ile 2069) değeri saklanır..

MS SQL Server Veri Tipleri

Metinsel Veri Tipleri:
Data TipiAçıklamaDepo alanı
CHAR(boyut)Boyut ile belirtilen uzunlukta boşluklar dahil olmak üzere karakter depolar. En fazla 8.000 karaktere kadar depolama yapar. Boyut ile belirtilen değerden az veri girilse bile boyut kadar yer kaplar.Belirtilen boyut kadar.
VARCHAR(boyut)Boyut ile belirtilen uzunlukta boşluklar dahil olmak üzere karakter depolar. En fazla 8.000 karakter alır. En fazla boyut ile belirtilen değer kadar karakter girişi olur. Eğer belirtilenden daha az karakter girilirse, girilen karakter kadar yer kaplar.2 Byte+girilen karakter kadar.
VARCHAR(max)Varchar ile aynı yapıdadır. En fazla 1.073.741.824 adede kadar karakter depolar.2 Byte+girilen karakter kadar.
TEXTEn fazla 2GB'ye kadar metinsel veri depolamak için kullanılır.4 Byte+girilen karakter kadar.
NCHAR(boyut)En fazla 4.000 karaktere kadar UNICODE veri saklanabilir. Boyut ile belirtilen değerden az veri girilse bile boyut kadar yer kaplar.Beliritlen boyut x 2
NVARCHAREn fazla 4.000 karaktere kadar UNICODE veri saklanabilir. En fazla boyut ile belirtilen değer kadar karakter girişi olur. Eğer belirtilenden daha az karakter girilirse, girilen karakter kadar yer kaplar.
NVARCHAR(max)NVARCHAR ile aynı yapıdadır. 536.870.912 adede kadar karakter depolar.
NTEXTEn fazla 2GB'ye kadar UNICODE veri depolamak için kullanılır. Girilen karakter kadar yer kaplar.
BITSadece 0, 1 veya NULL yani boş değer içerir. Boolean yani var-yok, evet-hayır gibi iki değer alması gerek durumlarda kullanılabilir.
BINARY(boyut)Belirtilen boyut kadar binary yani ikili bilgi saklar. En fazla 8.000 karakter depolar. Boyut ile belirtilen değerden az veri girilse bile boyut kadar yer kaplar.
VARBINARYBelirtilen boyut kadar binary yani ikili bilgi saklar. En fazla 8.000 karakter depolar. Eğer belirtilenden daha az karakter girilirse, girilen karakter kadar yer kaplar.
VARBINARY(max)VARBINARY ile aynı yapıdadır. En fazla 2GB'ye kadar veri saklar.
IMAGEResim dosyalarını saklamak için kullanılır. En fazla 2GB'ye kadar veri saklar.

SQL Veri Türleri Uzunlukları

Tablo üzerindeki her bir alanın bir veri tipi vardır. Veritabanını tasarlarken hangi alanın hangi veri tipinde olduğunu belirlemek oldukça önemlidir. Daha sonra bir alandan veri çekmek istenirse alanın tipinie göre veri çekmek işlemi gerekecektir.
Aşağıdaki listede genel olarak kullanılan data tiplerini görebilirsiniz.
Data TipiAçıklama
CHARACTER(n)Metin tipinde n ile belirtilen sayı kadar karakter depolar. n ile belirtilenden az karakter girilmiş olsa bile n kadar yer kullanılır.
VARCHAR(n) or CHARACTER VARYING(n)En fazla n ile belirtilen kadar karakteryer kaplar. Girilen veri n değerinden az ise sadece girildiği kadar alan kaplar.
BINARY(n)Metinsel olarak Binary değerleri n ile belirtilen kadar depolar. n değerinden az karakter girilse de n kadar yer kullanılır.
BOOLEANTRUE - FALSE , VAR - YOK gibi sadece iki durumun varlığında kullanılır.
VARBINARY(n) or BINARY VARYING(n)Metinsel olarak Binary değerleri en fazla n ile belirtilen kadar depolar. Veri n değerinden az ise sadece girildiği kadar alan kaplar.
INTEGERTam sayı olarak numarasal değerleri depolar. Virgüllü değerleri kabul etmez. 4 byte alan kaplar. -2.147.483.648 ile 2.147.438.647 arası değerlerde kullanılır.
SMALLINTKüçük tam sayı değerlerini depolar. Virgüllü değerleri kabul etmez. 2 byte yer kaplar. -32.768 ile 32.767 arası değerlerde kullanılır.
TINYINTMini tam sayı değerlerini depolar. Virgüllü değerleri kabul etmez. 1 byte yer kaplar. 0-255 arası değerlerde kullanılır.
BIGINTBüyük tam sayıları depolamak için kullanılır. Virgüllü değerleri kabul etmez. 8 byte alan kaplar. -2.147.483.648 ile 2.147.438.647 arası değerlerde kullanılır. -9.223.372.036.854.775.808 ile -9.223.372.036.854.775.807 arası değerlerde kullanılır.
DECIMAL(p,s)Virgüllü değerlerde kullanılır.. Örneğin: decimal(5,2) ifadesinde toplam 5 tane rakam olduğunu söylenmiş. Bunun 2 tanesi virgülden sonra olaak belirtilmiş. Tam sayı kısmına ise 3 rakam girilebilir.
NUMERIC(p,s)DECIMAL veri tipi ile aynı özelliklere sahiptir. Bazı sistemler sadece Numeric alanı kullanır.
FLOAT(p)Virgüllü değerleri yuvarlayarak kayıt eder. p ile hafızada tutulmak istenen byte değeri belirtilir. girilen değer 5 byte'tan fazla ise sadece 5 byte'lık kısmı yuvarlanarak kaydedilir.
REAL4 byte yer tutar. Aynı zamanda Float(24) ile aynı işi yapar. Ancak bu tipte virgüllü sayıları aklayabilirsiniz.
DATEYıl, ay, gün olarak tarih depolar
TIMESaat, dakika ve saniye olarak veri depolar
TIMESTAMPYıl, ay, gün, saat, dakika ve saniye olarak veri depolar
MULTISETA variable-length and unordered collection of elements
XMLXML tipinde verileri depolar.

SQL Data Tipleri(SQL Veri Türleri)

SQL dili veritbanlarındaki tablolara bağlanıp veri eklemek, daha önceden eklenen verileri okumak ve veriler üzerinde işlem yapmak (güncelleme, silme) için kullanılan bir dildir. Sorgulama yapabilmek için öncelikli olarak veritabanımızda ez azından bir tablo olması gerekmektedir.  Birden fazla tablo da olabilir. Ancak ister bir tablo olsun isterse birden çok tablo olsun neticede üzerinde işlem yapmak istediğimiz tabloyu belirtmemiz gerekmektedir. Hangi tablo üzerinde çalışacağımız FROM ifadesi ile belirtiriz. Bu ifade SQL sorgulama dilinin temelidir ve hemen hemen bütün SQL sorgularında kullanılmaktadır. Hemen hemen dedik çünkü bazı sorgu ifadelerinde kullanılmaz. Mesela yeni bir veritabanı veya tablo oluştururken FROM ifadesi kullanılmaz.  FROM ifadesi sadece var olan verilerde sorgulama yaparken kullanılır.


Tek başına FROM ifadesi tabiki yetmez. FROM ile hangi tablo üzerinde işlem yapacağımız belirtiriz ancak ilgili tabloda ekleme işlemi mi, silme işlemi mi veya güncelleme işlemi mi yaptığımızı da belirtmemiz gerekmektedir. Bunun için belli başlı işlemler için hangi özel komutun kullanıldığını aşağıdaki tabloda görebilirsiniz.



Komutİşlemi
Select Veritabanından verileri okumak için kullanılır.
Update Veritabanındaki var olan bir kaydın bilgilerini güncellemede kullanılır. Örneğin yaşadığı şehir alanı İstanbul olanları Ankara'ya çeviremek gibi.
Delete Veritabanındaki bir kaydı silme için kullanılır.
Insert Into Veritabanına yeni bir kayıt eklemek için kullanılır.
Create Database Yeni bir veritabanı oluşturmak için kullanılır.
Alter Database Mevcut veritabanı özelliklerinde değişiklik yapmak için kullanılır.
Create Table Veritabanına yeni bir tablo eklemek için kullanılır.
Alter Table Mevcut tablo özelliklerinde işlem yapmak için kullanılır. Bu komut ile mevcut kayıtlar üzerinde işlem yapılmaz.
Drop Table Veritabanı içindeki bir tabloyu silmek için kullanılır. Bu işlem ile ilgili tablodaki kayıtlar da silinir.

Örnek1:
Select * From Personel  (Personel tablosundaki bütün kayıtları çeker.)
Select Ad, Sehir From Personel (Personel tablosunda çok sayıda alan olabilir. Ancak bu komutla sadece Ad ve Sehir alanlarındaki kayıtları çekeriz.)

Yukarıdaki örnekte görüleceği üzere öncelikli olarak hangi işlemin yapılacağı belirtiliyor. Daha sonra ise hangi alanlar için yapılacağı belirtiliyor ve son olarak hangi tablo üzerinde yapılacağı belirtiliyor.
Örnak2:
Select * From Personel Where Sehir='İstanbul'
Select * From Personel Where Sehir='İstanbul' and Bolum='Bilgisayar'
Birinci önekte Personel tablosundan Sehir alanında İstanbul yazan kayıtlar seçilmektedir. Tabloda 100 tane kayıt olabilir. Ancak bunlardan 20 tanesinin Sehir alanında İstanbul yazıyorsa, yazılan bu komut ile sadece 20 tane kayıt seçilip ekrana yazdırılabilir. İkinci örnekte ise Perosnel tablosundaki kayıtlarda Sehir alaninda İstanbul yazan ve Bolum alanında Bilgisayar yazan kayitler seçilip ekrana yazdırılabilir.
Komutların detaylı kullanımları ile ilgili bilgileri sol taraftaki menüden seçerek görebilirsiniz. Bu bölümde temel olarak SQL yapısının nasıl işlediğini anlamanız yeterli olacaktır.

SQL Kullanımı Hakkında


C sınıfı 192.23.123.2 adres için;
Ağ numarası: 192.23.123.0
Bu ağdaki tüm PC’lere mesaj göndermek isteyen bir cihaz şu adrese mesajı atacaktır;
n192.23.123.255
B sınıfı 142.50.120.2 adres için;
Ağ numarası: 142.50.0.0
Bu ağdaki tüm PC’lere mesaj göndermek isteyen bir cihaz şu adrese mesajı atacaktır;
142.50.255.255


Bazı IP adresleri bazı kullanımlar için ayrılmıştır. Yerel ağlar için ayrılmış adresler:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
169.254.0.0 - 169.254.255.255
0 à bir ağı göstermektedir
255 à broadcast adres; bir ağ içerisindeki tüm PC’ler,
 Örnekler;

a)131.107.20.4
b)208.234.23.4 

c)108.15.45.4
Yukarıdaki adreslerin
nIP sınıfını
nAlt ağ maske numarasını
nBağlı olduğu ağ numarasını
nBroadcast adreslerini yazınız.
 

Ağ ve Broadcast Numaraları Bulma/Hesaplama


Bazı IP adresleri özel anlamlar taşırlar ve hostlara IP adresi olarak verilemezler. Bu IP adreslerinin tablosu şu şekildedir;

Prefix
Suffix
Adresin Türü
Ne Amaçla Kullanıldığı
Bütün bitler 0
Bütün bitler 0
“Bu bilgisayar”
Dinamik IP alan bilgisayarların açılışında DHCP ve bootsrap’te kullanılır.
Ağ adresi
Bütün bitler 0
Ağ adresi
Bir ağın adesini belirtir.
Ağ adresi
Bütün bitler 1
Yönlendirilmiş Broadcast adresi
İstenilen ağa broadcast mesaj gönderilmesini sağlar.
Bütün bitler 1
Bütün bitler 1
Sınırlandırılmış Broadcast adresi
Yerel bir ağda broadcast mesaj gönderilmesini sağlar.
127
Herhangi bir değer
Loopback
Test amaçlı kullanım için.
 Özel IP Adresleri


127 ile başlayan adresler : Bir makinenin kendisi ile konuşması (loopback)
Localhost: 127.0.0.1
İlk oktet 0 veya 255 olamaz.
 

Özel IP Adresleri