PL-SQL ve T-SQL
T-SQL (Transact SQL), Microsoft tarafından geliştirilen bir SQL uzantısıdır. T-SQL, Microsoft SQL Server'da kullanılır. PL/SQL (Procedural Language/Structured Query Language), Oracle tarafından geliştirilen SQL için prosedürel bir uzantıdır. PL/SQL, Oracle veritabanına gömülü bir ana programlama dilidir.
PL/SQL
PL/SQL, Oracle tarafından geliştirilen SQL için prosedürel bir uzantıdır. PL/SQL programları, PL/SQL'in temel birimi olan bloklardan oluşur. PL/SQL, değişkenler, döngüler (WHILE döngüleri, FOR döngüleri ve Cursor FOR döngüleri), koşullu ifadeler, istisnalar ve diziler için destek sağlar. Bir PL/SQL programı, SQL ifadeleri içerir. Bu SQL ifadeleri SELECT, INSERT, UPDATE, DELETE vb. içerir. PL/SQL programlarında CREATE, DROP veya ALTER gibi SQL ifadelerine izin verilmez. PL/SQL işlevleri, PL/SQL deyimleri ve SQL deyimleri içerebilir ve bir değer döndürür. PL/SQL prosedürleri ise SQL deyimleri içeremez ve bir değer döndürmez. PL/SQL ayrıca kapsülleme, işlev aşırı yükleme ve bilgi gizleme gibi bazı nesne yönelimli programlama kavramlarını da destekler. Ancak kalıtımı desteklemez. PL/SQL'de paketler, işlevleri, prosedürleri, değişkenleri vb. gruplamak için kullanılabilir. Paketler, kodun yeniden kullanılmasına izin verir. Oracle sunucusunda PL/SQL kodunun kullanılması, Oracle sunucusu PL/SQL kodunu fiilen çalıştırmadan önce önceden derlediği için performansın artmasına yol açacaktır.
T-SQL
T-SQL, Microsoft tarafından geliştirilen bir SQL uzantısıdır. T-SQL, prosedürel programlama, yerel değişkenler ve dize/veri işleme için destekleyici işlevler gibi çeşitli özellikler ekleyerek SQL'i genişletir. Bu özellikler T-SQL Turing'i tamamlar. Microsoft SQL sunucusuyla iletişim kurması gereken herhangi bir uygulamanın, Microsoft SQL Sunucusuna bir T-SQL ifadesi göndermesi gerekir. T-SQL, aşağıdaki anahtar sözcükleri kullanarak akış denetimi yetenekleri sağlar: BEGIN ve END, BREAK, CONTINUE, GOTO, IF ve ELSE, RETURN, WAITFOR ve WHILE. Ayrıca, T-SQL, DELETE ve UPDATE ifadelerine bir FROM yan tümcesinin eklenmesine izin verir. Bu FROM yan tümcesi, DELETE ve UPDATE ifadelerine birleştirme eklenmesine izin verir. T-SQL ayrıca BULK INSERT deyimini kullanarak bir tabloya birden çok satır eklemeye izin verir. Bu, veri içeren harici bir dosyayı okuyarak bir tabloya birden çok satır ekler. BULK INSERT kullanmak, eklenmesi gereken her satır için ayrı INSERT deyimleri kullanmaya göre performansı artırır.
PL/SQL ve T-SQL arasındaki fark nedir?
PL/SQL, Oracle tarafından sağlanan SQL'in prosedürel bir uzantısıdır ve Oracle veritabanı sunucusuyla birlikte kullanılırken, T-SQL, Microsoft tarafından geliştirilen SQL'in bir uzantısıdır ve çoğunlukla Microsoft SQL Server ile kullanılır. PL/SQL ve T-SQL'deki veri türleri arasında bazı farklılıklar vardır. Örneğin, T-SQL'in DATETIME ve SMALL-DATETIME adlı iki veri türü vardır, PL/SQL'in ise DATE adlı tek bir veri türü vardır. Ayrıca, PL/SQL'de DECODE işlevinin işlevselliğini elde etmek için, T-SQL'de CASE ifadesinin kullanılması gerekir. Ayrıca, T-SQL'de SELECT INTO ifadesi yerine, PL/SQL'de INSERT INTO ifadesi kullanılmalıdır. PL/SQL'de, SELECT ifadeleriyle kullanılabilecek bir MINUS operatörü vardır. T-SQL'de SELECT ifadeleriyle NOT EXISTS yan tümcesi kullanılarak aynı sonuçlar elde edilebilir.