Esto es lo que hace que SQL no sea procesal:
* Naturaleza declarativa: Usted describe el resultado deseado (por ejemplo, "Seleccione a todos los clientes de la tabla 'clientes' donde el país es 'EE. UU.'"), Y el motor SQL determina la forma más eficiente de ejecutar la consulta. No dicta los algoritmos o pasos específicos.
* Optimización del sistema de base de datos: El sistema de gestión de bases de datos (DBMS) es responsable de crear un plan de ejecución, una secuencia de operaciones, para lograr el resultado deseado. Este plan puede implicar indexación, uniones, clasificaciones y otras técnicas que son transparentes para el usuario. El usuario no especifica cómo se realizan estas operaciones.
* Operaciones orientadas al conjunto: SQL funciona en conjuntos de datos (tablas) en lugar de registros individuales. Una sola declaración de SQL puede manipular miles o millones de filas simultáneamente. Esto contrasta con los idiomas de procedimiento, que generalmente procesan datos un registro a la vez.
Por el contrario, un lenguaje de procedimiento (como C o Python) requeriría que escriba un código que explícitamente:
1. Abre la conexión de la base de datos.
2. Itera a través de cada registro en la tabla 'clientes'.
3. Verifica el país de cada registro.
4. Si el país es 'EE. UU.', Agrega el registro a un conjunto de resultados.
5. Cierra la conexión de la base de datos.
SQL resume todos estos pasos, lo que lo hace mucho más simple y más eficiente para las tareas de manipulación de datos, especialmente cuando se trata de grandes conjuntos de datos. El "cómo" se deja al optimizador del sistema de base de datos.