O SQL (linguagem de consulta estruturada) é considerada uma linguagem não procedimento porque se concentra no * que * dados para recuperar, não * como * recuperá-lo. Por outro lado, os idiomas processuais especificam as etapas exatas que o computador deve tomar para obter um resultado.
Aqui está o que torna o SQL não procedural:
* Natureza declarativa: Você descreve o resultado desejado (por exemplo, "Selecione todos os clientes da tabela de 'clientes' onde o país está 'EUA'") e o mecanismo SQL determina a maneira mais eficiente de executar a consulta. Você não dita os algoritmos ou etapas específicos.
*
otimização pelo sistema de banco de dados: O sistema de gerenciamento de banco de dados (DBMS) é responsável por criar um plano de execução - uma sequência de operações - para obter o resultado desejado. Esse plano pode envolver indexação, junções, classificação e outras técnicas transparentes para o usuário. O usuário não especifica como essas operações são executadas.
*
Operações orientadas para set: O SQL funciona em conjuntos de dados (tabelas) em vez de registros individuais. Uma única declaração SQL pode manipular milhares ou milhões de linhas simultaneamente. Isso contrasta com os idiomas processuais, que normalmente processam dados um registro por vez.
Por outro lado, uma linguagem processual (como C ou Python) exigiria que você escrevesse código explicitamente: 1. Abre a conexão do banco de dados.
2. Iterra através de cada registro na tabela de 'clientes'.
3. Verifica o país de cada registro.
4. Se o país for 'EUA', adiciona o registro a um conjunto de resultados.
5. Fecha a conexão do banco de dados.
O SQL abstrava todas essas etapas, tornando -o muito mais simples e eficiente para tarefas de manipulação de dados, especialmente ao lidar com grandes conjuntos de dados. O "como" é deixado para o otimizador do sistema de banco de dados.