É uma pergunta interessante, com certeza. A maioria das pessoas que estão familiarizadas com o desenvolvimento do Oracle não pensou nisso, mas quando se trata disso, às vezes é confuso definir a demarcação entre SQL e PL / SQL.
Observando a definição dos acrônimos, você começa a ter uma idéia de quais áreas de funcionalidade cada uma abrange:
SQL - Linguagem de Consulta Estruturada
PL / SQL - Linguagem processual / linguagem de consulta estruturada
O leitor atento pode perceber como o SQL aparece duas vezes 8) Isso ocorre porque o SQL é frequentemente incorporado ao PL / SQL - PL / SQL é uma linguagem criada para fornecer uma linguagem de quarta geração proprietária (4GL) que funciona muito bem com objetos de banco de dados em Oráculo.
A Wikipedia possui um material muito bom em SQL e PL / SQL
A parte confusa é onde PL / SQL e SQL se sobrepõem um pouco. O alcance do SQL inclui inserção de dados, consulta, atualização e exclusão, as chamadas operações de linguagem de manipulação de dados ou DML, mas também inclui criar, alterar, renomear, eliminar, que são operações de linguagem de definição de dados ou DDL. É aqui que alguns podem ficar confusos. A operação para criar um procedimento armazenado, algo escrito usando PL / SQL, é realmente SQL - você usa SQL para criar o objeto de banco de dados que representa um bloco de PL / SQL.
Da mesma forma, você pode incorporar o código SQL dentro do seu PL / SQL. Um loop FOR no PL / SQL pode ser baseado em uma consulta SQL, por exemplo. Assopra sua mente um pouco, não é? Você cria um procedimento usando o SQL que realmente usa o SQL internamente para executar alguma ação nos registros do banco de dados.
Coisas legais se você me perguntar.