SQL | |
İlk sürüm tarihi | 1974 |
---|---|
paradigma | bildirimsel , prosedürel , nesne yönelimli |
Yazar | Donald D. Chamberlin ve Raymond F. Boyce |
geliştirici | IBM |
Son sürüm | SQL: 2016 (2016) |
Yazıyor | statik ve güçlü |
lehçeler | SQL-86, SQL-89, SQL-92, SQL: 1999, SQL: 2003, SQL: 2008, SQL: 2011, SQL: 2016 |
Etkilenen | CQL , LINQ , Windows PowerShell |
Uygulamalar | birçok |
İşletim sistemi | Çapraz platform |
Dosya uzantısı | sql |
Uzantı | .sql |
---|---|
MIME türü | application/x-sql, application/sql |
tarafından geliştirildi | ISO / IEC |
Biçim türü | Veri tabanı |
Standart | ISO/IEC9075 |
SQL (kısaltmasıdır Structured Query Language içinde, Fransızca sorgu dili yapılandırılmış ) bir olduğunu standardize bilgisayar dili yararlanmak için kullanılan ilişkisel veritabanları . SQL'in veri işleme dili bölümü , ilişkisel veritabanlarındaki verileri bulmanızı, eklemenizi, değiştirmenizi veya silmenizi sağlar.
Veri işleme dilinin yanı sıra:
1974'te oluşturulan ve 1986'dan beri standart hale getirilen dil, piyasadaki ilişkisel veritabanı yönetim sistemlerinin (kısaltılmış RDBMS) büyük çoğunluğu tarafından tanınmaktadır .
SQL, ALPHA (onun soyundan gelen), SQUARE, QUEL ( Ingres ile entegre ) veya QBE (Zloof) dilleriyle aynı ailenin bir parçasıdır . Doğduğunda SEQUEL olarak adlandırıldı, ancak SEQUEL'in uçak üreticisi Hawker-Siddeley'in tescilli markası olması nedeniyle bu isim SQL olarak değiştirildi .
Haziran ayında 1970 , Edgar Frank Codd makale yayınladı Büyük Paylaşılan Veri Bankaları için Veri A İlişkisel Model dergi içinde ACM Communications ( for Computing Machinery Derneği ).. Birinci dereceden yüklemlerin mantığına dayanan bu ilişkisel depo , veritabanlarını sorgulamak için ilginç bir teorik model olarak hızla kabul edildi ve daha sonra SQL olarak yeniden adlandırılan Yapılandırılmış İngilizce QUEry Dilinin ( SEQUEL ) geliştirilmesine ilham verdi . ticari marka çatışması .
1970 yılında Donald Chamberlin ve Raymond Boyce tarafından IBM'de geliştirilen bu ilk sürüm, IBM System R veritabanı yönetim sistemini kullanarak ilişkisel veritabanında depolanan verileri işlemek ve düzenlemek için tasarlanmıştır . Bir veri toplama sistemi için uçak üreticisi Hawker Siddeley tarafından ticari olarak tescil edilen SEQUEL adı, 1975'te düşürüldü ve SQL ile sözleşme yapıldı. Daha sonra SQL'in gelecekteki FS projesinin önemli bir bileşeni olması bekleniyordu .
In 1979 , İlişkisel Software, Inc. (şimdi Oracle Corporation ) hızla diğer satıcılar tarafından taklit SQL ilk ticari olarak bulunabilen versiyonunu tanıttı.
SQL tarafından bir öneri olarak kabul edilmiştir Amerikan Standartlar Enstitüsü içinde (ANSI) 1986 , daha sonra uluslararası bir standart olarak ISO içinde 1987 olarak ISO / IEC 9075 - Bilgi teknolojisi - Veritabanı dilleri - SQL .
Uluslararası SQL standardı bir dizi revizyondan geçmiştir:
Yıl | Soyadı | unvan | Yorumlar |
---|---|---|---|
1986 | ISO / IEC 9075: 1986 | SQL-86 veya SQL-87 | ANSI tarafından yayınlanmış ve daha sonra 1987'de ISO tarafından benimsenmiştir . |
1989 | ISO / IEC 9075: 1989 | SQL-89 veya SQL-1 | Küçük revizyon. |
1992 | ISO / IEC 9075: 1992 | SQL-92 (tr) diğer adı SQL2 | Büyük revizyon. |
1999 | ISO / IEC 9075: 1999 | SQL-99 (tr) diğer adı SQL3 | Normal ifadeler, özyinelemeli sorgular, tetikleyiciler, skaler olmayan türler ve birkaç nesne yönelimli işlev (son iki nokta biraz tartışmalıdır ve henüz yaygın olarak uygulanmamıştır). |
2003 | ISO / IEC 9075: 2003 | SQL: 2003 (tr) | XML işleme, "pencere işlevleri", standartlaştırılmış siparişler ve kendi ürettiği değerlere sahip sütunlar (kimlik sütunları dahil) için işlevlerin tanıtımı. |
2008 | ISO / IEC 9075: 2008 | SQL: 2008 (tr) | Bazı pencereleme işlevleri eklendi (ntile, lead, lag, first value, last value, nth value), satır sayısını sınırlayın (OFFSET / FETCH), farklı türlerde küçük iyileştirmeler, imleçler ve otomatik artış mekanizmaları. |
2011 | ISO / IEC 9075: 2011 | SQL: 2011 (tr) | Geçici tablolar için destek eklendi (otomatik geçmişe alma). |
ISO tarafından yayınlanan herhangi bir uluslararası standart gibi, ISO/IEC 9075 de bu kuruluşun web sitesinden satın alınabilir. Standardın en son taslağı wiscorp.com'da mevcuttur.
SQL dili temel olarak üç şekilde kullanılır:
SQL ifadeleri, sıradan İngilizce cümlelere benzeyen bir şekilde yazılır. Bu amaçlanan benzerlik, öğrenmeyi ve okumayı kolaylaştırmak için tasarlanmıştır.
Bu bir olan bildirim dil, onu nasıl elde açıklayan olmadan, beklenen sonucunu açıklamak için izin vermektedir. DBMS'ler, algoritmik karmaşıklığı tahmin etmek de dahil olmak üzere işlemleri gerçekleştirmenin en uygun yolunu otomatik olarak belirleyen sorgu iyileştiriciler - mekanizmalarla donatılmıştır . Bu, veritabanında yer alan verilerden toplanan istatistiklere dayanmaktadır (kayıt sayısı, bir sütundaki farklı değerlerin sayısı vb.).
SQL ifadeleri 4 alanı kapsar:
veri işleme diliVeritabanının içeriğini değiştirme talimatları , sırasıyla içerik bulma, değiştirme, ekleme ve silme işlemlerine karşılık gelen SELECT , UPDATE , INSERT veya DELETE anahtar sözcükleri ile başlar .
FROM , JOIN ve GROUP BY gibi çeşitli anahtar kelimeler , manipüle edilecek içeriği elde etmek için yapılacak ilişkisel cebir işlemlerini belirtmek için kullanılır .
veri tanımlama diliÜst verileri işlemek için talimatlar - veritabanının yapısının, organizasyonunun ve özelliklerinin açıklaması - ekleme, değiştirme, silme, yeniden adlandırma, yorum yapma veya boşaltma işlemlerine karşılık gelen CREATE , ALTER , DROP , RENAME , COMMENT veya TRUNCATE anahtar sözcükleri ile başlar. bir meta veri. Bu anahtar sözcüklerin hemen ardından kullanılacak meta veri türü gelir - TABLE , VIEW , INDEX ...
veri kontrol dili ve işlem kontrol diliGRANT ve REVOKE anahtar sözcükleri, belirli kişilere işlemleri yetkilendirmek, yetkiler eklemek veya yetkileri kaldırmak için kullanılır. COMMIT ve ROLLBACK anahtar sözcükleri , işlemlerin yürütülmesini onaylamak veya iptal etmek için kullanılırken .
SQL sözdizimi 9075 ISO standardına tabidir . Bu standart, DBMS üreticilerine özel ve standartlaştırılmamış talimatlar ekleme olanağı tanır . Standart taleplerine ayak uydurmak için yıllar içinde gelişti ve bunlar standartların konusu olmadan önce DBMS yayıncılar genellikle bir yapılır. Yorumlanmasını anlamak ve anlayış değişimlere sebep olan, kendi ürünleri için yeteneklerini eklemiş kaynak koduna göre SQL çeşitli DBMS yazılımı. Bu farklılıklar , belirli bir VTYS için önlem alınmadan yazılan bir kaynak kodunun başka bir VTYS ile çalışmayacağı anlamına gelir.
SQL, birden çok veritabanını yönetebilir ve genellikle yönetir . Hangisiyle çalışmak istediğinizi başlangıçta bir USE talimatı ile belirtmelisiniz.
USE mabase;Veri işleme dili DML veya veri düzenleme dili, DML, İngilizce olarak, SQL bir alt kümesi eklemek, değiştirmek ve sil veri için kullanılır:
NULL anahtar sözcüğü , ilişkisel modeldeki eksik bilgileri ifade etmek için SQL'de tanıtıldı. DOĞRU ve YANLIŞ ile birlikte NULL'un tanıtılması, üçlü mantığın temelidir . NULL'un SQL'de değeri yoktur (ve herhangi bir veri türünün üyesi değildir), bilgilerin eksik olduğunu gösteren ayrılmış bir anahtar kelimedir. Bu nedenle, NULL ile karşılaştırma, NULL ile bile, DOĞRU veya YANLIŞ olamaz, bilinmemelidir ve Boole değeri yoktur. Aslında, NULL, NULL'a eşit kabul edilemez, çünkü bu iki farklı NULL'un temsil ettiği iki eksik bilgi parçası farklı olabilir. Genelde NULL'un bir "işaretleyici" olduğunu söyleriz.
Diğer sorgu dilleri, QUEL (Query English Language) veya QBE (Örneğe Göre Sorgulama) dili gibi SQL'in atalarını içerir. Ancak, QBE dil SQL çok farklıdır, içinde hâlâ yürürlüktedir “Dosya” tipi RDBMSs gibi Paradox (Ansa Yazılımı / Borland / Corel) veya Microsoft Access dan (veritabanı) Microsoft .
WITH tekniğinin kısmen SQL: 1999 standardında " Common Table Expression " ( Fransızcada CTE veya Table d'Expression Partagee ), yani kullanılabilecek örneklenmemiş görünümler oluşturmak için alındığı belirtilmelidir. ağaç veya grafik geçişlerini zarif bir şekilde çözmek için ifadeleri çarpanlara ayırmak veya özyinelemeli sorguların yazılmasına izin vermek için göründükleri sorgu ile.
Diğer adaylar şunları içerir:
|
Tüm bu sistemlerin, bazıları diğerlerinde bulunmayan belirli özellikleri vardır. Ayrıca, belirli veya karmaşık talepler sırasında ve bunların optimizasyonu için RDBMS referans kılavuzuna başvurmak her zaman ilginçtir.