C'est une question intéressante, bien sûr. La plupart des gens qui connaissent le développement Oracle n'y penseraient pas, mais quand vous y arrivez, il est parfois déroutant de définir la démarcation entre SQL et PL / SQL.
En regardant la définition des acronymes, vous commencez à vous faire une idée des domaines de fonctionnalité que chacun couvre:
SQL - Langage de requête structuré
PL / SQL - Langage procédural / Langage de requête structuré
Le lecteur attentif remarquera peut-être comment SQL apparaît deux fois 8) En effet, SQL est souvent intégré à PL / SQL - PL / SQL est un langage conçu pour fournir un langage propriétaire de 4e génération (4GL) qui fonctionne très bien avec les objets de base de données dans Oracle.
Wikipédia a du bon matériel sur SQL et PL / SQL
La partie déroutante est où PL / SQL et SQL se chevauchent un peu. La compétence de SQL comprend l'insertion, la requête, la mise à jour et la suppression de données, ce qu'on appelle le DML ou les opérations du langage de manipulation de données, mais il comprend également la création, la modification, le renommage, la suppression qui sont des opérations de langage DDL ou de définition de données. C'est ici que certains pourraient être confus. L'opération pour créer une procédure stockée, quelque chose écrite en utilisant PL / SQL, est en fait SQL - vous utilisez SQL pour créer l'objet de base de données qui représente un bloc de PL / SQL.
De même, vous pouvez intégrer du code SQL dans votre PL / SQL. Une boucle FOR en PL / SQL peut être basée sur une requête SQL, par exemple. Ça vous souffle un peu, hein? Vous créez une procédure à l'aide de SQL qui utilise réellement en interne SQL pour effectuer une action sur les enregistrements de la base de données.
Des trucs sympas si vous me demandez.