PL-SQL vs T-SQL
T-SQL (Transact SQL) on Microsofti välja töötatud SQL-i laiendus. T-SQL-i kasutatakse Microsoft SQL Serveris. PL/SQL (Procedural Language/Structured Query Language) on ka SQL-i protseduuriline laiendus, mille on välja töötanud Oracle. PL/SQL on Oracle'i andmebaasi manustatud peamine programmeerimiskeel.
PL/SQL
PL/SQL on SQL-i protseduurilaiend, mille on välja töötanud Oracle. PL/SQL-programmid koosnevad plokkidest, mis on PL/SQL-i põhiüksus. PL/SQL toetab muutujaid, silmuseid (WHILE tsüklid, FOR tsüklid ja Cursor FOR tsüklid), tingimuslauseid, erandeid ja massiive. PL/SQL-programm sisaldab SQL-lauseid. Need SQL-laused hõlmavad SELECT, INSERT, UPDATE, DELETE jne. SQL-laused, nagu CREATE, DROP või ALTER, pole PL/SQL-programmides lubatud. PL/SQL-funktsioonid võivad sisaldada PL/SQL-lauseid ja SQL-lauseid ning see tagastab väärtuse. Teisest küljest ei saa PL/SQL-protseduurid sisaldada SQL-lauseid ega tagasta väärtust. PL/SQL toetab ka mõningaid objektorienteeritud programmeerimise kontseptsioone, nagu kapseldamine, funktsioonide ülekoormus ja teabe peitmine. Pärimist see aga ei toeta. PL/SQL-is saab pakette kasutada funktsioonide, protseduuride, muutujate jms rühmitamiseks. Paketid võimaldavad koodi taaskasutamist. PL/SQL-koodi kasutamine Oracle'i serveris parandaks jõudlust, kuna Oracle'i server kompileerib PL/SQL-koodi enne selle tegelikku käivitamist.
T-SQL
T-SQL on Microsofti välja töötatud SQL-i laiendus. T-SQL laiendab SQL-i, lisades mitmeid funktsioone, nagu protseduuriline programmeerimine, kohalikud muutujad ja stringi-/andmetöötluse tugifunktsioonid. Need funktsioonid muudavad T-SQL Turingi täielikuks. Iga rakendus, mis peab suhtlema Microsoft SQL-serveriga, peab saatma Microsoft SQL Serverile T-SQL-i avalduse. T-SQL pakub voo juhtimise võimalusi, kasutades järgmisi märksõnu: BEGIN ja END, BREAK, CONTINUE, GOTO, IF and ELSE, RETURN, WAITFOR ja WHILE. Lisaks võimaldab T-SQL lisada DELETE- ja UPDATE-lausetele klausli FROM. See FROM-klausel võimaldab lisada DELETE- ja UPDATE-lausetesse liitumisi. T-SQL võimaldab lisada tabelisse mitu rida, kasutades lauset BULK INSERT. See lisaks tabelisse mitu rida, lugedes andmeid sisaldavat välist faili. Funktsiooni BULK INSERT kasutamine parandab jõudlust kui eraldi INSERT-lause kasutamine iga lisatava rea jaoks.
Mis vahe on PL/SQL-il ja T-SQL-il?
PL/SQL on Oracle'i pakutav SQL-i protseduuriline laiendus ja seda kasutatakse koos Oracle'i andmebaasiserveriga, samas kui T-SQL on Microsofti välja töötatud SQL-i laiendus ja seda kasutatakse peamiselt koos Microsoft SQL Serveriga. PL/SQL-i ja T-SQL-i andmetüüpide vahel on mõningaid erinevusi. Näiteks T-SQL-il on kaks andmetüüpi nimega DATETIME ja SMALL-DATETIME, samas kui PL/SQL-il on üks andmetüüp nimega DATE. Lisaks tuleb PL/SQL-is funktsiooni DECODE funktsionaalsuse saamiseks kasutada T-SQL-is CASE-lauset. Samuti tuleb T-SQL-is SELECT INTO-lause asemel kasutada PL/SQL-is käsku INSERT INTO. PL/SQL-is on operaator MINUS, mida saab kasutada SELECT-lausetega. T-SQL-is saab samu tulemusi saada, kasutades NOT EXISTS-klauslit koos SELECT-lausetega.