Me sentí como cuando la profe borraba la pizarra y yo borraba mi cuaderno jajaja
Bienvenida conceptos básicos y contexto histórico de las Bases de Datos
Bienvenida conceptos básicos y contexto histórico de las Bases de Datos
Playground: tu primera consulta en bases de datos
Introducción a las bases de datos relacionales
Historia de las bases de datos relacionales
Qué son entidades y atributos
Entidades de Platzi Blog
Relaciones
Múltiples muchos
Diagrama ER
Diagrama Físico: tipos de datos y constraints
Diagrama Físico: normalización
Formas normales en Bases de Datos relacionales
Diagrama Físico: normalizando Platziblog
RDBMS (MySQL) o cómo hacer lo anterior de manera práctica
¿Qué es RDB y RDBMS?
Instalación local de un RDBMS (Windows)
Instalación local de un RDBMS (Mac)
Instalación local de un RDBMS (Ubuntu)
Clientes gráficos
Servicios administrados
SQL hasta en la sopa
Historia de SQL
DDL create
Playground: CREATE TABLE
CREATE VIEW y DDL ALTER
DDL drop
Playground: VIEW, ALTER y DROP en SQL
DML
Playground: CRUD con SQL
¿Qué tan standard es SQL?
Creando Platziblog: tablas independientes
Creando Platziblog: tablas dependientes
Creando Platziblog: tablas transitivas
Consultas a una base de datos
¿Por qué las consultas son tan importantes?
Estructura básica de un Query
SELECT
Playground: SELECT en SQL
FROM y SQL JOINs
Utilizando la sentencia FROM
Playground: FROM y LEFT JOIN en SQL
WHERE
Utilizando la sentencia WHERE nulo y no nulo
Playground: Filtrando Datos con WHERE
GROUP BY
ORDER BY y HAVING
Playground: Agrupamiento y Ordenamiento de Datos
El interminable agujero de conejo (Nested queries)
¿Cómo convertir una pregunta en un query SQL?
Preguntándole a la base de datos
Consultando PlatziBlog
Playground: Prueba Final con PlatziBlog
Introducción a la bases de datos NO relacionales
¿Qué son y cuáles son los tipos de bases de datos no relacionales?
Servicios administrados y jerarquía de datos
Manejo de modelos de datos en bases de datos no relacionales
Top level collection con Firebase
Creando y borrando documentos en Firestore
Colecciones vs subcolecciones
Recreando Platziblog
Construyendo Platziblog en Firestore
Proyecto final: transformando tu proyecto en una db no relacional
Bases de datos en la vida real
Bases de datos en la vida real
Big Data
Data warehouse
Data mining
ETL
Business intelligence
Machine Learning
Data Science
¿Por qué aprender bases de datos hoy?
Bonus
Bases de datos relacionales vs no relacionales
Elegir una base de datos
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Israel Vázquez Morales
Está puede ser la sentencia ¡más peligrosa! (????), sobre todo cuando somos principiantes. Básicamente borra o desaparece de nuestra base de datos algún elemento.
Aportes 248
Preguntas 30
Me sentí como cuando la profe borraba la pizarra y yo borraba mi cuaderno jajaja
Es lo MAS extremo que he hecho en esta cuarentena! jaja
🏴☠️🏴☠️🏴☠️
Es recomendable hacer respaldos antes de cualquier cambio en el código de la base de datos, me he salvado de fallos masivos gracias a tener esa consideración siempre.
Si un cafe en la mañana no te despierta… intenta correr “DROP DATABASE” en produccion y vas a ver como hasta tus jefes los dejas sin dormir por dias. Jejejejeje (es solo broma, no lo hagan!)
En ese momento cell sintió el verdadero terror !!!
AVISO IMPORTANTE
No borres tu schema, en la siguiente clase la vas a necesitar 😉
Tu que sabes de tomar riesgos si nunca usaste Drop!! Jajajaja
será este el fin del hombre araña!?
Les dejo un resumen desde el inicio de DDL por si a alguien le es de utilidad!
DDL
Data definition languaje
Nos ayuda a crear la estructura, cimientos, relaciones de la base de datos.
3 grandes comandos:
Create: base de datos o scheema, vista, tabla.
Alter: alterar o modificar alguna de estas entidades, se puede agregar o quitar columnas a tablas por ejemplo.
Drop: Soltar, dejar ir, es la sentencia para borrar.
_Objetos a manipular con DDL _
Bases de datos (database) Repositorio de datos del proyecto
Table Proyección o traducción a SQL de entidad de relación o diagrama físico
View Vistas, significa que lo que estas ofreciendo la proyección de la base de datos de forma que son entendibles para alguien. El select se puede por ejemplo reservar en una vista.
Creamos una tabla en MySQL y traduce automáticamente las cosas a SQL, estas funciones solo están disponibles en herramientas visuales de diseño de bases de datos. En otros casos se debería escribir en lenguaje SQL los comandos para accionar.
Ejemplo de creación de tabla:
CREATE TABLE platzi_blog
.people
(
person_id
INT NOT NULL AUTO_INCREMENT,
last_name
VARCHAR(255) NULL,
fist_name
VARCHAR(255) NULL,
address
VARCHAR(255) NULL,
city
VARCHAR(255) NULL,
PRIMARY KEY (person_id
))
DEFAULT CHARACTER SET = utf8;
Views
Las views lo que hacen es tomar datos de la base de datos ponerlas en una forma presentable y convertirlas en algo que podamos consultar recurrentemente.
Se le asigna un nombre:
Create View v_brasil_customers (se le pone “V” como convención para entender que es una vista)
Para sacar datos de tabla en MySQL se da botón derecho en la tabla y select Rows - limit 1000
Alter table
Alter table: agregar una columna
ALTER TABLE platzi_blog
.people
ADD COLUMN date_of_birth
DATETIME NULL AFTER city
;
Alter table: cambiar tipo de datos de una columna
ALTER TABLE platzi_blog
.people
CHANGE COLUMN date_of_birth
date_of_birth
DATE NULL DEFAULT NULL ;
Alter table: borrar columna de una tabla
ALTER TABLE platzi_blog
.people
DROP COLUMN date_of_birth
;
DROP
DROP TABLE platzi_blog
.people
; (borra la tabla, en MySQL basta con dar boton derecho y poner drop table)
Esta instrucción debieron llamarla DANGER DROP
Es bueno ver el platzi live que realizo Freddy sobre la metida de pata que tuvo la gente de gitlab cuando borraron la base de datos todo el problema que nos causo.
CREATE TABLE: Crear una nueva tabla.
ALTER TABLE: Modificar una tabla ya creada.
DROP TABLE: Borrar una tabla ya existente.
Un gran poder conlleva una gran responsabilidad.
Desde la terminal
![](
cuantas ganas de apretar ese boton! ❤️
Si el “Drop” se ejecuta directamente en una DB, sin un editor visual, puede que este no avise la confirmación del borrado y lo haga directamente.
¿Se puede respaldar una base de datos con Git?
Al borrar una tabla, se borra tanto su estructura como sus datos, sus índices asociados y los privilegios concedidos sobre estas también se borran, las vistas creadas directa o indirectamente sobre esta tabla son desactivadas de forma automática por ORACLE pero no borradas.
El manejador de base de datos nos impedirá ejecutar Drop table sobre una tabla que tiene una relación de padre sobre otra que tenga datos relacionados a esta. Esto con tal de mantener la integridad estructural de los datos almacenados en el esquema.
Para poder eliminar una tabla que tiene tablas asociadas con dependencia de llaves foráneas, es necesario primero eliminar los datos de las tablas dependientes, luego eliminar las relaciones, es decir los constraints de llaves foráneas y posteriormente eliminar la tabla que deseamos eliminar.
Alguien sabe que es el objeto azul que tiene sobre la mesa? jajaja
Drop
Hacer cambios directamente en producción , vivir al extremo 😄
Por eso hay que tener backups y backups de los backups, uno nunca sabe si alguien llega al trabajo despues de 3 dias sin dormir y tira un DROP en producción jaja.
Un dato interesante es que existen esquemas de aplicaciones en los cuales nunca se ejecuta un DROP de los datos ya lo que se tiene es un borrado logico , es decir todas las tablas tienen un campo “is_deleted” que es booleano y sirve para saber si algo se ha borrado, pero solo se borra logicamente mas no fisicamente ya que el registro sigue allí.
En la era del data science los datos lo valen todo y hacer un DROP innecesario es QUEMAR DINERO
El DROP y el DELETE son cosas del diablo.
Recomendación cuando se vaya a hacer este tipo de cosas, si son necesarias tener cuidado, haciendo una lista de verificación de lo que se va a realizar y sobre todo estar en los 5 sentidos y bien descansados porque con sueño todo pasa sin darnos cuenta
Lo siento pero no puedo borrar mi primera tabla de SQL, hay dilemas morales y sentimentales de por medio. Para al próxima
Que quede claro que al hacer DROP TABLE MiTabla, NO está borrando el contenido, NO está vaciando la tabla, lo que está desapareciendo de la base de datos es la tabla completa, con indices y permisos, etc.
Así que OJO con el chasquido de tus dedos y ejecutar el DROP TABLE people! Porque desaparece y sólo la puedes recuperar solo con un respaldo previo.
El verdadero terror se presentará al trabajar con empresas que ya tienen sus bases de datos preestablecida, si cometes este error no solo borraras la estructura de la base de datos, sino también la información de más de 1000 clientes que tenía y esto le saldrá caro a la empresa. Por esta razón debemos practicar constantemente y familiarizarnos con las herramientas de trabajo para que no hagamos estos errores que son tan simples.
En ambientes laborales formales normalmente no te darían acceso a tirarle un drop a una tabla a no ser que seas el DBA, lo que sí te dan acceso a hacer es a hacer un “Delete” y si olvidas el where o no le pusiste rollback transaction entonces sí puedes comenzar a llorar
me encanta esta clase la verdad explicas muy bien
Cuidado con DROP xd
long life platziblog
¿Existe forma de hacer resplados a nuestras bases de datos?
Para evitar que cosas tan tristes sucedan. 😦
Lo bueno es que no se escribir Schema bien al menos eso ayuda
Siempre es bueno revisar la documentación, existen statements o motores de base de datos que permiten hacer algún rollback, pero es bueno verificar primero. en Mysql parece ser que no: https://dev.mysql.com/doc/refman/8.0/en/cannot-roll-back.html
Ok en el ambiente gráfico hay una oportunidad ya que el no ejecuta la orden DROP inmediatamente y te presenta por defecto la opcion review SQL, osea que si por error se va un enter nos manda a revisar el codigo de la orden, es como quedar al borde del abismo…¡¡
pero en la consola la orden una vez escrita estamos a un enter de saltar al precipicio
Imaginen que por usar mal el comando “DROP” borren la base de datos entera de su empresa y se queden sin clientes por eso. Fuerte.
Imaginoun caso en los que tal vez se usa, es cuando estamos empezando y aún no definimos bien como sera nuestra BD!!
Cuando se trabaja con una base de datos que lleva tiempo y tiene mucha información, que se hace para poder tener una copia de esta en caso de que se borre?
Sí que fue extremo y divertido. Me divirtieron mucho los comentarios del Israel. Esto puede ser muy divertido y emocionante!
me da miedo lo fácil que es eliminar bases de datos enteras desde la consola.
Los comandos UPDATE también son peligrosos si te olvidas un filtro WHERE. Me ha pasado de dejar toda una columna en NULL xD jaja. Por suerte tenía backup.
lo mas extremo que hacemos los ingenieros jajajaja
Parece una tonteria pero yo cuando empece con bbdd, dropee algunas cosillas sin querer por un error en el codigo php:)
A tener cuidado con DROP entonces
A los que nos gusta mas postresql
pg_dump -d nombrebasedatos -f nombrearchivo
el nombre del archivo puede ser un path completo ~/respaldos/backup.sql
Este curso más que una teoría general de las bases de datos y modelos de bases de datos, es una mini intro de la teoría general mezclada con una mini intro de SQL…
Creo que un curso que se llama Fundamentos de bases de datos debería de ser una visión de la Teoría General y luego para aprender SQL ir al curso especifico de SQL
menos mal My SQL Workbench sabe que somos medio p3nd3jos y nos avisa antes de que nos quedemos sin trabajo en nuestro primer dia jajaja… GRACIASS My SQL Workbench
Hice este resumen de los comandos DDL por si a alguien le interesa o le es de ayuda.
https://brazen-leader-7ac.notion.site/Useful-Commands-for-MySQL-1fda4503749c4e13bbb91971e0a9a3a4
😎 Les dejo mi aporte con unas cuantas lineas adicionales para que puedan eliminar con “DROP” algunos campos más específicos con su explicación.
✅El comando DDL (Data Definition Language) “DROP” se utiliza para eliminar objetos de base de datos, como tablas, vistas, índices, procedimientos almacenados y disparadores. 🛑 Una vez que se ha eliminado un objeto, no se puede recuperar, por lo que es importante tener precaución al usar este comando.🛑
Aquí hay algunos ejemplos de código que ilustran cómo usar el comando DROP:
DROP TABLE orders;
DROP INDEX ix_customer_id ON customers;
DROP PROCEDURE get_employee_info;
DROP TRIGGER update_employee_log ON employees;
Salu2 platzinautas 🏄🏽♂️
- Apagar
SET IDENTITY_INSERT NombreTabla OFF;
- Encender
SET IDENTITY_INSERT NombreTabla ON;
Mucha mas informacio en este sitio web 😃
diferencia entre mysql y sql
SQL es un lenguaje para operar con bases de datos y MySQL es un sistema de gestión de bases de datos. Es la principal diferencia entre uno y otro. Ambos conceptos están estrechamente ligados: MySQL es un software que gestiona bases de datos cuyo lenguaje de consulta es SQL
No había sentido tanta adrenalina antes, como la que sentí en esta clase jajaja.
Drop es como usar el guantelete de Thanos en tu db jajajaja
En otro universo paralelo:
mysql -u thanos -p "i_am_inevitable";
GRANT ALL PRIVILEGES ON *.* TO 'thanos'@'%';
DROP DATABASE universe;
Plot twist: Thanos era el admin.
Existen dos formas de borrar con el “temible” DROP o usando DELETE que este realiza un borrado lógico y es posible recuperar todo lo borrado yendo a una tabla interna de SQL que se llama deleted.
Importantísimo conocer de estas estructuras para evitar posibles inconvenientes en nuestros desarrollos futuros, una clase corta pero concisa y concreta al punto de lo que se debe saber
Codigo de la clase
DROP TABLE PEOPLE;
DROP VIEW PLATZI_PEOPLE;
DROP DATABASE DBZBLOG;
las view se autoactualizan? si le meto una condición a una view y luego agrego un nuevo dato que cumpla con la condición, me va a aparecer en la view?
DDL (Data Definition Language) es uno de los grandes sublenguajes de SQL que nos ayuda a crear la estructura de una base de datos.
Existen 3 grandes comandos:
. Create: Nos ayuda a crear bases de datos, tablas, vistas, índices, etc.
. Alter: Ayuda a alterar o modificar entidades.
. Drop: Nos ayuda a borrar. Hay que tener cuidado al utilizarlo.
Objetos que se manipularan con el lenguaje DDL:
. Database (base de datos)
. Table (tabla) son la traducción a SQL de las entidades
. View (vista) ofrecen la proyección de los datos de la base de datos de forma entendible.
.
DDL CREATE
-- Crea la base de datos db_platzi_blog
CREATE DATABASE db_platzi_blog;
-- Usa la base de datos
USE db_platzi_blog;
-- Crea la tabla tb_people
CREATE TABLE tb_people (
person_id INT NOT NULL AUTO_INCREMENT,
first_name VARCHAR(255) NULL,
last_name VARCHAR(255) NULL,
address VARCHAR(255) NULL,
city VARCHAR(255) NULL,
PRIMARY KEY (person_id)
);
-- Crea la vista vw_lima_people
CREATE OR REPLACE VIEW vw_lima_people AS
SELECT * FROM tb_people
WHERE city = "Lima";
.
DDL ALTER
-- Agrega una columna date_of_birth
ALTER TABLE tb_people
ADD COLUMN date_of_birth VARCHAR(30) NULL AFTER city;
-- Modifica la columna date_of_birth
ALTER TABLE tb_people
MODIFY COLUMN date_of_birth DATETIME NULL DEFAULT NULL;
-- Borra la columna date_of_birth
ALTER TABLE tb_people
DROP COLUMN date_of_birth;
.
DDL DROP
-- Borra la tabla tb_people
DROP TABLE tb_people;
-- Borra la base de datos db_platzi_blog
DROP DATABASE db_platzi_blog;
Este fue el trágico final de nuestra Database
Gracias, Israel. Me gusta tu forma de enseñar
Extreeeemoo!
Comando drop debe utilizarse poco y antes de hacerlo recomiendo generar un backu para poder hacer roll back.
Hay alguna forma de recuperala?
Es recomendable hacer un backup de la base de datos por si se hace un drop sin querer.
Eres uno de los mejores maestros de Platzi amigo!!! 😮
Excelente clase
El DDL permite crear, modificar o borrar los objetos tales como: esquemas o bases de datos, tablas o vistas
Borrar la base de todos es todo un deporte extremo! 😅
Que descreste de profesor y de curso.El mejor que he tomado en la WEB
TRUNCATE TABLE name para vaciar la tabla…no un DROP jajaja
Copia de seguridad en PostgreSQL con pg_dump:
pg_dump -h localhost -p 5432 -U postgres -F p -b -f backup.sql platziblog
No te olvides de poner el WHERE …
El Ctrl + z no funciona? no hay forma de restaurarla?
OJO GENTE OOOOOOOJOOOOOOO CON DROP POR QUE MUERDE XD
![](
CUIDADO DROP BRAVO BORRA
Cómo conectar MySQL con Visual Studio Code:
Respecto a esta sentencia, no se pueden asignar privilegios a los usuarios de la DB para que no usen esta sentencia?
Si queremos eliminar explícitamente una columna de nuesta DB sin tener que sacrificar lo anterior, basta con escribir el siguiente comando:
ALTER TABLE people
DROP COLUMN dateOfBirth
DROP es la sentencia más peligrosa de SQL si no la sabes manejar, o si no tienes cuidado, sobre todo cuando somos principiantes.
DROP trata básicamente de borrar o desaparecer de nuestro esquema de nuestra base de datos algún elemento.
la estructura de esta sentencia es
→ DROP
→ lo que vayas a borra sea TABLE o DATABASE
DROP TABLE people;
DROP DATABASE test_db;
mis apuntes de la Clase: https://github.com/DanielGB00/fundamentos-BD/blob/master/README.md#DDL-drop
esta sentencia puede usar para borrar tablas, columnas y bases de datos.
La sentencia es super simple:
DROP TABLE people;
DROP DATABASE test_db o también DROP SCHEMAS test_db;
DROP COLUMN prueba_table;
Como vemos es bastante simple la sintaxis por lo tanto hay que tener cuidado a la hora de borrar algún dato.
Aqui un aporte, este escrito, me ayudado mucho se los comparto, a mi me lo compartieron.
🚨🚨🚨 y recuerden amigos… ¡antes de usar un drop, asegúrate de tener un backup! 🚨🚨🚨
En los entornos visuales muy seguramente antes de ejecutar el comando te lanze una alerta para revisar lo que estas haciendo, pero en consola SI HAY QUE TENER MUCHO CUIDADO pues seguramente no te avisa de nada, simplemente ejecuta el comando y listo.
Interesante que el software nos permita verificar la sentencia que debemos eliminar.
DDL: para trabajar con la estructura de la DB.
DML: para trabajar con la información contenida en la DB.
DCL: para trabajar con los permisos de acceso a la DB.
TLC: para administrar el trabajo realizado.
En el minuto 0:53 el Profe dice sentencia para acabarla (se refiere a posible sentencia legal?😅) creo que es un breve recordatorio de que debes tener mucho cuidado en un ambiente de produccion de una empresa, ya que puedes terminar con esa sentencia pero no sentencia DDL.
Hay manera de revertir una vez que hemos usado DROP para borrar una base de datos o tabla ? Como podría hacer si quiero volver a recuperar la información, cual sería la forma de reconstruirla ¿? si alguien sabe le agradecería.
Que genial esta clase. Ayuda mucho a saber como funcionan las sentencias y como trabajar con bases de datos. Muy lindo el SQL.
me parecio interesante, que cuando se agrego el campo date_of_birthday , y revise nuevamente la vista y el resultado es que no toma los nuevos cambios que se haya hecho en la tabla people.
Yo creo que el profe borro una base de datos un día y desde ahí tiene pesadillas con DROP
DROP DATABASE ´clientes´ = DROP TRABAJO
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?