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.
Voici un exemple d'instruction T-SQL simple :
CREATE DATABASE Movies;
C'est aussi simple qu'un exemple T-SQL pourrait l'être. Cela crée une nouvelle base de données appelée Movies
.
Cependant, T-SQL fournit d'autres options à inclure dans cette instruction, telles que l'emplacement des fichiers de base de données, la taille de ces fichiers, leur taille maximale, etc.
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
etUPDATE
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.
T-SQL comprend également un grand nombre de fonctions intégrées, ainsi que des fonctions définies par l'utilisateur.
Un exemple de fonction intégrée
Voici un autre exemple de base , utilisant cette fois l'une des fonctions intégrées de T-SQL :
SELECT GETDATE();
Résultat :
2018-05-06 23:30:37.003
Dans ce cas, nous utilisons GETDATE()
de T-SQL fonction pour renvoyer la date et l'heure actuelles. Ceci est utilisé avec le SELECT
instruction, qui est une instruction SQL courante pour renvoyer des données.
Nous pouvons également utiliser cette fonction comme argument pour une autre fonction. Voici un exemple :
SELECT FORMAT(GETDATE(), 'MMM');
Résultat :
May
Dans ce cas, nous utilisons le T-SQL FORMAT()
pour extraire uniquement la partie mois de la date et la présenter dans un certain format. Vous pouvez voir plus d'exemples de date/heure sur Comment formater la date et l'heure dans SQL Server.
Histoire de T-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.
Par la suite, 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.
T-SQL et outils graphiques
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).
À 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. Par exemple, le premier exemple ci-dessus pourrait également s'écrire comme ceci :
CREATE DATABASE Movies; GO
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 jamais 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.