PL-SQL versus T-SQL
T-SQL (Transact SQL) is een uitbreiding van SQL ontwikkeld door Microsoft. T-SQL wordt gebruikt in Microsoft SQL Server. PL/SQL (Procedural Language/Structured Query Language) is ook een procedurele uitbreiding voor SQL, ontwikkeld door Oracle. PL/SQL is een programmeertaal die is ingebed in de Oracle-database.
PL/SQL
PL/SQL is een procedurele uitbreiding voor SQL ontwikkeld door Oracle. PL/SQL-programma's zijn opgebouwd uit blokken, de basiseenheid van PL/SQL. PL/SQL biedt ondersteuning voor variabelen, lussen (WHILE-lussen, FOR-lussen en Cursor FOR-lussen), voorwaardelijke instructies, uitzonderingen en arrays. Een PL/SQL-programma bevat SQL-statements. Deze SQL-instructies omvatten SELECT, INSERT, UPDATE, DELETE, enz. SQL-instructies zoals CREATE, DROP of ALTER zijn niet toegestaan in PL/SQL-programma's. PL/SQL-functies kunnen PL/SQL-instructies en SQL-instructies bevatten en retourneert een waarde. PL/SQL-procedures daarentegen kunnen geen SQL-instructies bevatten en retourneren geen waarde. PL/SQL ondersteunt ook enkele objectgeoriënteerde programmeerconcepten zoals inkapseling, overbelasting van functies en het verbergen van informatie. Maar het ondersteunt geen erfenis. In PL/SQL kunnen pakketten worden gebruikt om functies, procedures, variabelen, enz. te groeperen. Pakketten maken hergebruik van code mogelijk. Het gebruik van PL/SQL-code op de Oracle-server zou leiden tot betere prestaties, aangezien de Oracle-server de PL/SQL-code vooraf compileert voordat deze daadwerkelijk wordt uitgevoerd.
T-SQL
T-SQL is een uitbreiding van SQL ontwikkeld door Microsoft. T-SQL breidt SQL uit door verschillende functies toe te voegen, zoals procedureel programmeren, lokale variabelen en ondersteunende functies voor string-/gegevensverwerking. Deze eigenschappen maken T-SQL Turing compleet. Elke toepassing die moet communiceren met de Microsoft SQL-server, moet een T-SQL-statement naar de Microsoft SQL Server sturen. T-SQL biedt mogelijkheden voor flow control met behulp van de volgende trefwoorden: BEGIN en END, BREAK, CONTINUE, GOTO, IF and ELSE, RETURN, WAITFOR en WHILE. Bovendien staat T-SQL toe dat een FROM-component wordt toegevoegd aan DELETE- en UPDATE-instructies. Met deze FROM-component kunnen joins worden ingevoegd in DELETE- en UPDATE-instructies. T-SQL maakt het ook mogelijk om meerdere rijen in een tabel in te voegen met behulp van de BULK INSERT-instructie. Dit zou meerdere rijen in een tabel invoegen door een extern bestand met gegevens te lezen. Het gebruik van BULK INSERT verbetert de prestaties dan het gebruik van afzonderlijke INSERT-instructies voor elke rij die moet worden ingevoegd.
Wat is het verschil tussen PL/SQL en T-SQL?
PL/SQL is een procedurele uitbreiding van de SQL die wordt geleverd door Oracle en wordt gebruikt met de Oracle-databaseserver, terwijl T-SQL een uitbreiding van SQL is die is ontwikkeld door Microsoft en die voornamelijk wordt gebruikt met Microsoft SQL Server. Er zijn enkele verschillen tussen de gegevenstypen in PL/SQL en T-SQL. T-SQL heeft bijvoorbeeld twee datatypes genaamd DATETIME en SMALL-DATETIME, terwijl PL/SQL één enkel datatype heeft genaamd DATE. Om de functionaliteit van de DECODE-functie in PL/SQL te verkrijgen, moet bovendien het CASE-statement worden gebruikt in T-SQL. Ook moet in plaats van het SELECT INTO-statement in T-SQL het INSERT INTO-statement worden gebruikt in PL/SQL. In PL/SQL is er een MINUS-operator, die kan worden gebruikt met SELECT-instructies. In T-SQL kunnen dezelfde resultaten worden verkregen door de NOT EXISTS-clausule te gebruiken met de SELECT-instructies.