|
Bilgisayar Dünyası |
![]() |
|
Yapısal Sorgulama Dili (SQL) |
|
İlişkisel
veri tabanı yönetim sistemleri (RDBS) modeli ilk önce 1970 yılında
Dr.E.F. Codd tarafından tarif edilmiştir. SQL veya Structured English
Query Language (SEQUEL), IBM firması tarafından Codd’un modeli kullanılmak
için geliştirilmiştir. SEQUEL sonraları SQL olmuştur. 1979 yılında,
Relational Software ,SQL’in ilk ticari uygulamasını geliştirmiştir.
Bugün SQL, ilişkisel veri
tabanı yönetim sistemleri standartı olarak kabul edilmektedir. SQL, ilişkisel veri tabanlarındaki bilgileri sorgulamak için kullanılan bir dildir. SQL, tüm kullanıcıların ve uygulamaların veri tabanına erişmek için kullandıkları komutlar bütünüdür. Uygulama programları ve veri tabanı araçları kullanıcılara çoğu durumda SQL kullanmadan veri tabanına erişim imkanını sunmaktadırlar fakat bu uygulamalarda geri planda SQL kullnmaktadırlar. Oracle SQL’I, standartlara uygundur. Daha da ötesinde, Oracle,SQL standartlarının gelişmesinde motor güç olan bir kurumdur. American National Standarts Institue (ANSI) ve International Standarts Organization (ISO) tarafından belirlenen son SQL standartı, SQL-92’dir. SQL-92’de üç aşamalı uygunluk vardır, ·
İlk seviye (Entry Level) ·
Orta seviye (Intermediate Level) ·
İleri seviyedir (Full Level) SQL,
ilişkisel veri tabanları ile uygulamaların diyaloğunu sağlamaktadır.
SQL temelde verilerle mantıksal seviyede çalışmaktadır. Yani, bir
tablodan birkaç kayıt seçebilmek için, o kayıtları seçebilecek bir
koşul belirtilir. Koşula uyan tüm kayıtlar bir basamakta gelir ve
bunlar kullnıcıya gösterilebildiği gibi, bir başka SQL’e veya
uygulamaya da gönderilebilir. Kayıtların tek tek nasıl geldiği ve
fiziksel olarak veri tabanının neresinde ve nasıl tutulduğu ile SQL
ilgilenmektedir. SQL
komutları ile , ·
Veri sorgulama ·
Bir tabloya kayıt ekleme, değiştirme ve silme ·
Veri tabanı nesneleri (database objects) yaratma, değiştirme ve silme ·
Veri tabanına ve nesnelerine erişimi kontrol etme ·
Veri tabanı bütünlüğünü ve tutarlılığını sağlama işlemleri yapılabilmektedir. SQL komutları bir veya daha fazla satır olbilmektedir. SQL cümlelerinin sonuna noktalı virgül (;) konmaktadır. Birden fazla satır olan komutlarda en son satırın sonuna “ / ” işareti isteğe bağlı olarak konabilmektedir. PL/SQL , Oracle’in SQL komutlarına yapısal dillere AİT özellikleri (begin, end, loop, for, if, elsif, vb.) eklediği kendi standardı olan bir dildir. SQL*Plus, SQL ve PL/SQL komutlarının kullanılabildiği Oracle ürünüdür. |
|
Veri Tipleri (Data Types) |
|
Bir tablo oluştururken her sütunun; bir yordam veya fonksiyon oluştururken de her argümanın veri tipi olmak zorundadır. Bu veri tipleri o alana girilecek veriyi veya o yordamda kullanılacak argümanı sınırlandırır. Bu veri tipleri şunlardır: ·
CHAR(sayı) ·
DATE ·
MSLABEL ·
NUMBER (tam,ondalık) ·
VARCHAR2 (sayı) ·
LONG ·
LONG RAW ·
RAW (sayı) ·
ROWID Şimdi
bu tanımları açıklayalım. CHAR (sayı): Sabit uzunluktaki alfanümerik (karakter) verilerin
tutulabildiği alanlar için kullanılır. Maksimum 255 karakter olabilir.
Eğer sayı ile ifade edilen numaralardan daha kısa uzunlukta veriler
girilirse Oracle kaydın sonuna boşluk ekleyerek sabit uzunuğa jadar
getirir. DATE: Tarih tutan alanlar için kullanılır. Bu tip alanlarda,
tarih bilgileri ve saat bilgileri tutulabilir. Tarih formatları, ülkelere
göre değişmektedir. Tarih alanları ile aritmatik işlemleri yapılabilmektedir.
Standart olanı, DD-MON-YY’dir fakat bu amerikalıların kullandıkları
şekildir, bu formatta MON yerine JAN, FEB, MAR gibi ayların ingilizce
karşılıklarının ilk üç karakteri yazılmaktadır. MLSLABEL: Trusted
Oracle’ da ( Oracle’ nın güvenlik açısından biraz daha gelişmiş
versiyonu) kullanılan işletim sistemine ait binary dosyadır. NUMBER (tam, ondalık): Nümerik
verilerin tutulduğu alanlar
için kullanılır. Tam kısım maksimum
38 basamak olabilir. Ondalık kısmın
basamak sayısı da –84 ile 127 arasındadır. LONG: 2 GB’ a kadar karakter bilgi tutabilen alanlar için
kullanılır.Bir tabloda birden fazla long veri tipine sahip olamaz. LONG
veri tipine sahip olan alanlar üzerinde indeks oluşturulamaz. LONG
alanlar aşağıdaki tip SQL cümlelerinde kullanılamazlar: *WHERE *GROUP BY * ORDER BY * DISTINC * CREATE CLUSTER *CREATE TABLE AS SELECT *SUBSTR, INSTR gibi … LONG RAW: 2 GB’ a kadar binary bilgi tutabilen alanlar için
kullanılır. RAW (sayı): Maksimum 255 byte’a kadar bilgi tutabilen binary alanlar
için kullnılır. RAWID: Bir Kaydın tekil adresini tutan alanlar için kullanılır.
Veri tabanındaki her kaydın bir adresi vardır. Bu değer , SQL cümlesi
içinde diğer sütunlar ile birlikte ROWID
yazarak öğRenilebilir. ROWID üç kısımdan
oluşmaktadır: BLOK.KAYIT.DOSYA ‘dır. VARCHAR2 (sayı) : Değişken uzunluktaki alfanümerik dataların tutulabildiği alanlar için kullanılır. Maksimum 2000 karakter olabilir. |
|
SQL’ in Bölümleri |
|
SQL,
temel olarak aşağıdaki bölümlerden oluşmaktadır. ·
SELECT: Seçilecek
alanların yazıldığı bölümdür. ·
FROM:
Kullanılacak tabloların yazıldığı bölümdür. ·
WHERE:
Sorgu şartlarının yazıldığı bölümdür. ·
GROUP
BY:
Belli alanlara göre kayıtları gruplayıp getirmek için kullanılan bölümdür. ·
HAVING:
Group By’ ın kullanıldığı SQL’lerdeki grupla ilgili şart bölümüdür. ORDER BY: Sorgu sonucunda dönen kayıtlar için sıralamanın tanımlandığı bölümdür. |