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
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
Instalación local de un RDBMS (Windows)
¿Qué es RDB y RDBMS?
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
CREATE VIEW y DDL ALTER
DDL drop
DML
¿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
WHERE
Utilizando la sentencia WHERE nulo y no nulo
GROUP BY
ORDER BY y HAVING
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
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
Aportes 229
Preguntas 27
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.
DROP significa peligro
En ese momento cell sintió el verdadero terror !!!
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!)
Tu que sabes de tomar riesgos si nunca usaste Drop!! Jajajaja
será este el fin del hombre araña!?
Vaya, es tan extremo como echar a la papelera System32 😛
AVISO IMPORTANTE
No borres tu schema, en la siguiente clase la vas a necesitar 😉
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.
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
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.
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.
Desde la terminal

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
- 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
¿Existe forma de hacer resplados a nuestras bases de datos?
Para evitar que cosas tan tristes sucedan. 😦
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;
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
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 …
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
No me imagino usando drop, en una BD, aun que para eso estan los commit 😉
DDL y DML interesantes conceptos que muchas veces desconocemos!!
Siempre recuerden amigos:
(https://www.youtube.com/watch?v=i_cVJgIz_Cs)
Impresionante
Fundamental conocer los ‘daños’ que podemos hacer con este comando, para así prevernilos.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.