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ícateQué 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 comoMERGE
(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:
- Los datos nacen cuando se crean mediante operaciones Create
- Los datos se utilizan cuando se consultan mediante operaciones Read
- Los datos evolucionan cuando se modifican mediante operaciones Update
- 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.
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
Inserción de datos: INSERT INTO
Filtrado de grupos de resultados con HAVING
Uso de índices y particiones
Renombrar tablas y bases de datos: RENAME
Uso de vistas
Uso de INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN
Agrupación de resultados con GROUP BY
Creación y uso de subqueries
Sentencias INSERT
Copias de seguridad y restauración de bases de datos
Uso de INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN
Instalación de MySQL
Relaciones entre tablas
Eliminación de datos: DELETE
Creación de bases de datos y tablas: CREATE DATABASE, CREATE TABLE
Creación y uso de funciones
Creación de tablas e inserción de datos con SQL
Uso de funciones agregadas: COUNT, SUM, AVG, MAX, MIN
Optimización de consultas
Introducción a SQL
Triggers y eventos
Clasificación de resultados con ORDER BY
Alterar la estructura de tablas existentes: ALTER TABLE
Eliminación de datos: DELETE
Instalación de PostgreSQL
Creación y uso de procedimientos almacenados
Consultas básicas de selección: SELECT y WHERE
Vaciar tablas y bases de datos: DROP
Actualización de datos: UPDATE
Creación y manejo de usuarios y roles
Consultas básicas de selección SELECT y WHERE
Creación de bases de datos y tablas
Bases de datos y tablas
Actualización de datos: UPDATE
Relaciones entre tablas
Filtrado de valores únicos con DISTINCT
Asignación y gestión de permisos
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
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.