PL-SQL vs T-SQL
T-SQL (Transact SQL) Microsoft tərəfindən hazırlanmış SQL-in genişləndirilməsidir. T-SQL Microsoft SQL Serverində istifadə olunur. PL/SQL (Prosedur Dili/Structured Query Language) həm də Oracle tərəfindən hazırlanmış SQL üçün prosedur genişləndirilməsidir. PL/SQL Oracle verilənlər bazasına daxil edilmiş əsas proqramlaşdırma dilidir.
PL/SQL
PL/SQL Oracle tərəfindən hazırlanmış SQL üçün prosedur genişləndirilməsidir. PL/SQL proqramları PL/SQL-in əsas vahidi olan bloklardan ibarətdir. PL/SQL dəyişənlərə, döngələrə (WHILE döngələri, FOR dövrələri və Kursor FOR dövrələri), şərti ifadələrə, istisnalara və massivlərə dəstək verir. PL/SQL proqramı SQL ifadələrini ehtiva edir. Bu SQL ifadələrinə SELECT, INSERT, UPDATE, DELETE və s. daxildir. CREATE, DROP və ya ALTER kimi SQL ifadələrinə PL/SQL proqramlarında icazə verilmir. PL/SQL funksiyaları PL/SQL ifadələrini və SQL ifadələrini ehtiva edə bilər və o, dəyəri qaytarır. Digər tərəfdən PL/SQL prosedurları SQL ifadələrini ehtiva edə bilməz və dəyəri qaytarmır. PL/SQL həmçinin inkapsulyasiya, funksiyaların həddən artıq yüklənməsi və məlumatların gizlədilməsi kimi bəzi obyekt yönümlü proqramlaşdırma konsepsiyalarını dəstəkləyir. Ancaq miras almağı dəstəkləmir. PL/SQL-də paketlər funksiyaları, prosedurları, dəyişənləri və s. qruplaşdırmaq üçün istifadə edilə bilər. Paketlər kodun təkrar istifadəsinə imkan verir. Oracle serverində PL/SQL kodunun istifadəsi təkmilləşdirilmiş performansa gətirib çıxaracaq, çünki Oracle serveri PL/SQL kodunu həqiqətən icra etməzdən əvvəl əvvəlcədən tərtib edir.
T-SQL
T-SQL Microsoft tərəfindən hazırlanmış SQL-in genişləndirilməsidir. T-SQL, prosedur proqramlaşdırma, yerli dəyişənlər və sətir/məlumat emalı üçün dəstəkləyici funksiyalar kimi bir neçə xüsusiyyət əlavə etməklə SQL-i genişləndirir. Bu xüsusiyyətlər T-SQL Turingi tamamlayır. Microsoft SQL serveri ilə əlaqə qurmalı olan hər hansı proqram Microsoft SQL Serverə T-SQL bəyanatı göndərməlidir. T-SQL aşağıdakı açar sözlərdən istifadə edərək axına nəzarət imkanlarını təmin edir: BEGIN və END, BREAK, CONTINUE, GOTO, IF və ELSE, RETURN, WAITFOR və WHILE. Bundan əlavə, T-SQL DELETE və UPDATE ifadələrinə FROM bəndinin əlavə edilməsinə imkan verir. Bu FROM bəndi DELETE və UPDATE ifadələrinə birləşmələr daxil etməyə imkan verəcəkdir. T-SQL həmçinin BULK INSERT ifadəsindən istifadə edərək cədvələ çoxsaylı sətirlər daxil etməyə imkan verir. Bu, məlumatları ehtiva edən xarici faylı oxumaqla cədvələ çoxlu sətirlər daxil edərdi. BULK INSERT-dən istifadə, daxil edilməli olan hər bir sıra üçün ayrıca INSERT ifadələrindən istifadə etməklə performansı yaxşılaşdırır.
PL/SQL və T-SQL arasındakı fərq nədir?
PL/SQL Oracle tərəfindən təmin edilən SQL-in prosedur uzantısıdır və Oracle verilənlər bazası serveri ilə istifadə olunur, T-SQL isə Microsoft tərəfindən hazırlanmış SQL-in genişləndirilməsidir və o, əsasən Microsoft SQL Server ilə istifadə olunur. PL/SQL və T-SQL-də məlumat növləri arasında bəzi fərqlər var. Məsələn, T-SQL-də DATETIME və SMALL-DATETIME adlı iki məlumat növü var, PL/SQL-də isə DATE adlı tək məlumat növü var. Bundan əlavə, PL/SQL-də DECODE funksiyasının funksionallığını əldə etmək üçün T-SQL-də CASE ifadəsindən istifadə edilməlidir. Həmçinin, T-SQL-də SELECT INTO ifadəsi əvəzinə PL/SQL-də INSERT INTO ifadəsi istifadə edilməlidir. PL/SQL-də SELECT ifadələri ilə istifadə oluna bilən MINUS operatoru var. T-SQL-də eyni nəticələr SELECT ifadələri ilə MÖVCUD OLMAZ bəndindən istifadə etməklə əldə edilə bilər.