¿Qué es el lenguaje de consulta estructurado (SQL)?

Primer plano de una mano trabajando en una sala de control de monitoreo de computadora de escritorio

Autores

Alexandra Jonker

Staff Editor

IBM Think

Tim Mucci

IBM Writer

Gather

¿Qué es el lenguaje de consulta estructurado?

El lenguaje de consulta estructurado (SQL) es un lenguaje de programación estandarizado y específico de dominio que se emplea para interactuar con sistemas de gestión de bases de datos relacionales (RDBMS) como MySQL, SQL Server, IBM Db2, PostgreSQL y Oracle Database.

Las SQL queries (también conocidas como comandos SQL o declaraciones SQL) permiten a los usuarios agregar, recuperar, actualizar, eliminar, agregar y administrar datos fácilmente en una base de datos relacional (o SQL database). En estos sistemas, los datos estructurados se ordenan en filas y columnas, que juntas forman tablas. Los datos suelen estructurarse en varias tablas relacionadas que se pueden vincular mediante claves primarias o externas.

A diferencia de otros lenguajes de programación, SQL es un lenguaje declarativo, lo que significa que describe lo que el usuario quiere que haga la computadora en lugar de cómo lograrlo. Esto contrasta con los lenguajes imperativos o procedimentales (como Java y COBOL) que requieren instrucciones paso a paso.

Por ejemplo, cuando los usuarios escriben una SQL query para obtener datos, no necesitan esbozar los pasos que debe seguir la base de datos para reunir esos datos, sino describir cómo debe ser el resultado.

SELECCIONE nombre, correo electrónico
DE clientes
DONDE ciudad = 'Nueva York';

SQL es una herramienta fundamental y versátil en la pila tecnológica moderna, conocida por sus capacidades de manipulación de datos, procesamiento rápido de consultas y fuertes características de seguridad. También ofrece compatibilidad entre distintos sistemas, escalabilidad para gestionar las crecientes necesidades de datos y un soporte sólido de código abierto y de la comunidad.

La historia de SQL

En la década de 1970, los científicos de IBM Donald Chamberlin y Raymond Boyce desarrollaron e introdujeron SQL. Se originó a partir del concepto de modelos relacionales y se llamó inicialmente lenguaje de consulta inglés estructurado (SEQUEL) antes de abreviarse a SQL. Se lanzó comercialmente en 1979 y desde entonces se convirtió en el estándar mundial para los sistemas de gestión de bases de datos relacionales.

SQL fue estandarizado por el American National Standards Institute (ANSI) en 1986 y por la Organización Internacional de Normalización (ISO) en 1987. A pesar de ser un estándar, SQL tiene varios dialectos, como T-SQL for Microsoft SQL Server y PL/SQL for Oracle Database. Estos dialectos SQL satisfacen las necesidades específicas del sistema sin dejar de cumplir con los comandos estándar ANSI básicos, como SELECT, UPDATE, DELETE, INSERT y WHERE.

Las últimas noticias tecnológicas, respaldadas por los insights de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

¿Por qué es importante SQL?

Desde su desarrollo en la década de 1970, SQL se convirtió en la columna vertebral de los sistemas de bases de datos modernos.

A diferencia de los lenguajes de programación de propósito general, SQL está diseñado específicamente para bases de datos relacionales y, a su vez, las bases de datos relacionales están optimizadas para SQL. Este diseño mutuo convierte a SQL en una herramienta de gestión de datos muy eficiente.

La naturaleza declarativa de SQL lo hace accesible incluso para usuarios con poca experiencia en programación, por lo que es un lenguaje ideal para principiantes. Su uso generalizado y su integración con otros lenguajes de programación como Python y Java también lo convierten en una habilidad valiosa en entornos de programación y datos más amplios.

Los analistas de datos, científicos de datos y administradores de bases de datos usan SQL de manera regular porque es sobresaliente en tareas como el procesamiento de datos, la definición de datos, el control de acceso, intercambio de datos, integración de datos y big data analytics.

En ciencia de datos, SQL se utiliza para crear bases de datos que almacenan grandes conjuntos de datos necesarios para el análisis de datos. Su capacidad para manipular y recuperar datos de estos vastos conjuntos de datos estructurados también es crucial en el desarrollo de aplicaciones de IA y machine learning (ML), que dependen de datos de alta calidad para el entrenamiento.

Al adherirse a las propiedades de ACID (atomicidad, coherencia, aislamiento y durabilidad), SQL ayuda a garantizar un procesamiento de transacciones confiable para casos de uso críticos y manejo de datos confidenciales. También es compatible con toma de decisiones basada en datos, analytics avanzados y business intelligence mejorada.

Academia de IA

¿Es la gestión de datos el secreto de la IA generativa?

Explore por qué los datos de alta calidad son esenciales para el uso exitoso de la IA generativa.

¿Cuáles son los beneficios de usar SQL?

SQL ofrece muchas ventajas, por lo que se ha mantenido como uno de los lenguajes de programación más utilizados y duraderos.

Manipulación de datos sencilla

Los comandos simples de SQL (como GROUP BY, ORDER BY, GRANT y REVOKE) permiten a los usuarios de todos los niveles trabajar con bases de datos.

Procesamiento rápido de consultas

Los índices SQL y las técnicas de optimización de consultas mejoran la velocidad de recuperación de datos y, en consecuencia, mejoran el rendimiento de la base de datos.

Sólida seguridad de datos

SQL databases incluyen características de seguridad, como autenticación de usuarios, controles de acceso y cifrado para proteger los datos.

Similitud y compatibilidad

SQL se adhiere a los estándares ANSI e ISO SQL, que ayudan a garantizar la compatibilidad con diversos sistemas y plataformas, incluidos entornos de nube y herramientas de big data.

Escalabilidad

SQL puede gestionar eficazmente bases de datos tanto pequeñas como grandes, adaptar a las crecientes necesidades de datos sin una pérdida significativa de rendimiento.

Soporte de código abierto

Muchas SQL Databases son de código abierto y cuentan con el respaldo de una comunidad grande y activa que contribuye a la mejora continua y a la resolución de problemas.

¿Cómo funciona una SQL query?

Una base de datos relacional organiza los datos en un formato tabular (filas y columnas) y facilita las relaciones entre diferentes tablas. Por ejemplo, una base de datos de atención al cliente podría usar tablas separadas para la información del cliente, compras, códigos de producto y contactos, vinculadas por claves, como una identificación de cliente única.

SQL permite a los usuarios escribir consultas (y subconsultas) para manipular estos datos. Estos comandos se ejecutan a través de varios componentes de software durante el proceso SQL:

Un analizador verifica la exactitud de las instrucciones SQL y las convierte en un formato que la base de datos pueda entender, como símbolos tokenizados . Este paso implica el análisis de sintaxis y la comprobación semántica. El analizador también ayudará a garantizar que el usuario esté autorizado para realizar la operación.

Luego, un motor relacional, también conocido como optimizador de consultas, planifica las estrategias de recuperación, modificación o adición de datos más eficientes. Lo hace mediante la evaluación de diferentes planes de ejecución de consultas. Escribe el plan en bytecode, que es un lenguaje de máquina virtual. Este paso es crucial para optimizar el rendimiento de la base de datos y el uso de recursos.

Por último, un motor de almacenamiento procesa el código de bytes, ejecuta la instrucción SQL y gestiona el almacenamiento físico de datos. Maneja la representación física de los datos, incluidos los formatos de archivo y el almacenamiento en búfer de datos. También devuelve el resultado al usuario o a la aplicación. Este paso ayuda a garantizar un acceso eficiente a los datos y actualizaciones en el disco. Este vínculo a menudo implica relaciones, tales como uno a muchos o muchos a muchos, establecidas mediante claves primarias y externas para ayudar a garantizar la integridad de los datos.

Componentes clave de sistemas SQL

Los sistemas de administración de bases de datos relacionales (también llamados sistemas SQL) constan de muchos componentes, que incluyen:

  • Bases de datos: un repositorio digital para almacenar, gestionar y proteger colecciones organizadas de datos.

  • Tablas de base de datos: datos formateados en filas y columnas; cada una contiene información sobre un tipo de entidad.

  • SQL queries: SQL queries son instrucciones escritas en SQL que se usan para manipular datos dentro de una base de datos relacional.

  • Restricciones SQL: reglas que controlan los datos en las columnas o tablas de la base de datos para mantener la integridad de los datos.

  • Procedimientos almacenados: comandos SQL que se guardan para su reutilización continua.

  • Transacciones: uno o más comandos SQL agrupados como una sola unidad de trabajo u operación.

  • Tipos de datos: reglas que definen el tipo de datos que se pueden almacenar en una columna.

  • Índices: un objeto de base de datos que acelera la recuperación de datos al reducir el número de accesos al disco necesarios para una consulta.

  • Vistas: tablas virtuales basadas en SQL Queries para simplificar las consultas complejas y mejorar la seguridad al restringir el acceso a los datos subyacentes.

  • Seguridad y licencias: funcionan para gestionar el acceso de los usuarios, mientras que los mecanismos de copia de seguridad y recuperación protegen los datos contra pérdidas o daños.

Tipos de comandos SQL: DDL, DML, DQL, DCL y TCL

Los comandos SQL se dividen tradicionalmente en las siguientes categorías:

  • Lenguaje de definición de datos (DDL)
  • Lenguaje de manipulación de datos (DML)
  • Lenguaje de control de datos (DCL)
  • Lenguaje de consulta de datos (DQL)
  • Lenguaje de control de transacciones (TCL)

Lenguaje de definición de datos (DDL)

El lenguaje de definición de datos administra objetos de bases de datos como tablas, vistas e índices. Define la estructura y organización de los datos almacenados y las relaciones entre los elementos de datos almacenados. 

Lenguaje de manipulación de datos (DML)

El lenguaje de manipulación de datos gestiona los datos dentro de las bases de datos a través de operaciones como INSERT, UPDATE y OUTER JOIN, que agregan, modifican y combinan datos.

Lenguaje de control de datos (DCL)

El lenguaje de control de datos controla el acceso a los datos a través de comandos como GRANT (para otorgar permisos) y REVOKE (para eliminar permisos). Puede restringir la capacidad de un usuario para recuperar, agregar y modificar datos.

Lenguaje de consulta de datos (DQL)

El lenguaje de consulta de datos ejecuta consultas de datos para recuperar información, normalmente mediante el comando SELECT. Puede recuperar elementos de datos específicos o un rango de elementos.

Lenguaje de control de transacciones (TCL)

El lenguaje de control de transacciones gestiona los cambios en las transacciones para ayudar a garantizar la integridad de los datos y admite las operaciones ROLLBACK y COMMIT para deshacer o almacenar cambios, respectivamente. Se utiliza para coordinar el intercambio de datos por parte de usuarios simultáneos.

¿Cuáles son los comandos SQL más comunes?

SQL databases admiten varias declaraciones SQL para operaciones. Sin embargo, los comandos SQL pueden variar según la base de datos, que puede usar su propia sintaxis SQL.

Los comandos SQL básicos incluyen:

SELECT

Recupera datos de una o más tablas.

SELECCIONE nombre, correo electrónico

DE clientes

DONDE ciudad = 'Nueva York';
Esta declaración recupera el nombre y el correo electrónico de todos los clientes que viven en Nueva York de la tabla de clientes.

INSERT

Agrega nuevas filas a una tabla.

INSERT INTO customers (name, email, city)
VALUES ('Jane Doe', 'jane.doe@example.com', 'Los Angeles') ;

Esta declaración agrega una nueva fila a la tabla de clientes con el nombre 'Jane Doe', correo electrónico 'jane.doe@example.com' y ciudad 'Los Angeles'.

UPDATE

Modifica los datos existentes en una tabla.

UPDATE customers 
SET email = 'new.email@example.com' 
WHERE name = 'John Doe' ;

Esta declaración actualiza el correo electrónico del cliente llamado 'John Doe' en la tabla de clientes a 'new.email@example.com.'

DELETE

Quita filas de una tabla en función de una condición.

DELETE FROM customers 
WHERE city = 'Boston' ;

Esta declaración elimina todas las filas de la tabla de clientes donde la ciudad es 'Boston'.

CREATE TABLE

Define una nueva tabla y su estructura.

CREATE TABLE products (
product_id INT PRIMARY KEY,
name VARCHAR(100),
price DECIMAL(10, 2)
) ;

Esta declaración crea una nueva tabla llamada productos con tres columnas: product_id como clave primaria entera, nombre como cadena de caracteres variables de hasta 100 caracteres y precio como decimal con diez dígitos y dos decimales.

ALTER TABLE

Modifica la estructura de una tabla existente.

ALTER TABLE customers 
ADD COLUMN birthday DATE ;

Esta declaración agrega una nueva columna cumpleaños de tipo FECHA a la tabla de clientes existente.

DROP TABLE

Elimina una tabla y todos sus datos.

DROP TABLE old_customers ;

Esta instrucción elimina la tabla clientes_anteriores junto con todos sus datos.

JOIN

Combina filas de dos o más tablas basadas en una columna relacionada.

SELECT c.name, p.name AS product_name
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
JOIN products p ON o.product_id = p.product_id
WHERE c.city = 'New York' ;

Esta declaración SQL JOIN recupera los nombres de los clientes y los nombres de los productos que ordenaron. Une las tablas de clientes, pedidos y productos en función de customer_id y product_id, seleccionando solo aquellos clientes que viven en Nueva York.

Bases de datos SQL frente a NoSQL

SQL Databases son bases de datos relacionales, donde los datos estructurados se almacenar en filas y tablas que están vinculadas de varias maneras. SQL es el lenguaje estándar para interactuar con estas bases de datos.

NoSQL databases (o bases de datos no relacionales) surgieron a finales de la década de 2000 para manejar datos con menos estructura. Estos tipos de bases de datos (como MongoDB) ofrecen modelos de datos más flexibles en comparación con SQL databases.

Las diferencias clave incluyen:

  • Escalabilidad
  • Estructura
  • Desempeño
  • Casos de uso
  • Conocimiento y comunidad
  • Mantenimiento y gestión

Escalabilidad

Las NoSQL databases son escalables horizontalmente, administrando un mayor tráfico mediante la adición de más servidores. Por el contrario, las SQL databases son tradicionalmente escalables verticalmente, lo que requiere hardware más potente para manejar una mayor carga.

Estructura

Las SQL Databases emplean una estructura basada en tablas ideal para transacciones de varias filas y consultas complejas en datos relacionados, gracias a las robustas capacidades de indexación y unión. NoSQL ofrece varias estructuras, como valores clave, documentos, gráficos o almacenes de columnas anchas, que satisfacen diferentes necesidades y permiten una mayor flexibilidad con datos semiestructurados o no estructurados.

Desempeño

Las SQL databases están optimizadas para consultas complejas con coherencia de datos estricta, siguiendo los principios de ACID. Las NoSQL databases, que siguen los principios BASE (básicamente disponible, estado suave, coherencia eventual), proporcionan un rendimiento más rápido para tipos específicos de datos, pero con diferentes garantías de coherencia.

Casos de uso

Las SQL databases a menudo se eligen para aplicaciones que requieren transacciones complejas, datos consistentes y un estricto cumplimiento de esquemas, como sistemas financieros, plataformas de comercio electrónico o bases de datos CRM. NoSQL se prefiere para datos a gran escala, semiestructurados o que cambian rápidamente, como en redes sociales, análisis en tiempo real o sistemas de gestión de contenido.

Conocimiento y comunidad

Las SQL databases tienen una gama más amplia de recursos, como tutoriales de SQL y soporte de la comunidad debido a su historia más larga y su adopción generalizada. Las NoSQL a menudo requieren menos diseño inicial y pueden ser más fáciles de escalar, pero generalmente necesitan más desarrollo personalizado para consultas complejas y coherencia de datos.

Mantenimiento y gestión

Las SQL databases requieren un diseño cuidadoso de esquemas y pueden ser exigentes en términos de mantenimiento para cambios de esquema. Un DBMS NoSQL ofrece escalabilidad y adaptabilidad más fáciles para los cambios de esquema sin tiempo de inactividad extenso o reestructuración.

¿Qué es la inyección SQL?

A pesar de las fortalezas de seguridad de muchas bases de datos SQL, otras aplicaciones pueden ser vulnerables a problemas de seguridad, como autenticación débil, diseño inseguro y configuración incorrecta. Debido a estas vulnerabilidades, la inyección de SQL sigue siendo una amenaza real para las organizaciones.

La inyección SQL ocurre cuando los hackers manipulan SQL queries para acceder o corromper la información de la base de datos. Comprender estas vulnerabilidades e implementar medidas de seguridad estables es crítico para proteger los datos SQL.

Soluciones relacionadas
IBM StreamSets

Cree y gestione canalizaciones de datos de streaming inteligentes a través de una interfaz gráfica intuitiva, y facilite una integración de datos fluida en entornos híbridos y multinube.

Explorar StreamSets
IBM watsonx.data™

watsonx.data le permite escalar los analytics y la IA con todos sus datos, residan donde residan, a través de un almacén de datos abierto, híbrido y gestionado.

Descubra watsonx.data
Servicios de consultoría en datos y analytics

Desbloquee el valor de los datos empresariales con IBM Consulting, y construya una organización impulsada por insights que ofrezca ventajas empresariales.

Descubra los servicios de analytics
Dé el siguiente paso

Diseñe una estrategia de datos que elimine los silos de datos, reduzca la complejidad y mejore la calidad de los datos para ofrecer experiencias excepcionales a clientes y empleados.

Explore las soluciones de gestión de datos Descubra watsonx.data