Curso Práctico de SQL

Curso Práctico de SQL

Israel Vázquez Morales

Israel Vázquez Morales

Origen (FROM)

5/29
Recursos

Aportes 42

Preguntas 10

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

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

Mis notas personales sobre FROM:

El curso se viene con todo!

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 😊

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

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.

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

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

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.

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

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.

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ñ[email protected], 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.