Curso Práctico de SQL

Curso Práctico de SQL

Israel Vázquez Morales

Israel Vázquez Morales

Instalación de la BD de ejemplo

3/29

Lectura

Como requisito previo es necesario instalar la BD siguiendo este tutorial del curso de PostgreSQL.

Archivos de datos SQL: descarga archivo platzi-carreras.sql y archivo platzi-alumnos.sql.

Una vez tienes instalado PostgreSQL y pgAdmin vamos a crear la estructura de datos que veremos a lo largo del curso.

Para hacerlo abre pgAdmin (normalmente está en la dirección: http://127.0.0.1:63435/browser/), y expande el panel correspondiente a tu base de datos, en mi caso la he nombrado “prueba”.
Captura de Pantalla 2020-09-09 a la(s) 18.51.40.png

En la sección esquemas da click secundario y selecciona la opción Create > Schema…
Captura de Pantalla 2020-09-09 a la(s) 18.52.42.png

Al seleccionar la opción abrirá un cuadro de diálogo en donde debes escribir el nombre del esquema, en este caso será “platzi”. Si eliges un nombre distinto, asegúrate de seguir los ejemplos en el curso con el nombre elegido; por ejemplo si en el curso mencionamos la sentencia:

SELECT * FROM platzi.alumnos

Sustituye platzi por el nombre que elegiste.

Finalmente selecciona tu usuario de postgres en el campo Owner, esto es para que asigne todos los permisos del nuevo esquema a tu usuario.
Captura de Pantalla 2020-09-09 a la(s) 18.53.53.png

Revisa que tu esquema se haya generado de manera correcta recargando la página y expandiendo el panel Schemas en tu base de datos.
Captura de Pantalla 2020-09-09 a la(s) 18.57.31.png

Dirígete al menú superior y selecciona el menú Tools > Query Tool.
Captura de Pantalla 2020-09-09 a la(s) 18.57.40.png

Esto desplegará la herramienta en la ventana principal. Da click en el botón “Open File” ilustrado por un icono de folder abierto.
Captura de Pantalla 2020-09-09 a la(s) 18.57.54.png

Busca en tus archivos y selecciona el archivo platzi.alumnos.sql que descargaste de este curso, da click en el botón “Select”.
Captura de Pantalla 2020-09-09 a la(s) 18.58.10.png

Esto abrirá el código SQL que deberás ejecutar dando click en el botón ”Execute/Refresh” con el icono play.
Captura de Pantalla 2020-09-09 a la(s) 18.59.32.png

Al terminar debes ver un aviso similar al siguiente:
Captura de Pantalla 2020-09-09 a la(s) 19.00.18.png

Ahora repetiremos el proceso para la tabla platzi.carreras. Dirígete nuevamente al botón “Open File” y da click en él.
Captura de Pantalla 2020-09-09 a la(s) 19.00.45.png

Encuentra y selecciona el archivo platzi.carreras.sql y da click en el botón “Select”.
Captura de Pantalla 2020-09-09 a la(s) 19.00.51.png

Una vez abierto el archivo corre el script dando click en el botón “Execute/Refresh”

Captura de Pantalla 2020-09-09 a la(s) 19.00.58.png

Debes ver nuevamente un aviso como el siguiente:

Captura de Pantalla 2020-09-09 a la(s) 19.01.45.png

¡Felicidades! Ya tienes todo listo para realizar los ejercicios y retos del curso.

Aportes 69

Preguntas 52

Ordenar por:

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

Si no quereis instalar postgreSQL en vuestro equipo, podeis usar Docker-compose con el siguiente código para levantar contenedores con PostgreSQL y pgAdmin de forma muy rápida:

version: "3.7"
services:
db:
image: postgres:12.2
restart: always
environment:
POSTGRES_DB: postgres
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
PGDATA: /var/lib/postgresql/data
volumes:
- db-data:/var/lib/postgresql/data
ports:
- "5432:5432"
 
pgadmin:
image: dpage/pgadmin4:4.18
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: admin@linuxhint.com
PGADMIN_DEFAULT_PASSWORD: secret
PGADMIN_LISTEN_PORT: 80
ports:
- "8080:80"
volumes:
- pgadmin-data:/var/lib/pgadmin
links:
- "db:pgsql-server"
volumes:
db-data:
pgadmin-data:

Si tenéis dudas, tenéis las instrucciones completas en este tutorial: https://linuxhint.com/postgresql_docker/ y seguro que el curso de docker os vendrá genial!

Una alternativa que uso a pgadmin es DBeaver. https://dbeaver.io/.

Es muy practico por que permite gestionar tambien mariaDB, MySQL, MS-SQL, oracle y otros.

Para crear el SCHEMA platzi pueden ejecutar el siguiente comando en SQL shell:

CREATE DATABASE pruebas;

y después:

CREATE SCHEMA platzi;

Se puede seguir el curso usando MySQL Workbench?

Si quieren utilizar docker y no instalar nada en su computadora o aprender algo de docker, cree en tu tutorial que les será de gran ayuda, este es el enlace. 😃 espero les sirva.

Para Crear las Tablas en Microsoft SLQ Server Management Studio, los campos de Fecha (TIMESTAMP) se crean con DATETIME, el campo Boolean, se crea con BIT.

Para los que quiera usar docker

Estructura de archivos:

├── docker-compose.yml
├── dump
│   ├── platzi.alumnos.sql
│   └── platzi.carreras.sql
└── env
    ├── pgadmin
    └── postgres

docker-compose.yml

version: "3.9"

services:
  postgres:
    image: postgres:13
    container_name: psql
    volumes:
      - "./dump/:/docker-entrypoint-initdb.d/"
      - "db-data:/var/lib/postgresql/data"
    env_file:
      - ./env/postgres
    ports:
      - "5432:5432"

  pgadmin:
    image: dpage/pgadmin4
    container_name: pgadmin
    ports:
      - "5050:80"
    env_file:
      - ./env/pgadmin
    volumes:
      - "pgadmin-data:/var/lib/pgadmin"

volumes:
  db-data:
  pgadmin-data:

./env/postgres

POSTGRES_PASSWORD=passw0rd
POSTGRES_USER=platzi
POSTGRES_DB=test

./env/pgadmin

PGADMIN_DEFAULT_EMAIL[email protected]
PGADMIN_DEFAULT_PASSWORD=pgadmin

Paso 1: Primero hay que crear un archivo para crear el esquema

echo"CREATE SCHEMA platzi;" > dump/1-schema.sql

Paso 2: Corremos PostgreSQL, PGAdmin4 y se cargan los archivos SQL que estan en la carpeta dump (Los archivos se cargan en orden alfabetico por eso el archivo que creamos tiene el numero 1, para que cargue antes de crear las tablas)

docker-compose up -d

Paso 3: PGAdmin estara corriendo en localhost:5050 o 127.0.0.1:5050
Paso 3.1: ingresamos con el email y password definidos en ./env/pgadmin
Paso 3.2: Agregamos un nuevo servidor (El hostname es el nombre de nuestro contenedor definido en docker-compose.yml (psql en nuesto caso)
Paso 3.3: Continuar con el curso, ya esta el schema, las tablas y los datos cargados
Paso 4: Si quiere usar postgres desde la terminal

docker exec -ti psql psql -U platzi -d test
<h3>Notas:</h3>

Para los que quieran saber como es que se cargan los archivos SQL y saben un poco de bash y docker pueden ver el entrypoint, de hecho tambien se puede pasar un archivo *.sql, *.sql.gz, *.sql.xz y *.sh
Pueden iniciar todo con un script como el sigiente

#!/usr/bin/env bash
psql -U $POSTGRES_USER -d $POSTGRES_DB  <<-EOSQL
-- YOUR SQL Statements here
EOSQL

Es motivador seguir paso a paso y que funcione, bien!!!

Me costó un poco de trabajo sincronizar postgresql con pgadmin en Archlinux, pero lo logré 😄

Me perdí

Practicando es la mejor forma de aprender 😄

Ejecutando el archivo en la base de datos por la consola

psql -U usuario -d platzi -f platzi.carreras.sql 
psql -U usuario -d platzi -f platzi.alumnos.sql 

cuando le doy a drive me salen los archivos por un momento pero luego no se visulizan los archivos de drive

Eso significa que se volverá a utilizar MySQL Workbench?

Para poder trabajar con ‘MySQL Workbench’ primero creamos el Schema ‘platzi’ ejecutando en Workbench
CREATE SCHEMAplatzidefault character SET utf8;

Posteriormente ya podemos cargar y ejecutar los archivos los archivos ‘platzi.alumnos.sql’ y ‘platzi.carreras.sql’ que se encuentran en la descipción de la clase.

Sigan el paso a paso, a mi me funcionò todo a la perfecciòn.

Si usas una distribución de Arch Linux como Manjaro, puedes seguir este sencillo procedimiento para la instalación.

No tienes que usar yay, puedes usar pacman

sudo pacman -Sy postgresql postgresql-docs postgresql-libs pgadmin4

Go!

La solución para el error

ERROR: schema “platzi” does not exist
LINE 1: create table platzi.alumnos (
^
SQL state: 3F000
Character: 14

siplemente hay que revisar que el nombre del Schema sea el mismo que mensionado en el scrip:
Ejemplo: schema = colocarnombredeschema

CREATE TABLE colocarnombredeschema.carreras (
id INT,
carrera VARCHAR(100),
fecha_alta TIMESTAMP,
vigente BOOLEAN
);

Si alguno también le daba error a la hora de crear las tablas por el “platzi.” (porque el query se creo dentro del shema). Les recomiendo abrir el archivo de “alumnos” y “carrera” con el blog de notas, copiamos el contenido

Abrimos word y pegamos. Usamos “Ctrl + L” y remplazamos “platzi.” por “(el segundo espacio no debe contener nada)”.

Luego de remplazar pegamos el resultado en nuestro blog de notas y guardamos. Esto ya nos dará error

Espero que les sirva a las personas que tuvieron el mismo problema que yo 👾

Hola, compañeros ya he reportado el problema de descarga de archivos en Drive, me comentaron que ya el equipo de educacion trabaja en solventar el problema y me notificaran.

Donde esta el archivo platzi.alumnos.sql

Esta vez fue bastante sencillo! Justo por estas fechas hace un año PostgreSQL se me dificultaba mucho!

¡Todo listo para comenzar!

Al momento de ejecutar los scripts a mi me sale el siguiente error

Cannot insert an explicit value into a timestamp column. Use INSERT with a column list to exclude the timestamp column, or insert a DEFAULT into the timestamp column.

Alguna idea de como puedo solucionarlo?

En Ubuntu es necesario establecer la contraseña para crear el servidor:

$ sudo -u postgres psql

postgres=# ALTER USER postgres PASSWORD 'newPassword';```

Alguien que lo esté haciendo con Docker? tuve problemas para instalar, y como quiero seguir viendo esto, decidí hacerlo con docker, agregué manualmente los archivos a la bd ya creada, digo, no tarde mucho, pero no se si habría una manera de agregar archivos .sql directamente con psql ?

Listo, tuve que hacer pasos adicionales por un par de errores en la instalación en Mac OS 11.2, pero lo pude solucionar.

boi a ser lo ke menseñó el profe beco

Pefecto!, ahora a seguir adelante con el curso!

Muy bien, continuemos…

Para usuarios de linux le recomiendo ver este vídeo para instalar Postgres LINK

existe alguna otra alternativa a pg Admin 4?

todo perfecto ! ahora gogogo

Que genial que se siente hacer todo como está esperado en la máquina.

Intentaré hacerlo con el SQL, por lo visto solo cambiaron algunos tipos de datos que se agregan de manera distinta.

Hecho, sigan el paso a paso, todo muy bien explicado.

pregunta hay alguna forma de poder dockerizar postgres para no tener que instalarlo en el equipo?

Me gustó que prefiera usar la interfaz de Postegres

Muy bueno el tutorial!

listo PostgreSQL instalado…

Tuve que modificar los archivos yo mismo para hacerlos correr sin errores en SQL Server Management Studio pero rompiendo el código y volviendolo a escribir el aprendizaje fue mayor. Ejemplo, no conocía el Data Type Boolean ni que el equivalente en SQL Server es BIT.

Excelente guua para instalar la base de datos.

Insertar bases de datos y tablas desde ubuntu

Primero se accede desde la consola a postgres

psql -h localhost -p 5432 -U usuario_de_cada_uno

Les pide la contraseña por consola e ingresan
Ahi se crea la base de datos

CREATE DATABASE pruebas;

Usando

\l

Pueden verificar que su base haya sido creada
Despues deben ingresar dentro de esa base

\c pruebas

Y ahi si se crea el esquema

CREATE SCHEMA platzi;

Una vez creado el esquema se descargan los archivos platzi-alumnos.sql y platzi-carreras.sql y se guarda la ruta donde quedo cada archivo

Salen con exit
y desde la consola original se pone esto

psql -U nombre_del_usuario -d pruebas -h localhost < ruta_donde_se_guardo/platzi-alumnos.sql
psql -U nombre_del_usuario -d pruebas -h localhost < ruta_donde_se_guardo/platzi-carreras.sql

Ahi debe mostrar que se han insertado los datos.

Para los que quieran usar docker y dbeaver:

Docker pull postgres
docker run -p 49165:5432 --name postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

-p: Puerto 49165 para nuestro local y 5432 puerto determinado de postgres.
—name: Nombre del contenedor
-e: set environment variable en este caso la contraseña.
-d: detached mode

  1. En Dbeaver:
    host: localhost
    port: 49165
    Database: postgres
    Username: postgres
    Password: mysecretpassword
    Test connection
  2. Crea el esquema platzi.
  3. Ejecuta los scripts.

para fedora se los dejo

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/F-36-x86_64/pgdg-fedora-repo-latest.noarch.rpm
sudo dnf install -y postgresql14-server
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

les comparto una docker-compose y que la informacion sea perduradera tanto en la BD como en Pg admin para que no se tenga que crear la conexón cada de que hacemos el up de los servicios

primero debemos crear los dos volumes para nuestros servicios

 docker volume create bdsql  && docker volume create pgdata

le ingresamos permisos a estos objetos, ya que por algún motivo falla cuando los servicios intentan escribir en estos

sudo  chmod 776 bdsql
sudo chmod 776 pgdata

y por ultimo activamos nuestro docker-compose-yml

version: "2.5"
services:
    db:
        image: postgres
        restart: always
        container_name: database
        ports:
            - "5432:5432"
        environment:
            POSTGRES_USER: root
            POSTGRES_PASSWORD: root
            POSTGRES_DB: pgdb
        volumes:
         # - .:/bdsql
                - ./bdsql:/var/lib/postgresql/data/
        networks:
          - bd-net
    pgadmin:
        container_name: pgadmin4_container
        image: dpage/pgadmin4
        restart: always
        environment:
            PGADMIN_DEFAULT_EMAIL: [email protected]
            PGADMIN_DEFAULT_PASSWORD: root
        ports:
            - "5050:80"
        volumes:
           - ./pgdata:/var/lib/pgadmin/
        networks:
          - bd-net
networks:
   bd-net:

y cada que iniciamos tendremos nuestra data lista para seguir practicando

Si no quieren instalar de forma local PostgreSQL pueden usar Heroku de forma gratuita, agregar la base de datos a su aplicación y listo.
Como cliente les recomiendo Postico ó BeeKeeper en la versión Community que es gratis.

Para crear el schema deben ejecutar la query:

create schema platzi authorization tuUsuario;

Eligiendo el usuario que les da la heroku de su base de datos.

Arrastran el archivo SQL de alumnos al editor de beekeepero, seleccionan todo el texto y lo ejecutan y listo.

Pueden instalar PostgreSQL en linux siguiendo este tutorial.
https://www.youtube.com/watch?v=40uGNsi7ysc

El curso tiene un buen comienzo, pues, las bases de datos son extensas y podremos tener buenos ejemplos prácticos para seguir el hilo del curso.

En mi caso salieron varios errores a instalar el pg con la v 12 y 13, asi que opté por usar Big query, es bastante sencillo y rápido, solo se debe convertir los archivos sql a csv para poder cargarlos

Pareciera caído el drive con los archivos Sql, si alguien me los puede facilitar se lo agradecería mucho.

Listo, seguí la guía y no tengo problema alguno, vamos a comenzar !!!

Producto Cartesiano A*B, Diferencia A-B, Unión: AUB

si les sale error al añadir query, modifiquen los siguiente

id INT, - debe ser - id INT ,

deben de darle un espacio a la coma

Para instalar pgAdmin en Debian y derivados (yo uso Kali-Linux Rolling), fuí a la página de documentación oficial: https://www.pgadmin.org/download/pgadmin-4-apt/ ;
Resulta que el segundo enlace está defectuoso (el “update” no fetchea bien las actualizaciones). Encontré este tutorial que (creo) puede servirle a algunos:
https://www.youtube.com/watch?v=L2eGwlkRRJ8 ;

Si tuvieron problemas instalando pgadmin4 en ubuntu 20.04 a mi me ayudo el siguiente tutorial: https://www.youtube.com/watch?v=lX9uMCSqqko&ab_channel=codingpub360

una opcion tambien es phpMyadmin

Pésima herramienta PGAdmin, a la mayoría les presenta problemas y no dan solución alguna… Llevo horas tratando de hacer que funcione sin tener éxito.

EXCELENTE MATERIAL

He seguidos todos los pasos y sin problema! muchas gracias 🤓, continuamos 😆

Todo listo para continuar, instale version 12 y todo bn.

Buen día,

Quise realizar el ejercicio son MS Sequal Server pero como las consultas entre Postgre y MS Sequal Server son distintas, no se que ajuste realizar al archivo platzi.alumnos para que el Query sea exitoso.

¿Alguien me puede ayudar?

Actualmente estoy usando la version 9.2 de postgreSQL para un trabajo, yo puedo instalar dos versiones (para instalar la 12) en un mismo equipo?

Go Ahead!!

Todo listo 😃

Vamos!!

perfect, lets go!! 😃