Lastima no poder darle LIKE al video. Por que se lo merece!
Configurar Postgres
Qué aprenderás sobre PostgreSQL
¿Qué es Postgresql?
Instalación y configuración de la Base de Datos
Interacción con Postgres desde la Consola
PgAdmin: Interacción con Postgres desde la Interfaz Gráfica
Archivos de Configuración
Comandos más utilizados en PostgreSQL
Presentación del Proyecto
Tipos de datos
Diseñando nuestra base de datos: estructura de las tablas
Jerarquía de Bases de Datos
Gestión de la información en bases de datos
Creación de Tablas
Particiones
Creación de Roles
Llaves foráneas
Inserción y consulta de datos
Inserción masiva de datos
Generar consultas avanzadas
Cruzar tablas: SQL JOIN
Funciones Especiales Principales
Funciones Especiales Avanzadas
Vistas
PL/SQL
Triggers
Integrar bases de datos con servicios externos
Simulando una conexión a Bases de Datos remotas
Transacciones
Otras Extensiones para Postgres
Implementar mejores prácticas
Backups y Restauración
Mantenimiento
Introducción a Réplicas
Implementación de Réplicas en Postgres
Otras buenas prácticas
Cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Oswaldo Rodríguez González
Aportes 63
Preguntas 6
Lastima no poder darle LIKE al video. Por que se lo merece!
Puedes listar todas las extensiones disponibles en postgres y visualizar una pequeña descripción de su funcionamiento con este comando.
SELECT * FROM pg_available_extensions;
Hola a todos, en el siguiente ejemplo usé la extensión de encriptación y use dos parámetros para el hash md5, en los cuales uso las funciones salt (la cual aplica valores aleatorios) y **md5 básico ** para evidenciar las diferencias en los casos de usuarios con las mismas contraseñas:
En mi caso usaría con frecuencia la extensión PostGIS que habilita **análisis espacial **y manejo de geometrías, todo lo necesario para un Sistema de información geográfica.
Excelente
CREATE EXTENSION fuzzystrmatch;
SELECT levenshtein('oswaldo', 'osvaldo')
SELECT difference('oswaldo', 'osvaldo');
SELECT difference('beard', 'bird');
Información resumida de esta clase
#EstudiantesDePlatzi
Existen algunas extensiones instaladas más no activas dentro de PgAdmin que nos ayudan a ejecutar ciertos comandos
Con levelnshtein encontramos el número de diferencias que tienen dos palabras en su escritura.
Es importante crear la extensión para usar las funciones normalmente
Con difference encontramos que tan similares suenan dos palabras
create extension earthdistance cascade;
select
(
point(-81.3927381, 30.2918842)<@>point(-87.6473133, 41.8853881)
) as distance;
el resultado
873.203527399339
me hubiera servido para cuando trabajé en un sistema de geolocalización.
CREATE EXTENSION pgcrypto;
SELECT crypt('123456789', 'md5');
-- Esta función nos permite encriptar un password
-- segun la forma de encriptación
Acá una muy buena lista de algunas de las extenciones más útiles
Estaba revisando Soundex, que está dentro de fuzzystrmach, y ya me ayuda entender como funcionan aplicaciones como Duolingo.
Hace unos años hubiera sido interesante haber conocido esta extensión
--CREATE EXTENSION unaccent;
SELECT unaccent('Última acción en la academia española')
--Retorna sin acentos
Ultima accion en la academia espanola
Me encontré este caso con Unicode y quise probar
SELECT CONCAT(E'\u4f60', E'\u597d', E'\uff0c', E'\u4e16', E'\u754c')
SELECT unaccent(CONCAT(E'\u4f60', E'\u597d', E'\uff0c', E'\u4e16', E'\u754c'))
-- A este nivel no llega, por buena razón creo
<code>
Entendiendo SQL en Posgresql
https://www.postgresql.org/docs/12/extend.html
**QUE CHIMBA DE CLASEEEE, AMO PLATZI **
no creí que fuera real pero hay una extensión que te deja hacer machine learning en postgres se llama mindsdb
https://mindsdb.com/postgresql-machine-learning
jjajajaja yo pensé que iba a sonar algo ajajajaja
Encontre la funcion earth() que devuelve el radio supuesto de la Tierra. Util en la construcción de aplicaciones de geolocalizacion, distancias y de mas.
No tenia ni idea que en SQL habia este tipo de funcionalidades.
hola creo que uno bueno para implementar es : ¨passwordcheck¨
Excelente característica, no sabia de estas capacidades de postgres
Algo a tener en cuenta es que algunas extensiones pueden agregar bastantes funciones e incluso tablas a la base de datos. Lo cual en algunos casos puede aumentar artificialmente el tamaño de la misma.
Por ende, aunque pueda parecer una buena idea importar todas las extensiones que creas que se puedan usar al inicio del proyecto. Lo mejor es hacerlo a medida que estas se vuelven necesarias para evitar que extensiones sin usar estén haciendo la base de datos más grande de lo que debería.
Wow, simplemente Perfecto!
beard:
bird:
El poder de una m:
una clase muy interesante
La extensión que me pareció interesante es "The pg_stat_statements". Te da en una tabla todos los statements (SELECT, UPDATE, etc) ejecutados en un servidor. Puede ser útil para alguien que sea el administrador líder de los servidores de una empresa (pienso yo). Aquí un screenshot de algunos stats:
<SELECT * FROM vip
JOIN
dblink ('dbname=transporte
port=5432
host=127.0.0.1
user=usuario_consulta
password=admin',
'SELECT id, nombre FROM pasajeros')
AS datos_remotos (id integer, nombre VARCHAR)
USING (id);>
/*Convierte un nombre (preferiblemente en ingles) en codigo
para comparar sus sonidos.
El siguiente select convierte con la funcion "soundex() un nombre a codigo y luego compara con la fucion ""difference", que tan similares son */
SELECT soundex('Pablo'), soundex('Paul'), difference('Pablo', 'Paul');
La extensión
uuid-ossp
Es usada para tener identificador universales únicos.
UUID
SELECT levenshtein('oswaldo','Osvaldo');
-- Funcion que retorna el número de letras
-- que hay que cambiar para que las palabras
-- sean iguales.
SELECT difference('oswaldo','osvaldo');
-- Esta función nos retorna de 0 a 4 que tan
-- iguales suenan las dos palabras.```
😉
SELECT levenshtein('beer', 'bear');
SELECT difference('son', sun');
en el caso de que no les agarre link de la pagina es porque hay versiones posteriores solo hay que hacer cambiar el numero en el link: https://www.postgresql.org/docs/11/contrib.html el cambio seria https://www.postgresql.org/docs/16/contrib.html
Interesante, revise otras extensiones muy interesantes:
https://www.timescale.com/blog/top-5-postgresql-extensions/
Bastante interesante los diferentes usos que se le pueden dar a postgres, y que n solo sirva para bases de datos.
Excelente clase.
beard y bird se pronuncian parecido pero NO IGUALES, la primera lleva una i muy parecida a la del español y la 2da tiene una vocal que es como una combinacion entre una “i” y una “e”
Una clase MUY interesante y util !!
Me pareció interesante la extensión earthdistance.
https://www.postgresql.org/docs/11/earthdistance.html
En realidad son 2 extensiones. En el link explica la forma de instalarla.
Se pueden realizar diferentes cálculos sobre la superficie terrestre (distancias, coordenadas, distancia secante, etc) asumiendo que la tierra es perfectamente esférica.
Por ejemplo: de esta manera podemos tomar estos cálculos como referencia para compararlos con los realizados en Postgis usando algún geom específico. De esta manera podemos tener una idea de cómo los distintos supuestos de la deformación de la tierra (geom) afectan estos cálculos.
Wow esta extensión me gusto mucho.
La mas interesante para mi caso son dblink y postgis,
Por si trabajan con geología: Earth distance
PostGis, no lo conocía. Pero ahora se en que puedo usarlo justo.
CREATE EXTENSION fuzzystrmatch;
Select levenshtein(‘Oswaldo’, ‘osvaldo’);
Select difference(‘Oswaldo’, ‘osvaldo’);
Select difference(‘Beard’, ‘Bird’);
la que me parece mas interesante el la le SELECT levenshtein, ya que la comparación de caracteres si se aplica muy bien a una base de datos y por supuesto dblink es indispensable
CREATE EXTENSION name_extension; activamos la extensión;
Alguien me podria ayudar porque si puedo instalar la extencion pero no la puedo ejecutar, aclaro que si la pude instalar.
Ya casi te tengo Data Tree Gardener 😂
Uffff me sorprendo todos los días con pequeñas-grandes cosas. Gracias Platzi, gracias Porfe.
Extensiones
-- Creamos la extenxion
CREATE EXTENSION fuzzystrmatch;
-- Funcion que retorna el numero de letras que hay que cambiar para las palabras iguales. 1: True, 0: False.
SELECT levenshtein('oswaldo', 'osvaldo');
-- Funcion para saber que tan iguales suenan, manda valores de 0 a 4, 0: Nada parecido, 4: Muy parecido.
SELECT difference('oswaldo', 'osvaldo');
SELECT difference('beard', 'bird');
Funciones de extensiones para instalar.
Activar la extensión fuzzystrmach
Función levenshtein
Función difference
Appendix F. Additional Supplied Modules
Podemos ver la información de extensiones
Me encantó esta clase mostranos otras funciones que nos pueden ayudar
--Creando la extensión
CREATE EXTENSION fuzzystrmatch;
--Grado de Diferencia de palabras
SELECT levenshtein ('Mario','Maria');
--Grado de pronunciación de palabras
SELECT difference ('date','bite');
SELECT difference ('java','python');```
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?