{"id":11758,"date":"2021-02-12T19:48:41","date_gmt":"2021-02-12T22:48:41","guid":{"rendered":"https:\/\/geekblogti.wpengine.com\/?p=11758"},"modified":"2024-10-11T11:07:12","modified_gmt":"2024-10-11T14:07:12","slug":"tutorial-postgresql-introducao-pratica-ao-servico","status":"publish","type":"post","link":"https:\/\/www.geekhunter.com/pt/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/","title":{"rendered":"Tutorial PostgreSQL: introdu\u00e7\u00e3o pr\u00e1tica ao servi\u00e7o"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\">O excesso de informa\u00e7\u00f5es geradas e gerenciadas pelas empresas nunca foi t\u00e3o grande, e s\u00f3 aumenta com o passar do tempo.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Lidar com essa enxurrada exige tecnologia, intelig\u00eancia e ferramentas. Para isso, bancos de dados objeto-relacionais viabilizam a organiza\u00e7\u00e3o e a qualidade das informa\u00e7\u00f5es do seu neg\u00f3cio.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Estamos na era digital e isso refor\u00e7a a import\u00e2ncia de se manter atualizado com as tend\u00eancias de Big Data e Big Query.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-o-que-postgresql\">O que \u00e9 PostgreSQL?<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O PostgreSQL ou somente &#8220;postgres&#8221; \u00e9 um sistema de gerenciamento de <strong><a href=\"https:\/\/www.geekhunter.com\/pt\/blog\/banco-de-dados-nosql\/\">banco de dados<\/a><\/strong> objeto relacional (<strong>SGBDOR<\/strong>), desenvolvido como projeto de c\u00f3digo aberto com mais de 30 anos de desenvolvimento ativo sob licen\u00e7a do TLP (The PostgreSQL License).\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Dessa forma, o PostgreSQL tem um forte reputa\u00e7\u00e3o de confiabilidade, robustez, recursos e desempenho, principalmente pela dedica\u00e7\u00e3o da comunidade de c\u00f3digo aberto por tr\u00e1s do software.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O PostgreSQL suporta cargas de trabalho consider\u00e1veis e consegue processar grandes volumes de informa\u00e7\u00f5es.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Algumas caracter\u00edsticas desse SGBDOR s\u00e3o:<\/strong><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Consultas complexas.<\/li>\r\n<li>Software robusto e de alta qualidade com c\u00f3digo de manuten\u00e7\u00e3o e bem comentado.<\/li>\r\n<li>Chaves estrangeiras.<\/li>\r\n<li>Integridade transacional.<\/li>\r\n<li>Controle de concorr\u00eancia multi-vers\u00e3o.<\/li>\r\n<li>Suporte ao modelo h\u00edbrido objeto relacional.<\/li>\r\n<li>Facilidade de acesso.<\/li>\r\n<li>Linguagem procedural em v\u00e1rias linguagens para procedimentos armazenados.<\/li>\r\n<li>Indexa\u00e7\u00e3o por texto.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, o PostgreSQL utiliza e estende a linguagem SQL (Structured Query Language), a linguagem de instru\u00e7\u00f5es utilizadas para conversar com banco de dados relacionais, podendo ser executado em todos os principais sistemas operacionais.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Alguns recursos deste SGBD s\u00e3o:<\/strong><\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-tipos-de-dados\">Tipos de Dados<\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Primitivos:<\/strong> Integer, Numeric, String, Boolean<\/li>\r\n<li><strong>Estruturada: <\/strong>Date\/Time, Array, Range, UUID<\/li>\r\n<li><strong>Documento:<\/strong> JSON\/JSONB, XML, Key-value (Hstore)<\/li>\r\n<li><strong>Geometria: <\/strong>Ponto, Linha, C\u00edrculo, Pol\u00edgono<\/li>\r\n<li><strong>Customiza\u00e7\u00f5es:<\/strong> Tipos compostos e personalizados<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-integridade-de-dados\">Integridade de Dados<\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>UNIQUE, NOT NULL<\/li>\r\n<li>Chaves Prim\u00e1rias<\/li>\r\n<li>Chaves Estrangeiras<\/li>\r\n<li>Restri\u00e7\u00f5es de Exclus\u00e3o<\/li>\r\n<li>Bloqueios expl\u00edcitos, bloqueios consultivos<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-simultaneidade-performance\">Simultaneidade, Performance<\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Indexa\u00e7\u00e3o<\/li>\r\n<li>Transa\u00e7\u00f5es, Transa\u00e7\u00f5es Aninhadas<\/li>\r\n<li>Controle de Simultaneidade de v\u00e1rias Vers\u00f5es<\/li>\r\n<li>Paraleliza\u00e7\u00e3o de Consultas<\/li>\r\n<li>Particionamento de Tabela<\/li>\r\n<li>Todos os n\u00edveis de isolamento de transa\u00e7\u00e3o definidos no padr\u00e3o SQL<\/li>\r\n<li>Compila\u00e7\u00e3o just-in-time de express\u00f5es<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-confiabilidade-recupera-o-de-desastres\">Confiabilidade, Recupera\u00e7\u00e3o de Desastres<\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Log de grava\u00e7\u00e3o antecipada<\/li>\r\n<li>Replica\u00e7\u00e3o: Ass\u00edncrona, S\u00edncrona, L\u00f3gica<\/li>\r\n<li>Recupera\u00e7\u00e3o Pontual, Reservas Ativas<\/li>\r\n<li>Tablespaces<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-seguran-a\">Seguran\u00e7a<\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Autentica\u00e7\u00e3o<\/li>\r\n<li>Sistema de Controle de Acesso Robusto<\/li>\r\n<li>Seguran\u00e7a em N\u00edvel de Coluna e Linha<\/li>\r\n<li>Autentica\u00e7\u00e3o Multifator com Certificados<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-extensibilidade\">Extensibilidade<\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Fun\u00e7\u00f5es e Procedimentos Armazenados<\/li>\r\n<li>Linguagens Procedurais<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-internacionaliza-o-pesquisa-de-texto\">Internacionaliza\u00e7\u00e3o, Pesquisa de Texto<\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Suporte para conjunto de caracteres internacionais<\/li>\r\n<li>Case-insensitive<\/li>\r\n<li>Pesquisa de Texto Completo<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Quando baixamos e instalamos o PostgreSQL, junto vem um utilit\u00e1rio bastante importante: o <strong>psql<\/strong>.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"720\" height=\"200\" class=\"wp-image-11763\" src=\"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2021\/02\/cta-vaga-ideal.png\" alt=\"Banner para encontrar a vaga ideal para sua carreira na Geekhunter.\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-vaga-ideal.png 720w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-vaga-ideal-150x42.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-vaga-ideal-100x28.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-vaga-ideal-600x167.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-vaga-ideal-450x125.png 450w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-psql-para-gerenciar-o-postgresql\">PSQL para gerenciar o PostgreSQL<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Psql \u00e9 um utilit\u00e1rio utilizado para administrar e gerenciar o PostgreSQL. \u00c9 um cliente terminal que permite digitar comandos SQL ou meta-comandos, permitindo enviar instru\u00e7\u00f5es ao Postgres.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Outra caracter\u00edstica \u00e9 que\u00a0 podemos efetuar conex\u00f5es remotas e tamb\u00e9m us\u00e1-lo como uma ferramenta de script.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">No caso do Windows, para acess\u00e1-lo, abra o Prompt de Comando (CMD) e digite:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>psql --U postgres<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para efetuar conex\u00f5es remotas, podemos fazer:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>psql -h hostname -p 5432 -d dbname -U username -W<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Vale enfatizar que, na configura\u00e7\u00e3o de acesso ao postgres, n\u00e3o utilize uma senha fraca, como normalmente usam \u201cpostgres\u201d. Desse jeito, isso tornar\u00e1 o sistema vulner\u00e1vel a ataques de crackers.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O usu\u00e1rio <strong>postgres <\/strong>\u00e9 um superusu\u00e1rio padr\u00e3o do PostgreSQL, similar ao usu\u00e1rio root do MySQL. Quando voc\u00ea rodar o comando, ser\u00e1 pedida a senha e voc\u00ea dever\u00e1 digitar a senha que foi configurada.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Se tudo ocorreu bem, nenhum erro foi gerado e j\u00e1 est\u00e1 com acesso. Agora, podemos rodar comandos para se comunicar com o PostgreSQL, utilizando meta-comandos ou SQL puro. Inclusive, vamos falar um pouquinho sobre estes \u00faltimos.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-meta-comandos\">Meta-comandos<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Um meta-comando \u00e9 um comando para cliente psql, j\u00e1 que o SQL \u00e9 enviado para o servidor de banco de dados.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Todas as linhas que come\u00e7am com contrabarra<\/strong> ( \\ ), ou barra invertida, como o primeiro caractere n\u00e3o vazio <strong>s\u00e3o presumidos como meta-comandos<\/strong>. O pr\u00f3prio psql processa esse comando, tornando-o mais \u00fatil para administra\u00e7\u00e3o e scripts.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Alguns meta-comandos e para que servem s\u00e3o:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\a<\/strong> &#8211; se o formato de sa\u00edda da tabela atual n\u00e3o estiver alinhado, ele ser\u00e1 alterado para alinhado. Se n\u00e3o estiver desalinhado, \u00e9 definido como desalinhado.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\q<\/strong> &#8211; informa ao cliente para sair do banco de dados.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\cd<\/strong> &#8211; altera o diret\u00f3rio de trabalho atual. Sem argumento, muda para diret\u00f3rio home do usu\u00e1rio atual.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\C<\/strong> &#8211; define o t\u00edtulo de qualquer tabela sendo impressa como resultado de uma consulta ou remove a defini\u00e7\u00e3o de qualquer t\u00edtulo.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\connect<\/strong> &#8211; estabelece uma nova conex\u00e3o com o servidor PostgreSQL.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\copy<\/strong> &#8211; esta \u00e9 uma opera\u00e7\u00e3o que executa um comando SQL COPY, mas em vez de o servidor ler ou gravar o arquivo especificado, o psql l\u00ea ou grava o arquivo e roteia os dados entre o servidor e o sistema de arquivos local.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\copyright<\/strong> &#8211; mostra os direitos autorais e os termos de distribui\u00e7\u00e3o do PostgreSQL.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\d<\/strong> &#8211; para cada rela\u00e7\u00e3o ou tipo composto correspondente ao padr\u00e3o, mostra todas colunas, seus tipos, o espa\u00e7o de tabela (se n\u00e3o o padr\u00e3o) e quaisquer atributos especiais, como NOT NULL ou padr\u00f5es.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\da<\/strong> &#8211; lista fun\u00e7\u00f5es agregadas, junto com seu tipo de retorno e os tipos de dados nos quais operam. Se o padr\u00e3o for especificado, apenas agregados cujos nomes correspondem ao padr\u00e3o s\u00e3o mostrados.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\db<\/strong> &#8211; lista os tablespaces.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\dc<\/strong> &#8211; lista convers\u00f5es entre codifica\u00e7\u00f5es de conjunto de caracteres.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\dC<\/strong> &#8211; lista os tipos de convers\u00f5es.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\dd<\/strong> &#8211; mostra as descri\u00e7\u00f5es de objetos de restri\u00e7\u00e3o de tipo, classe de operador, fam\u00edlia de operadores, regras e gatilho.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\dD<\/strong> &#8211; lista os dom\u00ednios.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\ddp<\/strong> &#8211; lista as configura\u00e7\u00f5es de privil\u00e9gios de acesso padr\u00e3o.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\df<\/strong> &#8211; lista fun\u00e7\u00f5es, juntamente com seus tipos de dados de resultado, tipo de dados de argumento e tipos de fun\u00e7\u00e3o.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\dl<\/strong> &#8211; alias para \\lo_list, que mostra uma lista de objetos grandes.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\dn<\/strong> &#8211; lista os esquemas (namespaces).<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\do<\/strong> &#8211; lista os operadores com seus operandos e tipos de resultado.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\dp<\/strong> &#8211; listas tabelas, visualiza\u00e7\u00f5es e sequ\u00eancias com seus privil\u00e9gios de acesso associados.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\du<\/strong> &#8211; lista fun\u00e7\u00f5es do banco de dados.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\echo<\/strong> &#8211; imprime os argumentos avaliados na sa\u00edda padr\u00e3o, separados por espa\u00e7os e seguidos por uma nova linha.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\encoding<\/strong> &#8211; define a codifica\u00e7\u00e3o do conjunto de caracteres do cliente. Sem um argumento, esse comando mostra a codifica\u00e7\u00e3o atual.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\f <\/strong>&#8211; define o separador de campo para sa\u00edda de consulta n\u00e3o alinhada. O padr\u00e3o \u00e9 barra vertical (|). \u00c9 equivalente a \\pset fieldsep.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\g<\/strong> &#8211; envia o buffer de consulta atual ao servidor para execu\u00e7\u00e3o.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\help<\/strong> &#8211; fornece ajuda de sintaxe no comando SQL especificado. Se o comando n\u00e3o for especificado, o psql listar\u00e1 todos os comandos para os quais a ajuda de sintaxe est\u00e1 dispon\u00edvel.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\i<\/strong> &#8211; l\u00ea a entrada do arquivo filename e o executa como se tivesse sido digitado no teclado.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\r<\/strong> &#8211; reinicia (limpa) o buffer de consulta.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\s<\/strong> &#8211; imprime o hist\u00f3rico da linha de comando do psql para filename.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\set<\/strong> &#8211; define o nome da vari\u00e1vel psql para o valor ou, se mais de um valor for fornecido, para concatena\u00e7\u00e3o de todos eles.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\t<\/strong> &#8211; alterna a exibi\u00e7\u00e3o de cabe\u00e7alhos de nome de coluna de sa\u00edda e rodap\u00e9 de contagem de linha.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>\\z<\/strong> &#8211; lista tabelas, visualiza\u00e7\u00f5es e sequ\u00eancias com seus privil\u00e9gios de acessos associados.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A defini\u00e7\u00e3o completa de todos os meta-comandos, al\u00e9m de todos os aspectos oficiais relacionados ao postegres, pode ser encontrado na documenta\u00e7\u00e3o oficial do PostgreSQL: <a href=\"https:\/\/www.postgresql.org\/files\/documentation\/pdf\/13\/postgresql-13-US.pdf\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/www.postgresql.org\/files\/documentation\/pdf\/13\/postgresql-13-US.pdf<\/a><\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.geekhunter.com\/pt\/vagas?utm_source=blog&amp;utm_medium=banner&amp;utm_campaign=postgresql\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"720\" height=\"200\" class=\"wp-image-11764\" src=\"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2021\/02\/cta-convite-entrevistas.png\" alt=\"Banner para receber convites apra entrevistas na Geekhunter.\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-convite-entrevistas.png 720w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-convite-entrevistas-150x42.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-convite-entrevistas-100x28.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-convite-entrevistas-600x167.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-convite-entrevistas-450x125.png 450w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-sql-e-postgresql\">SQL e PostgreSQL<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">SQL \u00e9 um acr\u00f4nimo para Structured Query Language (Linguagem de Consulta Estruturada). E o seu nome sugere exatamente o que ela faz:<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">\u00c9 uma linguagem de consulta declarativa utilizada por programadores e\/ou administradores de banco de dados para comunicar-se com os bancos de dados relacionais atrav\u00e9s de instru\u00e7\u00f5es competentes a sua estrutura.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Voc\u00ea pode us\u00e1-la no psql tamb\u00e9m, como j\u00e1 foi dito.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Criando uma base de dados:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>CREATE DATABASE &lt;&lt;NOME_DO_SEU_BANCO_DE_DADOS&gt;&gt;<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Criando uma tabela\/rela\u00e7\u00e3o na base de dados:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>CREATE TABLE &lt;&lt;NOME_DA_TABELA&gt;&gt; (\r\n\r\n\/* DEFINI\u00c7\u00c3O DOS CAMPOS DA TABLE *\/\r\n\r\n);\r\n<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Inserindo dados na tabela<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>INSERT INTO &lt;&lt;NOME_DA_TABELA&gt;&gt; VALUE (\r\n\r\n\/*VALORES SEQUENCIALMENTE DE ACORDO COM A TABELA SEPARADOS POR V\u00cdRGULA*\/\r\n\r\n);\r\n<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Projetando conjunto de resultados<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>SELECT &lt;&lt;LISTA_DE_SELE\u00c7\u00c3O&gt;&gt; FROM &lt;&lt;NOME_DA_TABELA&gt;&gt;;<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A linguagem SQL tem um escopo de instru\u00e7\u00f5es bastante grande. N\u00e3o \u00e9 a inten\u00e7\u00e3o falar sobre ela neste artigo. Vamos agora falar um pouco sobre uma aplica\u00e7\u00e3o cliente rotineiramente utilizada, o <strong>pgAdmin<\/strong>.<\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><a href=\"https:\/\/www.geekhunter.com\/pt\/blog\/sql-basico-com-pokemon\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQL b\u00e1sico<\/a>: uma introdu\u00e7\u00e3o ao SQL com Pok\u00e9mon<\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-pgadmin-e-postgresql\">pgADMIN e PostgreSQL<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O pgAdmin \u00e9 uma aplica\u00e7\u00e3o cliente com interface gr\u00e1fica de usu\u00e1rio (GUI)\u00a0 que envia e recebe em SQL para o postgres. Um cliente pgAdmin pode acessar muitos servidores postgres e um servidor postgreSQL pode ser acessado por muitos clientes pgAdmin simultaneamente.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Neste link podemos encontrar mais informa\u00e7\u00f5es sobre o pgAdmin, algumas suas funcionalidades atuais: <a href=\"https:\/\/www.pgadmin.org\/\">https:\/\/www.pgadmin.org\/<\/a>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">No sistema operacional Windows, depois do postgresql\u00a0instalado, voc\u00ea pode encontr\u00e1-lo digitando na barra de pesquisa no menu iniciar.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"769\" height=\"595\" class=\"wp-image-11762\" src=\"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2021\/02\/postgresql-iniciar.png\" alt=\"Pesquisa no Windows para a aplica\u00e7\u00e3o PgAdmin4\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/postgresql-iniciar.png 769w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/postgresql-iniciar-150x116.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/postgresql-iniciar-100x77.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/postgresql-iniciar-600x464.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/postgresql-iniciar-450x348.png 450w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/postgresql-iniciar-698x540.png 698w\" sizes=\"(max-width: 769px) 100vw, 769px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Desse modo, ao execut\u00e1-lo, um servidor Web ser\u00e1 iniciado na sua m\u00e1quina e poder\u00e1 ser acessado pelo seu navegador padr\u00e3o. Abaixo uma imagem da interface.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" class=\"wp-image-11761\" src=\"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2021\/02\/estrutura-postgresql-1024x488.png\" alt=\"Imagem da interface de PostgreSQL\" \/><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-conex-o-de-uma-aplica-o-ao-postgresql\">Conex\u00e3o de uma aplica\u00e7\u00e3o ao PostgreSQL<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A conex\u00e3o de uma aplica\u00e7\u00e3o a um banco de dados depende de como cada linguagem de programa\u00e7\u00e3o ou framework realiza, variando em maneiras diferentes de se fazer isso, e com PostgreSQL n\u00e3o \u00e9 diferente. Por exemplo, no caso do Java, a conex\u00e3o pode ser feita utilizando o JDBC. Em Python, podemos utilizar a interface pyPostgreSQL.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-no-java\">No Java<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Podemos criar uma classe de conex\u00e3o, utilizando driver de conex\u00e3o com o postgreSQL.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>public class<\/strong> ConnectPostgres {<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>public Statement <\/strong>statement; \/\/ Preparar e realizar pesquisas no banco de dados<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>public ResultSet<\/strong> resultSet;\u00a0 \/\/ Armazenar o resultado de uma pesquisa passada para o\u00a0 \u00a0 \u00a0 \u00a0 \/\/ statement<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>private String<\/strong> driver = \u201corg.postgresql.Driver\u201d;\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>private String<\/strong> connectPath = \u201cjdbc:postgresql:\/\/localhos:5432\/\/nome-do-banco\u201d;<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>private String<\/strong> user = \u201cpostgres\u201d; \/\/ usu\u00e1rio padr\u00e3o<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>private String <\/strong>password= \u201cSua senha de acesso\u201d<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>public Connection <\/strong>connection; \/\/ Realizar a conex\u00e3o com o banco de dados;<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>    public void conectar() { \r\n\r\n        try {\r\n\r\n            System.setProperty(\"jdbc.Drivers\", driver);\r\n            connection = DriverManager.getConnection(connectPath ,user,password);\r\n\r\n        } catch (SQLException ex) {\r\n\r\n          \/* Tratamento da exce\u00e7\u00e3o.*\/\r\n\r\n        }\r\n\r\n    }\r\n<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>    public void desconectar() { \r\n\r\n        try {\r\n            connection.close();\r\n        \r\n        } catch (SQLException ex) {\r\n\r\n            \/* Tratamento da exce\u00e7\u00e3o. *\/\r\n\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-no-python\">No Python<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Depois que o pyPostgreSQL estiver instalado, podemos codificar a conex\u00e3o da seguinte forma:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>import postgresql\r\n\r\ndb = postgresql.open( user = \u2018username\u2019, database = \u2018database_name\u2019, port = 5432, password = \u2018password\u2019 )\r\n<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Se tudo deu certo, ou seja, nenhum erro foi gerado, a conex\u00e3o foi realizada.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Novamente ressaltando que existem v\u00e1rias formas de realizar essa conex\u00e3o para v\u00e1rias linguagens de frameworks que lidam com o banco de dados, principalmente os relacionais.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-conclus-o\">Conclus\u00e3o<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Essa n\u00e3o \u00e9 a \u00fanica tecnologia presente no mercado. Voc\u00ea pode pesquisar e encontrar outros sistemas gerenciadores de dados, mas eles seguem o mesmo padr\u00e3o de funcionalidade.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Retirar a responsabilidade do aplica\u00e7\u00e3o de acessar, buscar informa\u00e7\u00f5es, manipular e gerar os dados dos bancos de dados.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Lembre-se de nunca parar de estudar e pesquisar sobre os assuntos que s\u00e3o importantes para sua carreira. Conte sempre com o blog da <a href=\"https:\/\/www.geekhunter.com\/pt?utm_source=blog&amp;utm_medium=texto_ancora&amp;utm_campaign=postgresql\" target=\"_blank\" rel=\"noreferrer noopener\">Geekhunter<\/a> para se manter atualizado.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Um abra\u00e7o e bons estudos! \ud83d\ude00<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.geekhunter.com\/pt\/vagas?utm_source=blog&amp;utm_medium=banner&amp;utm_campaign=postgresql\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"200\" class=\"wp-image-11765\" src=\"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2021\/02\/cta-vagas-postgresql.png\" alt=\"Banner para vagas de PostgreSQL da Geekhunter\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-vagas-postgresql.png 720w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-vagas-postgresql-150x42.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-vagas-postgresql-100x28.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-vagas-postgresql-600x167.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-vagas-postgresql-450x125.png 450w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/a><\/figure>\r\n","protected":false},"excerpt":{"rendered":"<p>O excesso de informa\u00e7\u00f5es geradas e gerenciadas pelas empresas nunca foi t\u00e3o grande, e s\u00f3 aumenta com o passar do tempo. Lidar com essa enxurrada exige tecnologia, intelig\u00eancia e ferramentas. Para isso, bancos de dados objeto-relacionais viabilizam a organiza\u00e7\u00e3o e a qualidade das informa\u00e7\u00f5es do seu neg\u00f3cio. Estamos na era digital e isso refor\u00e7a a [&hellip;]<\/p>\n","protected":false},"author":167,"featured_media":11767,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18],"tags":[],"class_list":["post-11758","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimiento-de-software"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.6 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PostgreSQL: uma introdu\u00e7\u00e3o detalhada ao servi\u00e7o<\/title>\n<meta name=\"description\" content=\"Para gerenciar uma grande quantidade de informa\u00e7\u00f5es, precisamos de ferramentas robustas e confi\u00e1veis. Isso \u00e9 exatamente PostgreSQL. Confira!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial PostgreSQL: introdu\u00e7\u00e3o pr\u00e1tica ao servi\u00e7o\" \/>\n<meta property=\"og:description\" content=\"O excesso de informa\u00e7\u00f5es geradas e gerenciadas pelas empresas nunca foi t\u00e3o grande, e s\u00f3 aumenta com o passar do tempo. Lidar com essa enxurrada exige\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Geekhunter\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/geekhunterbr\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-12T22:48:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-11T14:07:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/postgresql.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1280\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Geekhunter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:site\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Geekhunter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/\"},\"author\":{\"name\":\"Geekhunter\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/9f62b173345139f7bbdaf55312c3d400\"},\"headline\":\"Tutorial PostgreSQL: introdu\u00e7\u00e3o pr\u00e1tica ao servi\u00e7o\",\"datePublished\":\"2021-02-12T22:48:41+00:00\",\"dateModified\":\"2024-10-11T14:07:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/\"},\"wordCount\":1875,\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/postgresql.jpg\",\"articleSection\":[\"Desenvolvimiento de software\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/\",\"name\":\"PostgreSQL: uma introdu\u00e7\u00e3o detalhada ao servi\u00e7o\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/postgresql.jpg\",\"datePublished\":\"2021-02-12T22:48:41+00:00\",\"dateModified\":\"2024-10-11T14:07:12+00:00\",\"description\":\"Para gerenciar uma grande quantidade de informa\u00e7\u00f5es, precisamos de ferramentas robustas e confi\u00e1veis. Isso \u00e9 exatamente PostgreSQL. Confira!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/postgresql.jpg\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/postgresql.jpg\",\"width\":1920,\"height\":1280,\"caption\":\"Tela de notebook exibindo c\u00f3digos em PostgreSQL\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/tutorial-postgresql-introducao-pratica-ao-servico\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mundo TI\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Desenvolvimiento de software\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/desenvolvimiento-de-software\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Tutorial PostgreSQL: introdu\u00e7\u00e3o pr\u00e1tica ao servi\u00e7o\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"name\":\"Blog de TI\",\"description\":\"Dicas para o RH e profissionais da \u00e1rea TI\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\",\"name\":\"GeekHunter\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"width\":300,\"height\":300,\"caption\":\"GeekHunter\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/x.com\\\/geekhunterbr\",\"https:\\\/\\\/www.instagram.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/geekhunter-brasil\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@GeekHunterOfficial\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/9f62b173345139f7bbdaf55312c3d400\",\"name\":\"Geekhunter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"caption\":\"Geekhunter\"},\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/author\\\/matias\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL: uma introdu\u00e7\u00e3o detalhada ao servi\u00e7o","description":"Para gerenciar uma grande quantidade de informa\u00e7\u00f5es, precisamos de ferramentas robustas e confi\u00e1veis. Isso \u00e9 exatamente PostgreSQL. Confira!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/","og_locale":"pt_BR","og_type":"article","og_title":"Tutorial PostgreSQL: introdu\u00e7\u00e3o pr\u00e1tica ao servi\u00e7o","og_description":"O excesso de informa\u00e7\u00f5es geradas e gerenciadas pelas empresas nunca foi t\u00e3o grande, e s\u00f3 aumenta com o passar do tempo. Lidar com essa enxurrada exige","og_url":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/","og_site_name":"Blog Geekhunter","article_publisher":"https:\/\/www.facebook.com\/geekhunterbr\/","article_published_time":"2021-02-12T22:48:41+00:00","article_modified_time":"2024-10-11T14:07:12+00:00","og_image":[{"width":1920,"height":1280,"url":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/postgresql.jpg","type":"image\/jpeg"}],"author":"Geekhunter","twitter_card":"summary_large_image","twitter_creator":"@geekhunterbr","twitter_site":"@geekhunterbr","twitter_misc":{"Escrito por":"Geekhunter","Est. tempo de leitura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/#article","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/"},"author":{"name":"Geekhunter","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/9f62b173345139f7bbdaf55312c3d400"},"headline":"Tutorial PostgreSQL: introdu\u00e7\u00e3o pr\u00e1tica ao servi\u00e7o","datePublished":"2021-02-12T22:48:41+00:00","dateModified":"2024-10-11T14:07:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/"},"wordCount":1875,"publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/postgresql.jpg","articleSection":["Desenvolvimiento de software"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/","name":"PostgreSQL: uma introdu\u00e7\u00e3o detalhada ao servi\u00e7o","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/#primaryimage"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/postgresql.jpg","datePublished":"2021-02-12T22:48:41+00:00","dateModified":"2024-10-11T14:07:12+00:00","description":"Para gerenciar uma grande quantidade de informa\u00e7\u00f5es, precisamos de ferramentas robustas e confi\u00e1veis. Isso \u00e9 exatamente PostgreSQL. Confira!","breadcrumb":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.geekhunter.com/pt/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/#primaryimage","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2021\/02\/postgresql.jpg","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/postgresql.jpg","width":1920,"height":1280,"caption":"Tela de notebook exibindo c\u00f3digos em PostgreSQL"},{"@type":"BreadcrumbList","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/tutorial-postgresql-introducao-pratica-ao-servico\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.geekhunter.com/pt/blog\/"},{"@type":"ListItem","position":2,"name":"Mundo TI","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/"},{"@type":"ListItem","position":3,"name":"Desenvolvimiento de software","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/desenvolvimiento-de-software\/"},{"@type":"ListItem","position":4,"name":"Tutorial PostgreSQL: introdu\u00e7\u00e3o pr\u00e1tica ao servi\u00e7o"}]},{"@type":"WebSite","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","name":"Blog de TI","description":"Dicas para o RH e profissionais da \u00e1rea TI","publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.geekhunter.com/pt/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization","name":"GeekHunter","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","width":300,"height":300,"caption":"GeekHunter"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/geekhunterbr\/","https:\/\/x.com\/geekhunterbr","https:\/\/www.instagram.com\/geekhunterbr\/","https:\/\/www.linkedin.com\/company\/geekhunter-brasil\/","https:\/\/www.youtube.com\/@GeekHunterOfficial"]},{"@type":"Person","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/9f62b173345139f7bbdaf55312c3d400","name":"Geekhunter","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","caption":"Geekhunter"},"url":"https:\/\/www.geekhunter.com\/pt\/blog\/author\/matias\/"}]}},"_links":{"self":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/11758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/comments?post=11758"}],"version-history":[{"count":0,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/11758\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media\/11767"}],"wp:attachment":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media?parent=11758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/categories?post=11758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/tags?post=11758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}