Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
16 Hrs
12 Min
2 Seg
Curso Práctico de SQL

Curso Práctico de SQL

Israel Vázquez Morales

Israel Vázquez Morales

Origen (FROM)

5/29
Recursos

Aportes 59

Preguntas 13

Ordenar por:

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

Con SELECT se especifica que columnas queremos obtener de una tabla determinada y con FROM se indica de donde se va a obtener la información que se va proyectar con SELECT. FROM va después de SELECT

SELECT *
FROM base_de_datos.tabla

En la sentencia anterior el manejador de base de datos (DBMS) va al esquema y proyecta lo solicitado.


Las sentencias SQL no son sensibles a minúsculas o mayúsculas pero se recomienda escribir las palabras claves en MAÝUSCULAS y el resto en minúsculas

JOIN es un complemento de FROM.

También se puede obtener la información de una base de datos remota, es decir que el esquema de donde que queremos obtener información se encuentra en otro DBMS.


Para obtener información de una tabla que se encuentra remotamente se utiliza la función dblink, dicha función recibe dos parámetros:

  1. configuración de conexión al DBMS remoto
  2. consulta SQL


Ejemplo de dblink

SELECT *
FROM dblink('
	dbname=somedb
	port=5432 host=someserver
	user=someuser
	password=somepwd',
	'SELECT gid, area, parimeter,
			state, country,
			tract, blockgroup,
			block, the_geom
	FROM massgis.cens2000blocks')
	AS blockgroups

Aquí el uso de JOIN de las tablas que se nos proporcionó, por medio del ID de la carrera

Cúales son las TOP 10 carreras con mayor cantidad de alumnos que aun siguen vigentes?

SELECT carrera, count(alumnos.id) as "Total de alumnos", vigente
FROM platzi.alumnos 
	JOIN platzi.carreras as carr
		ON platzi.alumnos.carrera_id = carr.id
WHERE vigente = true
GROUP BY carrera, vigente
ORDER BY "Total de alumnos" DESC
LIMIT 10

Para que se haga más fácil el entendimiento de esta clase y curso, recomiendo mil empezar con el curso de Fundamentos de Base de Datos, que lo dicta este mismo profesor y lo explica super increíble 😊

Mis notas personales sobre FROM:

El curso se viene con todo!

Las cláusulas SELECT, que especifica las columnas o expresiones que vamos a recuperar, y FROM , que indica la tabla de la que se recuperan, son obligatorias.

Las sentencias SQL no son sensibles a mayúsculas o minúsculas pero se recomienda escribir las palabras clave en mayúsculas y el resto en minúsculas.
Fuente: https://cambrico.net/sql-y-plsql-de-oracle-con-ejemplos-practicos/consultas-sql-sentencia-select

FROM (va después del select)

Le indicas el nombre de la tabla que va a ser tu fuente de datos y de ahí recogerá los datos para el resto de la sentencia.

Se le puede poner un alias, como en SELECT, te ahorra mucho tiempo.

Con JOIN podemos indicar relaciones entre diferentes tablas, es un complemento al from, nos ayuda a generar una tabla más completa en la que poder hacer consultas. ¿?No sé como explicarlo

Tambien podemos hacer un FROM a una base de datos externa, ejecutar comandos y que te devuelva el resultado en tu base de datos. (Super potente)

Buen día a todos,

En SQL Server también podemos consultar en diferentes BD cuando están en el mismo servidor así:

SELECT b1.columna ,b2.columa FROM base1..table AS bd1 INNER JOIN base2..table AS b2 ON bd1.campo = b2.campo

Con eso podemos hacer el JOIN entre dos BD que estén en el mismo servidor, aclarando que lo expuesto anteriormente es diferente de dblink.

todos los profesores deberían de aprender de él, me gusta que antes de irse al código muestra con diapositivas y gráficamente las bases, para que estando en el código se digiera más fácil las prácticas

Para los que desean alguna a puntes buenasos aquie les comparto los apuntes de majo

5. Origen (FROM)

  • Desde
  • De donde voy a obtener la información
SELECT * -- Select más básico
FROM tabla_diaria; -- Indicarle la tabla

SELECT * -- Select más básico
FROM tabla_diaria AS td -- Indicarle la tabla
		JOIN tabla_mensual AS tm -- Forma en la cual se hacen las uniones
		ON td.pk = tm.fk;

SELECT *
FROM dblink('
	dbname=somedb
	port=5432 host=someserver
	user=someuser
	password=somepwd',
	'SELECT gid, area, perimeter,
					state, county,
					tract, blockgroup,
					block, the_geom
	FROM massgis.cens200blocks')
	AS blockgroups

Esto no parece curso práctico. No hay interactividad. Estoy decepcionado. Se le comprende más a los Estudiantes.
Mejor me hubiero puesto a ver videos de Youtube.

Este profe está muy cabrón! Es buenísimo. Vengo de su curso de fundamentos y también estuvo genial. Esto promete 😄

Parceeeeee, estalló mi cabeza al conocer el DBLINK, siento que me acaban de mostrar que existe el juego JAJAJAJ

Super eso de DBLINK me intereso mucho
SELECT *
FROM dblink(‘
dbname=somedb
port=5432 host=someserver
user=someuser
password=somepwd’,
‘SELECT gid, area, parimeter,
state, country,
tract, blockgroup,
block, the_geom
FROM massgis.cens2000blocks’)
AS blockgroups

El DBLINK, nos permite enlazar datos, que se encuentran en diferentes bases de datos.

Israel debió de dar el curso de inicio de postgres, sin desmeritar al otro educador definitivamente la metodología de Israel es bastante simple pero muy efectiva.

**Origen: ** De donde se obtienen los datos. Lo más básico es poner el nombre de la tabla en sí como un origen.

La DBMS va a nuestro esquema y busca la tabla puesta.<
Complejidad: Al origen podemos darle un ALIAS, usualmente las iniciales de tu tabla.

Join: Podemos usar el Join para poder relacionar 2 tablas y sacar datos en conjunto en base a campos en común.

Nuestro origen tambien puede darse desde otra base de datos, para ello usaremos la función dblink, con los parametros correctos.

Me voló la cabeza el dblink D:

Un ejemplo de como yo uso las bases de datos. Manejo un sistema con bases de datos, y la plataforma genera reportes csv, hay una tabla que tiene como columna un titulo, resulta que al generar el reporte, no arroja el csv y esto por que en una fila de una columna o un registro, se guardo mal, y el error del sistema me aparecia que no podía obtener un título. Asi que, haciendo un análisis de donde podria encontrarse ese dato, ya localizado, pude borrar ese registro. Al final, obtuve el reporte de 5 años en un csv.

3. ORIGEN DE LA INFORMACIÓN (From)

- SELECT *

FROM tabla_diaria; Con este comando se seleccionarán todas las columnas de la tabla llamada “tabla_diaria”
- SELECT *
FROM tabla_diaria AS td —> Selecciona la tabla indicada y le da el alias de "td"
JOIN tabla_mensual AS tm —> Relaciona la tabla diaria con la tabla mensual y la renombre con el alias "tm"
ON “tdpk” = “tmfk”; —> Relaciona la llave principal “.pk” (primary key) con la llave foránea “.fk” (foranean key).
- SELECT *
FROM dblink(‘
dbname=somedb
port=5432 host=someserver
user=someuser
password=somepwd’ ,
’ SELECT gid, area, perimeter, state, county,
tract, nlockgroup, block, the_geom
FROM massgis.cens2000nlocks’)
AS blockgroups
Se utiliza el from para tomar la información de una tabla remota (la cual no está en nuestro clúster), posteriormente (después de la coma) traemos lo que necesitamos de esa tabla y finalmente la llamamos con el alias de “blockgroups”.

Alias Tabla

SELECT AL.nombre,
	       AL.apellido,
	       AL.colegiatura
   FROM PRUEBAS.ALUMNOS AL;  

Union dos tablas

SELECT *
   FROM PRUEBAS.ALUMNOS AL JOIN PRUEBAS.CARRERAS CA 
     					                    ON AL.CARRERA_ID = CA.ID; 

Conexion a tabla en una base de datos remota

SELECT *
  FROM dblink('dbname=somedb
               port=5432
               host=someserver
               user=someuser
               password=somepwd',
               'SELECT gid, 
                       area, 
                       parimeter,
                       state, 
                       country,
                       tract, 
                       blockgroup,
                       block, 
                       the_geom
                  FROM massgis.cens2000blocks'
  ) AS blockgroups

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

Practicando…

*CONCAT: Concatena (une) las columnas.
*AS: Alias que se puede dar a una tabla o a una columna.
*ORDER BY 1: Ordena el resultado por la primera columna, en este caso, id_carrera.

En mi caso personal estoy desde CasaOs en postgresSQL(use docker para poder ejecutarlo) y tuve que ingeniarmelas para poder insertar los datos, tarde unas horas pero lo logre y comparto un ejemplo de ko visto en esta clase haciendo un top en Pgadmin![](https://static.platzi.com/media/user_upload/Screenshot%202024-04-17%2011.18.32-cf5f9b6d-e652-4073-97b3-7800cc290881.jpg)
Mis primeros pasos en SQL!! ![](https://static.platzi.com/media/user_upload/image-18095e2a-867c-44f8-80e0-fb37252bb4ef.jpg)

El origen, representado por la cláusula FROM en SQL, se refiere a la tabla o tablas de las cuales estás seleccionando datos. Especifica la fuente de la cual se extraerán las columnas que se proyectarán o seleccionarán en tu consulta.

*Para **seleccionar** una tabla se **utiliza** la propiedad* **SELECT** ***seguido** de **\**** “asterisco” *para **seleccionar** **todos** los elementos **dentro** de la tabla o **seguido** del **nombre** del campo a **seleccionar**, **seguido** de la propiedad* **FROM***, **seguido** del **nombre** de la tabla de **donde** se va a **realizar** la consulta.* `/*` `Syntax` `SELECT * fieldName, fieldName` `FROM tableName;` `*/` `SELECT *` `FROM posts;` `SELECT title, publicationDate, status` `FROM posts;` *Para **cambiarle** el **nombre** de un campo en el* Output *o resultado de un queries, **después** del **nombre** se **utiliza** la propiedad* **AS***, **seguido** del **nuevo** **nombre** que sera visible en el* Output *o resultado del queries.* *A estos **nombres** se les **conoce** como alias.* `/*` `Syntax` `SELECT fieldName AS aliasName` `FROM tableName;` `*/` `SELECT title AS titulo, publicationDate AS fechaDePublicacion, status AS estado` `FROM posts;`

Es cierto que los dblink pueden acarrear problemas con la seguridad de la información?

En ORACLE muchas veces el AS da problemas, sobre todo a la hora de renombrar columnas. Normalmente en ORACLE los alias de las columnas se renombran dejando un espacio luego del nombre real, esto a veces trae confusión, porque a la hora de usar sentencias GROUP BY, al no ver los AS muchas ves uno copia y pega los campos sin darse cuenta de los alias.

SELECT *
FROM tabla_diaria AS td
   JOIN tabla_mensual AS tm
   ON td.pk = tm.fk;

  • SELECT *: This part of the query tells the database to fetch all columns from the result set that will be produced by the query.

  • FROM tabla_diaria AS td: This part specifies the first table that will be queried, which is named tabla_diaria. It is aliased as td, which means that in the rest of the query you can refer to this table using the short name td instead of the full name tabla_diaria.

  • JOIN tabla_mensual AS tm: This part specifies that a JOIN operation should be performed with another table named tabla_mensual. This table is aliased as tm.

  • ON td. pk = tm. fk: This is the join condition. It specifies that the JOIN should be made where the value in the pk column from the tabla_diaria table (referred to using its alias td) matches the value in the fk column in the tabla_mensual table (referred to using its alias tm).

  • Overall, this query performs an inner join between tabla_diaria and tabla_mensual on the condition that tabla_diaria.pk is equal to tabla_mensual.fk. The result set will include all columns from both tables where the join condition is met.

SELECT *
FROM dblink('
   dbname=somedb
   port=5432 host=someserver
   user=someuser
   password=somepwd',
  'SELECT gid, area, perimeter, 
                  state, country, 
                  tract, blockgroup,
                  block, the_geom
   FROM massgis.cons200blocks')
AS blockgroups

  • SELECT *: Similar to the first query, this part tells the database to fetch all columns from the result set that will be produced by the query.

  • FROM dblink(…) : This specifies that the data should be fetched from a remote database using the dblink function. The dblink function is specific to PostgreSQL and allows you to connect to other PostgreSQL databases.

  • Inside the dblink function, the first parameter is a connection string with the information required to connect to the remote database. This includes the database name (dbname), port number (port), host address (host), username (user), and password (password).

  • The second parameter inside the dblink function is the actual SQL query string that will be executed on the remote database. It selects columns gid, area, perimeter, state, country, tract, blockgroup, block, the_geom from the table massgis.cons200blocks.

  • AS blockgroups: This part aliases the result set as blockgroups.

Overall, this second query connects to a remote PostgreSQL database, executes a query to fetch specific columns from a table in that database, and returns the results as a local result set named blockgroups.

Les comparto lo hecho con la explicacion de la clase

-- CREATE EXTENSION dblink;
SELECT *
FROM dblink ('dbname=METRO_CDMED
			 port=5432
			 host=127.0.0.1
			 user=davidev
			 password=0803',
			 	'SELECT id, nombre, apellido, numero_tarjeta FROM pasajero')
AS dotos_remotos_tb_pasajero(id integer, nombre character varying, apellido character varying, numero_tarjeta character varying);

Select Nos trae las columnas pero requerimos darle el origen de donde las extraerá, es ahí donde entra from → Va directamente después del select

SELECT * 
from tabla_nombre; 

-- Le estoy diciendo selecciona todas las columnas de determinada tabla.

SELECT * 
FROM tabla_diaria AS td  /Podemos asignar álias en from para usarlo en otras consultas.
	JOIN Tabla_mensual AS tm /relación entre tablas
	ON td.pk = tm.fk; /aquí podenemos los álias de las tablas 

Entidades → Tablas

Relaciones → unión entre tablas

JOIN es la forma que hacemos la relación o unión entre tablas.

Uso de JOIN

Mis apuntes:

SELECT * FROM platzi.alumnos AS A
JOIN platzi.carreras AS C
ON A.id = C.id;

Notas 😄

Origen (FROM)

  • Es necesario indicar de donde vamos a obtener los datos (de que tabla) 🏓.

  • Ejemplo mas sencillo SELECT * FROM tabla_ejemplo;, lo que hace el manejador es buscar la tabla en específico.

  • Puede hacerse muy complejo:

    SELECT *
    FROM tabla_diaria AS td # Se pueden usar alias también
    	JOIN tabla_mensual AS tm # Estamos uniendo dos tablas!
    	ON td.pk = tm.fk # Es necesario indicar la relación
    
  • Se pueden obtener datos desde una base de datos foráneos:

    SELECT * 
    FROM dblink('
    	dbname=somedb
    	port=1234 host=someserver
    	user=someuser
    	password=somepwd',
    	'SELECT column1, column2
    	FROM tabla.bloque')
    AS nombre_cool
    

Los 10 primeros alumnos que ser incorporaron al inicio del 2020 con el nombre de su carrera.

Siempre cuando usen sentencias eviten usar el SELECT * ya que no es tan eficiente, y algunos motores de base de datos tienen editores que te ayudan a hacer las querys, solo debes entender los conceptos para saber que es lo que realmente estas haciendo. Ejemplo practico en MYSQL workbench sobre una tabla le das click derecho y ya te permite seleccionar los primeros 2000

FROM = Tabla a la que estas consultando

Esta muy buena la explicación, yo solo le agregaría las tablas , y de esta forma se podría ver que datos se están tomando de estas tablas y como se renombran.

exelente

Mi consulta usando Join y utilice Order by, para poder ordenarlos por carrera

En el curso de postgresql usamos dblink. Se agrega como una extensión (o dependencia) a postgres

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.

Aprendí esto en el video anterior:
SELECT IIF(1<10,‘yes’,‘no’);

Contarme a una base de datos externa es la razón por la que estoy tomando el curso =)

DBLINK, como unir una tabla con otra tabla foranea que no este en nuestro servidor.

Me hubiera gustado ver las sentencias en álgebra relacional para notar la sintaxis.

Origen (FROM)

  • Especifica desde qué tabla se tomará la información
  • Se pueden usar alias y JOIN
  • dblink(): utilizando esta función puedo extraer información de una tabla que no pertenezca a la base de datos local

Muy clara la explicación

el from es para indicar el nombre de la tabla de donde sacaremos la informacion

Hola compañer@s, realice una FUNCIÓN en SQL que retorna la cantidad de estudiantes que existen dependiendo del id de cada carrera en el ejemplo que di le paso el id numero 10 y este id pertenece a la carrera de Economía en la cual como resultado con la función obtenemos que hay o hubo 15 estudiantes en dicha carrera adjunto imagenes con el codigo y el output:

CREACION DE LA FUNCION:

EJECUCION DE LA FUNCION EJEMPLIFICADA:

Mi aporte:

SELECT CONCAT_WS(" ", a.nombre, a.apellido) AS 'Nombre Completo', c.carrera
FROM alumnos as a
INNER JOIN carreras as c
 on a.carrera_id = c.id;

Resultado:

Interesante del versatilidad que tiene el select al poder mostrar información hasta de un diferente dbms.