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

FROM y SQL JOINs

35/67
Recursos

FROM indica de dónde se deben traer los datos y puede ayudar a hacer sentencias y filtros complejos cuando se quieren unir tablas. La sentencia compañera que nos ayuda con este proceso es JOIN.

Los diagramas de Venn son círculos que se tocan en algún punto para ver dónde está la intersección de conjuntos. Ayudan mucho para poder formular la sentencia JOIN de la manera adecuada dependiendo del query que se quiere hacer.

Aportes 155

Preguntas 23

Ordenar por:

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

muchas gracias por el aporte compañeros

Complementando el comentario de Christian Gómez de Teoría de Conjuntos, le agrego las imágenes para mayor referencia.


Un explicación grafica:

Esta Foto hizo que todo me quedara clarisimo. Espero les sirva 😄 ❤️

FROM

  • Indica de dónde se deben traer los datos y puede ayudar a hacer sentencias y filtros complejos cuando se quieren unir tablas. La sentencia compañera que nos ayuda con este proceso es JOIN.

  • Los diagramas de Venn son círculos que se tocan en algún punto para ver dónde está la intersección de conjuntos. Ayudan mucho para poder formular la sentencia JOIN de la manera adecuada dependiendo del query que se quiere hacer.
    .

JOIN - Teoría de Conjuntos

  1. Diferencia:
  • LEFT Join (Con la intersección): Trae todo los datos de la tabla A, que estén o no estén de la tabla B.
  • LEFT JOIN (Sin la intersección): Trae todo los datos de la tabla A, que no estén en la tabla B.
  • RRIGHT JOIN(Con la intersección): Trae todo los datos de la tabla B, que estén o no estén de la tabla A.
  • RIGHT JOIN(Sin la intersección):Trae todo los datos de la tabla B, que no estén en la tabla A.

.
2. Intersección:

  • INNER JOIN: Solo arrastra valores que estén tanto en la Tabla A como en la Tabla B.
    .
  1. Unión y Diferencia Simétrica__
  • UNION: Trae todo de la tabla A y Tabla B. (Unión)
  • OUTER JOIN: Trae todo de la tabla A y B; pero solo información que no guarde relación una tabla con la otra. (Diferencia Simétrica)

![](

Con este diagrama, entendi y uso constante mente para hacer los join

Apuntes:
Los FROM vienen acompañados a veces de algo muy útil como lo son los JOIN, los cuales pueden permitirnos unir en una consulta, datos de otras tablas de manera dinámica. Los JOIN pueden ser de muchos tipos:
Diferencia
Este tipo de JOIN pueden permitirnos excluir o incluir ciertos datos que especifiquemos de una tabla o de otra, así como también excluir totalmente los datos de la segunda tabla asociada. Para este caso se usa LEFT JOIN o RIGHT JOIN.

Intersección
Tambien se pueden incluir elementos que se encuentren en ambas tablas asociadas gracias a INNER JOIN. En este caso en particular se excluyen elementos tanto de la primera como de la segunda tabla asociada.

Union
Para la unión, se incluyen absolutamente todos los datos de ambas tablas en relación.
Diferencia simétrica
Este caso en particular excluye aquellos datos que no tengan relación asociada para ambas tablas, es decir, aquellos datos que en sus llaves foráneas no tienen registros que asocien a las 2 tablas en particular.
Para la unión y diferencia simétrica se usa OUTER JOIN.

![](

1 año sin entenderlo en la universidad, y en un video de 7 minutos me quedó clarísimo !!

En teoría de conjuntos el diagrama de venn representa un agrupamiento de dagtos, mejor conocidos como conjuntos, cada conjunto tendrá un determinado tipo de información. Muchas veces estos datos pueden pertenecer a más de un conjunto y es cuando se presenta una intersección. O varias intersecciones. En teoría de conjuntos también tenemos unión, intersección, diferencia (resta), complemento.

En esta ocación percibimos a una tabla como un conjunto y gracias a sus llaves fóraneas podemos concluir que un dato (fila) dentro de una tabla también puede pertenecer a otra, eso es lo que podría considerarse como intersección.

Ese es parte de mi apunte, cualquier sugerencia será agradecida y bien recibida. 😄

FROM

  • Es una de las sentencias mas poderosas. Indica de donde vamos a traer/obtener los datos.
  • La sentencia compañera es JOIN . Nos ayuda a unir tablas a través de sus relaciones (dadas principalmente por las llaves foráneas).
  • Hay distintos tipos de JOIN , explicadas teniendo en cuenta que A y B son dos tablas:
    • LEFT JOIN (diferencia)
      • NORMAL: nos trae todos los datos de la tabla A, esten o no esten en la B.
      • Hay otra forma, en la que nos trae todos los datos de la tabla A, que no estan en la B.
    • RIGHT JOIN (diferencia)
      • NORMAL: nos trae todos los datos de la tabla B, esten o no esten en la A.
      • Hay otra forma, en la que nos trae todos los datos de la tabla B, que no estan en la A.
    • INNER JOIN (interseccion): es el de uso mas comun, trae los valores que esten tanto en A como en B.
    • OUTER JOIN
      • Union: trae todos los elementos de A y B.
      • Diferencia asimetrica: es el complemento de la interseccion, o tambien la union del RIGHT JOIN y LEFT JOIN en la variante que no es normal.

Esta clase si me costo, tuve que repetir el video 4 veces

He intentado hacer un ** Inner Join** de mi base de datos UNIVERSIDAD, de mis tablas Alumnos y Profesion. Y este es el resultado.
-*

-*

Tienes que ver esto para que te quede super claro JOIN, INNER JOIN, LEFT JOIN y RIGHT JOIN.
Es una lectura de 3 mins con ejemplos
https://diego.com.es/principales-tipos-de-joins-en-sql

Les comparto estas dos páginas en las cuales pueden practicar sus consultas (Query’s) en una base de datos en línea:

Muy útil el uso de diagramas de Venn para explicar los JOIN.

los JOINS: nos permiten relacionar unas tablas con otras, para completar la información, esta directamente relaciona con la TEORÍA DE CONJUNTOS

existen varios tipos de JOINS
estan:

LEFT JOIN: es de tipo diferencia, este trae todo el contenido de la tabla principal y algunos datos que este relacionados con la tabla principal Ejemplo:
USURIOS -> POST= trae todos los USUARIOS y los POST que tengan relacion con USUARIOS

RIGHT JOIN: es de tipo diferencia, este trae todo el contenido de la tabla relacionada y algunos datos de la tabla principal que esten relacionados Ejemplo:
USURIOS -> POST= trae todos los POST y los USUARIOS que tengan relación con POST

Old fashion vs new:

En el video Israel menciona “diferencia asimétrica” en vez de “simétrica”, la diapositiva está correcta únicamente se equivocó al nombrarla

De hecho el uso de diagramas de Venn para las consultas JOIN es muy útil porque te permiten elegir qué es lo que realmente quieres traer, así que antes de hacer una consulta JOIN es buena idea mirar un diagrama de Venn para estarseguros de lo que queremos traer:D!

Los diagramas de Venn son círculos que se tocan en algún punto para ver dónde está la intersección de conjuntos. Ayudan mucho para poder formular la sentencia JOIN de la manera adecuada dependiendo del query que se quiere hacer.

Vaya que son muy importantes ya que en la industria se utilizan mucho!

cuando dice teoría de conjuntos y que seguro ya lo he escuchado en matematicas jajaja cuando ni he terminado el colexD

tengo una pregunta, ya sabemos como ligar las tablas entre si, pero me gustaria saber si se puede hacer un menu desplegable en una columna cuya informacion sea de otra tabla, imaginen esto, quiero llevar el control basado en categorias, pero para mi es crucial que los que agreguen informacion usen las mismas categorias, podria tener una tabla solo con categorias ligada de alguna manera para que esto sea un menu desplegable?

Me encanta la forma de explicar de Israel

Que buena explicación.
Y pensar que esto era de lo mas duro del parcial

Con esta clase, va tomando sentido como una pregunta se puede transformar en un query…

Excelente video 😃

https://stevestedman.com/ tiene muchos recursos gratitos incluyendo tablas.pdf de los diferentes joins en SQL y MySQL 🙂👌

Les comparto mi versión de la clase con las tablas que estamos trabajando!

✌️Hola, les comparto mis apuntes. Los invito a seguirme en Twitter y LinkdIn, para hacer Networking y cooperar en proyectos.

INTERSECION

Este es un CheatSheet bien completo para el uso de los JOINS 😃
Descargar CheatSheet

FROM indica de dónde se deben traer los datos y puede ayudar a hacer sentencias y filtros complejos cuando se quieren unir tablas. La sentencia compañera que nos ayuda con este proceso es JOIN.

25. Mis apuntes sobre: “FROM”

JOIN nos ayuda a unir tablas usándola con la sentencia FROM
De los JOIN existen:

*Diferencia: LEFT JOIN, RIGHT JOIN
*Intersección: INNER JOIN/JOIN, OUTER JOIN

INNER JOIN: Devuelve todas las filas cuando hay al menos una coincidencia en ambas tablas.
LEFT JOIN: Devuelve todas las filas de la tabla de la izquierda, y las filas coincidentes de la tabla de la derecha.
RIGHT JOIN: Devuelve todas las filas de la tabla de la derecha, y las filas coincidentes de la tabla de la izquierda.
OUTER JOIN: Devuelve todas las filas de las dos tablas, la izquierda y la derecha. También se llama FULL OUTER JOIN.

esta cada vez mas interesante

super excelente explicacion!
★★★★★

Cuando vemos las matemáticas aplicadas es una belleza!

FROM

  • es una sentencia de las mas interesantes y mas poderosas en la esctructura de un query.
  • indica de donde vamos a tener que traer los datos.
  • la parte interesante del uso del FROM es cuando queremos unir tablas.
  • existe una sentencia INSEPARABLE del uso del FROM y esta es la sentencia JOIN, que significa JUNTAR o UNIR.

JOIN

  • es una sentencia que va siempre acompaniada del FROM

  • nos ayuda a unir tablas a traves de las relaciones creadas, es decir la relacion, entre la llave primaria de una tabla con la llave foranea que referencia a esa llave primaria desde otra tabla.

  • EXISTEN DIFERENTES TIPOS DE JOIN

  1. DIFERENCIA siginifica lo que tenemos en un lado pero no esta en el otro.
    LEFT JOIN, trae todos los datos de la tabla A, esten o no
    esten en la tabla B. Ejemplo: trae todos los usuarios, hayan publicado un post o no.
    RIGHT JOIN, traeme todo lo que esta en la tabla B, sin importar si esta o no en la tabla A. Ejemplo: trae todos los posts aunque no tenga ningun usuario que los haya creado.

  2. INTERSECCION es la parte en donde se encuentran los unidos dos diagramas o tablas, y es el que generalmente vamos a ver.
    INNER JOIN o JOIN INTERNO, va traer los valores que existen tanto en la tabla A y en la tabla B.

  3. UNION trae todo, va traer todos los usuarios tengan o no tengan posts y va traer todos los posts tengan o no tengan usuarios que los hayan creado.

  4. DIFERENCIA SIMETRICA va traer todos los usuarios que no hayan escrito algun post, y todos los post que no hayan sido escritos por algun usuario o esten guerfanos.

Que entretenido se hace estudiar con el Profe. Me encanta este curso 🌻

Les dejo el canal de Youtube de un programador de base de datos con una explicación de From y Join de como utilizarlos

https://www.youtube.com/watch?v=qCfMFF1SjjQ&ab_channel=RafaGonzalezGouveia

Quien diria que este tema(teoria de conjuntos) funcionaria aqui.

FROM: Es una de las sentencias mas poderosas.

  • Indica de dónde vamos a tener que traer los datos.
  • En un informe requerimos unir la información que tengo separada en tablas.
  • La sentencia JOIN, une tablas, a través de la relación creada. Une la llave primaria de una tabla con la llave foránea que referencia esa llave primaria de la otra tabla

LEFT JOIN: Si deseamos saber los datos de la tabla A, sin importar que estén o no en la tabla B.
LEFT JOIN (con condición): Deseamos saber los datos que están únicamente en la tabla A (excluimos a la tabla B).
RIGHT JOIN: Si deseamos saber los datos de la tabla B, sin importar que estén o no en la tabla A.
RIGHT JOIN (con condición): Deseamos saber los datos que están únicamente en la tabla B (excluimos a la tabla A).

Una duda, en los enlaces donde tenemos los datos para realizar los ejercicios, los datos se ingresan por tabla? o desde schema,

FROM: indica de donde vamos a extraer los datos. Va de la mano con el comando JOIN para hacer consultas a distintas tablas. Para entender JOIN recordemos teor[ia de conjuntos.

  • Diferencia: LEFT JOIN, RIGTH JOIN (WHERE A.key is null/WHERE B.key is null)
  • Intersección: INNER JOIN
  • Unión: OUTER JOIN
  • Diferencia Simétrica: OUTER JOIN (WHERE A.key is NULL or B.key is NULL)

Nota:

  • Consideramos A y B a los conjuntos de datos que estamos operando
  • Para excluir una sección en especifico usamos el comando WHERE

Indica de donde se traeran los datos, su potencial verdadero este en ejecutarlo con la sentencia JOIN que nos ayudara a unir las tablas relacionadas por medio de su llave primaria y tabla foranea.

para entender como se traeran las tablas relacionadas es importante entender la teoria de conjuntos y diagramas de venn

Gracias por la explicación teórica instructor Israel, entonces existen varios tipos de Join y dependiendo del dato que se desea consultar unos van a ser más útiles que otros.

Estoy detectando algo curioso sobre los conjuntos. Al parecer en la versiones mas recientes de MySql Workbrench no se permite insertar el registro de publicaciones en donde no tenemos ningun usuario para la clave foranea. Investigando un poco mas resulta que esto tiene sentido por que imaginense que ustedes estan haciendo el sistema de base de datos para una caja registradora de un cine y llega un cliente y dice que no quiere NIT,NIF para su factura. En este caso sospecho que debemos guardar de igual manera que el cliente no quiso un NIT. y para ello creamos un nuevo cliente de nombre “sin NIT” asi para hacer reportes podremos mostrar cuantas personas no quiesieron NIT para su factura al final del mes. Entonces cambiemos la condicion de IS NULL a Nombre=“SIN NIT”

La sentencia FROM, tiene una fuerte rama, la cuál es “join”, la cuál es la encargada de unir las tablas para conocer más a fondo los datos

La sentencia FROM, es por su parte, muy importante, ayque es la encargada de brindarnos en el query de donde vamos a extraer los datos

Teoría de conjuntos en matemáticas discretas, esto también lo pueden ver en el curso de pensamiento lógico.

Es bastante información. Además aquí solo estamos hablando de dos conjuntos (que podrían ser dos tablas).
Entiendo que se replica lo mismo para cuando hay más de 2 tablas.

Teoría de conjuntos y operación entre conjuntos. Simplemente genial! Las matemáticas definitivamente influyen en cualquier campo

La sentencia JOIN (unir, combinar) de SQL permite combinar registros de una o más tablas en una base de datos. En el Lenguaje de Consultas Estructurado (SQL) hay tres tipos de JOIN: interno, externo y cruzado. El estándar ANSI del SQL especifica cinco tipos de JOIN: INNER, LEFT OUTER, RIGHT OUTER, FULL OUTER y CROSS. Una tabla puede unirse a sí misma, produciendo una auto-combinación, SELF-JOIN.

los joins se relacionan con teoría de conjuntos y son representados por diagramas de ven

Left join traen todos los datos de A de dos tablas A y B
Rigth join trae todos los elementos de B de dos tablas A y B

tanto en left join como en rigth join se pueden intersectar o no los elementos que contienen tanto A como a B a esto

y tambien se pude cunsiderar el caso donde solo consideramos los elementos en A pero no los elementos en B

el inner join lo podemos representar como los elementos presentes tanto en A como en b

outer join en union va ser de los elementos en A y B

en diferencia simetrica excluremos la union de los elementos en A y B

Un tema de primero primaria que demuestra que lo simple es efectivo, Diagramas de Venn, a veces por querer parecer inteligente se complican las cosas innecesariamente

Muy interesante los Joins

Excelente explicación de JOIN =D

Maravilloso en la academia no lo había entendido, con esta sencilla explicación me quedo tan claro como el agua el tema de los FROM y los JOIN. ❤️

Muy interesante el uso de JOIN junto a la sentencia FROM.

Gran explicación, Israel.

es confuso, porque el titulo se llama FROM y hablan de join…
ademas join es muy amplio creo que debieron crear otra clase exclusiva en hablar del JOIN

SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name

Me encanta ver como las mateticas discretas se aplican.

Con razón me decían que teoría de conjuntos es importante.

Traigo muchas esperanzas de poder comprender finalmente sobre esta sentencia. 😄

\### 1. \*\*INNER JOIN\*\* 🔄 \- \*\*Explicación\*\*: Devuelve solo las filas donde hay coincidencias en ambas tablas. \- 🔍 \*\*Ejemplo\*\*: ```sql SELECT \* FROM Table1 t1 INNER JOIN Table2 t2 ON t1.id = t2.fk; ``` \--- \### 2. \*\*LEFT OUTER JOIN\*\* ⬅️ \- \*\*Explicación\*\*: Devuelve todas las filas de la tabla izquierda y las coincidencias de la tabla derecha. Si no hay coincidencias, muestra `NULL`. \- 🔍 \*\*Ejemplo\*\*: ```sql SELECT \* FROM Table1 t1 LEFT JOIN Table2 t2 ON t1.id = t2.fk; ``` \--- \### 3. \*\*RIGHT OUTER JOIN\*\* ➡️ \- \*\*Explicación\*\*: Devuelve todas las filas de la tabla derecha y las coincidencias de la tabla izquierda. Si no hay coincidencias, muestra `NULL`. \- 🔍 \*\*Ejemplo\*\*: ```sql SELECT \* FROM Table1 t1 RIGHT JOIN Table2 t2 ON t1.id = t2.fk; ``` \--- \### 4. \*\*FULL OUTER JOIN\*\* 🔄🔄 \- \*\*Explicación\*\*: Devuelve todas las filas cuando hay coincidencia en cualquiera de las tablas (izquierda o derecha), rellenando con `NULL` donde no hay coincidencias. \- 🔍 \*\*Ejemplo\*\*: ```sql SELECT \* FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.id = t2.fk; ``` \--- \### 5. \*\*CROSS JOIN\*\* ❌ \- \*\*Explicación\*\*: Combina todas las filas de ambas tablas, generando el producto cartesiano (todas las combinaciones posibles). \- 🔍 \*\*Ejemplo\*\*: ```sql SELECT \* FROM Table1 t1 CROSS JOIN Table2 t2; ``` \--- \### 6. \*\*SEMI JOIN\*\* 🔄 \- \*\*Explicación\*\*: Similar al `INNER JOIN`, pero devuelve solo las filas de la tabla izquierda sin duplicar filas de la derecha. \- 🔍 \*\*Ejemplo\*\*: ```sql SELECT \* FROM Table1 t1 WHERE EXISTS (SELECT 1 FROM Table2 t2 WHERE t1.id = t2.fk); ``` \--- \### 7. \*\*ANTI JOIN\*\* 🚫 \- \*\*Explicación\*\*: Devuelve las filas de la tabla izquierda que \*\*no tienen coincidencias\*\* en la tabla derecha. \- 🔍 \*\*Ejemplo\*\*: ```sql SELECT \* FROM Table1 t1 WHERE NOT EXISTS (SELECT 1 FROM Table2 t2 WHERE t1.id = t2.fk); ``` \--- \### 8. \*\*Dos JOINs internos (Two INNER JOINS)\*\* 🔗🔗 \- \*\*Explicación\*\*: Aplica dos `INNER JOINs` para combinar tres tablas y mostrar solo las filas que coinciden en todas. \- 🔍 \*\*Ejemplo\*\*: ```sql SELECT \* FROM Table1 t1 INNER JOIN Table2 t2 ON t1.id = t2.fk INNER JOIN Table3 t3 ON t1.id = t3.fk; ``` \--- \### 9. \*\*Combinación de INNER y LEFT JOIN\*\* ⬅️🔄 \- \*\*Explicación\*\*: Combina los resultados de un `INNER JOIN` y un `LEFT JOIN`, mostrando las coincidencias y las filas faltantes. \- 🔍 \*\*Ejemplo\*\*: ```sql SELECT \* FROM Table1 t1 INNER JOIN Table2 t2 ON t1.id = t2.fk LEFT JOIN Table3 t3 ON t1.id = t3.fk; ```
El tema me acordó de Matemáticas Discretas. Hasta ahora le veo uso práctico. ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-07-20%20223623-be088a08-8414-4511-aafb-171f5d36557f.jpg)
**FROM** indica de dónde se deben traer los datos. **JOIN** nos ayuda con este proceso **c**uando se quieren unir tablas .
Aquí dejo mi aporte: ```js -- ¿Cuáles son los posts que están inactivos? SELECT * FROM posts WHERE estatus = "inactivo"; -- ¿Cuántos son los pots que están inactivos? SELECT COUNT(estatus) posts_inactivos FROM posts WHERE estatus = 'inactivo'; -- ¿Quíenes son los usuarios que tienen posts inactivos? SELECT usuarios.nickname, posts.estatus, posts.titulo FROM posts JOIN usuarios ON posts.usuario_id = usuarios.id WHERE estatus = 'inactivo'; -- ¿Cuántos post activos tiene cada usuario? SELECT usuarios.nickname usuario, COUNT(nickname) total_post_activos FROM posts JOIN usuarios ON posts.usuario_id = usuarios.id WHERE estatus = 'activo' GROUP BY nickname; -- ¿Quién es el usuario que tiene mayor post inactivos? SELECT usuarios.nickname, COUNT(posts.id) AS total_post_inactivos FROM posts JOIN usuarios ON posts.usuario_id = usuarios.id WHERE posts.estatus = 'inactivo' GROUP BY usuarios.nickname HAVING COUNT(posts.id) = ( SELECT MAX(total_post_inactivos) FROM ( SELECT COUNT(posts.id) AS total_post_inactivos FROM posts WHERE posts.estatus = 'inactivo' GROUP BY posts.usuario_id ) AS subquery ); ```
* `FROM` indica de donde vamos a traer los datos * `JOIN` indica unir diferentes tablas![Untitled](https://prod-files-secure.s3.us-west-2.amazonaws.com/2ffa7a7b-050f-4fd2-87d0-17f1caeadab9/89724860-9aa4-4bdb-b2e1-6b0d1cf78819/Untitled.png)![Untitled](https://prod-files-secure.s3.us-west-2.amazonaws.com/2ffa7a7b-050f-4fd2-87d0-17f1caeadab9/c6296340-25ca-49b1-8014-55dc064bc4ac/Untitled.png) * Diferencia: lo que esté en un lado pero no está en el otro. Donde se puede solicitar la información sin importar si está en la tabla o solo obtener la información si está en la otra tabla * Intersección: su nombre correcto en INNER JOIN ya que va a traer los valores que existen en ambas tablas * Unión: trae toda la información * Diferencia asimétrica: trae la información que no tiene relación en las tablas 📌 **RESUMEN: La sentencias ‘FROM’ indica de que tablas vamos a traer la información, la sentencia ‘JOIN’ indica como se van a unir estas tablas y existen diferentes formas de unir la información, puede ser por diferencia, intersección, unión y diferencia asimétrica**
Excelente explicación del JOIN dada por el profesor y los aportes en los comentarios me permiten entender un poco mejor las relaciones!

En SQL, la cláusula FROM se utiliza para especificar una o varias tablas de las cuales deseas recuperar datos. Además de la cláusula FROM, a menudo se utilizan cláusulas JOIN para combinar datos de múltiples tablas basándose en alguna condición específica. Aquí te proporcionaré información sobre cómo usar FROM y las cláusulas JOIN en SQL:

Cláusula FROM:

  • La cláusula FROM se utiliza para especificar las tablas de las cuales deseas recuperar datos en tu consulta SQL.
  • Puedes listar una o varias tablas en la cláusula FROM, separándolas por comas.
    La cláusula FROM es una parte fundamental de una consulta SQL, ya que define las fuentes de datos para tu consulta.
Ejemplo:

SELECT columna1, columna2
FROM tabla1, tabla2
WHERE tabla1.id = tabla2.id;

SQL JOINs:

  • Las cláusulas JOIN se utilizan para combinar datos de dos o más tablas en función de una condición específica.
  • Los JOINs son útiles cuando tienes datos relacionados distribuidos en múltiples tablas y deseas recuperar información relacionada de esas tablas.
- Los tipos más comunes de JOINs son INNER JOIN, LEFT JOIN (o LEFT OUTER JOIN), RIGHT JOIN (o RIGHT OUTER JOIN) y FULL JOIN (o FULL OUTER JOIN), cada uno de los cuales tiene un comportamiento diferente.
Ejemplo de INNER JOIN:

SELECT clientes.nombre, pedidos.numero_pedido
FROM clientes
INNER JOIN pedidos ON clientes.id = pedidos.id_cliente;


Ejemplo de LEFT JOIN:

SELECT estudiantes.nombre, inscripciones.curso
FROM estudiantes
LEFT JOIN inscripciones ON estudiantes.id = inscripciones.id_estudiante;
Ejemplo de RIGHT JOIN:

SELECT empleados.nombre, proyectos.nombre_proyecto
FROM empleados
RIGHT JOIN proyectos ON empleados.id = proyectos.id_empleado;
Ejemplo de FULL JOIN:

SELECT usuarios.nombre, comentarios.texto
FROM usuarios
FULL JOIN comentarios ON usuarios.id = comentarios.id_usuario;

Alias de tabla:

  • Puedes utilizar alias de tabla para abreviar los nombres de tabla largos en tus consultas, lo que hace que las consultas sean más legibles.
    Los alias de tabla se definen utilizando la palabra clave AS o simplemente con un espacio.
Ejemplo con alias de tabla:

SELECT c.nombre, p.numero_pedido
FROM clientes AS c
INNER JOIN pedidos AS p ON c.id = p.id_cliente;

Estas son algunas de las nociones básicas de cómo se utilizan las cláusulas FROM y JOIN en SQL para recuperar datos de múltiples tablas. Los JOINs son una parte esencial de la manipulación de datos en bases de datos relacionales cuando se trabaja con información distribuida en varias tablas.

Genial…!!!

La sentencia JOIN se utiliza para combinar datos de dos o más tablas relacionadas en una consulta SQL. Permite obtener información de varias tablas utilizando una condición de relación entre ellas

Excelente profesor y curso hasta el momento.

35. FROM y SQL JOINs

  • From indica de donde queremos traer los datos.
  • Join ayuda a unir tablas.

En la figura de joins, la imagen inferior izquierda la he visto como semi-join y la contraparte como anti-join

Estupenda clase del profe!!!

-- Les comparto mi consulta sql
-- lo que hago es la union de las tablas usuarios, posts, posts_etiqueta y etiquetas
-- Obtengo datos en esta consulta que son: nickname, estatus, id y nombre donde luego los explico de forma clara a traves de un alias
SELECT 
    u.nickname AS nombre_de_pila,
    p.estatus AS estado,
    pe.id AS id_post_etiquetas,
    e.nombre AS nombre_etiqueta
FROM
    usuarios u
        INNER JOIN
    posts p ON u.id = p.usuario_id
        INNER JOIN
    posts_etiquetas pe ON p.id = pe.post_id
        INNER JOIN
    etiquetas e ON pe.id = e.id;

FROM indica de donde vamos a traer los datos

JOIN esta sentencia nos ayuda a unir tablas atreves de las relaciones que se crearon como por ejemplo unir la llave primaria de una tabla con la llave foránea de otra tabla

Tipos de JOIN

Diferencia
left join

que traerá todos los datos de la tabla A estén o no estén en la tabla b, ejemplo si el usuario tenga o no tenga post nos va traer el usuario completo

otro tipo de left join es que traiga los que usuarios pero que no estén asociados al post

Right join

quiere decir que nos traiga todo lo que este en la tabla B sin importar si está o no está en la tabla A, ejemplo, tráeme todos los posts, aunque no haya ningún usuario que los haya creado (es un caso que no se permite hacer)

el otro caso de right join es que traiga todos los datos de la tabal b que no tenga ninguna asociasion con la tabla a

Intersección / inner join

es donde se encuentran los 2 diagramas que traerá los valores que están en A como en B, ejemplo, este solo traerá todos los usuarios que tenga un post asociado, si hay algún usuario que no tiene un post o viceversa este no lo traerá

Unión

Esta se encarga de traer todos los datos de las dos de a y b, ejemplo, traerá todos los usuarios que tengan o no tengan post y viceversa

Diferencia Asimétrica

Ara lo contrario de unión traerá todo lo que A no tenga asociado con B, ejemplo, traerá todos los usuarios que no estén asociados con post y viceversa

Me gustó mucho la explicación

  • Después se tiene unió y diferencia simétrica y estos a simple vista son iguales pero en la realidad son bastante diferentes.
  1. La unión. Lo que hace es traer todo.
  2. Diferencia simétrica. va a hacer todo lo contrario, va a traer solo aquellos usuarios que no tengan ningún post, que no hayan escrito nada y va a traer los post que estén huérfanos o que no tengan un autor definido simplemente los dos que no tienen relación la parte que esta en medio que es la que se tocan los dos conjuntos que serian los post que tiene autor los va a omitir.
  • JOIN que tiene que ver con intersección.
  • Intersección es esa parte donde se encuentran los dos diagramas donde se encuentran los dos círculos y es justo esa parte central.
  • El nombre correcto que recibe es inner join o join interno. Porque justamente tiene que ver con que va a traer los valores que existen tanto en A como en B.
  • From indica de donde vamos a tener que traer los datos.
  • Los diagramas de venn, son simplemente círculos que se tocan en algún punto para ver donde está la interserción de conjuntos para ver donde hay un traslape de valores de un lado y del otro.
  • Sentencia Join, Hay que saber que hay diferentes tipos de join.
  1. LEFT JOIN. Es la diferencia. ¿ Qué quiere decir diferencia ? Diferencia es lo que tenemos en un lado pero que no está en el otro.
  2. RIGHT JOIN En este caso lo que va a hacer es extraer lo que está en el otro lado sin importar o no si esta en el lado A.

No es necesario hacer join y unir las tablas para traer informacion de varias tablas. se puede hacer un:
SELECT person.nombre, posts. titulo
FROM person, posts.

…por ejemplo.

Es la estructura de una sentencia INNER JOIN:

SELECT u.nombre, p.titulo FROM usuarios u INNER JOIN posts p ON u,id = p.id_usuario

  • Cuando decimos que de donde se sacaran los Datos osea las Tablas les asignamos un acronimo que puede ser las dos primeras letras del nombre de la Tabla.
  • Cuando elejimos lo que queremos ver colocamos esos Acronimos al inicio de esas columnas que queremos visualizar que indica que Datos queremos traer y de donde.
  • luego se usa la sentencia ON para decir donde se unen las tablas: seria para este caso que el ID de la tabla U osea Usuarios es igual a id_usuario de la tabla P osea posts.

JOIN 1: DIFERENCIA