Home / MAKALELER / Veri Tabanı / ORACLE VERİ TİPLERİ

ORACLE VERİ TİPLERİ

ORACLE VERİ TİPLERİ

Kullandığımız veritabanında, verileri saklayabilmemiz için tablolar yaratmamız gerekmektedir. Bu tablolarında bünyesinde de birtakım veri tipleri mevcuttur. Bu veri tipleri, saklanabilecek verinin bir anlamda kimliğini açığa çıkartmaktadır.

Veri tipleri arasında;

– CHAR(X): Büyüklüğü 1 byte ile 2000 byte arasındadır ve bu aralıktaki karakter değerlerini saklayabilmek için kullanılır. CHAR’ın özelliği, tablo yaratılırken eğer CHAR(5) olarak bir değişken yarattıysak, verilen değelerin tamamı doldurulacak demektir. Eğer 5’ten büyük bir karakter girmeye çalışırsanız hata alırsınız fakat düzeltemenin yoluda modify etmektir.

– VARCHAR2(X): Büyüklüğü 1 byte ile 4000 byte arasındadır. CHAR’dan en büyük farkı ve en büyük kullanılma sebeplerinden biri ise, VARCHAR(200) ile VARCHAR(2)’nin yaratıldıkları zaman aynı yeri kaplıyor olmasıdır. Yani, bir değer girilene kadar veritabanında aynı miktarda yeri işgal ediyorlar. Burada gelebilecek soru; neden varchar değilde varchar2 olabilir. varchar reserved keyworddür ve ileriki bir zamanda kullanılmak üzere saklanmıştır.
NUMBER(X,Y): X tam kısmı, Y ise ondalıklı kısmı temsil eder. Örneğin; number(4,1) yazarsak 3 tam sayılı ve bir ondalıklı sayı olacak demektir. Belirtilen ondalıklı sayıdan daha büyük ondalıklar girildiğinde, Oracle bu ondalığı, belirtilen ondalığa kadar rounded-up olarak yuvarlar. Ondalık belirtmeden de bir değişken tanımlanabilir. Bu bir tam sayı olacağını ifade edecektir.

DATE: Bu veri tipi, tarih ve zaman bilgilerini barındırır. Toplam 7 byte büyüklüğündedir ve en küçük birimi saniyedir.

LONG, RAW, TIMESTAMP, CLOB, ROWID gibi diğer veri tipleri de mevcuttur.

 

SQL QUERYLERİ

Veritabanına kaydettiğimiz verileri alma, görünteleme, raporlama vb işleri yerine getirmemize yarayan, Oracle veritabanının olduğu gibi diğer bütün veritabanlarının en temel yapıtaşı, atomu olan sorgulama sistemine SQL Queryleri denir(QUERY-Cümle). SQL Queryleri ile, ilişkisel veritabanı özellikleri, tablo birleştirme, yaratma, düşürme, boşaltma, pl/sql içinde dinamik olarak gömebilme, yönetim komutlarını yerine getirebilme, kullanıcılar yaratabilme, yaratılanlara haklar tanıyabilme ve düşürebilme, system kullanıcısının segmentlerindeki bilgileri toplama, görüntüleme gibi nice komutu yerine getirebiliriz.

Basit bir SQL yapısı ve sorgu örneği ise şu şekilde verilebilir:

SELECT

FROM

WHERE

GROUP BY

HAVING

ORDER BY

Yukarıdaki yapı, bir sql sorgusunda sırayla takip edilmesi gereken yapıdır. Bu yapıda select’in ardından gelecek bir group by veya havingden önce gelebilecek bir order by sorgunun hata vermesine ve çalışmamasına sebep olacaktır.

SELECT *

FROM DENEME;

Yukarıdaki sorguda istenilen şey, DENEME tablosundaki bütün kolonlardaki verilerin çekilmesi. Buradaki “*” bütün kolonları simgelemektedir. Yani, yukarıda belirttiğim veri tiplerinden tabloya işlenmiş olanları ve içlerinde barındırdığı verilerin tamamı demektir.

Eğer DENEME tablosunda 2 veri tipi kayıtlı ise örneğin, kullanici_adi varchar2(40) ve kullanici_soyadi varchar2(45), yukarıdaki sorguyu şu şekilde de yazabiliriz:

SELECT KULLANICI_ADI, KULLANICI_SOYADI

FROM DENEME;

Ya da,

SELECT D.*

FROM DENEME D;

Bu da, DENEME tablosuna D tagı ekliyoruz ve D’nin bütün verilerini çekmek istiyoruz demektir.

Sütünların hepsini çekebilidiğimiz gibi bir kısmınıda, belirtli koşullarla ve taglarla çekebiliriz. Örneğin;

SELECT KULLANICI_ADI AS AD, KULLANICI_SOYADI AS SOYAD

FROM DENEME;

Unutmayalım ki yukarıda kullandığım “AS” keyword’ü Oracle 9i ile birlikte depracate edilmiştir ve kullanılmamaktadır. Bunun yerine;

SELECT KULLANICI_ADI AD, KULLANICI_SOYADI SOYAD

FROM DENEME;

diyebiliyoruz. Bu şekilde yazılan bir sorgunun ekrana yansıması ise sütün adı olarak KULLANICI_ADI değilde, AD olması olacaktır.

SQL QUERYLERİ İLE VERİLERİN SINIRLANMASI

Bir select cümlesi ile bütün verileri almak istemiyorsak ve birtakım veriler arasından da bir gruplarını seçmek istiyorsak kullandığımız çok nitelikli ve bol miktarda fonksiyon ve grup fonksiyonları vardır.

Örneğin;

Bir tabloda eğer birden fazla grup_id’si bulunuyorsa ve biz sadece tekil olarak grup_idleri görmek istiyorsak DISTINCT kullanmalıyız.

SELECT DISTINCT GRUP_ID

FROM DENEME;

Distinct için unutulmaması gereken en önemli nokta ise, ardından gelen bütün sütünlar da distinct, yani tekil olacaktır. Yukarıdaki örnekte grup_id’nin yanına user_id’de ekleseydik, ikisinin birden tekil olacağı anlaşılacaktı.

Bir diğer veri sınırlandırma yöntemi ise WHERE koşuludur. Bu koşul ile tabloda bulunan verilerin içeriğine göre sorgular yazabilir ve görmek istediğimiz kadarını görmeyi başarabiliriz.

Örneğin;

SELECT KULLANICI_ADI AD, GRUP_ID ID

FROM DENEME

WHERE GRUP_ID IS NULL;

Deneme tablosundan kullanici_adini AD olarak ve grup_id’yi ID olarak çektiğimiz ancak grup_idlerinin NULL değer, yani değersiz, boş olduğu verileri bu şekilde alabiliriz. NULL demek sıfır demek değildir!..

Bundan sonraki konumuzda, Mantıksal operatörler olan AND, FALSE, NULL gibi konularla diğer sınırlandırma operatörlerini inceleyeceğiz.

İyi günler,

Ogan

 

About Ensar Erdogan

Ankara Polatlı'da doğdum.İlk ve Orta eğitimimi Ankara da tamamladık dan sonra,Üniversite eğitimime Azerbaycan da devam etme kararı verdim.Azerbaycan Teknik Üniversitesi Bilgisayar Mühendisliği bölümünden mezunum.Yazılım kurslarına giderek bilgisayar dünyasıyla tanışmış oldum.Kurslarda ilk olarak C VE C++ eğitimi aldım,daha sonra uzun bir dönem Java dünyasıyla da tanışmış oldum.Bilgisayar dünyasının bir diğer vazgeçilmezi olan Oracle veritabanıyla tanıştım,çeşitli eğitimler alarak kendimi geliştirmeye çalıştım.Oracle adına SQL ,Oracle database 11g certification associate (OCA) ve Oracle database 11g certified Professional(OCP) sertifikasına sahibim.Oratech Teknoloji Sistemlerinde Oracle DBA olarak çalişmaktayım.

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın