SQL

**SQL**, (İngilizce "**S**tructured **Q**uery **L**anguage", Türkçe: *Yapılandırılmış Sorgu Dili*, telaffuz: ɛs&nbsp;kjuː&nbsp;ˈɛl/) verileri yönetmek ve tasarlamak için kullanılan bir dildir. SQL, kendi bir programlama dili olmamasına rağmen birçok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veritabanı ortamında kullanılan bir alt dildir. SQL ile yalnızca veritabanı üzerinde işlem yapılabilir; veritabanlarında bulunan sistemlere bilgi ekleme, bilgi değiştirme, bilgi çıkarma ve bilgi sorgulama için kullanılmaktadır. Özellikle de ilişkisel veritabanı sistemleri üzerinde yoğun olarak kullanılmaktadır. SQL'e özgü cümleler kullanarak veritabanına kayıt eklenebilir, olan kayıtlar değiştirilebilir, silinebilir ve bu kayıtlardan listeler oluşturulabilir.

## Tarihçe

Veritabanı yaklaşımı ile birlikte bir veri sorgulama diline veya aracına ihtiyaç duyulmuştur. İlk başta matematiksel bir sözdizimine sahip olan SQUARE adlı bir dil geliştirilmiştir. Geniş kullanıcı kitleleri tarafında kolay kullanılabilmesi için matematiksel söz dizimli SQUARE dilinden vazgeçilerek, İngilizceye benzer sözdizimine sahip bir dil oluşturulmuş ve SEQUEL olarak adlandırılmıştır. Daha sonra da bu SEQUEL dili, İngilizce söylenişine paralel olarak SQL olarak adlandırılmıştır.

SQL dili ilişkisel alanda büyük ilgi görmüş ve İlişkisel Veritabanı Yönetim Sistemlerinin (İVTYS) tümünde yer alan standart dil görünümü kazanmıştır. Bu nedenle Veritabanı konusunda çalışan tüm bilişim teknik personeli tarafından bilinmesi gereken bir dil konumundadır.

## Veri tanımlama olanakları

SQL veri tanımlama deyimlerinden başlıcaları şunlardır:
; CREATE TABLE tablo_adi:Yeni bir tablo oluşturmak için kullanılır. Alan isimleri yazılırken sona virgül konulur ve son satır olan işlemimizde virgül konmadan parantez kapatılır.

```
CREATE TABLE tabloilceler (
  ilceNo mediumint(8) unsigned DEFAULT '0' NOT NULL,
  ilce varchar(30) NOT NULL,
  postakodu varchar(5),
  ilceTel char(3),
  plakaKodu char(2) NOT NULL
)
```


; ALTER TABLE tablo_adı: Yeni bir sütun eklemek, sütunun tipini veya uzunluğunu değiştirmek vb. yapısal değişiklikler yapılması için kullanılır.
; DROP TABLE tablo_adı:Tabloyu içerisindeki verilerle birlikte siler.
; TRUNCATE TABLE tablo_adı:Tablodaki tüm verileri siler, tablo yapısını korur.:
; CREATE VIEW görüş_adı: Görüntü oluşturmak için kullanılır
; DROP VIEW görüş_adı: Görüntüyü siler
; CREATE INDEX indeks_adı: Tablonun (en azından bir) sütun adı üzerinde indeks oluşturmak için kullanılır.
; DROP INDEX indeks_adı:Oluşturulan indeksleri veritabanından kaldırmak için kullanılır.

## Veri işleme olanakları

;SELECT deyimi:Select deyimi, ilişkili veritabanından veri almak için kullanılır.:`SELECT ilçe, postakodu FROM tabloIlceler WHERE plakaKodu = '34'`İstanbul'un ilçeleri ile posta kodlarını gösterir
;UPDATE deyimi:Update deyimi, ilişkili veritabanındaki verileri güncellemek için kullanılır.:`UPDATE tabloIlceler SET postakodu = '06720' WHERE ilce = 'Bala'`Bala'nın posta kodunu değiştirir
;INSERT deyimi:Insert deyimi, ilişkili veritabanına veri eklemek için kullanılır.:`INSERT INTO tabloIlceler VALUES (, 'Yenişehir', '', '', '53')`Yeni veriler ekler
;DELETE deyimi:Delete deyimi, ilişkili veritabanından veri silmek için kullanılır.:`DELETE FROM tabloIlceler WHERE plakaKodu = '53'`plakaKodu 53 olan bütün verileri siler

## SQL dilini kullanan veritabanları
* Sybase
* MySQL
* PostgreSQL
* Microsoft SQL Server
* Oracle
* IBM DB2
* IBM Informix
* Progress
* Firebird
* Microsoft Access

## Dış bağlantılar
* w3schools.com SQL sayfası