Uma das dúvidas mais comuns entre estudantes e profissionais de TI que não trabalham diretamente com Banco de Dados é a diferença entre essas duas linguagens. Vou te confessar que é um pouco complicado e eu entendo isso, afinal até o nome delas é parecido e isso pode confundir e muito os profissionais.
O que é o SQL?
O SQL é uma linguagem de programação que foi criada na década de 70 pela IBM para os Banco de Dados Relacionais da empresa, com o objetivo de implementar as regras de relacionamento de um banco de dados.
Mais tarde ela entrou para o padrão ANSI e todas as empresas que desenvolvem SGDBs adotaram ele como padrão de banco de dados relacionais.

O que é o PL/SQL?
O PL/SQL é uma linguagem de programação procedural que foi implantada pela Oracle Database no ano de 1991, Clique aqui para ver a história do PL/SQL (http://aprendaplsql.com/2013/08/conheca-historia-da-linguagem-plsql/) e ela surgiu com a necessidade da Oracle de ter uma linguagem interna, já que o SQL tem a função apenas o objetivo de pesquisas, recuperar e formatar dados de forma simples.
Qual a grande vantagem de usar o PL/SQL?
O PL/SQL é uma linguagem de programação que é compilada dentro do Banco de Dados e com isso temos uma economia gigantesca de tempo e o poder da utilização do Hardware do Database para processar as informações, esta é uma grande vantagem tendo em vista que o Banco de Dados possuí recursos muito poderosos.
Vale lembrar que esses recursos devem ser usados com moderação, como eu costumo defender para os meus alunos o Banco de Dados é o coração da empresa e se ele ficar fora do ar, simplesmente todos os sistemas ficam fora do ar. Então tome muito cuidado com as suas implementações.
É possível fazer um sistema apenas com o SQL?
A resposta é sim, e eu como especialista nas duas linguagens te digo que qualquer programador deve saber SQL, afinal você vai precisar sempre fazer a interface com um Banco de Dados, inclusive criei um artigo com os 10 motivos pelos quais todo programador deve saber SQL(http://aprendaplsql.com/2016/03/10-motivos-pelos-quais-todo-programador-deve-saber-sql/).
Um bom desenvolvedor PL/SQL deve dominar o SQL, isso porque apesar do PL/SQL ser muito rápido e resolver os seus problemas quando um código simples não funciona, o SQL sempre tem que estar muito bem feito, senão você vai ter problemas de performance.
O que é SQL e o que é PL/SQL?
Segue abaixo o que o SQL suporta
Elementos da linguagem: Clausulas, Expressões, Consultas, Statments (Demonstrações), Condições de uma consulta;
Operadores: =, >, =, <=, BETWEEN, LIKE, IN, NOT IN, IS, IS NOT, AS, etc;
Consultas (Queries): que inclui SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, etc;
Tipos de Dados: NUMBER, CHAR, BIT, DATE e TIME
DDLs(CREATE, REPLACE), DMLs(INSERT, DELETE, UPDATE) e DCLs (COMMIT ROLLBACK)
Já o PL/SQL suporta os seguintes objetos/comandos.
Objetos: Packages, Procedures, Functions, Triggers, Types
Variáveis: NUMBER, PLS_INTEGER, BOOLEAN, BINARY_INTEGER, VARCHAR2, RAW, etc
Estruturas de Decisão e Repetição: IF, ELSE, THEN, LOOP, WHILE, CASE
Cursores Explícitos e Implícitos.
Conclusão
Com as informações passadas acredito que você agora consiga distinguir o SQL e o PL/SQL mas o mais importante deste artigo é que você entenda que é impossível saber um sem saber o outro e que essas linguagens são altamente poderosas e que podem fazer total diferença no seu dia-a-dia de programador.
Autor: William Miranda
Site: aprendaplsql.com