SQL

Tutorial SQL: Vaciar tablas y bases de datos: DROP

Aprende a usar DROP TABLE y DROP DATABASE en SQL con buenas prácticas y prevención de errores para gestionar bases de datos de forma segura.

Aprende SQL y certifícate

DROP TABLE

La sentencia DROP TABLE es una de las operaciones más contundentes en SQL, ya que permite eliminar completamente una tabla de la base de datos, incluyendo su estructura, datos, índices, restricciones y cualquier otro objeto asociado. A diferencia de DELETE (que elimina registros) o TRUNCATE (que vacía la tabla pero mantiene su estructura), DROP TABLE elimina la tabla en su totalidad.

La sintaxis básica de esta sentencia es sencilla:

DROP TABLE [IF EXISTS] nombre_tabla;

El parámetro opcional IF EXISTS es especialmente útil cuando no estamos seguros de si la tabla existe, ya que evita que se produzca un error si intentamos eliminar una tabla inexistente.

Uso básico de DROP TABLE

Para eliminar una tabla llamada "clientes" de nuestra base de datos, ejecutaríamos:

DROP TABLE clientes;

Esta instrucción elimina la tabla "clientes" de forma permanente. Si la tabla no existe, el sistema generará un error.

Uso de IF EXISTS

Para evitar errores cuando no estamos seguros de si la tabla existe, podemos usar:

DROP TABLE IF EXISTS clientes;

Esta variante es especialmente útil en scripts de limpieza o cuando estamos desarrollando aplicaciones que necesitan crear tablas desde cero, asegurándonos de que no existan previamente.

Eliminación de múltiples tablas

Tanto MySQL como PostgreSQL permiten eliminar varias tablas en una sola sentencia:

-- En MySQL
DROP TABLE IF EXISTS tabla1, tabla2, tabla3;

-- En PostgreSQL
DROP TABLE IF EXISTS tabla1, tabla2, tabla3;

Esta capacidad es particularmente útil cuando necesitamos limpiar un esquema o cuando las tablas están relacionadas y queremos asegurarnos de que se eliminen todas juntas.

Comportamiento con restricciones de clave foránea

Cuando una tabla tiene relaciones de clave foránea con otras tablas, el comportamiento de DROP TABLE puede variar:

  • En MySQL, por defecto, no se puede eliminar una tabla si tiene restricciones de clave foránea referenciadas por otras tablas, a menos que se desactiven temporalmente las verificaciones de clave foránea:
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE clientes;
SET FOREIGN_KEY_CHECKS = 1;
  • En PostgreSQL, se puede usar la opción CASCADE para eliminar automáticamente todas las dependencias:
DROP TABLE clientes CASCADE;

Consideraciones de seguridad

El comando DROP TABLE requiere permisos específicos en la base de datos. Normalmente, estos permisos están reservados para administradores o propietarios de la base de datos. En entornos de producción, es una buena práctica limitar quién puede ejecutar este tipo de operaciones destructivas.

-- En MySQL
GRANT DROP ON base_datos.* TO 'usuario'@'localhost';

-- En PostgreSQL
GRANT DROP ON ALL TABLES IN SCHEMA public TO usuario;

Recuperación después de DROP TABLE

Una vez ejecutado DROP TABLE, la recuperación puede ser extremadamente difícil o imposible, dependiendo de:

  • Si existen copias de seguridad recientes
  • Si la base de datos tiene habilitado algún sistema de registro de transacciones
  • Las políticas de retención de la base de datos

En MySQL, si se utiliza el motor InnoDB con el parámetro innodb_file_per_table habilitado, cada tabla se almacena en su propio archivo, lo que puede facilitar la recuperación desde copias de seguridad específicas.

En PostgreSQL, se puede utilizar la recuperación a un punto en el tiempo (PITR) si se ha configurado correctamente el archivado de WAL (Write-Ahead Logging).

Diferencias entre sistemas de gestión de bases de datos

Aunque la sintaxis básica es similar, existen algunas diferencias importantes entre MySQL y PostgreSQL:

  • MySQL permite la opción TEMPORARY para eliminar solo tablas temporales:
DROP TEMPORARY TABLE IF EXISTS temp_clientes;
  • PostgreSQL ofrece opciones adicionales como RESTRICT (comportamiento predeterminado) y CASCADE:
DROP TABLE clientes RESTRICT;  -- Falla si hay objetos dependientes
DROP TABLE clientes CASCADE;   -- Elimina también los objetos dependientes

Buenas prácticas al usar DROP TABLE

  • Realizar copias de seguridad antes de ejecutar operaciones destructivas
  • Usar entornos de prueba para verificar scripts que contengan sentencias DROP
  • Implementar control de versiones para los esquemas de base de datos
  • Considerar el uso de transacciones cuando sea posible:
BEGIN;
DROP TABLE tabla_temporal;
-- Otras operaciones
COMMIT;
  • Documentar adecuadamente los cambios en el esquema de la base de datos

DROP DATABASE

La sentencia DROP DATABASE es una operación crítica en SQL que permite eliminar completamente una base de datos del sistema, incluyendo todas sus tablas, vistas, procedimientos almacenados, funciones, triggers y cualquier otro objeto contenido en ella. Esta operación es irreversible y debe utilizarse con extrema precaución.

La sintaxis básica de esta sentencia es:

DROP DATABASE [IF EXISTS] nombre_base_datos;

Al igual que con DROP TABLE, el parámetro opcional IF EXISTS evita que se genere un error si intentamos eliminar una base de datos que no existe, lo que resulta especialmente útil en scripts automatizados.

Uso básico de DROP DATABASE

Para eliminar una base de datos llamada "tienda_online", ejecutaríamos:

DROP DATABASE tienda_online;

Esta instrucción elimina por completo la base de datos y todos sus objetos. Si la base de datos no existe, el sistema generará un error.

Uso con IF EXISTS

Para evitar errores cuando no estamos seguros de si la base de datos existe:

DROP DATABASE IF EXISTS tienda_online;

Esta variante es particularmente útil en entornos de desarrollo o cuando se ejecutan scripts de instalación que necesitan partir de un estado limpio.

Diferencias entre MySQL y PostgreSQL

Aunque la funcionalidad es similar, existen algunas diferencias importantes entre estos sistemas:

  • En MySQL, DROP DATABASE elimina el directorio que contiene todos los archivos de la base de datos:
DROP DATABASE tienda_online;
  • En PostgreSQL, se utiliza más comúnmente el término DROP SCHEMA para eliminar un esquema dentro de una base de datos, mientras que DROP DATABASE se usa para eliminar la base de datos completa:
-- Eliminar un esquema en PostgreSQL
DROP SCHEMA IF EXISTS ventas CASCADE;

-- Eliminar una base de datos completa en PostgreSQL
DROP DATABASE tienda_online;

Es importante destacar que en PostgreSQL, no se puede ejecutar DROP DATABASE desde dentro de la misma base de datos que se quiere eliminar. Debe hacerse desde otra conexión, como por ejemplo desde la base de datos postgres que viene por defecto.

Restricciones y limitaciones

Existen importantes restricciones de seguridad al eliminar bases de datos:

  • No se puede eliminar una base de datos que esté siendo utilizada por conexiones activas
  • Se requieren privilegios administrativos para ejecutar esta operación
  • En entornos de producción, normalmente existen mecanismos adicionales de protección

En MySQL, para eliminar una base de datos cuando hay conexiones activas, primero hay que cerrar esas conexiones:

-- Ver conexiones activas a la base de datos
SHOW PROCESSLIST;

-- Matar una conexión específica
KILL conexión_id;

En PostgreSQL, se puede forzar la desconexión de todos los usuarios antes de eliminar la base de datos:

SELECT pg_terminate_backend(pid) 
FROM pg_stat_activity 
WHERE datname = 'tienda_online' AND pid <> pg_backend_pid();

DROP DATABASE tienda_online;

Impacto en usuarios y permisos

Al eliminar una base de datos:

  • Los permisos específicos otorgados a usuarios sobre esa base de datos se eliminan automáticamente
  • Los usuarios en sí mismos no se eliminan, solo pierden acceso a la base de datos eliminada
  • Las conexiones activas a la base de datos pueden generar errores en las aplicaciones
-- En MySQL, ver permisos antes de eliminar
SHOW GRANTS FOR 'usuario'@'localhost';

-- Después de DROP DATABASE, los permisos específicos ya no aparecerán

Estrategias de respaldo antes de eliminar

Antes de ejecutar DROP DATABASE, es altamente recomendable realizar una copia de seguridad completa:

  • En MySQL:
-- Exportar la estructura y datos
mysqldump -u usuario -p nombre_base_datos > backup_nombre_base_datos.sql
  • En PostgreSQL:
-- Crear un respaldo completo
pg_dump -U usuario nombre_base_datos > backup_nombre_base_datos.sql

Estas copias de seguridad pueden utilizarse posteriormente para restaurar la base de datos si fuera necesario:

-- Restaurar en MySQL
mysql -u usuario -p nombre_base_datos < backup_nombre_base_datos.sql

-- Restaurar en PostgreSQL
psql -U usuario nombre_base_datos < backup_nombre_base_datos.sql

Alternativas menos destructivas

En situaciones donde no se requiere eliminar completamente la base de datos, existen alternativas menos drásticas:

  • Eliminar solo las tablas manteniendo la estructura de la base de datos
  • Renombrar la base de datos en lugar de eliminarla
  • Revocar permisos temporalmente para evitar el acceso
-- Alternativa: eliminar todas las tablas pero mantener la base de datos
-- En MySQL
SELECT CONCAT('DROP TABLE IF EXISTS ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'nombre_base_datos';

-- En PostgreSQL
SELECT 'DROP TABLE IF EXISTS "' || tablename || '" CASCADE;'
FROM pg_tables
WHERE schemaname = 'public';

Consideraciones de seguridad adicionales

Para proteger las bases de datos de eliminaciones accidentales:

  • Implementar políticas de respaldo regulares y automatizadas
  • Establecer permisos restrictivos para operaciones destructivas
  • Utilizar entornos separados para desarrollo, pruebas y producción
  • Documentar adecuadamente los procedimientos de eliminación
-- En MySQL, restringir quién puede eliminar bases de datos
REVOKE DROP ON *.* FROM 'usuario'@'localhost';

-- En PostgreSQL
REVOKE CREATE ON DATABASE template1 FROM PUBLIC;

Prevención de errores

Al trabajar con sentencias DROP en SQL, es fundamental implementar medidas preventivas para evitar pérdidas accidentales de datos. Estas prácticas son especialmente importantes en entornos de producción donde los errores pueden tener consecuencias graves.

Uso de transacciones

Las transacciones proporcionan una capa de seguridad que permite revertir operaciones en caso de error. Sin embargo, es importante destacar que las sentencias DDL como DROP TABLE y DROP DATABASE tienen un comportamiento especial respecto a las transacciones:

  • En MySQL, las operaciones DDL provocan un commit implícito, lo que significa que no se pueden revertir dentro de una transacción:
START TRANSACTION;
-- Esta operación provocará un commit automático y no se podrá revertir
DROP TABLE clientes;
ROLLBACK; -- No tendrá efecto sobre el DROP TABLE
  • En PostgreSQL, las operaciones DDL sí pueden incluirse dentro de transacciones:
BEGIN;
DROP TABLE IF EXISTS tabla_temporal;
-- Si algo sale mal...
ROLLBACK; -- Revertirá el DROP TABLE
-- O si todo está bien
COMMIT;

Esta diferencia es crucial y debe tenerse en cuenta al diseñar scripts que modifiquen la estructura de la base de datos.

Verificación previa a la eliminación

Antes de ejecutar sentencias DROP, es recomendable verificar el estado de los objetos que se van a eliminar:

-- Verificar si la tabla contiene datos importantes antes de eliminarla
SELECT COUNT(*) FROM tabla_a_eliminar;

-- Verificar dependencias en PostgreSQL
SELECT * FROM pg_depend 
WHERE objid = 'schema.tabla_a_eliminar'::regclass::oid;

Scripts de eliminación con confirmación

Para operaciones críticas, es aconsejable implementar scripts con confirmación que requieran una verificación adicional:

-- Ejemplo de script de shell con confirmación
echo "¿Está seguro de que desea eliminar la base de datos 'produccion'? (escriba 'SI' para confirmar)"
read confirmacion
if [ "$confirmacion" = "SI" ]; then
    mysql -u root -p -e "DROP DATABASE produccion;"
    echo "Base de datos eliminada."
else
    echo "Operación cancelada."
fi

Nombrado de objetos para prevenir confusiones

Establecer una convención de nombres clara puede ayudar a prevenir eliminaciones accidentales:

  • Usar prefijos como tmp_ o temp_ para tablas temporales
  • Reservar nombres específicos para bases de datos de producción
  • Utilizar sufijos como _dev, _test para entornos no productivos
-- Más seguro de eliminar por su prefijo
DROP TABLE IF EXISTS tmp_resultados_analisis;

-- Requiere más atención, posiblemente datos importantes
DROP TABLE IF EXISTS datos_clientes_produccion;

Implementación de permisos granulares

Configurar permisos específicos para cada tipo de operación ayuda a prevenir errores:

-- En MySQL, otorgar permisos solo para operaciones específicas
GRANT SELECT, INSERT, UPDATE, DELETE ON base_datos.* TO 'usuario_app'@'localhost';
-- Notar que DROP no está incluido

-- En PostgreSQL
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO usuario_app;
REVOKE DROP ON ALL TABLES IN SCHEMA public FROM usuario_app;

Uso de herramientas de administración con confirmaciones

Las herramientas gráficas de administración de bases de datos suelen incluir mecanismos de confirmación adicionales:

  • phpMyAdmin para MySQL solicita confirmación para operaciones destructivas
  • pgAdmin para PostgreSQL requiere confirmaciones adicionales para operaciones DROP
  • Muchas herramientas permiten configurar "modo seguro" que previene ciertas operaciones

Documentación y comunicación

Finalmente, mantener una documentación clara y establecer protocolos de comunicación son prácticas esenciales:

  • Documentar todas las bases de datos y su propósito
  • Establecer procedimientos para solicitar eliminaciones en entornos compartidos
  • Mantener un registro de cambios estructurales en la base de datos
  • Comunicar con antelación operaciones de mantenimiento que incluyan eliminaciones

Estas prácticas preventivas, combinadas con un sistema robusto de copias de seguridad, proporcionan múltiples capas de protección contra la pérdida accidental de datos al utilizar las potentes sentencias DROP en SQL.

Prevención de errores

Cuando trabajamos con sentencias DROP en SQL, estamos manejando operaciones potencialmente destructivas que pueden tener consecuencias graves si se ejecutan incorrectamente. Implementar estrategias preventivas es esencial para minimizar riesgos, especialmente en entornos de producción.

Creación de usuarios con permisos limitados

Una de las mejores formas de prevenir errores es limitar quién puede ejecutar operaciones destructivas:

-- En MySQL: crear usuario sin permisos DROP
CREATE USER 'desarrollador'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON aplicacion.* TO 'desarrollador'@'localhost';

-- En PostgreSQL: crear usuario sin permisos DROP
CREATE USER desarrollador WITH PASSWORD 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO desarrollador;

Este enfoque sigue el principio de privilegio mínimo, donde cada usuario solo tiene acceso a las operaciones que realmente necesita para realizar su trabajo.

Uso de esquemas para organizar objetos

Los esquemas proporcionan una capa adicional de organización y seguridad:

-- En PostgreSQL: crear esquemas separados
CREATE SCHEMA produccion;
CREATE SCHEMA desarrollo;

-- Mover objetos entre esquemas en lugar de eliminarlos
ALTER TABLE tabla_prueba SET SCHEMA desarrollo;

Esta práctica permite aislar entornos y reduce el riesgo de afectar datos importantes al trabajar con objetos de prueba.

Implementación de roles específicos

Los roles permiten agrupar permisos y asignarlos a usuarios según sus responsabilidades:

-- En PostgreSQL: crear roles con permisos específicos
CREATE ROLE rol_solo_lectura;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO rol_solo_lectura;

CREATE ROLE rol_mantenimiento;
GRANT TRUNCATE, DROP ON ALL TABLES IN SCHEMA desarrollo TO rol_mantenimiento;

-- Asignar roles a usuarios
GRANT rol_solo_lectura TO analista;
GRANT rol_mantenimiento TO administrador_bd;

Este sistema de permisos jerárquicos facilita la gestión de accesos y minimiza el riesgo de operaciones no autorizadas.

Uso de prefijos y sufijos en nombres de objetos

Establecer convenciones de nomenclatura claras ayuda a identificar el propósito y entorno de cada objeto:

-- Tablas temporales con prefijo claro
CREATE TABLE tmp_resultados_analisis (id INT, resultado VARCHAR(100));

-- Tablas de producción con sufijo identificativo
CREATE TABLE clientes_prod (id INT, nombre VARCHAR(100));

Esta nomenclatura estructurada reduce la probabilidad de eliminar objetos incorrectos por confusión de nombres.

Implementación de listas de control

Antes de ejecutar operaciones destructivas, es recomendable seguir una lista de verificación:

  • 1. Verificar el entorno actual (desarrollo/pruebas/producción)
-- En MySQL
SELECT @@hostname, database();

-- En PostgreSQL
SELECT current_database(), current_user;
  • 2. Comprobar dependencias del objeto a eliminar
-- En PostgreSQL: verificar dependencias de una tabla
SELECT 
    cl.relname AS tabla_dependiente,
    d.deptype
FROM pg_depend d
JOIN pg_class cl ON cl.oid = d.objid
WHERE d.refobjid = 'esquema.tabla_a_eliminar'::regclass::oid;
  • 3. Estimar el impacto de la operación
-- Verificar cantidad de registros y tamaño
SELECT COUNT(*) FROM tabla_a_eliminar;

-- En PostgreSQL: tamaño de la tabla
SELECT pg_size_pretty(pg_total_relation_size('tabla_a_eliminar'));

Creación de respaldos selectivos

Antes de eliminar objetos específicos, es prudente crear respaldos selectivos:

-- En MySQL: exportar solo una tabla
mysqldump -u usuario -p base_datos tabla_a_eliminar > backup_tabla.sql

-- En PostgreSQL: exportar solo una tabla
pg_dump -U usuario -t tabla_a_eliminar base_datos > backup_tabla.sql

Estos respaldos específicos son más rápidos de crear y restaurar que copias completas de la base de datos.

Uso de comentarios descriptivos en scripts

Documentar claramente el propósito de cada operación destructiva:

-- Script: limpieza_mensual.sql
-- Autor: Ana Martínez
-- Fecha: 2023-10-15
-- Propósito: Eliminar tablas temporales de análisis del mes anterior
-- Precaución: Verificar que los datos ya han sido procesados

DROP TABLE IF EXISTS tmp_analisis_septiembre;

Estos comentarios contextuales ayudan a otros administradores a entender el propósito y las implicaciones de cada operación.

Implementación de triggers de auditoría

Los triggers pueden registrar intentos de eliminación para su posterior revisión:

-- En PostgreSQL: crear tabla de auditoría
CREATE TABLE log_operaciones_ddl (
    id SERIAL PRIMARY KEY,
    usuario VARCHAR(100),
    fecha TIMESTAMP,
    operacion TEXT,
    objeto TEXT
);

-- Crear función para el trigger
CREATE OR REPLACE FUNCTION registrar_operacion_ddl()
RETURNS event_trigger AS $$
BEGIN
    INSERT INTO log_operaciones_ddl (usuario, fecha, operacion, objeto)
    VALUES (current_user, current_timestamp, tg_tag, (SELECT object_identity FROM pg_event_trigger_dropped_objects()));
END;
$$ LANGUAGE plpgsql;

-- Crear event trigger
CREATE EVENT TRIGGER trigger_auditar_drop ON sql_drop
EXECUTE PROCEDURE registrar_operacion_ddl();

Este sistema de auditoría automatizada permite rastrear quién realizó operaciones destructivas y cuándo.

Uso de variables de entorno en scripts

Para scripts que se ejecutan en diferentes entornos, utilizar variables de entorno reduce errores:

#!/bin/bash
# Script que utiliza variables de entorno para determinar el entorno

if [ "$DB_ENV" = "production" ]; then
    echo "¡ADVERTENCIA! Estás a punto de ejecutar en PRODUCCIÓN"
    echo "Escribe 'CONFIRMAR' para continuar:"
    read confirmacion
    if [ "$confirmacion" != "CONFIRMAR" ]; then
        echo "Operación cancelada"
        exit 1
    fi
fi

mysql -u $DB_USER -p$DB_PASS $DB_NAME < script_drop.sql

Esta validación contextual añade capas adicionales de confirmación en entornos críticos.

Implementación de períodos de gracia

En sistemas críticos, considerar un enfoque de eliminación en dos fases:

-- Fase 1: Renombrar la tabla (día 1)
ALTER TABLE clientes RENAME TO clientes_deprecated;

-- Fase 2: Eliminar después de un período de verificación (día 15)
DROP TABLE clientes_deprecated;

Este período de gracia permite detectar problemas antes de que la eliminación sea permanente.

La combinación de estas estrategias preventivas crea múltiples capas de protección que reducen significativamente el riesgo de pérdida accidental de datos al utilizar sentencias DROP en entornos de bases de datos SQL.

Aprende SQL online

Otras 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

Ejercicios de programación de SQL

Evalúa tus conocimientos de esta lección Vaciar tablas y bases de datos: DROP 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

En esta lección

Objetivos de aprendizaje de esta lección

  • Comprender la sintaxis y funcionamiento de DROP TABLE y DROP DATABASE.
  • Diferenciar entre eliminar tablas y bases de datos, y conocer sus implicaciones.
  • Conocer las diferencias en el comportamiento de DROP en MySQL y PostgreSQL.
  • Aprender a manejar restricciones, permisos y seguridad al usar DROP.
  • Implementar estrategias preventivas para evitar pérdidas accidentales de datos.