Quelle est la différence entre SQL, PL-SQL et T-SQL?

360

Quelle est la différence entre SQL, PL-SQL et T-SQL?

Quelqu'un peut-il expliquer les différences entre ces trois éléments et fournir des scénarios dans lesquels chacun serait utilisé de manière pertinente?

Goober
la source
1
Le langage de requête utilisé par Microsoft SQL Server est une variante du langage de requête structuré standard ANSI, SQL. La variante SQL Server est appelée Transact-SQL.
SQL est un langage orienté données pour sélectionner et manipuler des ensembles de données. PL / SQL est un langage procédural pour créer des applications
SQL est un langage de requête structuré PL / SQL est un langage procédural étendu à SQL il est développé par Oracle T-SQL est développé par Microsoft

Réponses:

379
  • SQL est un langage de requête pour fonctionner sur des ensembles.

    Il est plus ou moins standardisé et utilisé par presque tous les systèmes de gestion de bases de données relationnelles: SQL Server, Oracle, MySQL, PostgreSQL, DB2, Informix, etc.

  • PL/SQL est un langage procédural propriétaire utilisé par Oracle

  • PL/pgSQL est un langage procédural utilisé par PostgreSQL

  • TSQL est un langage procédural propriétaire utilisé par Microsoft dans SQL Server.

Les langages procéduraux sont conçus pour étendre les capacités de SQL tout en pouvant bien s'intégrer à SQL. Plusieurs fonctionnalités telles que les variables locales et le traitement des chaînes / données sont ajoutées. Ces fonctionnalités rendent le langage de Turing complet.

Ils sont également utilisés pour écrire des procédures stockées: des morceaux de code résidant sur le serveur pour gérer des règles métier complexes qui sont difficiles ou impossibles à gérer avec des opérations basées sur des ensembles purs.

Quassnoi
la source
14
TSQL est également utilisé par Sybase; au moins dans Oracle, les procédures PL / SQL peuvent faire bien plus que simplement gérer des "règles métier"; Les procédures PL / SQL peuvent accéder aux sites Web, envoyer des e-mails, etc.
Erich Kitzmueller
3
PL / SQL n'existe pas uniquement dans la base de données, par exemple Oracle Forms contient une implémentation côté client de PL / SQL.
Erich Kitzmueller
2
Notez que chaque base de données a sa propre implémentation de SQL (T-SQL et PL / SQL étant deux des plus courantes), le SQL standard ANSII est souvent utilisé lorsque plusieurs backends sont utilisés, mais toutes les bases de données n'utilisent pas toutes les fonctionnalités SQL ANSII non plus. Et l'implémentation spécifique à la base de données de SQl tend à être celle qui fonctionne le mieux pour cette base de données - après tout, ils doivent vous donner une raison d'utiliser leur base de données, non?
HLGEM
2
Correction: SQL est un langage pour fonctionner sur des tables dont SQL lui-même fournit la définition. Le standard SQL évite les mots «set» et «relation» et leurs dérivés. Les tables SQL ne sont pas des ensembles.
onedaywhen
1
Ce serait bien d'avoir un langage procédural sql qui fonctionnerait sur oracle et le serveur sql.
RayLoveless
113

SQL

SQL est utilisé pour communiquer avec une base de données, c'est le langage standard pour les systèmes de gestion de bases de données relationnelles.

En détail, Structured Query Language est un langage de programmation spécifique conçu pour gérer les données contenues dans un système de gestion de bases de données relationnelles (RDBMS), ou pour le traitement de flux dans un système de gestion de flux de données relationnelles (RDSMS).

Initialement basé sur l'algèbre relationnelle et le calcul relationnel de tuple, SQL se compose d'un langage de définition de données et d'un langage de manipulation de données. La portée de SQL comprend l'insertion, la requête, la mise à jour et la suppression de données, la création et la modification de schéma et le contrôle d'accès aux données. Bien que SQL soit souvent décrit comme, et dans une large mesure, comme un langage déclaratif (4GL), il comprend également des éléments procéduraux.

PL / SQL

PL / SQL est une combinaison de SQL avec les fonctionnalités procédurales des langages de programmation. Il a été développé par Oracle Corporation

Spécialités PL / SQL

  • langage de traitement des transactions entièrement portable et hautes performances.
  • fournit un environnement de programmation intégré interprété et indépendant du système d'exploitation.
  • être directement appelé à partir de l'interface de ligne de commande SQL * Plus.
  • L'appel direct peut également être effectué à partir des appels externes du langage de programmation vers la base de données.
  • la syntaxe générale est basée sur celle du langage de programmation ADA et Pascal.
  • Outre Oracle, il est disponible dans la base de données en mémoire TimesTen et IBM DB2.

T-SQL

Abréviation de Transaction-SQL , une forme étendue de SQL qui ajoute des variables déclarées, le contrôle des transactions, la gestion des erreurs et des exceptions et le traitement des lignes dans SQL

Le Structured Query Language ou SQL est un langage de programmation qui se concentre sur la gestion des bases de données relationnelles. SQL a ses propres limites qui ont incité le géant du logiciel Microsoft à s'appuyer sur SQL avec leurs propres extensions pour améliorer les fonctionnalités de SQL . Microsoft a ajouté du code à SQL et l'a appelé Transact-SQL ou T-SQL. Gardez à l'esprit que T-SQL est propriétaire et est sous le contrôle de Microsoft tandis que SQL, bien que développé par IBM, est déjà un format ouvert.

T-SQL ajoute un certain nombre de fonctionnalités qui ne sont pas disponibles dans SQL.

Cela inclut des éléments de programmation procédurale et une variable locale pour fournir un contrôle plus flexible du flux de l'application. Un certain nombre de fonctions ont également été ajoutées à T-SQL pour le rendre plus puissant; des fonctions pour les opérations mathématiques, les opérations sur les chaînes, le traitement de la date et de l'heure, etc. Ces ajouts rendent T-SQL conforme au test d'exhaustivité de Turing, un test qui détermine l'universalité d'un langage informatique. SQL n'est pas Turing complet et sa portée est très limitée.

Une autre différence significative entre T-SQL et SQL réside dans les modifications apportées aux commandes DELETE et UPDATE qui sont déjà disponibles dans SQL. Avec T-SQL, les commandes DELETE et UPDATE permettent toutes les deux d'inclure une clause FROM qui autorise l'utilisation de JOINs. Cela simplifie le filtrage des enregistrements pour sélectionner facilement les entrées qui correspondent à certains critères contrairement à SQL où cela peut être un peu plus compliqué.

Le choix entre T-SQL et SQL appartient à l'utilisateur. Néanmoins, l'utilisation de T-SQL est encore meilleure lorsque vous traitez avec des installations Microsoft SQL Server. En effet, T-SQL provient également de Microsoft et l'utilisation conjointe des deux maximise la compatibilité. SQL est préféré par les personnes qui ont plusieurs backends.

Références , Wikipedea, Tutorial Points: www.differencebetween.com

Arunprasanth KV
la source
4
IMO qui est actuellement la meilleure réponse (cependant, la réponse de manoj et le blog méritent également d'être lus).
salcoin
1
T-SQL n'a-t-il pas été acheté à Sybase avec le code de base de données qu'ils ont acheté pour créer la première version du serveur SQL? Au moins T-SQL fonctionne également sur Sybase, donc je pense qu'il y a du «code commun»
phil_w
En fait, Microsoft et Sybase ont développé conjointement SQL Server pour OS2. Les deux sociétés ont donc travaillé conjointement sur le développement de T-SQL. C'est pourquoi les deux bases de données peuvent utiliser T-SQL bien qu'il existe des différences importantes entre les deux variantes de T-SQL.
alaniane
44
  • SQLune langue pour parler à la base de données. Il vous permet de sélectionner des données, de muter et de créer des objets de base de données (comme des tables, des vues, etc.), de modifier les paramètres de la base de données.
  • PL-SQL un langage de programmation procédurale (avec Embedded SQL)
  • T-SQL extensions (procédurales) pour SQL utilisées par SQL Server
deaderikh
la source
Doit être SPL (Stored Procedure Lang), PL est trop général (c'est-à-dire C).
samis
32

1. SQL ou Structured Query Language a été développé par IBM pour leur produit "System R".

Plus tard, ANSI en a fait un standard sur lequel tous les langages de requête sont basés et l'ont étendu pour créer leurs propres combinaisons de langage de requête DataBase. Le premier standard était SQL-86 et le dernier étant SQL: 2011

2. T-SQL ou Transact-SQL a été développé par Sybase et plus tard co-détenu par Microsoft SQL Server.

3. PL / SQL ou langage procédural / SQL était Oracle Database, connu à l'époque sous le nom de "logiciel de relation".

Je l'ai documenté dans mon article de blog .

Manoj Pandey
la source
2
Cette réponse est plus approfondie que la réponse approuvée, et le billet de blog est une excellente lecture.
salcoin
7

Langage de requête structuré - SQL: est une norme ANSI utilisée par presque tous les fournisseurs de SGBD dans le monde. Fondamentalement, SQL est un langage utilisé pour définir et manipuler des données [DDL et DML].

PL / SQL est un langage créé par l'univers Oracle. PL / SQL combine des instructions procédurales de programmation et permet la création de programmes qui opèrent directement sur le scénario de base de données.

T-SQL est un produit Microsoft qui aligne les modèles SQL, avec quelques particularités. Alors, n'hésitez pas à tester vos limites.

Jayron Soares
la source
1

SQL est une norme et il existe de nombreux fournisseurs de bases de données comme Microsoft et Oracle qui implémentent cette norme en utilisant leur propre langage propriétaire.

Microsoft utilise T-SQL pour implémenter la norme SQL pour interagir avec les données tandis qu'oracle utilise PL / SQL.

Viku
la source