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

Introducci贸n a las bases de datos relacionales

2

Historia de las bases de datos relacionales

3

Qu茅 son entidades y atributos

4

Entidades de Platzi Blog

5

Relaciones

6

M煤ltiples muchos

7

Diagrama ER

8

Diagrama F铆sico: tipos de datos y constraints

9

Diagrama F铆sico: normalizaci贸n

10

Formas normales en Bases de Datos relacionales

11

Diagrama F铆sico: normalizando Platziblog

RDBMS (MySQL) o c贸mo hacer lo anterior de manera pr谩ctica

12

Instalaci贸n local de un RDBMS (Windows)

13

驴Qu茅 es RDB y RDBMS?

14

Instalaci贸n local de un RDBMS (Mac)

15

Instalaci贸n local de un RDBMS (Ubuntu)

16

Clientes gr谩ficos

17

Servicios administrados

SQL hasta en la sopa

18

Historia de SQL

19

DDL create

20

CREATE VIEW y DDL ALTER

21

DDL drop

22

DML

23

驴Qu茅 tan standard es SQL?

24

Creando Platziblog: tablas independientes

25

Creando Platziblog: tablas dependientes

26

Creando Platziblog: tablas transitivas

Consultas a una base de datos

27

驴Por qu茅 las consultas son tan importantes?

28

Estructura b谩sica de un Query

29

SELECT

30

Playground: SELECT en SQL

31

FROM y SQL JOINs

32

Utilizando la sentencia FROM

33

WHERE

34

Utilizando la sentencia WHERE nulo y no nulo

35

GROUP BY

36

ORDER BY y HAVING

37

El interminable agujero de conejo (Nested queries)

38

驴C贸mo convertir una pregunta en un query SQL?

39

Pregunt谩ndole a la base de datos

40

Consultando PlatziBlog

Introducci贸n a la bases de datos NO relacionales

41

驴Qu茅 son y cu谩les son los tipos de bases de datos no relacionales?

42

Servicios administrados y jerarqu铆a de datos

Manejo de modelos de datos en bases de datos no relacionales

43

Top level collection con Firebase

44

Creando y borrando documentos en Firestore

45

Colecciones vs subcolecciones

46

Recreando Platziblog

47

Construyendo Platziblog en Firestore

48

Proyecto final: transformando tu proyecto en una db no relacional

Bases de datos en la vida real

49

Bases de datos en la vida real

50

Big Data

51

Data warehouse

52

Data mining

53

ETL

54

Business intelligence

55

Machine Learning

56

Data Science

57

驴Por qu茅 aprender bases de datos hoy?

Bonus

58

Bases de datos relacionales vs no relacionales

59

Elegir una base de datos

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

0D
17H
52M
28S

DDL drop

21/59
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 229

Preguntas 27

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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 鈥淒ROP 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 鈥淰鈥 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 鈥淒rop鈥 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
![](

驴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.

Alguien sabe que es el objeto azul que tiene sobre la mesa? jajaja

Hacer cambios directamente en producci贸n , vivir al extremo 馃槃

  • 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.

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.

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

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.

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 鈥渋s_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

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.

El DROP y el DELETE son cosas del diablo.

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 鈥淒elete鈥 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

Yo despu茅s que el profesor me dice que tengo que borrar mi primera BD en mySQL :

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 鈥淒ROP鈥 borren la base de datos entera de su empresa y se queden sin clientes por eso. Fuerte.

DROP
Es muy f谩cil de ejecutar pero muy peligrosa. Siempre revisa dos veces antes de ejecutar esta sentencia.
Sintaxis
Borrar tabla

DROP TABLE <nombre_database>.<nombre_tabla>

Borrar Schema

DROP DATABASE <nombre_database>.

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

馃懆鈥嶐煉 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

驴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 鈥渢emible鈥 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鈥o 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 鈥

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

No me imagino usando drop, en una BD, aun que para eso estan los commit 馃槈

DDL y DML interesantes conceptos que muchas veces desconocemos!!

Impresionante

Fundamental conocer los 鈥榙a帽os鈥 que podemos hacer con este comando, para as铆 prevernilos.