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) je također proceduralna ekstenzija za SQL koju je razvio Oracle. PL/SQL je glavni programski jezik ugrađen u Oracle bazu podataka.
PL/SQL
PL/SQL je proceduralna ekstenzija za SQL koju je razvio Oracle. PL/SQL programi su izgrađeni od blokova, što je osnovna jedinica PL/SQL-a. PL/SQL pruža podršku za varijable, petlje (WHILE petlje, FOR petlje i kursor FOR petlje), uslovne izjave, izuzetke i nizove. PL/SQL program sadrži SQL izraze. Ovi SQL izrazi uključuju SELECT, INSERT, UPDATE, DELETE, itd. SQL izrazi poput CREATE, DROP ili ALTER nisu dozvoljeni u PL/SQL programima. PL/SQL funkcije mogu sadržavati PL/SQL izraze i SQL izraze i vraćaju vrijednost. PL/SQL procedure s druge strane ne mogu sadržavati SQL izraze 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 grupisanje funkcija, procedura, varijabli, itd. Paketi dozvoljavaju ponovnu upotrebu koda. Upotreba PL/SQL koda na Oracle serveru bi dovela do poboljšanih performansi, jer Oracle server unaprijed kompajlira PL/SQL kod prije nego što ga stvarno izvrši.
T-SQL
T-SQL je proširenje SQL-a koje je razvio Microsoft. T-SQL proširuje SQL dodavanjem nekoliko funkcija kao što su proceduralno programiranje, lokalne varijable i funkcije podrške za obradu stringova/podataka. Ove karakteristike čine T-SQL Turing potpunim. Svaka aplikacija, koja treba da komunicira sa Microsoft SQL serverom, treba da pošalje T-SQL naredbu na Microsoft SQL Server. T-SQL pruža mogućnosti kontrole toka koristeći sljedeće ključne riječi: BEGIN i END, BREAK, CONTINUE, GOTO, IF i ELSE, RETURN, WAITFOR i WHILE. Nadalje, T-SQL dozvoljava da se klauzula FROM doda naredbama DELETE i UPDATE. Ova klauzula FROM bi omogućila umetanje spojeva u naredbe DELETE i UPDATE. T-SQL takođe dozvoljava umetanje više redova u tabelu koristeći BULK INSERT izraz. Ovo bi ubacilo više redova u tabelu čitanjem eksterne datoteke koja sadrži podatke. Korištenje BULK INSERT poboljšava performanse nego korištenje zasebnih INSERT izraza za svaki red koji treba umetnuti.
Koja je razlika između PL/SQL i T-SQL?
PL/SQL je proceduralna ekstenzija za SQL koju obezbeđuje Oracle i koristi se sa Oracle serverom baze podataka, dok je T-SQL ekstenzija SQL-a koju je razvio Microsoft i uglavnom se koristi sa 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 zovu DATETIME i SMALL-DATETIME, dok PL/SQL ima jedan tip podataka koji se zove DATE. Nadalje, da bi se dobila funkcionalnost funkcije DECODE u PL/SQL, naredba CASE se mora koristiti u T-SQL-u. Također, umjesto izraza SELECT INTO u T-SQL-u, naredba INSERT INTO se mora koristiti u PL/SQL-u. U PL/SQL-u postoji MINUS operator, koji se može koristiti sa SELECT naredbama. U T-SQL-u isti rezultati se mogu dobiti korištenjem klauzule NOT EXISTS sa SELECT naredbama.