SQL | |
Fecha de la primera versión | 1974 |
---|---|
Paradigma | declarativo , procedimental , orientado a objetos |
Autor | Donald D. Chamberlin y Raymond F. Boyce |
Desarrollador | IBM |
Última versión | SQL: 2016 (2016) |
Mecanografía | estático y fuerte |
Dialectos | SQL-86, SQL-89, SQL-92, SQL: 1999, SQL: 2003, SQL: 2008, SQL: 2011, SQL: 2016 |
Influenciado | CQL , LINQ , Windows PowerShell |
Implementaciones | muchos |
Sistema de explotación | Multiplataforma |
Extensión de archivo | sql |
Extensión | .sql |
---|---|
Tipo de Mimica | application/x-sql, application/sql |
Desarrollado por | ISO / IEC |
Tipo de formato | Base de datos |
Estándar | ISO / IEC 9075 |
SQL (acrónimo de Structured Query Language , en francés , es un lenguaje de consulta estructurado ) es un lenguaje informático estandarizado que se utiliza para explotar bases de datos relacionales . La parte del lenguaje de manipulación de datos de SQL le permite buscar, agregar, modificar o eliminar datos en bases de datos relacionales.
Además del lenguaje de manipulación de datos:
Creado en 1974, estandarizado desde 1986, el lenguaje es reconocido por la gran mayoría de sistemas de administración de bases de datos relacionales (abreviado RDBMS) en el mercado.
SQL es parte de la misma familia que los lenguajes ALPHA (del cual es descendiente), SQUARE, QUEL (integrado en Ingres ) o QBE (Zloof). Se llamaba SEQUEL cuando nació, pero este nombre se cambió a SQL debido a que SEQUEL era una marca registrada del fabricante de aviones Hawker-Siddeley .
En junio de 1970 , Edgar Frank Codd publicó el artículo Un modelo relacional de datos para grandes bancos de datos compartidos en la revista Communications of the ACM ( Association for Computing Machinery ). Este repositorio relacional basado en la lógica de los predicados de primer orden fue rápidamente reconocido como un modelo teórico interesante para consultar bases de datos e inspiró el desarrollo del Structured English QUEry Language ( SEQUEL ). conflicto de marca registrada .
Desarrollado en IBM en 1970 por Donald Chamberlin y Raymond Boyce, esta primera versión fue diseñada para manipular y editar los datos almacenados en la base de datos relacional utilizando el IBM System R gestión de bases de datos del sistema . El nombre SEQUEL, que fue registrado comercialmente por el fabricante de aviones Hawker Siddeley para un sistema de adquisición de datos, se eliminó y se contrató a SQL en 1975. Se esperaba que SQL se convirtiera en un componente clave del futuro proyecto FS .
En 1979 , Relational Software, Inc. (ahora Oracle Corporation ) introdujo la primera versión comercial de SQL, emulada rápidamente por otros proveedores.
SQL fue adoptado como recomendación por el American Standards Institute (ANSI) en 1986 , luego como estándar internacional por ISO en 1987 como ISO / IEC 9075 - Tecnología de la información - Lenguajes de base de datos - SQL .
El estándar internacional SQL ha pasado por una serie de revisiones:
Año | apellido | Denominación | Comentarios |
---|---|---|---|
1986 | ISO / IEC 9075: 1986 | SQL-86 o SQL-87 | Publicado por ANSI luego adoptado por ISO en 1987 . |
1989 | ISO / IEC 9075: 1989 | SQL-89 o SQL-1 | Revisión menor. |
1992 | ISO / IEC 9075: 1992 | SQL-92 (en) alias SQL2 | Revisión mayor. |
1999 | ISO / IEC 9075: 1999 | SQL-99 (en) alias SQL3 | Expresiones regulares, consultas recursivas, disparadores, tipos no escalares y algunas funciones orientadas a objetos (los dos últimos puntos son algo controvertidos y aún no están ampliamente implementados). |
2003 | ISO / IEC 9075: 2003 | SQL: 2003 (en) | Introducción de funciones para manipulación XML, "funciones de ventana", órdenes estandarizadas y columnas con valores autoproducidos (incluidas columnas de identidad). |
2008 | ISO / IEC 9075: 2008 | SQL: 2008 (en) | Se agregaron algunas funciones de ventana (ntile, lead, lag, primer valor, último valor, enésimo valor), limitar el número de filas (OFFSET / FETCH), mejoras menores en distintos tipos, cursores y mecanismos de incremento automático. |
2011 | ISO / IEC 9075: 2011 | SQL: 2011 (en) | Se agregó soporte para tablas temporales (historización automática). |
Como cualquier estándar internacional publicado por ISO, ISO / IEC 9075 está disponible para su compra en el sitio web de esta organización. El último borrador de la norma está disponible en wiscorp.com.
El lenguaje SQL se utiliza principalmente de tres formas:
Las sentencias SQL están escritas de una manera que se asemeja a las frases en inglés ordinarias. Esta semejanza pretendida está destinada a facilitar el aprendizaje y la lectura.
Es un lenguaje declarativo, es decir, permite describir el resultado esperado, sin describir cómo obtenerlo. Los DBMS están equipados con optimizadores de consultas , mecanismos que determinan automáticamente la forma óptima de realizar operaciones, incluso mediante la estimación de la complejidad algorítmica . Esto se basa en estadísticas recopiladas de los datos contenidos en la base de datos (número de registros, número de valores distintos en una columna, etc.).
Las declaraciones SQL cubren 4 áreas:
Las instrucciones para manipular el contenido de la base de datos comienzan con las palabras clave SELECT , UPDATE , INSERT o DELETE que corresponden respectivamente a las operaciones de buscar contenido, modificar, agregar y eliminar.
Varias otras palabras clave como FROM , JOIN y GROUP BY se utilizan para indicar las operaciones de álgebra relacional que se realizarán para obtener el contenido que se va a manipular.
lenguaje de definición de datosLas instrucciones para manipular metadatos - descripción de la estructura, organización y características de la base de datos - comienzan con las palabras clave CREAR , ALTERAR , DROP , RENAME , COMMENT o TRUNCATE que corresponden a las operaciones de agregar, modificar, eliminar, renombrar, comentar o vaciar un metadatos. Estas palabras clave son seguidas inmediatamente por el tipo de metadatos a utilizar: TABLE , VIEW , INDEX ...
lenguaje de control de datos y lenguaje de control de transaccionesLas palabras clave GRANT y REVOKE se utilizan para autorizar operaciones a determinadas personas, para agregar o eliminar autorizaciones. Mientras que las palabras clave COMMIT y ROLLBACK se utilizan para confirmar o cancelar la ejecución de transacciones .
Sintaxis SQL es el objeto de la norma ISO 9075 estándar . Este estándar deja la posibilidad a los productores de DBMS de agregar instrucciones específicas y no estandarizadas. La norma ha evolucionado a lo largo de los años para mantener el ritmo de la demanda, y los vendedores de DBMS a menudo han añadido las capacidades de sus productos antes de que sean objeto de normas, provocando variaciones en la comprensión y entendimiento. Interpretación que se hace de un código fuente en SQL por el varios software DBMS. Estas diferencias significan que un código fuente escrito sin precauciones para un DBMS determinado no necesariamente funcionará con otro DBMS.
SQL puede administrar, y generalmente administra, múltiples bases de datos. Debes indicar al principio con cuál quieres trabajar mediante una instrucción USE
USE mabase;El lenguaje de manipulación de datos DML o lenguaje de manipulación de datos, DML, en inglés, es un subconjunto de SQL que se utiliza para agregar, modificar y eliminar datos:
La palabra clave NULL se introdujo en SQL para expresar la información que faltaba en el modelo relacional. La introducción de NULL, con TRUE y FALSE es la base de la lógica ternaria . NULL no tiene valor en SQL (y no es miembro de ningún tipo de datos), es una palabra clave reservada, lo que indica que falta información. Por lo tanto, la comparación con NULL, incluso con NULL en sí, no puede ser VERDADERO o FALSO, debe ser desconocido y no tiene valor booleano. De hecho, NULL no puede considerarse igual a NULL, ya que las dos piezas de información que faltan, que representan estos dos NULL distintos, pueden resultar diferentes. Generalmente decimos que NULL es un "marcador".
Otros lenguajes de consulta incluyen los antepasados de SQL como QUEL (QUery English Language) o el lenguaje QBE (Query By Example). Sin embargo, el lenguaje QBE , muy diferente al SQL, sigue vigente en los RDBMS de tipo “archivo” como Paradox (Ansa Software / Borland / Corel) o Microsoft Access (base de datos) de Microsoft .
Cabe señalar que la técnica WITH se retomó en parte en el estándar SQL: 1999 para crear " Common Table Expression " (CTE o Table d'Expression Partagée en francés), es decir, vistas no instanciadas que se pueden utilizar. por la consulta en la que aparecen, para factorizar expresiones o permitir la escritura de consultas recursivas para resolver elegantemente recorridos de árboles o grafos.
Otros candidatos incluyen:
|
Todos estos sistemas tienen ciertas peculiaridades, algunas de las cuales no se encuentran en otros. También es siempre interesante consultar el manual de referencia de RDBMS, durante solicitudes específicas o complejas, así como para su optimización.