PL-SQL vs T-SQL
T-SQL (Transact SQL) je proširenje SQL-a koje je razvio Microsoft. T-SQL se koristi u Microsoft SQL Serveru. PL/SQL (Procedural Language/Structured Query Language) također je proceduralno proširenje za SQL koji je razvio Oracle. PL/SQL je glavni programski jezik ugrađen u Oracle bazu podataka.
PL/SQL
PL/SQL je proceduralno proširenje za SQL koje je razvio Oracle. PL/SQL programi sastoje se od blokova, koji su osnovna jedinica PL/SQL-a. PL/SQL pruža podršku za varijable, petlje (WHILE petlje, FOR petlje i Cursor FOR petlje), uvjetne izjave, iznimke i nizove. PL/SQL program sadrži SQL naredbe. Ove SQL izjave uključuju SELECT, INSERT, UPDATE, DELETE itd. SQL izjave poput CREATE, DROP ili ALTER nisu dopuštene u PL/SQL programima. PL/SQL funkcije mogu sadržavati PL/SQL naredbe i SQL naredbe i vraćaju vrijednost. S druge strane, PL/SQL procedure ne mogu sadržavati SQL naredbe i ne vraćaju vrijednost. PL/SQL također podržava neke koncepte objektno orijentiranog programiranja kao što su enkapsulacija, preopterećenje funkcija i skrivanje informacija. Ali ne podržava nasljeđivanje. U PL/SQL, paketi se mogu koristiti za grupiranje funkcija, procedura, varijabli itd. Paketi dopuštaju ponovnu upotrebu koda. Korištenje PL/SQL koda na Oracle poslužitelju dovelo bi do poboljšanih performansi, budući da Oracle poslužitelj unaprijed kompajlira PL/SQL kod prije nego što ga stvarno izvrši.
T-SQL
T-SQL je ekstenzija SQL-a koju je razvio Microsoft. T-SQL proširuje SQL dodavanjem nekoliko značajki kao što su proceduralno programiranje, lokalne varijable i funkcije podrške za obradu nizova/podataka. Ove značajke čine T-SQL Turing potpunim. Svaka aplikacija koja treba komunicirati s Microsoft SQL poslužiteljem mora poslati T-SQL izjavu na Microsoft SQL Server. T-SQL pruža mogućnosti kontrole toka pomoću sljedećih ključnih riječi: BEGIN i END, BREAK, CONTINUE, GOTO, IF i ELSE, RETURN, WAITFOR i WHILE. Nadalje, T-SQL dopušta da se FROM klauzula doda izjavama DELETE i UPDATE. Ova klauzula FROM bi omogućila umetanje spojeva u naredbe DELETE i UPDATE. T-SQL također dopušta umetanje više redaka u tablicu pomoću naredbe BULK INSERT. Ovo bi umetnulo više redaka u tablicu čitanjem vanjske datoteke koja sadrži podatke. Korištenje BULK INSERT poboljšava performanse nego korištenje zasebnih INSERT izjava za svaki redak koji treba umetnuti.
Koja je razlika između PL/SQL i T-SQL?
PL/SQL je proceduralno proširenje SQL-a koje pruža Oracle i koristi se s Oracle poslužiteljem baze podataka, dok je T-SQL proširenje SQL-a koji je razvio Microsoft i uglavnom se koristi s Microsoft SQL Serverom. Postoje neke razlike između tipova podataka u PL/SQL i T-SQL. Na primjer, T-SQL ima dva tipa podataka koji se nazivaju DATETIME i SMALL-DATETIME, dok PL/SQL ima jedan tip podataka koji se zove DATE. Nadalje, da bi se postigla funkcionalnost funkcije DECODE u PL/SQL-u, naredba CASE mora se koristiti u T-SQL-u. Također, umjesto naredbe SELECT INTO u T-SQL-u, naredba INSERT INTO mora se koristiti u PL/SQL-u. U PL/SQL postoji operator MINUS koji se može koristiti s naredbama SELECT. U T-SQL-u isti se rezultati mogu dobiti korištenjem klauzule NOT EXISTS s izjavama SELECT.