martes, 22 de noviembre de 2016

SQL: El lenguaje de consultas para las bases de datos relacionales

El lenguaje de consultas SQL (Lenguaje Estructurado de Consultas) se ha convertido, debido a su eficiencia, en un estándar para las bases de datos relacionales. A pesar de su estandarización se han desarrollado, sobre una base común, diversas versiones ampliadas como las de Oracle o la de Microsoft SQL server.

Es un lenguaje declarativo en el que las órdenes especifican cual debe ser el resultado y no la manera de conseguirlo (como ocurre en los lenguajes procedimentales). Al ser declarativo es muy sistemático, sencillo y con una curva de aprendizaje muy agradable. Sin embargo los lenguajes declarativos carecen de la potencia de los procedimentales. El gran éxito de las bases de datos relacionales se debe en parte a la posibilidad de usar este lenguaje. Incluye diversos tipos de capacidades:

•Comandos para la definición y creación de una base de datos (CREATE TABLE).
•Comandos para inserción, borrado o modificación de datos (INSERT, DELETE, UPDATE).
•Comandos para la consulta de datos seleccionados de acuerdo a criterios complejos que involucran diversas tablas relacionadas por un campo común (SELECT).
•Capacidades aritméticas: En SQL es posible incluir operaciones aritméticas así como comparaciones, por ejemplo A > B + 3.
•Funciones matemáticas (sqrt(x), cos(x)) o de manejo de textos.
•Asignación y comandos de impresión: es posible imprimir una tabla construida por una consulta o almacenarla como una nueva tabla.
•Funciones agregadas: Operaciones tales como promedio (avg), desviación típica (stddev), suma (sum), máximo (max), etc. se pueden aplicar a las columnas de una tabla para obtener una cantidad única y, a su vez, incluirla en consultas más complejas.

En una base de datos relacional, los resultados de la consulta van a ser datos individuales, tuplas4 o tablas generados a partir de consultas en las que se establecen una serie de condiciones basadas en valores numéricos. Por ejemplo una típica consulta sobre una tabla en una base de datos relacional, utilizando SQL podría ser:

SELECT id, nombre, pob1991 FROM municipios WHERE pob1991>20000;
el resultado será una tabla en la que tendremos tres columnas (id, nombre, población) procedentes de la tabla municipios, las filas corresponderán sólo a aquellos casos en los que la población en 1991 (columna pob1991) sea mayor que 20000. En el caso de que sólo uno de los municipios cumpliera la condición obtendríamos una sola fila (una tupla) y en caso de que la consulta fuera:
SELECT pob1991 FROM municipios WHERE pob1991>20000;obtendríamos un sólo número, la población del municipio más poblado.

0 comentarios :

Publicar un comentario