Database
 sql >> Base de données >  >> RDS >> Database

T-SQL contre SQL

Voici un bref aperçu de la différence entre SQL et T-SQL (Transact-SQL). Pas tellement les différences en tant que tel, mais plutôt une explication de T-SQL et de sa position par rapport à SQL.

Si vous avez fait du développement ou de l'administration de bases de données, vous connaissez probablement SQL. SQL, qui signifie Structured Query Language, est un langage de requête standard pour travailler avec des bases de données. La plupart des principaux systèmes de gestion de bases de données relationnelles tels que MySQL, Oracle, SQL Server, PostgreSQL, etc. prennent en charge SQL d'une manière ou d'une autre.

Cependant, bien que la norme SQL fournisse des spécifications claires, elle permet également aux fournisseurs de bases de données d'ajouter leurs propres extensions. Cela permet aux fournisseurs de fournir à leurs clients des fonctionnalités et fonctionnalités supplémentaires qui pourraient ne pas être proposées par leurs concurrents.

C'est là qu'intervient T-SQL.

Qu'est-ce que Transact SQL ?

Transact-SQL, souvent abrégé en T-SQL ou même TSQL, est l'extension propriétaire de Microsoft et Sybase à SQL. Transact-SQL étend la norme SQL pour inclure des fonctionnalités supplémentaires qui ne sont pas incluses dans la norme SQL.

Bien que Transact-SQL (et SQL Server) soit plus communément connu sous le nom de Microsoft, c'est en fait le résultat d'un partenariat entre Microsoft et Sybase qui a commencé en 1987. Ce partenariat a été dissous en 1994. Suite à cela, T-SQL a continué à être pris en charge par les produits de base de données publiés par les deux sociétés, cependant, chaque société a développé ses produits de base de données dans sa propre direction. Par conséquent, il existe certaines différences entre Sybase T-SQL et Microsoft T-SQL.

Transact-SQL est au cœur de SQL Server. La plupart des opérations dans SQL Server sont effectuées à l'aide de T-SQL. Cela est vrai même si vous utilisez un outil graphique (tel que SSMS ou DBeaver) et que vous ne faites aucune programmation. Chaque fois que vous utilisez une application pour interagir avec SQL Server, l'application utilise T-SQL en arrière-plan pour effectuer la tâche spécifiée.

Mais SQL Server n'est pas le seul système de gestion de base de données qui prend en charge Transact-SQL. Microsoft Azure SQL Database prend également en charge T-SQL. La plupart des fonctionnalités T-SQL utilisées par les applications sont entièrement prises en charge dans Microsoft SQL Server et Azure SQL Database (à quelques exceptions près).

Fonctionnalités T-SQL

Certaines des fonctionnalités de T-SQL incluent :

  • Programmation procédurale
  • Variables locales
  • Diverses fonctions de support pour le traitement des chaînes, le traitement des dates, les mathématiques, etc
  • Modifications du DELETE et UPDATE déclarations. En particulier, ils permettent d'ajouter une clause FROM, ce qui permet d'inclure des jointures.
  • T-SQL a un BULK INSERT instruction qui vous permet d'importer un fichier de données dans une table ou une vue de base de données dans un format spécifié par l'utilisateur.

L'un des principaux avantages des extensions ci-dessus est que vous avez beaucoup plus de programmabilité lorsque vous utilisez T-SQL vs SQL. Les procédures stockées, par exemple, vous permettent d'intégrer une logique de programmation dans votre base de données. Vous pouvez passer un ou plusieurs paramètres à une procédure stockée, et la procédure stockée renverra une sortie qui varie en fonction des valeurs des paramètres.

À propos de la commande GO

Quiconque a utilisé T-SQL connaîtra probablement le GO commande. Ce mot-clé est souvent placé à la fin d'un lot d'instructions.

Cependant, le GO La commande ne fait pas réellement partie de Transact-SQL. En fait, le GO La commande ne peut même pas occuper la même ligne qu'une instruction Transact-SQL.

GO est l'une des commandes reconnues par sqlcmd et osql utilitaires, ainsi que SQL Server Management Studio Code Editor pour faciliter la lisibilité et l'exécution des lots et des scripts. Le GO La commande signale la fin d'un lot d'instructions Transact-SQL aux utilitaires SQL Server.

Les utilitaires SQL Server interprètent GO comme signal qu'ils doivent envoyer le lot actuel d'instructions Transact-SQL à une instance de SQL Server. Le lot de relevés en cours est composé de tous les relevés saisis depuis le dernier GO , ou depuis le début de la session ad hoc ou du script s'il s'agit du premier GO .

Autres extensions SQL propriétaires

Transact-SQL n'est pas la seule extension du standard SQL. Divers systèmes de bases de données ont leurs propres extensions. Par exemple, Oracle utilise un langage procédural propriétaire appelé PL/SQL, et PostgreSQL utilise un langage procédural appelé PL/pgSQL.

Bien que les extensions SQL propriétaires aient leurs avantages (comme des fonctionnalités étendues), elles ont leurs inconvénients. Un inconvénient majeur est qu'ils peuvent compliquer les choses si vous avez besoin de transférer une base de données d'un système à un autre. Par exemple, si votre organisation décide soudainement d'utiliser Oracle au lieu de SQL Server, vous devrez peut-être parcourir tout le code SQL Server et le réécrire pour Oracle. Cela nécessite également que vous vous familiarisiez avec la syntaxe des deux systèmes.