CursosEmpresasBlogLiveConfPrecios

Preguntas y Respuestas

Clase 22 de 22 • Curso de PostgreSQL 2017

Clase anteriorSiguiente clase

Contenido del curso

Introducción a Postgresql

  • 1
    PostgreSQL: qué es

    PostgreSQL: qué es

    07:59 min
  • 2
    Lo nuevo en Postgresql

    Lo nuevo en Postgresql

    01:32 min
  • 3
    ¿Por qué es PostgreSQL?

    ¿Por qué es PostgreSQL?

    19:41 min
  • 4
    Entendiendo el Core de Postgresql

    Entendiendo el Core de Postgresql

    11:50 min
  • 5
    Archivos de configuración

    Archivos de configuración

    13:55 min
  • 6
    Manejo De Conexiones

    Manejo De Conexiones

    30:21 min
  • 7
    Preguntas y Respuestas

    Preguntas y Respuestas

    19:12 min
  • 8
    [Extra] Cómo instalar PostgreSQL en Linux, Windows y OS X (Mac).

    [Extra] Cómo instalar PostgreSQL en Linux, Windows y OS X (Mac).

    00:00 min

Roles, Tipos de Datos, Rangos y JSON en Postgresql

  • 9
    Uso de roles en Postgresql

    Uso de roles en Postgresql

    19:14 min
  • 10
    Creando una base de datos

    Creando una base de datos

    06:57 min
  • 11
    Arquitectura de la información usando esquemas

    Arquitectura de la información usando esquemas

    04:43 min
  • 12
    Privilegios de usuario

    Privilegios de usuario

    08:27 min
  • 13
    Datos seriales

    Datos seriales

    05:35 min
  • 14
    Cadenas de texto

    Cadenas de texto

    06:03 min
  • 15
    Arreglos

    Arreglos

    11:07 min
  • 16
    Rangos

    Rangos

    09:55 min
  • 17
    JSON

    JSON

    15:47 min
  • 18
    Preguntas y Respuestas

    Preguntas y Respuestas

    10:40 min

JSON y Postgis

  • 19
    Manejo de Documentos JSON

    Manejo de Documentos JSON

    28:06 min
  • 20
    Postgres HStore

    Postgres HStore

    26:53 min
  • 21
    PostGis

    PostGis

    28:00 min
  • 22
    Preguntas y Respuestas

    Preguntas y Respuestas

    Viendo ahora
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads
        Elmer John Pérez Espinoza Pérez Espinoza

        Elmer John Pérez Espinoza Pérez Espinoza

        student•
        hace 10 años

        Gracias por la información pero mmmm no cubrió mis expectativas para mis propósitos, creo que deben estructurar mejor el curso, básico, intermedio avanzado, administración, programación...

          Tecno Motum

          Tecno Motum

          student•
          hace 9 años

          tienes toda la razon, tampoco cubrieron mis expectativas, pense que era un curso no una “vista” de lo que podia hacer. no explicaron ni pg_backup ni pg_restore ni la parte de consultas anidadas con alias.

        Cesar David Ramírez Dimaté

        Cesar David Ramírez Dimaté

        student•
        hace 8 años

        Este curso debería llamarse Curso básico de PostgreSQL. Se tocaron muchos temas por encima, no hubo preparación del curso a gran escala (en cuanto a uso de presentaciones y ejercicios más detallados) y claramente es necesaria la actualización a la nueva metodología que Platzi maneja actualmente. Independiente si no existen cambios de la versión 9.4 a la 10, es necesario que mejoren los siguientes puntos:

        • Definir bien cómo se crea un procedimiento almacenado (anónimo, definido) y cómo llamarlo.
        • Cómo realizar una conexión remota a la base de datos según los archivos de configuración.
        • Mostrar la interfaz de pgAdmin, ya sea la versión 3 o 4.
        • Explicación básica de cómo ejecutar una tarea programada para un procedimiento almacenado.
        • Explicar más en detalle funciones de agregación de PostgreSQL para manipular datos.
        • Explicar más en detalle cómo se manejan los privilegios y que pasa si un rol intenta ejecutar algo que no tiene permitido hacer.
        • Crear una plantilla personalizada desde cero y aplicarla en una base de datos nueva.
        • Explicar bien sobre el proceso de backup y restore.
        • Cómo realizar un rollback.
        • Explicar en detalle cómo instalar PostGIS ya que pide varias librerias previas para su uso.
          Jose Eduardo Nanni

          Jose Eduardo Nanni

          student•
          hace 7 años

          Totalmente de acuerdo!

          Mario Alejandro Cortez Salinas

          Mario Alejandro Cortez Salinas

          student•
          hace 7 años

          Estoy de acuerdo contigo, creo que a muchos nos gusta platzi por su metodología y en este curso por ser de hace varios años lo sentí muy parecido a lo que puedes encontrar en otras plataformas.

        Ortiz Ordoñez Jaime Javier

        Ortiz Ordoñez Jaime Javier

        student•
        hace 10 años

        Gracias pero el curso no cumplio mis espectativas....trabajo con windows y no aprendí nada. El profe muy bueno y sabe mucho pero a mi no me sirvio este curso.

          Angel Luis  Ramos Aquino

          Angel Luis Ramos Aquino

          student•
          hace 10 años

           mira este blog, es muy bueno.

          Beto Mendez Vilca

          Beto Mendez Vilca

          student•
          hace 9 años

          Este curso me parece que abarca lo basico pero igual no cumplio mis espectativas

        Nadir Antonio Soza Solis

        Nadir Antonio Soza Solis

        student•
        hace 8 años

        Mi resumen del curso…

        ##Leer tamaño de cada uno de los schemas de la BD

        #Opcion 1
        select schemaname,
        pg_size_pretty(sum(size)) size,
        pg_size_pretty(sum(external_size)) external_size
        from (
        SELECT
        schemaname,
        relname astable,
        pg_total_relation_size(relid) assize,
        pg_total_relation_size(relid) - pg_relation_size(relid) as external_size
        FROM pg_catalog.pg_statio_user_tables) as sub
        group by schemaname;

        #Opcion 2

        SELECT pg_database.datname,
        pg_size_pretty(pg_database_size(pg_database.datname)) AS SIZE
        FROM pg_database;

        CREAR ROLES

        #Roles con password simple
        CREATE ROLE nombre LOGIN PASSWORD ‘password’;

        #Roles con password cifrado
        CREATE ROLE nombre LOGIN ENCRYPTED PASSWORD ‘password’;

        #Eliminar roles
        DROP ROLE nombre;

        #Definir vigenicia o validez a los roles
        CREATE ROLE nombre LOGIN ENCRYPTED PASSWORD ‘password’ VALID UNTIL ‘infinity’; --Definicion por defecto para todos los roles
        CREATE ROLE nombre LOGIN ENCRYPTED PASSWORD ‘password’ VALID UNTIL ‘2018-8-1 00:00’; --Rol vigente hasta la fecha indicada

        #Consultar todos los roles
        SELECT * FROM pg_roles;

        #Asignar un rol a otro rol
        – rol1 hereda permisos de rol2
        GRANT rol1 TO rol2;
        – Debido a que los permisos de SUPERUSER no pueden ser heredados para poder utilizar esos permisos que pertenecen a mi rol padre
        – debo moverme de rol con el comando:
        SET ROLE rol2

        #Asignar Privilegios
        GRANT nombre_privilegio TO Rol WITH GRANT OPTION
        Ejm: GRANT ALL ON ALL TABLES IN SCHEMA nombre_schema TO Rol - Asignar todos los privilegios
        GRANT SELECT ON ALL TABLES IN SCHEMA nombre_schema TO Rol - Asignar privilegios para selecionar

        ##CREACION DE BASES DE DATOS
        CREATE DATABASE nombre_db;

        #Crear DB a partir de una plantilla
        – La plantilla por defecto de PostgreSQL es template1
        CREATE DATABASE nombre_db TEMPLATE nombre_template

        #Consultar toda la informacion de las BD de PostgreSQL
        SELECT * FROM pg_database;

        ##CREACION DE SCHEMAS
        CREATE SCHEMA nombre_schema

        #CREACION DE SECUENCIAS
        CREATE SECUENCE nombre_secuencia;

        #CONSULTAR SECUENCIAS
        – Obtener el siguiente valor de la secuencia
        SELECT NEXTVAL(‘nombre_secuencia’);
        – Obtener el valor actual de la secuencia
        SELECT CURRVAL(‘nombre_secuencia’);
        – Setea un valor especifico a la secuencia
        SELECT SETVAL(‘nombre_secuencia’,5);

        #FUNCIONES PARA TEXTO
        – Completa a la izquierda una cadena de texto con el caracter de relleno si no cumple con la longitud.
        lpad(‘txt’,longitud,relleno);
        – Completa a la derecha una cadena de texto con el caracter de relleno si no cumple con la longitud.
        rpad(‘txt’,longitud,relleno);
        – Elimina los espacios en blanco dentro de una cadena.
        trim(’ a ‘);
        – Elimina los espacios en blanco a la izquierda dentro de una cadena.
        ltrim(’ a’);
        – Elimina los espacios en blanco a la derecha dentro de una cadena.
        trim(‘a ‘);
        – Para concatenar texto
        ||
        –Funcion para separar una cadena y mostrarlas en partes separadas
        split_part(‘12-1235-122’,’-’,2);

        FUNCIONES PARA ARREGLOS
        –El indexador de arreglos en PostgreSQL inicia desde 1 no desde 0 como en algunos lenguajes
        –Transforma una cadena de texto en un arreglo, el punto en este caso es el separador. la consulta retornara {aa,bbb,cccc}
        -string_to_arrays(‘aa.bbb.cccc’,’.’)

        –Creacion de un arreglo
        -SELECT ARRAY[2014,2015,2016] as Ar
        –Creacion de un arreglo desde los datos de una tabla
        -SELECT ARRAY(SELECT DISTINCT genero FROM DATOS) as Arr
        –Castear un string a una arreglo de texto con ::
        -SELECT ‘{uno,dos,tres}’::text[] as x
        –Consultar un elemento especifico dentro del arreglo
        -SELECT c[1] FROM(SELECT ‘{uno,dos,tres}’::text[] as c) as Y
        –Consultar rango de elementos especifico dentro del arreglo
        -SELECT c[2:3] FROM(SELECT ‘{uno,dos,tres}’::text[] as c) as Y
        –Devuelve los elementos del arreglo el forma de registros de una columna
        -SELECT UNNEST(c[2:3]) FROM(SELECT ‘{uno,dos,tres}’::text[] as c) as Y

        – USO DE RANGOS

        • SELECT * FROM data WHERE ‘[0,6)’::int8range;
          –(0 = 6 (apartir del 0 en adelante)
          –[0 = 6 (apartir del 0 en adelante pero incluye el 0)
          – Query para mostrar los datos de una columna que estan dentro del rango
          – Sintaxis @> nombre_columna para saber si esta dentro del rango
          SELECT * FROM data WHERE ‘[70,0,71,0)’::numrange @> height;

        JSON EN POSTGRESQL
        –JSON almacena el documento intacto tal y como lo enviamos a almacenar, respeta los espacios que utilizamos para que la lectura del documento sea mas comoda.
        –JSONB alamacena el documento de forma binaria lo cual utiliza menos espacio de memoria.

        –Crear una tabla con un tipo de datos JSON
        CREATE TABLE profiles(id SERIAL PRIMARY KEY,profile JSON);
        INSERT INTO profiles(profile) values(’{{“name”:“Nadir”,“tech”:[“java”,“sql”,“c#”]}’);
        SELECT json_extarct_path_text(profile,‘name’);

        CREATE TABLE profiles_b(id SERIAL PRIMARY KEY,profile JSONB);
        INSERT INTO profiles_b(profile) values(’{{“name”:“Nadir”,“tech”:[“java”,“sql”,“c#”]}’);

        SELECT id,profile->>‘name’ from profiles;
        SELECT * from profiles WHERE profile->>‘name’=‘Nadir’;

        –Convertir la fila de registro de una tabla a formato JSON
        -Retorna todas las filas en formato JSON
        SELECT row_to_json(data) from data;
        -Retorna columnas especificas pero los nombres de las llaves no corresponden a las almacenadas
        SELECT row_to_json(row(columna1,columna3)) from data;
        -Retorna las columnas especificas con sus llaves correspondientes
        SELECT row_to_json(t) FROM (SELECT columna1,columna3 from data) t;
        –Retorna las filas de la consulta como un unico documento JSON, no como uno por cada Fila como las consultas anteriores.
        SELECT array_to_json(array_agg(row_to_json(t))) FROM (SELECT columna1,columna3 from data) t;

        Herramientas para respaldos de POSTGRESQL
        –pg_backups
        –pg_jobs

        Extensiones para postgreSQL
        begriffs/postgrest : Proyecto GitHub para API REST
        dockyard/postgres_ext-serializers : extension para serealizar con Ruby y Ruby on Rails

        POSTGRESQL HSTORE
        –Permite almacenar documentos o datos no estructurados. Es una extension que viene instalda pero no viene activa.

        -Activar HSTORE
        CREATE EXTENSION hstore
        -Inhabilitar HSTORE
        DROP EXTENSION hstore

        –Crea una tabla con una columna hstore
        CREATE TABLE hprofiles(id SERIAL PRIMARY KEY,profile hstore);
        –Insertamos registros de tipo no estructurado en una columna de tipo hstore.
        INSERT INTO hprofiles(profile) VALUES(‘name=>Mario, ruby=>true,postgreSQL=>true’);
        –Selecionamos los registros que tienen una llave llamada name en la columna profile.
        SELECT profile ->>‘name’ from hprofiles;
        –Selecionamos los registros que en la columna profile contine una llave llamada ruby, se utiliza cuando los registros en la columna difieren en sus llaves.
        SELECT * FROM hprofiles WHERE (profile->‘ruby’)::boolean;
        –Selecionamos los registros que en la columna profile contine una llave llamada nodejs y su valor es true.
        SELECT * FROM hprofiles WHERE profile @>‘nodejs=>true’;
        –Selecionamos los registros que en la columna profile exista una llave llamada nodejs
        SELECT * FROM hprofiles WHERE profile ? ‘nodejs’;
        – El signo ?& significa contiene ambas llaves.
        SELECT * FROM hprofiles WHERE profile ?& ARRAY[‘nodejs’,‘ruby’];
        – El signo ?| significa contiene alguna de las llaves.
        SELECT * FROM hprofiles WHERE profile ?| ARRAY[‘nodejs’,‘ruby’];
        –Actualiza los registros de la columna profile y le adiciona la llave html5.
        UPDATE hprofiles SET profile=profile || ‘html5=>true’::hstore;
        –Con la funcion delete eliminamos una llave dentro de la columna profile.
        UPDATE hprofiles SET profile= DELETE(profile,‘html5’);
        –Retorna un arreglo con todas las llaves que contiene la columna profile.
        SELECT akeys(profile) from hprofiles;
        –Retorna en columnas todas las llaves que contiene la columna profile.
        SELECT DISTINCT skeys(profile) from hprofiles;
        –la funcion hstore_to_json transforma una columna de htore a json
        SELECT hstore_to_json(profile) from hprofiles

        POSTGRESQL POSTGIS
        –postgis.net
        – No viene activo por defecto en postgreSQL por lo que debemos activar la extension
        – Las columnas de tipo geography pueden ser indexadas
        – Hay librerias que entienden POSTGIS en java, Ruby on Rails y Python
        – CREATE EXTENSION postgis;

        CREATE hospitales (id serial PRIMARY KEY,
        location geography,
        position geometry(POINT, 4326),
        name text);

        INSERT INTO hospitales (name,location)
        VALUES (‘Hostial Asuncion’,ST_POINT(-6.3788,53.2911));

        INSERT INTO hospitales (name,location)
        VALUES (‘Hostial SUMEDICO’,ST_POINT(-7.3288,43.2911));
        –Compara la distancia de un punto respecto a la localizacion de los hospitales
        SELECT name, ST_DISTANCE(location,ST_POINT(-6.3788,53.2911)::geography);
        –Verifica que hospitales estan en un radio de u punto
        SELECT name FROM hospitales WHERE ST_DWithin(location,ST_POINT(-6.2379,53.3411)::geography,1000);
        –Retorna la informacion en texto
        SELECT name, ST_ASTEXT(location) from hospitales;
        – Retorna la informacion en formato JSON
        SELECT name, ST_ASGEOJSON(location) from hospitales;
        ---- Retorna la informacion en formato XML
        SELECT name, ST_ASKML(location) from hospitales;

        PARA INVESTIGAR
        –Funciones de Ventana
        –Funciones de Particion
        – Commons Table Expresion CTE

        Roberto Carlos Terrones Rojas

        Roberto Carlos Terrones Rojas

        student•
        hace 8 años

        No fue el curso que me esperaba. Fue un curso de repaso, dirigido para personas que tienen un conocimiento previo. Ojalá lo actualicen y sea un curso para aprender desde cero y se haga uso de la interfaz gráfica. 👎

          Nicole Chapaval

          Nicole Chapaval

          Team Platzi•
          hace 8 años

          Hey! Queremos actualizar este curso pronto. Me gustaría mucho saber más sobre los conceptos que no te quedaron claros o si hay algo en particular que crees que faltó.

          Diego Forero

          Diego Forero

          Team Platzi•
          hace 8 años

          Un administrador de bases de datos siempre prefiere trabajar sobre la terminal ya que es mucho más rápida y tiene control absoluto de todo lo que hace, el trabajar con Interfaces Gráficas hacen que operaciones como queries sean lentas porque el software tiene que pintar la información.

        Michel Carvajal

        Michel Carvajal

        student•
        hace 8 años

        Me gustó mucho el curso, excelente maestro Mario Chávez, creo que aprendí bastante en poco tiempo, pero en lo personal creo que faltan muchas cosas por ver, por ejemplo me gustaría haber visto algunas de las principales funciones que tiene el pgAdmin.

        Concuerdo con otros comentarios que hablan de separar el curso en principiantes, intermedios y avanzados.

        Omar Valentín Ortega Martínez

        Omar Valentín Ortega Martínez

        student•
        hace 10 años

        Dependerá del problema a resolver si es mejor utilizar procedimientos almacenados o escribir el código SQL en algún componente del Framework.
        Por ejemplo:
        Tarea programada: Procedimiento almacenado
        Operacion CRUD Simple: código SQL o DML desde componente de software

        Luis Ramirez L Luis Luis

        Luis Ramirez L Luis Luis

        student•
        hace 10 años

        Hola... tendrán las ligas a estos videos que el profesor quedo de estar al pendiente dentro de Patzi ??? 

        Javier Insuasti Morales

        Javier Insuasti Morales

        student•
        hace 9 años

        Se nota que el profe Mario sabe muchisimo de PSQL pero a mi parecer el curso no esta muy estructurado, es algo disperso, pero aprendi muchisimo acerca de las funciones unicas de PSQL

        Jordan Lancheros

        Jordan Lancheros

        student•
        hace 7 años

        Me gustaria que hubieran ejemplos de querys complejos, con CTE
        como optimizar querys

        Daniel Ramírez Mendoza

        Daniel Ramírez Mendoza

        student•
        hace 7 años

        El profesor se ve que sabe mucho acerca de PostgreSQL, se que el ¨curso¨ fue grabado en vivo, lo cual no es fácil, pero debido a eso le falta estructuración del contenido explicado.

        Gilberto Murillo

        Gilberto Murillo

        student•
        hace 8 años

        Muy buen curso, su enfoque en ideas al impacto y uso de este SMBD.

        Alexander Silvera

        Alexander Silvera

        student•
        hace 9 años

        Cuando se va a actualizar el curso ya que tengo las mismas expectativas que los demás compañeros??

        Luis Agustin Suaña Jala

        Luis Agustin Suaña Jala

        student•
        hace 7 años

        Tenia otra expectativa del curso, pero me gusto los temas que se trataron.
        Buen final “dejen MySQL, váyanse a PostgreSQL” xD

        Alejandro Valenzuela

        Alejandro Valenzuela

        student•
        hace 7 años

        Buenas, estuvo bueno el curso, para aquellos que no conocen postgreSQL, este seria una introducción. Estaría bueno que lo aclaren que es solo un curso básico y no Profesional porque todo esperamos algo mas elaborado, osea, en profundizar los conceptos mas ejemplos etc.
        También quería mencionar sobre el examen final, que estaría bueno que nos permita rever las preguntas una vez contestadas.

        Saludos gracias profe!

        Carlos Alberto Gonzalez Rembao

        Carlos Alberto Gonzalez Rembao

        student•
        hace 7 años

        Creo que el curso es muy, muy básico, bueno pero basico. falta muchos temas y me gustaría uno que tenga que ver con la administración de la base de datos postgreSQL.

        Empezó bien y luego fue bajando.

        Usuario anónimo

        Usuario anónimo

        user•
        hace 7 años

        Muy buen contenido del curso.

        Jhon Elvis Ramírez Paredes

        Jhon Elvis Ramírez Paredes

        student•
        hace 8 años

        Humm el curso no es como lo imaginaba, pensé que seria mas practico y ver el producto como una base de datos de restaurante o libreria

          Diego Forero

          Diego Forero

          Team Platzi•
          hace 8 años

          El curso esta enfocado a la administración de bases de datos postgresql, no tanto al lenguaje sql, que es similar en todos los motores de bases de datos. Lo que cambia sobre sql en cada motor es el uso de campos especiales como range field o json field que los tiene postgresql pero no mysql.

          Cesar David Ramírez Dimaté

          Cesar David Ramírez Dimaté

          student•
          hace 8 años

          @GOLLUM23, el curso le falta muchísimo ya que se tocaron pinceladas (temas básicos) de muchas cosas. No es pretexto que la última versión no ha cambiado a la impartida en el curso (la 9.4) sino que tanto la metodología y profundidad del curso debió abarcar muchos temas.

        Carlos Jimenez

        Carlos Jimenez

        student•
        hace 9 años

        Buenas noches,

        Necesito saber como generar backup, como cargar backups,
        como cargar un backup creado en mi computador en aws

          Hernán Garcia

          Hernán Garcia

          student•
          hace 9 años

          Hola qué tal Carlos? el comando para hacer backups de la BD en PostgreSQL es:

          pg_dump dbname > outfile

          Luego en AWS puedes utilizar RDS donde debes utilizar un comando:

          psql -h <IP de tu BD> dbname < infile

          Si tienes dudas nos avisas,
          Saludos!

        Enrique Gálvez

        Enrique Gálvez

        student•
        hace 8 años

        Para mi gusto, le falta una parte importante sobre la administración del motor Postrgresql, realización de backups, gestión de las instancias, actualización de una versión a otra (Debian termina ejecutando dos o más instancia consecutivas con puertos distintos), uso en servidores redundados, etc… En fin, la gestión del servidor.