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ícateDROP 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) yCASCADE
:
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 queDROP 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_
otemp_
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.
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
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
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
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.