Bienvenida conceptos básicos y contexto histórico de las Bases de Datos

1

Bienvenida conceptos básicos y contexto histórico de las Bases de Datos

2

Playground: tu primera consulta en bases de datos

Introducción a las bases de datos relacionales

3

Historia de las bases de datos relacionales

4

Qué son entidades y atributos

5

Entidades de Platzi Blog

6

Relaciones

7

Múltiples muchos

8

Diagrama ER

9

Diagrama Físico: tipos de datos y constraints

10

Diagrama Físico: normalización

11

Formas normales en Bases de Datos relacionales

12

Diagrama Físico: normalizando Platziblog

RDBMS (MySQL) o cómo hacer lo anterior de manera práctica

13

¿Qué es RDB y RDBMS?

14

Instalación local de un RDBMS (Windows)

15

Instalación local de un RDBMS (Mac)

16

Instalación local de un RDBMS (Ubuntu)

17

Clientes gráficos

18

Servicios administrados

SQL hasta en la sopa

19

Historia de SQL

20

DDL create

21

Playground: CREATE TABLE

22

CREATE VIEW y DDL ALTER

23

DDL drop

24

Playground: VIEW, ALTER y DROP en SQL

25

DML

26

Playground: CRUD con SQL

27

¿Qué tan standard es SQL?

28

Creando Platziblog: tablas independientes

29

Creando Platziblog: tablas dependientes

30

Creando Platziblog: tablas transitivas

Consultas a una base de datos

31

¿Por qué las consultas son tan importantes?

32

Estructura básica de un Query

33

SELECT

34

Playground: SELECT en SQL

35

FROM y SQL JOINs

36

Utilizando la sentencia FROM

37

Playground: FROM y LEFT JOIN en SQL

38

WHERE

39

Utilizando la sentencia WHERE nulo y no nulo

40

Playground: Filtrando Datos con WHERE

41

GROUP BY

42

ORDER BY y HAVING

43

Playground: Agrupamiento y Ordenamiento de Datos

44

El interminable agujero de conejo (Nested queries)

45

¿Cómo convertir una pregunta en un query SQL?

46

Preguntándole a la base de datos

47

Consultando PlatziBlog

48

Playground: Prueba Final con PlatziBlog

Introducción a la bases de datos NO relacionales

49

¿Qué son y cuáles son los tipos de bases de datos no relacionales?

50

Servicios administrados y jerarquía de datos

Manejo de modelos de datos en bases de datos no relacionales

51

Top level collection con Firebase

52

Creando y borrando documentos en Firestore

53

Colecciones vs subcolecciones

54

Recreando Platziblog

55

Construyendo Platziblog en Firestore

56

Proyecto final: transformando tu proyecto en una db no relacional

Bases de datos en la vida real

57

Bases de datos en la vida real

58

Big Data

59

Data warehouse

60

Data mining

61

ETL

62

Business intelligence

63

Machine Learning

64

Data Science

65

¿Por qué aprender bases de datos hoy?

Bonus

66

Bases de datos relacionales vs no relacionales

67

Elegir una base de datos

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

DDL drop

23/67
Recursos

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

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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

  • DROP TABLE (nombreDeLaTabla); (RIESGO ALTO).
  • DROP DATABASE (nombreDeLaBasedeDatos); (RIESGO CRITICO).
  • En el Workbench, hacemos click derecho en el nombre de la tabla/base de datos -> Drop Table/Schema-> Review SQL (SIEMPRE, para revisar lo que estamos haciendo).
  • Con esto concluimos con las sentencias DDL. Generalmente se utiliza al inicio de los proyectos, y despues se utiliza DML.

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:

  • Eliminar una tabla llamada “orders”:
DROP TABLE orders;
  • Eliminar un índice llamado “ix_customer_id” en una tabla llamada “customers”:
DROP INDEX ix_customer_id ON customers;
  • Eliminar un procedimiento almacenado llamado “get_employee_info”:
DROP PROCEDURE get_employee_info;
  • Eliminar un desencadenador llamado “update_employee_log” en una tabla llamada “employees”:
DROP TRIGGER update_employee_log ON employees;

Salu2 platzinautas 🏄🏽‍♂️

👨‍💻 SQL Server: Cómo anular temporalmente un campo auto-numérico 🛠️

  • 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

Consultar la documentación

No te olvides de poner el WHERE …

Mi primera chamba! recuerdo el dia en que hice DROP DATABASE ^\_^

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:

https://youtu.be/AJUJ1f9gFm8

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

DDL drop

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;

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