SQL

Tutorial SQL: Introducción a DML

Aprende los fundamentos del Lenguaje de Manipulación de Datos (DML) y las operaciones CRUD en SQL para gestionar bases de datos eficazmente.

Aprende SQL y certifícate

Qué es DML

El Lenguaje de Manipulación de Datos (DML, por sus siglas en inglés Data Manipulation Language) constituye un componente fundamental dentro del lenguaje SQL que permite a los usuarios interactuar directamente con los datos almacenados en una base de datos relacional. A diferencia de otros componentes de SQL como el DDL (Lenguaje de Definición de Datos), que se centra en la estructura de la base de datos, el DML se enfoca exclusivamente en el contenido de las tablas.

El DML proporciona los comandos necesarios para realizar operaciones sobre los registros almacenados en las tablas de una base de datos. Estos comandos permiten insertar nueva información, consultar datos existentes, modificar registros y eliminar información que ya no sea necesaria. Estas operaciones son esenciales para cualquier aplicación que necesite interactuar con una base de datos, desde un simple sitio web hasta complejos sistemas empresariales.

Características principales del DML

El DML se caracteriza por varios aspectos que lo distinguen de otros componentes de SQL:

  • Orientado a datos: Se centra exclusivamente en la manipulación del contenido de las tablas, no en su estructura.
  • Transaccional: Las operaciones DML pueden agruparse en transacciones, permitiendo que se ejecuten como una unidad atómica.
  • Reversible: Muchas operaciones DML pueden revertirse mediante comandos como ROLLBACK (en el contexto de una transacción).
  • Flexible: Permite manipular desde un único registro hasta millones de filas con un solo comando.

Importancia del DML en bases de datos

El DML representa la interfaz principal entre los usuarios (o aplicaciones) y los datos almacenados. Su importancia radica en varios aspectos:

  • Permite la gestión dinámica de la información, haciendo posible que las bases de datos sean entidades vivas que evolucionan con el tiempo.
  • Facilita la interacción programática con las bases de datos, siendo la base de la mayoría de las aplicaciones modernas.
  • Proporciona mecanismos de control sobre qué datos se modifican y cómo, especialmente cuando se combina con restricciones y reglas de integridad.
  • Habilita la persistencia de datos en aplicaciones, permitiendo que la información sobreviva más allá de la ejecución de un programa.

DML en MySQL y PostgreSQL

Tanto MySQL como PostgreSQL implementan los comandos DML estándar de SQL, aunque con algunas particularidades:

  • MySQL ofrece extensiones específicas para operaciones de inserción masiva y actualizaciones optimizadas, como la cláusula ON DUPLICATE KEY UPDATE para manejar conflictos de claves únicas.

  • PostgreSQL proporciona características avanzadas como la cláusula RETURNING que permite obtener los datos afectados por una operación DML, y soporte para operaciones más complejas como MERGE (aunque con sintaxis diferente).

Ambos sistemas de gestión de bases de datos mantienen una alta compatibilidad con el estándar SQL para los comandos DML básicos, lo que facilita la portabilidad del código entre ellos.

Diferencia entre DML y DDL

Es importante distinguir el DML de otros componentes de SQL:

Característica DML (Data Manipulation Language) DDL (Data Definition Language)
Propósito Manipular datos dentro de las tablas Definir y modificar estructuras de la base de datos
Ejemplos de comandos SELECT, INSERT, UPDATE, DELETE CREATE, ALTER, DROP, TRUNCATE
Afecta a Registros (filas) dentro de las tablas Objetos de la base de datos (tablas, índices, etc.)
Transaccionalidad Generalmente transaccional Generalmente no transaccional (auto-commit)

Contexto de uso del DML

El DML se utiliza en diversos contextos dentro del desarrollo y administración de bases de datos:

  • Aplicaciones web: Para almacenar y recuperar información de usuarios, productos, pedidos, etc.
  • Sistemas de gestión: Para actualizar inventarios, registrar transacciones, generar informes.
  • Análisis de datos: Para extraer conjuntos específicos de información mediante consultas complejas.
  • Migración de datos: Para transferir información entre diferentes sistemas o versiones de bases de datos.
  • Mantenimiento: Para corregir o actualizar información incorrecta o desactualizada.

El dominio efectivo del DML es esencial para cualquier profesional que trabaje con bases de datos, ya que constituye el lenguaje fundamental para interactuar con la información almacenada y transformarla según las necesidades del negocio o la aplicación.

Operaciones CRUD

Las operaciones CRUD constituyen el núcleo funcional del Lenguaje de Manipulación de Datos (DML) en SQL. El acrónimo CRUD representa las cuatro operaciones fundamentales que se pueden realizar sobre los datos almacenados en una base de datos relacional: Create (Crear), Read (Leer), Update (Actualizar) y Delete (Eliminar). Estas operaciones proporcionan un marco conceptual completo para interactuar con la información almacenada.

El concepto CRUD y su relación con DML

El término CRUD no es exclusivo de SQL, sino un concepto general en el desarrollo de software que describe las funciones básicas de persistencia de datos. En el contexto de SQL, cada operación CRUD se implementa mediante comandos DML específicos:

  • Create (Crear) → Se implementa con el comando INSERT
  • Read (Leer) → Se implementa con el comando SELECT
  • Update (Actualizar) → Se implementa con el comando UPDATE
  • Delete (Eliminar) → Se implementa con el comando DELETE

Esta correspondencia directa entre el concepto CRUD y los comandos DML facilita la comprensión y aplicación de estas operaciones en el desarrollo de aplicaciones que interactúan con bases de datos.

Operación Create (Crear)

La operación Create permite añadir nuevos registros a una tabla existente. En SQL, esta operación se realiza mediante el comando INSERT INTO. Esta funcionalidad es esencial para:

  • Registrar nuevos usuarios en un sistema
  • Añadir productos a un inventario
  • Almacenar transacciones comerciales
  • Guardar resultados de formularios

La capacidad de crear nuevos registros es fundamental para cualquier aplicación que necesite almacenar información de forma persistente.

Operación Read (Leer)

La operación Read permite consultar y recuperar datos existentes en la base de datos. Implementada mediante el comando SELECT, esta operación es probablemente la más utilizada en SQL y ofrece una gran flexibilidad para:

  • Recuperar información específica mediante filtros
  • Ordenar resultados según criterios definidos
  • Agrupar datos para análisis estadísticos
  • Combinar información de múltiples tablas

La capacidad de leer datos de forma eficiente y precisa es crucial para la toma de decisiones basada en datos y para presentar información relevante a los usuarios.

Operación Update (Actualizar)

La operación Update permite modificar registros existentes en una tabla. Implementada mediante el comando UPDATE, esta operación es vital para:

  • Corregir información errónea
  • Actualizar estados o etapas de procesos
  • Modificar precios, cantidades o cualquier atributo variable
  • Reflejar cambios en la información de entidades

La capacidad de actualizar datos garantiza que la información almacenada pueda evolucionar y mantenerse precisa a lo largo del tiempo.

Operación Delete (Eliminar)

La operación Delete permite eliminar registros existentes de una tabla. Implementada mediante el comando DELETE, esta operación es necesaria para:

  • Eliminar cuentas o perfiles obsoletos
  • Quitar productos descontinuados
  • Purgar datos históricos innecesarios
  • Cumplir con regulaciones de privacidad y retención de datos

La capacidad de eliminar datos de forma controlada es esencial para mantener la relevancia y eficiencia de la base de datos.

Ciclo de vida de los datos mediante CRUD

Las operaciones CRUD definen un ciclo de vida completo para los datos en un sistema:

  1. Los datos nacen cuando se crean mediante operaciones Create
  2. Los datos se utilizan cuando se consultan mediante operaciones Read
  3. Los datos evolucionan cuando se modifican mediante operaciones Update
  4. Los datos terminan su ciclo cuando se eliminan mediante operaciones Delete

Este ciclo refleja cómo la información en sistemas reales tiene un periodo de vida útil durante el cual se crea, consulta, modifica y eventualmente se elimina cuando ya no es necesaria.

Importancia de CRUD en el diseño de aplicaciones

El modelo CRUD ha trascendido más allá de las bases de datos para convertirse en un patrón de diseño fundamental en el desarrollo de aplicaciones:

  • APIs RESTful: Mapean métodos HTTP (POST, GET, PUT/PATCH, DELETE) a operaciones CRUD
  • Interfaces de usuario: Organizan funcionalidades en torno a crear, ver, editar y eliminar recursos
  • Permisos y seguridad: Estructuran niveles de acceso según qué operaciones CRUD puede realizar un usuario
  • Pruebas de software: Categorizan casos de prueba según las operaciones CRUD que verifican

Esta alineación entre las operaciones de base de datos y la estructura de las aplicaciones facilita un diseño coherente y comprensible.

Consideraciones de integridad y seguridad

Las operaciones CRUD deben implementarse considerando aspectos críticos:

  • Integridad referencial: Las operaciones Create y Delete deben respetar las relaciones entre tablas
  • Validación de datos: Las operaciones Create y Update deben verificar que los datos cumplan con las reglas de negocio
  • Control de concurrencia: Todas las operaciones deben manejar adecuadamente los accesos simultáneos
  • Auditoría: Es recomendable registrar quién realizó cada operación CRUD y cuándo

Estas consideraciones garantizan que las operaciones CRUD no solo funcionen correctamente, sino que también mantengan la consistencia y seguridad de los datos.

CRUD en entornos transaccionales

En aplicaciones empresariales, las operaciones CRUD suelen ejecutarse dentro de transacciones que agrupan múltiples operaciones como una unidad atómica:

  • Una transferencia bancaria podría implicar operaciones Update en dos cuentas diferentes
  • Un proceso de compra podría combinar operaciones Create para el pedido y Update para el inventario
  • Un cambio organizacional podría requerir múltiples operaciones Update relacionadas

Las transacciones garantizan que conjuntos de operaciones CRUD relacionadas se ejecuten completamente o no se ejecuten en absoluto, manteniendo la consistencia de los datos.

Extensiones y variaciones del modelo CRUD

Aunque el modelo CRUD cubre las operaciones fundamentales, algunos sistemas extienden este concepto:

  • CRUDL: Añade "List" como una operación separada de "Read" para distinguir entre consultas de un solo registro y consultas de múltiples registros
  • BREAD: "Browse, Read, Edit, Add, Delete", una variación que separa la navegación de registros de la lectura detallada
  • CRUD+: Incorpora operaciones adicionales específicas del dominio que no encajan en las cuatro básicas

Estas extensiones adaptan el modelo CRUD a necesidades específicas manteniendo su esencia conceptual.

Las operaciones CRUD proporcionan un marco conceptual sólido y completo para entender cómo interactuar con datos persistentes, constituyendo la base sobre la que se construyen prácticamente todas las aplicaciones que utilizan bases de datos relacionales.

Aprende SQL online

Otros ejercicios de programación de SQL

Evalúa tus conocimientos de esta lección Introducción a DML con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Tipos de datos

Test

Inserción de datos: INSERT INTO

Test

Filtrado de grupos de resultados con HAVING

Test

Uso de índices y particiones

Test

Renombrar tablas y bases de datos: RENAME

Test

Uso de vistas

Test

Uso de INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN

Test

Agrupación de resultados con GROUP BY

Test

Creación y uso de subqueries

Test

Sentencias INSERT

Código

Copias de seguridad y restauración de bases de datos

Test

Uso de INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN

Código

Instalación de MySQL

Test

Relaciones entre tablas

Código

Eliminación de datos: DELETE

Test

Creación de bases de datos y tablas: CREATE DATABASE, CREATE TABLE

Test

Creación y uso de funciones

Test

Creación de tablas e inserción de datos con SQL

Proyecto

Uso de funciones agregadas: COUNT, SUM, AVG, MAX, MIN

Test

Optimización de consultas

Test

Introducción a SQL

Test

Triggers y eventos

Test

Clasificación de resultados con ORDER BY

Test

Alterar la estructura de tablas existentes: ALTER TABLE

Test

Eliminación de datos: DELETE

Código

Instalación de PostgreSQL

Test

Creación y uso de procedimientos almacenados

Test

Consultas básicas de selección: SELECT y WHERE

Test

Vaciar tablas y bases de datos: DROP

Test

Actualización de datos: UPDATE

Test

Creación y manejo de usuarios y roles

Test

Consultas básicas de selección SELECT y WHERE

Código

Creación de bases de datos y tablas

Código

Bases de datos y tablas

Test

Actualización de datos: UPDATE

Código

Relaciones entre tablas

Test

Filtrado de valores únicos con DISTINCT

Test

Asignación y gestión de permisos

Test

Todas las lecciones de SQL

Accede a todas las lecciones de SQL y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Introducción A Sql

Introducción Y Entorno

Ddl Y Dml

Introducción Y Entorno

Instalación De Mysql

Introducción Y Entorno

Instalación De Postgresql

Introducción Y Entorno

Tipos De Datos

Introducción Y Entorno

Bases De Datos Y Tablas

Introducción Y Entorno

Sistemas De Gestión De Bases De Datos

Introducción Y Entorno

Tipos De Bases De Datos

Introducción Y Entorno

Creación De Bases De Datos Y Tablas: Create Database, Create Table

Sintaxis Dml Crud

Consultas Básicas De Selección: Select Y Where

Sintaxis Dml Crud

Inserción De Datos: Insert Into

Sintaxis Dml Crud

Actualización De Datos: Update

Sintaxis Dml Crud

Eliminación De Datos: Delete

Sintaxis Dml Crud

Introducción A Dml

Sintaxis Dml Crud

Consultar Datos: Select

Sintaxis Dml Crud

Clasificación De Resultados Con Order By

Filtros Y Clasificación

Filtrado De Valores Únicos Con Distinct

Filtros Y Clasificación

Paginación Con Limit Y Offset

Filtros Y Clasificación

Alterar La Estructura De Tablas Existentes: Alter Table

Sintaxis Ddl

Renombrar Tablas Y Bases De Datos: Rename

Sintaxis Ddl

Vaciar Tablas Y Bases De Datos: Drop

Sintaxis Ddl

Uso De Funciones Agregadas: Count, Sum, Avg, Max, Min

Funciones Y Agrupación

Agrupación De Resultados Con Group By

Funciones Y Agrupación

Filtrado De Grupos De Resultados Con Having

Funciones Y Agrupación

Funciones Numéricas Y Matemáticas

Funciones Y Agrupación

Funciones De Fecha Y Hora

Funciones Y Agrupación

Funciones De Texto

Funciones Y Agrupación

Many To One

Asociaciones Entre Tablas

One To Many

Asociaciones Entre Tablas

One To One

Asociaciones Entre Tablas

Many To Many

Asociaciones Entre Tablas

Relaciones Entre Tablas

Joins Y Subqueries

Uso De Inner Join, Left Join, Right Join, Full Join

Joins Y Subqueries

Creación Y Uso De Subqueries

Joins Y Subqueries

Left Join Y Right Join

Joins Y Subqueries

Full Join

Joins Y Subqueries

Cross Join Y Self Join

Joins Y Subqueries

Optimización De Consultas

Sintaxis Avanzada

Uso De Índices Y Particiones

Sintaxis Avanzada

Uso De Vistas

Sintaxis Avanzada

Triggers Y Eventos

Sintaxis Avanzada

Particiones

Sintaxis Avanzada

Restricciones E Integridad

Sintaxis Avanzada

Transacciones

Sintaxis Avanzada

Vistas Materializadas

Sintaxis Avanzada

Rollback

Sintaxis Avanzada

Vistas Con Create View

Sintaxis Avanzada

Principios Acid

Sintaxis Avanzada

Manejo De Errores Y Excepciones

Sintaxis Avanzada

Funciones Ventana

Sintaxis Avanzada

Índices

Sintaxis Avanzada

Expresiones De Tabla Comunes (Cte) Con With

Sintaxis Avanzada

Creación Y Uso De Funciones

Programación En Sql

Creación Y Uso De Procedimientos Almacenados

Programación En Sql

Variables Y Control De Flujo

Programación En Sql

Creación Y Manejo De Usuarios Y Roles

Seguridad Y Administración

Asignación Y Gestión De Permisos

Seguridad Y Administración

Copias De Seguridad Y Restauración De Bases De Datos

Seguridad Y Administración

Accede GRATIS a SQL y certifícate

En esta lección

Objetivos de aprendizaje de esta lección

  • Comprender qué es el DML y su función en la manipulación de datos dentro de bases de datos.
  • Identificar las características principales y la importancia del DML en sistemas de gestión de bases de datos.
  • Diferenciar entre DML y DDL en el contexto de SQL.
  • Conocer las operaciones CRUD (Create, Read, Update, Delete) y su correspondencia con comandos DML.
  • Entender la aplicación práctica de CRUD en el ciclo de vida de los datos y su relevancia en el diseño de aplicaciones.