Qué es el lenguaje SQL, de dónde viene y qué función realiza en el mundo de las bases de datos y en el mundo del desarrollo actual. Qué tipos de consultas existen en SQL.
Con este artículo comenzamos el Manual de SQL en el que pretendemos ofrecer una ayuda para todos los que están comenzando con las bases de datos y quieren aprender las cosas básicas de este lenguaje de consulta.
Qué es SQL
SQL son las siglas de "Structured Query Language". Consiste en un lenguaje estandarizado para el acceso y manipulación de los datos que se encuentran en los bases de datos, especialmente las bases de datos relacionales.
En español SQL viene a significar "Lenguaje de Consulta Estructurada". De todos modos, es tan conocido el término que nadie usa la traducción al español.
A través de SQL, es posible realizar diversas operaciones sobre las bases de datos, como consultar, insertar, actualizar y eliminar datos, aunque también se utiliza para crear y modificar esquemas (tablas) de las bases de datos, así como para establecer usuarios y los permisos dentro de los sistemas gestores de bases de datos, entre otras cosas.
Su estandarización comenzó en la década de 1980, aunque el lenguaje en sí comenzó a ser desarrollado una década antes a partir de los trabajos de IBM y su proyecto System R. Desde entonces SQL ha crecido y se encuentra actualmente en la mayoría de los sistemas de gestión de bases de datos relacionales (RDBMS). Todos los motores de bases de datos más usados se basan en SQL para su funcionamiento. Algunos ejemplos populares son MySQL / MariaDB, PostgreSQL, Oracle o Microsoft SQL Server pero hay decenas más.
Para qué sirve SQL
Como hemos dicho, SQL es un lenguaje de acceso a datos. Está orientado en la realización de consultas que permiten interaccionar con los sistemas gestores de bases de datos.
Aunque usemos el término de consulta y pueda parecer que nos referimos a la recuperación de la información almacenada en las bases de datos, SQL aborda todos los ámbitos de la gestión de los sistemas de bases de datos. Algunos de los tipos de consultas que podemos realizar con SQL son los siguientes:
-
DDL (Data Definition Language): Se refiere al conjunto de instrucciones del lenguaje SQL que permiten crear, modificar o eliminar las estructuras de datos, es decir, las tablas, índices y relaciones entre las tablas. Ejemplos de instrucciones DDL son
CREATE
,ALTER
yDROP
. -
DML (Data Manipulation Language): Se refiere al conjunto de instrucciones del lenguaje SQL utilizadas para acceder y manipular los datos que hay dentro de las estructuras de las bases de datos. Estas instrucciones son los conocidos
SELECT
,INSERT
,UPDATE
yDELETE
. -
DCL (Data Control Language): Esta categoría incluye instrucciones relacionadas con el control de acceso a los datos y los permisos de los usuarios, como
GRANT
yREVOKE
. -
TCL (Transaction Control Language): Por último tenemos las instrucciones relacionadas con la gestión de transacciones. Las transacciones son algo más avanzado y básicamente consisten en conjuntos de operaciones que se deben ejecutar completamente, todas de una vez. Si alguna de las transacciones no se puede ejecutar por algún motivo, no se ejecuta ninguna. El objetivo de las transacciones as asegurarse de mantener la integridad de los datos. Los comandos típicos son
COMMIT
,ROLLBACK
ySAVEPOINT
.
SQL en el mundo del desarrollo
SQL es fundamental en el mundo del desarrollo de aplicaciones y sitios web avanzados, incluso de la informática en general. Cualquier persona que se dedique al mundo del desarrollo debe dedicar un tiempo para conocerlo pues es muy habitual que un programador o un informático tenga que trabajar con bases de datos.
Las aplicaciones en el fondo, en la mayor parte de las ocasiones, si lo analizas consisten en accesos, altas modificaciones y borrados de datos. Para ello generalmente implementan un esquema de operación basado en atacar alguna base de datos, que es quien ofrece el servicio de almacenamiento y gestión de los datos.
Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia de estándares que nos permiten el realizar las operaciones básicas de una forma universal. Es de eso de lo que trata el Structured Query Language que no es mas que un lenguaje estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (PHP, Java, Python, C#, Node...) en combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL...).
Aunque es un lenguaje estandarizado y existen una guías claras de cómo debe de funcionar y la mayoría de los sistemas las respetan, sí que existen diferentes variaciones a la hora de implementar SQL en cada motor de bases de datos. Es por ello que pueden existir pequeñas diferencias en las consultas y características que son soportadas por un sistema o por otro.
Aprender SQL está al alcance de cualquier persona que lo necesite. Además, si queremos usar bases de datos en las aplicaciones generalmente tendremos que aprender alguna librería en un lenguaje de programación, aquel con el que estemos trabajando. Generalmente todos los lenguajes soportan de una u otra manera cualquier sistema gestor de bases de datos. En cualquier caso, siempre las bases que aprendas de SQL te servirán para cualquier stack de tecnologías que tengas en tu proyecto.
Ahora queremos abordar un par de conceptos importantes que no definen exactamente lo que es SQL pero sí están muy relacionados. Queremos verlos, aunque sea brevemente, para evitar posibles confusiones en la terminología que vamos a tratar a lo largo del manual.
Qué son los Sistemas Gestores de Bases de Datos
Los Sistemas Gestores de Bases de Datos (SGBD) son los programas que se encargan de almacenar la información de las bases de datos y ofrecer a los usuarios unos mecanismos para poder acceder a ellos. Además, se encargan de cosas menos visibles, como asegurarse que los datos no se pierden, están bien enlazados los unos con los otros, mantener la seguridad de la información y la protección de acceso a los usuarios que tienen permisos, etc.
Los SGBD más populares son MySQL, Oracle, PosgreSQL, SQL Server, SQLite, MariaDB. Todos ellos son sistemas gestores de bases de datos relacionales, que son aquellas a las que se accede y administra mediante el lenguaje SQL. Pero también hay otros SGBD como MongoDB que son "no relacionales" y que no soportan SQL.
Qué son las bases de datos
Las bases de datos son almacenes de información gestionada por los Sistemas Gestores de Bases de datos. Por tanto, una instalación de un SGBD es capaz de gestionar múltiples bases de datos y permitir el acceso a sus usuarios a ellas.
Los datos de una base de datos pueden estar relacionados entre si. Pero no existen relaciones entre los datos de distintas bases de datos. Por tanto, las bases de datos se gestionan de manera independiente aunque estén instaladas a su vez en una misma instalación del sistema gestor.
Cuando se desarrolla una aplicación generalmente se tiene una única base de datos donde se almacena toda la información y el usuario puede acceder únicamente a esa base de datos y no a todas las del sistema gestor.
Puedes encontrar más información sobre estos puntos y acceso a otros documentos y manuales explicativos a partir de la categoría de bases de datos.
El Manual de SQL de desarrolloweb pretende dar a conocer las operaciones básicas que se pueden realizar con SQL y que tienen una aplicación directa con la creación de aplicaciones web, sin profundizar más de lo estrictamente necesario. Buscamos con ello ofrecer al webmaster un manual de referencia práctico y aplicado.
Rubén Alvarez
Rubén es doctor en química y programador principalmente en sus ratos libres con...