SQL vs PL SQL
SQL (Structured Query Language) é a linguagem padrão para escrever bancos de dados relacionais de entrada. SQL são instruções simples, que permitem recuperar, inserir, excluir, atualizar registros conforme a necessidade do usuário. Simplesmente é uma linguagem orientada a dados para selecionar e manipular um conjunto de dados. PL SQL (Procedural Language/Structured Query Language) é uma linguagem de extensão procedural para entrada e manipulação de dados pelo Oracle.
“PL/SQL, a extensão procedural do SQL da Oracle, é uma linguagem de programação avançada de quarta geração (4GL). Ele oferece recursos modernos, como encapsulamento de dados, sobrecarga, tipos de coleta, tratamento de exceções e ocultação de informações. O PL/SQL também oferece acesso SQL contínuo, integração total com o servidor e ferramentas Oracle, portabilidade e segurança.”
SQL
Structured query language (SQL) pronunciada como “sequel” é uma linguagem de computador de banco de dados projetada para gerenciar dados em sistemas de gerenciamento de banco de dados relacional (RDBMS), e originalmente baseada em álgebra relacional.
O escopo básico do SQL é inserir dados e realizar atualização, exclusão, criação de esquema, modificação de esquema e controle de acesso a dados em bancos de dados.
SQL tem elementos, subdivididos nos seguintes:
Consultas – Recuperar dados, com base em critérios específicos. Existem algumas palavras-chave que podem ser usadas em consultas. (Selecionar, De, Onde, Tendo, Agrupar por e ordenar por)
ex: SELECTFROM tabela1 WHERE coluna1 > condição ORDER BY coluna2;
Declarações – Que podem controlar transações, fluxo de programa, conexões, sessões ou diagnósticos
Expressões – Isso pode produzir tanto;
Valores escalares
Tabelas que consistem em colunas e linhas de dados
Predicates -Especifica condições que podem ser avaliadas para SQL Boolean (true/false/unknown)
Cláusulas – Componentes constituintes de declarações e consultas
PL/SQL
PL/SQL (Procedural Language/Structured Query Language) é a linguagem de extensão procedural da Oracle Corporation para SQL e banco de dados relacional Oracle. PL/SQL suporta variáveis, condições, loops, arrays, exceções. Os contêineres de código PL/SQL essencialmente podem ser incluídos nos bancos de dados Oracle. Os desenvolvedores de software podem, portanto, implantar unidades de funcionalidade PL/SQL diretamente no banco de dados.
PL/SQL unidades de programa podem ser definidas da seguinte forma:
Blocos anônimos
Forma a base do código PL/SQL mais simples
Funções
Funções são uma coleção de instruções SQL e PL/SQL. As funções executam uma tarefa e devem retornar um valor ao ambiente de chamada.
Procedimentos
Procedures são semelhantes a Functions. Os procedimentos também podem ser executados para realizar o trabalho. Os procedimentos não podem ser usados em uma instrução SQL, podem retornar vários valores. Além disso, funções podem ser chamadas de SQL, enquanto procedimentos não podem.
Pacotes
Uso de pacotes é reutilização de código. Pacotes são grupos de Funções, Procedimentos, Variáveis, tabelas PL/SQL e instruções TYPE de registro teoricamente vinculadas, Constantes e Cursores etc… Os pacotes geralmente têm duas partes, uma especificação e um corpo
Duas vantagens dos pacotes incluem:
Abordagem modular, encapsulamento da lógica de negócios
O uso de variáveis de pacotes pode declarar em níveis de sessão
Tipos de variáveis em PL/SQL
Variáveis
Variáveis Numéricas
Variáveis de caractere
Variáveis de data
Tipos de dados para colunas específicas
Diferença entre SQL e PL/SQL
SQL é uma linguagem orientada a dados para selecionar e manipular dados, mas PL SQL é uma linguagem procedural para criar aplicativos.
SQL executa uma instrução de cada vez, enquanto em PL o bloco de código SQL pode ser executado.
SQL é declarativo enquanto PL SQL é procedural.
SQL é usado para escrever consultas, linguagem de manipulação de dados (DML) e linguagem de definição de dados (DDL), enquanto PL SQL é usado para escrever blocos de programa, gatilhos, funções, procedimentos e pacotes.
Recap:
SQL é uma linguagem de consulta estruturada. No SQL são utilizadas várias consultas para manipular o banco de dados de forma simplificada. PL/SQL é uma linguagem procedural que contém vários tipos de variáveis, funções e procedimentos. O SQL permite que o desenvolvedor emita uma única consulta ou execute uma única inserção/atualização/exclusão de cada vez, enquanto o PL/SQL permite escrever um programa completo para realizar várias seleções/inserções/atualizações/exclusões ao mesmo tempo. SQL é uma linguagem simples orientada a dados enquanto linguagem de programação PL/SQL.