Разлика между PL-SQL и T-SQL

PL-SQL срещу T-SQL

T-SQL (Transact SQL) е разширение на SQL, разработено от Microsoft. T-SQL се използва в Microsoft SQL Server. PL / SQL (Процедурен език / Структуриран език за заявки) също е процедурно разширение за SQL, разработено от Oracle. PL / SQL е основен език за програмиране, вграден в базата данни на Oracle.

PL / SQL

PL / SQL е процедурно разширение за SQL, разработено от Oracle. PL / SQL програмите са изградени от блокове, което е основната единица на PL / SQL. PL / SQL осигурява поддръжка на променливи, цикли (WHILE цикли, FOR цикли и курсори FOR цикли), условни оператори, изключения и масиви. PL / SQL програма съдържа SQL оператори. Тези SQL оператори включват SELECT, INSERT, UPDATE, DELETE и др. SQL изрази като CREATE, DROP или ALTER не са разрешени в PL / SQL програми. PL / SQL функциите могат да съдържат PL / SQL оператори и SQL изрази и тя връща стойност. PL / SQL процедурите от друга страна не могат да съдържат SQL изрази и не връща стойност. PL / SQL също поддържа някои обектно-ориентирани концепции за програмиране като капсулиране, претоварване на функции и скриване на информация. Но не поддържа наследство. В PL / SQL пакетите могат да се използват за групиране на функции, процедури, променливи и т.н. Пакетите позволяват повторно използване на код. Използването на PL / SQL код на Oracle сървър би довело до подобрена производителност, тъй като сървърът Oracle предварително компилира PL / SQL кода, преди действително да го изпълни.

T-SQL

T-SQL е разширение на SQL, разработено от Microsoft. T-SQL разширява SQL, като добавя няколко функции като процедурно програмиране, локални променливи и поддържащи функции за обработка на низове / данни. Тези функции правят T-SQL Turing завършен. Всяко приложение, което трябва да комуникира с Microsoft SQL сървър, трябва да изпрати T-SQL изявление до Microsoft SQL Server. T-SQL предоставя възможности за контрол на потока, използвайки следните ключови думи: BEGIN и END, BREAK, CONTINUE, GOTO, IF и ELSE, RETURN, WAITFOR и WHILE. Освен това, T-SQL позволява клауза FROM да бъде добавена към операторите DELETE и UPDATE. Тази клауза FROM ще позволи да се вмъкнат присъединения към оператори DELETE и UPDATE. T-SQL позволява също така да вмъквате няколко реда в таблица, използвайки оператора BULK INSERT. Това би вмъкнало множество редове в таблица чрез четене на външен файл, съдържащ данни. Използването на BULK INSERT подобрява производителността, отколкото използването на отделни оператори INSERT за всеки ред, който трябва да бъде поставен.

Каква е разликата между PL / SQL и T-SQL?

PL / SQL е процедурно разширение към SQL, предоставено от Oracle и се използва със сървъра на бази данни Oracle, докато T-SQL е разширение на SQL, разработено от Microsoft и се използва главно с Microsoft SQL Server. Има някои разлики между типовете данни в PL / SQL и T-SQL. Например T-SQL има два типа данни, наречени DATETIME и SMALL-DATETIME, докато PL / SQL има един тип данни, наречен DATE. Освен това, за да се получи функционалността на функцията DECODE в PL / SQL, операторът CASE трябва да се използва в T-SQL. Също така, вместо SELECT INTO оператор в T-SQL, операторът INSERT INTO трябва да се използва в PL / SQL. В PL / SQL има оператор MINUS, който може да се използва с оператори SELECT. В T-SQL същите резултати могат да бъдат получени, като се използва клаузата NOT EXISTS с операторите SELECT.