2. SQL -Lenguaje de consulta estructurada- 0. Bases de Datos 1
Last updated May 25, 2025
by
sr_labs Admin
SQL (por sus siglas en inglés Structured Query Language; en español Lenguaje de Consulta Estructurada) es un lenguaje de dominio específico utilizado en programación, diseñado para administrar, y recuperar información de sistemas de gestión de bases de datos relacionales.
Una de sus principales características es el manejo del **álgebra y el cálculo relacional** para efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así como realizar cambios en ellas.
SQL consiste en un **lenguaje de definición de datos, un lenguaje de manipulación de datos y un lenguaje de control de datos.** El alcance de SQL incluye la inserción de datos, consultas, actualizaciones y borrado, la creación y modificación de esquemas y el control de acceso a los datos.
**También el SQL a veces se describe como un lenguaje declarativo, también incluye elementos procesales.**
Los lenguajes declarativos no dicen cómo hacer una cosa, sino, más bien, qué cosa hacer.

# Características generales de SQL
* SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales y permite así gran variedad de operaciones.
* Es un lenguaje declarativo de "alto nivel" o "de no procedimiento" que, gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros —y no a registros individuales— permite una alta productividad en codificación y la orientación a objetos.
* **Lenguaje de definición de datos**: El LDD de SQL proporciona comandos para la definición de esquemas de relación, borrado de relaciones y modificaciones de los esquemas de relación.
* **Lenguaje interactivo de manipulación de datos**: El LMD de SQL incluye lenguajes de consultas basado tanto en álgebra relacional como en cálculo relacional de tuplas.
* **Control de transacciones:** SQL tiene comandos para especificar el comienzo y el final de una transacción.
* **SQL incorporado y dinámico:** Esto quiere decir que se pueden incorporar instrucciones de SQL en lenguajes de programación como: C++, C, Java, PHP, COBOL, Pascal y Fortran.
## Optimización
SQL es un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y no cómo conseguirlo, por lo que una sentencia no establece explícitamente un orden de ejecución.
El orden de ejecución interno de una sentencia puede afectar seriamente a la eficiencia del SGBD, por lo que se hace necesario que éste lleve a cabo una optimización antes de su ejecución. Muchas veces, el uso de índices acelera una instrucción de consulta, pero ralentiza la actualización de los datos. Dependiendo del uso de la aplicación, se priorizará el acceso indexado o una rápida actualización de la información. La optimización difiere sensiblemente en cada motor de base de datos y depende de muchos factores.
Los sistemas de bases de datos modernos poseen un componente llamado optimizador de consultas. Este realiza un detallado análisis de los posibles planes de ejecución de una consulta SQL y elige aquel que sea más eficiente para llevar adelante la misma.

# Enlaces de interés
* SQL. Wikipedia. [https://es.wikipedia.org/wiki/SQL](https://es.wikipedia.org/wiki/SQL)
* Lenguaje declarativo, Enciclopedia, [http://enciclopedia.us.es/index.php/Lenguaje_declarativo](http://enciclopedia.us.es/index.php/Lenguaje_declarativo)