PL-SQL vs T-SQL
T-SQL (Transact SQL) je rozšíření SQL vyvinuté společností Microsoft. T-SQL se používá v Microsoft SQL Server. PL/SQL (Procedural Language/Structured Query Language) je také procedurální rozšíření pro SQL vyvinuté společností Oracle. PL/SQL je hlavní programovací jazyk vložený do databáze Oracle.
PL/SQL
PL/SQL je procedurální rozšíření pro SQL vyvinuté společností Oracle. Programy PL/SQL jsou sestaveny z bloků, což je základní jednotka PL/SQL. PL/SQL poskytuje podporu pro proměnné, smyčky (cykly WHILE, smyčky FOR a smyčky Cursor FOR), podmíněné příkazy, výjimky a pole. Program PL/SQL obsahuje příkazy SQL. Tyto příkazy SQL zahrnují SELECT, INSERT, UPDATE, DELETE atd. Příkazy SQL jako CREATE, DROP nebo ALTER nejsou v programech PL/SQL povoleny. Funkce PL/SQL mohou obsahovat příkazy PL/SQL a příkazy SQL a vrací hodnotu. Na druhé straně procedury PL/SQL nemohou obsahovat příkazy SQL a nevrací hodnotu. PL/SQL také podporuje některé koncepty objektově orientovaného programování, jako je zapouzdření, přetížení funkcí a skrývání informací. Ale nepodporuje dědičnost. V PL/SQL lze balíčky použít k seskupení funkcí, procedur, proměnných atd. Balíčky umožňují opětovné použití kódu. Použití kódu PL/SQL na serveru Oracle by vedlo ke zlepšení výkonu, protože server Oracle předkompiluje kód PL/SQL před jeho skutečným spuštěním.
T-SQL
T-SQL je rozšíření SQL vyvinuté společností Microsoft. T-SQL rozšiřuje SQL přidáním několika funkcí, jako je procedurální programování, lokální proměnné a podpůrné funkce pro zpracování řetězců/dat. Díky těmto funkcím je T-SQL Turing kompletní. Jakákoli aplikace, která potřebuje komunikovat se serverem Microsoft SQL, potřebuje odeslat příkaz T-SQL na server Microsoft SQL Server. T-SQL poskytuje funkce řízení toku pomocí následujících klíčových slov: BEGIN a END, BREAK, CONTINUE, GOTO, IF a ELSE, RETURN, WAITFOR a WHILE. Kromě toho T-SQL umožňuje přidat klauzuli FROM do příkazů DELETE a UPDATE. Tato klauzule FROM by umožnila vkládání spojení do příkazů DELETE a UPDATE. T-SQL také umožňuje vkládání více řádků do tabulky pomocí příkazu BULK INSERT. To by vložilo více řádků do tabulky čtením externího souboru obsahujícího data. Použití BULK INSERT zlepšuje výkon než použití samostatných příkazů INSERT pro každý řádek, který je třeba vložit.
Jaký je rozdíl mezi PL/SQL a T-SQL?
PL/SQL je procedurální rozšíření SQL poskytované společností Oracle a používá se s databázovým serverem Oracle, zatímco T-SQL je rozšíření SQL vyvinuté společností Microsoft a používá se hlavně se serverem Microsoft SQL Server. Mezi datovými typy v PL/SQL a T-SQL jsou určité rozdíly. Například T-SQL má dva datové typy nazvané DATETIME a SMALL-DATETIME, zatímco PL/SQL má jeden datový typ nazvaný DATE. Pro získání funkčnosti funkce DECODE v PL/SQL je navíc nutné v T-SQL použít příkaz CASE. Také místo příkazu SELECT INTO v T-SQL musí být v PL/SQL použit příkaz INSERT INTO. V PL/SQL existuje operátor MINUS, který lze použít s příkazy SELECT. V T-SQL lze stejných výsledků získat použitím klauzule NOT EXISTS s příkazy SELECT.