sql >> Database >  >> RDS >> Database

T-SQL versus SQL

Hier is een kort overzicht van het verschil tussen SQL en T-SQL (Transact-SQL). Niet zozeer de verschillen als zodanig, maar meer een uitleg van T-SQL en waar het zit in relatie tot SQL.

Als u aan databaseontwikkeling of -beheer hebt gedaan, bent u waarschijnlijk bekend met SQL. SQL, wat staat voor Structured Query Language, is een standaard querytaal voor het werken met databases. De meeste grote relationele databasebeheersystemen zoals MySQL, Oracle, SQL Server, PostgreSQL, enz. ondersteunen SQL op de een of andere manier.

Hoewel de SQL-standaard duidelijke specificaties biedt, kunnen databaseleveranciers ook hun eigen extensies toevoegen. Hierdoor kunnen leveranciers hun klanten extra functies en functionaliteit bieden die mogelijk niet door hun concurrenten worden aangeboden.

Dit is waar T-SQL om de hoek komt kijken.

Wat is Transact-SQL?

Transact-SQL, vaak afgekort tot T-SQL of zelfs TSQL, is de eigen extensie van Microsoft en Sybase op SQL. Transact-SQL breidt de SQL-standaard uit met extra functies die niet zijn opgenomen in de SQL-standaard.

Hoewel Transact-SQL (en SQL Server) het meest bekend staat als een Microsoft-ding, is het eigenlijk het resultaat van een samenwerking tussen Microsoft en Sybase die begon in 1987. Deze samenwerking werd in 1994 ontbonden. Hierna bleef T-SQL bestaan. ondersteund door databaseproducten die door beide bedrijven zijn uitgebracht, ontwikkelde elk bedrijf echter zijn databaseproducten in zijn eigen richting. Daarom zijn er enkele verschillen tussen Sybase T-SQL en Microsoft T-SQL.

Transact-SQL staat centraal in SQL Server. De meeste bewerkingen in SQL Server worden uitgevoerd met T-SQL. Dit geldt zelfs als u een GUI-tool gebruikt (zoals SSMS of DBeaver) en u niet echt programmeert. Elke keer dat u een applicatie gebruikt om te communiceren met SQL Server, gebruikt de applicatie T-SQL achter de schermen om de gespecificeerde taak uit te voeren.

Maar SQL Server is niet het enige databasebeheersysteem dat Transact-SQL ondersteunt. Microsoft Azure SQL Database ondersteunt ook T-SQL. De meeste T-SQL-functies die toepassingen gebruiken, worden volledig ondersteund in zowel Microsoft SQL Server als Azure SQL Database (hoewel er enkele uitzonderingen zijn).

T-SQL-functies

Enkele van de functies van T-SQL zijn:

  • Procedureel programmeren
  • Lokale variabelen
  • Verschillende ondersteuningsfuncties voor stringverwerking, datumverwerking, wiskunde, enz.
  • Wijzigingen in de DELETE en UPDATE verklaringen. Ze laten met name toe een FROM-clausule toe te voegen, waardoor joins kunnen worden opgenomen.
  • T-SQL heeft een BULK INSERT statement waarmee u een gegevensbestand in een databasetabel of weergave in een door de gebruiker gespecificeerd formaat kunt importeren.

Een van de belangrijkste voordelen van de bovenstaande extensies is dat je veel meer programmeerbaarheid hebt bij het gebruik van T-SQL versus SQL. Met opgeslagen procedures kunt u bijvoorbeeld programmeerlogica in uw database opnemen. U kunt een of meer parameters doorgeven aan een opgeslagen procedure, en de opgeslagen procedure retourneert een uitvoer die varieert afhankelijk van de waarden van de parameters.

Over het GO-commando

Iedereen die T-SQL heeft gebruikt, zal waarschijnlijk bekend zijn met de GO opdracht. Dit trefwoord wordt vaak aan het einde van een reeks uitspraken geplaatst.

Echter, de GO commando is eigenlijk geen onderdeel van Transact-SQL. In feite is de GO commando kan zelfs niet dezelfde regel bezetten als een Transact-SQL-statement.

GO is een van de opdrachten die worden herkend door de sqlcmd en osql hulpprogramma's, evenals SQL Server Management Studio Code Editor om de leesbaarheid en uitvoering van batches en scripts te vergemakkelijken. De GO commando signaleert het einde van een batch Transact-SQL-instructies aan de SQL Server-hulpprogramma's.

SQL Server-hulpprogramma's interpreteren GO als een signaal dat ze de huidige batch Transact-SQL-instructies naar een exemplaar van SQL Server moeten sturen. De huidige batch met verklaringen is samengesteld uit alle verklaringen die zijn ingevoerd sinds de laatste GO , of sinds de start van de ad-hocsessie of het script als dit de eerste GO . is .

Andere propriëtaire SQL-extensies

Transact-SQL is niet de enige uitbreiding op de SQL-standaard. Verschillende databasesystemen hebben hun eigen extensies. Oracle gebruikt bijvoorbeeld een eigen proceduretaal genaamd PL/SQL en PostgreSQL gebruikt een proceduretaal genaamd PL/pgSQL.

Hoewel propriëtaire SQL-extensies hun voordelen hebben (zoals uitgebreide functionaliteit), hebben ze ook hun nadelen. Een groot nadeel is dat ze dingen moeilijk kunnen maken als je ooit een database van het ene systeem naar het andere moet overzetten. Als uw organisatie bijvoorbeeld plotseling besluit dat het Oracle gaat gebruiken in plaats van SQL Server, moet u mogelijk alle SQL Server-code doornemen en deze voor Oracle herschrijven. Dit vereist ook dat je op de hoogte bent van de syntaxis van beide systemen.


  1. SQL-rijen naar kolommen

  2. PostgreSQL:Zoeken in volledige tekst - Hoe gedeeltelijke woorden zoeken?

  3. MySQL:meerdere tabellen of één tabel met veel kolommen?

  4. Gegevens invoegen in SQL Server