<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Carla Crija</title>
    <description>The latest articles on DEV Community by Carla Crija (@crija).</description>
    <link>https://dev.to/crija</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1277805%2F3525b54f-9424-423b-a62d-1333aa7309a8.png</url>
      <title>DEV Community: Carla Crija</title>
      <link>https://dev.to/crija</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/crija"/>
    <language>en</language>
    <item>
      <title>Primeiros Passos no PostgreSQL: Um Guia Completo para Iniciantes</title>
      <dc:creator>Carla Crija</dc:creator>
      <pubDate>Fri, 10 Jan 2025 15:52:27 +0000</pubDate>
      <link>https://dev.to/crija/primeiros-passos-no-postgresql-um-guia-completo-para-iniciantes-4i2o</link>
      <guid>https://dev.to/crija/primeiros-passos-no-postgresql-um-guia-completo-para-iniciantes-4i2o</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsso7u2cugot0brgj0yse.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsso7u2cugot0brgj0yse.png" alt=" " width="610" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O PostgreSQL é um sistema de banco de dados gratuito e de código aberto, usado por desenvolvedores e empresas para armazenar, organizar e acessar grandes quantidades de dados. Ele é muito popular por ser confiável, flexível e por seguir os padrões comuns de banco de dados, facilitando seu uso em vários tipos de projetos. É uma ferramenta bastante robusta e conhecida por sua estabilidade e segurança.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vantagens do PostgreSQL
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Código aberto:&lt;/strong&gt; Software gratuito e confiável.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Padrão SQL:&lt;/strong&gt; Segue os padrões de SQL, facilitando a transição de outros bancos de dados.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escalabilidade e desempenho:&lt;/strong&gt; Ideal para projetos pequenos ou grandes, com alta performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Suporte a dados complexos:&lt;/strong&gt; Permite trabalhar com diferentes tipos de dados, como JSON, XML, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transações seguras:&lt;/strong&gt; Garante que os dados sejam manipulados de forma segura, mesmo em situações de falha.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Estrutura do PostgreSQL
&lt;/h2&gt;

&lt;p&gt;O PostgreSQL organiza os dados em bancos de dados, que por sua vez contêm tabelas, que são estruturas que armazenam os registros. Cada tabela é composta por colunas, que definem os tipos de dados que podem ser armazenados, e linhas, que representam os registros individuais.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fve12vozt6vter8k90j7j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fve12vozt6vter8k90j7j.png" alt=" " width="621" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Oferece uma grande variedade de tipos de dados, desde os mais simples, como números inteiros e textos, até tipos mais avançados, como JSON e arrays.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como instalar
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.postgresql.org/download/" rel="noopener noreferrer"&gt;clique aqui&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Comandos Básicos
&lt;/h2&gt;

&lt;p&gt;Vamos explorar os comandos básicos, fundamentais para quem está começando. Vamos abordar desde a criação de tabelas até operações como inserção, consulta e atualização de dados, construindo uma base sólida para que você possa conhecer e se familiarizar com essa ferramenta. Com comandos como CREATE TABLE, SELECT, INSERT, UPDATE e DELETE, você já pode começar a manipular dados e estruturar informações de forma eficiente.&lt;/p&gt;

&lt;h4&gt;
  
  
  CREATE
&lt;/h4&gt;

&lt;p&gt;O comando &lt;code&gt;CREATE&lt;/code&gt; permite estruturar e organizar os dados no banco de dados. Segue dois exemplos do comando create sendo usado para casos diferentes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Criar banco de dados&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;DATABASE&lt;/span&gt; &lt;span class="n"&gt;nome_do_banco&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Criar tabela&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;usuarios&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;SERIAL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;email&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;UNIQUE&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;phone_number&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Linha 1&lt;/strong&gt;: Comando usado para criar uma tabela, seguido do nome da tabela.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linha 2&lt;/strong&gt;: Configura a coluna para gerar valores únicos sequenciais automaticamente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linha 3&lt;/strong&gt;: Recebe um valor de até 100 caracteres, sendo que o campo não pode ser nulo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linha 4&lt;/strong&gt;: Recebe um valor de até 150 caracteres, sendo que o valor precisa ser único e o campo não pode ser nulo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linha 5&lt;/strong&gt;: Recebe um valor de 20 caracteres.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Final da instrução
&lt;/h4&gt;

&lt;p&gt;O ponto e vírgula &lt;code&gt;;&lt;/code&gt; é sempre usado no final do comando, indicando que a instrução foi concluída e o comando pode ser executado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Criar nova coluna de inteiro com valor não nulo&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;usuarios&lt;/span&gt;
&lt;span class="k"&gt;ADD&lt;/span&gt; &lt;span class="k"&gt;COLUMN&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;
&lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Listar todas as tabelas&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;\d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Listar tabela específica&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;\d usuarios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  ALTER
&lt;/h4&gt;

&lt;p&gt;O comando &lt;code&gt;ALTER&lt;/code&gt; é usado para modificar a estrutura da tabela e outros objetos no banco de dados sem precisar excluir e recriar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alterar nome da tabela&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;usuarios&lt;/span&gt;
&lt;span class="k"&gt;RENAME&lt;/span&gt; &lt;span class="k"&gt;TO&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Renomear nome de uma coluna permanentemente&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;
&lt;span class="k"&gt;RENAME&lt;/span&gt; &lt;span class="k"&gt;COLUMN&lt;/span&gt; &lt;span class="n"&gt;phone_number&lt;/span&gt; &lt;span class="k"&gt;TO&lt;/span&gt; &lt;span class="n"&gt;phone&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  INSERT
&lt;/h4&gt;

&lt;p&gt;O comando &lt;code&gt;INSERT&lt;/code&gt; é usado para inserir dados em uma tabela já existente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inserir registro de um usuário&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;VALUES&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Joane'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'joane@gmail.com'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'18'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Inserir vários registros&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;VALUES&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Noah'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'noah@gmail.com'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'45'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Liam'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'liam@gmail.com'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'23'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Mara'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'mara@gmail.com'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'34'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Mara'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'mara123@gmail.com'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'42'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'James'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'james@gmail.com'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'23'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Oliver'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'oliver@gmail.com'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'31'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  SELECT
&lt;/h4&gt;

&lt;p&gt;O comando &lt;code&gt;SELECT&lt;/code&gt; é usado para consultar dados de uma ou mais tabelas. Ele permite selecionar colunas específicas, aplicar filtros, ordenar resultados e realizar cálculos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selecionar todas as colunas&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Selecionar uma coluna&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;selecionar todas as linhas que contém o nome igual a Mara&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Mara'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Referenciar tabelas com outros nomes temporariamente durante uma consulta ou operação&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;name_user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="n"&gt;phone&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;phone_user&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  WHERE
&lt;/h4&gt;

&lt;p&gt;O comando &lt;code&gt;WHERE&lt;/code&gt; é usado para filtrar dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Condição básica&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Mara'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Condição combinada&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt; 
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Mara'&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'34'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  UPDATE
&lt;/h4&gt;

&lt;p&gt;O comando &lt;code&gt;UPDATE&lt;/code&gt; é usado para atualizar dados inseridos na tabela.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Atualizar dado de um usuário&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;
&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;email&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Noah123@gmail.com'&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Noah'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  DELETE
&lt;/h4&gt;

&lt;p&gt;O &lt;code&gt;DELETE&lt;/code&gt; é um comando usado para excluir dados, colunas, tabelas e banco de dados&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Excluir registro de um cliente&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;DELETE&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt; 
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Noah'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Excluir tabela&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;DROP&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao longo deste artigo, exploramos os fundamentos para começar a trabalhar com o banco de dados, colocando em prática operações básicas de manipulação de dados. Para aprofundar seus conhecimentos nessa ferramenta, consulte a &lt;a href="https://www.postgresql.org/docs/current/" rel="noopener noreferrer"&gt;documentação oficial&lt;/a&gt; do PostgreSQL.&lt;/p&gt;

</description>
      <category>postgres</category>
      <category>database</category>
      <category>sql</category>
    </item>
    <item>
      <title>O que é CRM?</title>
      <dc:creator>Carla Crija</dc:creator>
      <pubDate>Fri, 26 Jul 2024 02:59:23 +0000</pubDate>
      <link>https://dev.to/crija/o-que-e-crm-1kf3</link>
      <guid>https://dev.to/crija/o-que-e-crm-1kf3</guid>
      <description>&lt;p&gt;CRM (Customer Relationship Management - Gestão de Relacionamento com os Clientes) é um conjunto de práticas de negócios e ferramentas focadas no relacionamento com o cliente. O conceito de CRM significa ter planejamento, estratégica e execução focados nos clientes. Na prática, o CRM é uma gestação de vendas, marketing, atendimento e todos os contatos com os clientes.&lt;/p&gt;

&lt;p&gt;O CRM visa aumentar a eficiência e os lucros ao proporcionar um melhor entendimento e gestão dos clientes, através de:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1v6vlp376utjnzpearit.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1v6vlp376utjnzpearit.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A coleta de dados é fundamental para gerenciar e melhorar o relacionamento com os clientes. Entre os principais dados coletados então, nome, endereço, número de telefone e e-mail. Além disso, monitorar as atividades dos clientes também é um grande foco que o CRM precisa ter, como por exemplo, monitorar as visitas do cliente a loja física e/ou online, frequência de compras, dados da última compra, número de vez que entrou em contato, entre outras relações.&lt;/p&gt;

&lt;p&gt;Ao reunir informações detalhadas sobre preferências, comportamentos e interações dos clientes, as empresas conseguem personalizar o atendimento e as ofertas, o que aumenta a satisfação e a lealdade do cliente. Além disso, a análise desses dados permite identificar tendências e padrões, facilitando a formulação de estratégias de marketing mais eficazes e a tomada de decisões mais informadas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbx1zfqxdztaqiy7wk1v5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbx1zfqxdztaqiy7wk1v5.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quem conhece bem seus clientes, entende suas necessidades e resolve seus problemas. O cliente procura por uma empresa que entende seus problemas e necessidades, sendo assim, um dos principais objetivos do CRM é conquistador a fidelidade dos clientes. &lt;/p&gt;

&lt;p&gt;Para conquistar a lealdade dos clientes, é essencial personalizar o atendimento com base em suas preferências e comportamentos. Proporcione um atendimento excepcional, com respostas rápidas e soluções eficazes. Implementar um programa de recompensas pode incentivar compras repetidas, enquanto uma comunicação constante e relevante mantém os clientes engajados.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jqfn99dx8hph7fsre7i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jqfn99dx8hph7fsre7i.png" alt=" " width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A otimização do tempo não só melhora a eficiência das equipes, mas também permite uma gestão mais estratégica e orientada para resultados. Tarefas básicas, como envio de e-mails, lembretes e agendamento de reuniões para reduzir o tempo gasto em processos manuais e minimizar erros, devem ser automatizadas.&lt;/p&gt;

&lt;p&gt;Além disso, criar listas específicas de contatos para campanhas de marketing direcionadas ou para chamadas de vendas, poupa tempo na busca de contatos relevantes. Utilize chatbots integrados ao CRM para responder perguntas frequentes dos clientes e coletar informações iniciais, liberando a equipe para se concentrar em tarefas mais complexas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0s7byg4nt1ofatrzdqfc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0s7byg4nt1ofatrzdqfc.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O principal objetivo de uma empresa são as vendas, sendo assim, o principal objetivo do CRM é alavancar as vendas para a empresa ter o melhor resultado possível. Implementar e aplicar as boas práticas do CRM vão fazer com que a empresa esteja mais próxima dos cliente.&lt;/p&gt;

&lt;p&gt;Sendo assim, dentre as tarefas mais importantes do CRM para alcançar esse objetivo é utilizar filtros para categorizar leads com base em critérios como setor, tamanho da empresa e estágio no funil de vendas. Isso permite criar campanhas de marketing e abordagens de vendas mais direcionadas. Implementar um sistema de pontuação de leads no CRM para priorizar aqueles com maior potencial de compra e direcionar esforços de vendas para as oportunidades mais promissoras.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdoz0bymvjdz640ju2xjg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdoz0bymvjdz640ju2xjg.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A empresa deve ser a resposta para os problemas que os clientes enfrentam. Não qualquer resposta, mas a melhor resposta. A implatação do CRM pode ser a peça chave para estar a frente da concorrencia.&lt;/p&gt;

&lt;p&gt;Lembrando que CRM é um assunto bastante abrangente. Neste artigo eu trouxe alguns exemplos básicos sobre o que é CRM, visando o público que tem pouco ou nenhum conhecimento sobre o assunto.&lt;/p&gt;

&lt;p&gt;Blog Abri Minha Empresa. &lt;strong&gt;O QUE É CRM E PARA QUE SERVEM E COMO FUNCIONA NA PRÁTICA (Prático e Resumido)&lt;/strong&gt;. Disponível em&amp;lt;&lt;a href="https://www.%20youtube.%20com.%20https://www.%20youtube.%20com/assistir?v=ydpnVFmOR2A&amp;amp;ab_channel=BlogAbriMinhaEmpresa" rel="noopener noreferrer"&gt;canal youtube&lt;/a&gt;&amp;gt;. Acesso em:24/07/2024&lt;/p&gt;

</description>
      <category>crm</category>
      <category>artigo</category>
    </item>
    <item>
      <title>Python para iniciantes</title>
      <dc:creator>Carla Crija</dc:creator>
      <pubDate>Wed, 14 Feb 2024 00:52:01 +0000</pubDate>
      <link>https://dev.to/crija/python-para-iniciantes-5f6g</link>
      <guid>https://dev.to/crija/python-para-iniciantes-5f6g</guid>
      <description>&lt;p&gt;A linguagem de programação Python foi criada em 1991 como sucessora da linguagem ABC. ABC era uma linguagem de programação com muitas limitações e a ideia do criador de Python era criar uma linguagem com scripts fáceis.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fef7eiw9bpze7extimxup.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fef7eiw9bpze7extimxup.png" alt="foto de um script python" width="447" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Python é uma linguagem de programação conhecida por sua sintaxe clara e legível, tornando-a acessível para iniciantes e eficiente para desenvolvedores experientes.&lt;/p&gt;

&lt;p&gt;Abaixo você encontra o conteúdo base de Python para começar a se familiarizar com a linguagem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparações
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Igualdade:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Desigualdade:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Maior que:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Menor que:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Maior ou igual a:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Menor ou igual a:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esses operadores podem ser usados em qualquer parte do código onde você precise comparar valores.&lt;/p&gt;

&lt;h2&gt;
  
  
  Variáveis
&lt;/h2&gt;

&lt;p&gt;Em Python, as variáveis são usadas para armazenar dados.&lt;/p&gt;

&lt;p&gt;A atribuição de variáveis é feita usando &lt;code&gt;=&lt;/code&gt; . Por exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Paula&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;29&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Tipagem Dinâmica:
&lt;/h4&gt;

&lt;p&gt;Python é uma linguagem de programação de tipagem dinâmica, o que significa que você não precisa declarar explicitamente o tipo de uma variável. O tipo é inferido automaticamente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tipos de dados
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;String (str)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Uma string é definida colocando os caracteres entre aspas simples (') ou aspas duplas (")&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Elisa&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Inteiro (int)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Representa números inteiros.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ponto Flutuante(float)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Representa números fracionados.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;altura&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1.70&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Booleano(bool)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O tipo booleano é representado por dois valores: True e False&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;esta_chovendo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="n"&gt;esta_calor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Lista (list)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Uma lista em Python é como uma caixa onde você pode armazenar várias coisas. Essas "coisas" podem ser números, palavras, ou até mesmo outras listas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;frutas&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;banana&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;maçã&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;uva&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;manga&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aqui, &lt;code&gt;frutas&lt;/code&gt; é uma lista que contém itens como banana, maçã, uva e manga. Cada item tem sua própria posição na lista, começando do zero. Então, "banana" está na posição 0, "maçã" na posição 1, e assim por diante.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dicionário (dict)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Um dicionário é como uma lista, mas em vez de usar números para acessar os itens, você usa palavras-chaves. Pense que você está começando a estudar inglês e deseja guardar em um dicionário algumas palavras, que você está aprendendo, com e sem a tradução. Ficaria assim.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;word_dictionary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;nome&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;maçã&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;apple&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;carro&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;car&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As palavras em português são as chaves e as em inglês são os valores.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tupla(tuple)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As tuplas são como listas, mas com a diferença de serem IMUTÁVEIS. Depois de criadas, as tuplas NÃO podem ser alteradas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;comprar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;pão&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;banana&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;pera&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As tuplas são uma escolha útil quando você precisa garantir a imutabilidade dos dados. Se você precisa de uma coleção mutável, uma lista pode ser mais apropriada, mas se a imutabilidade é uma vantagem para sua aplicação, considere o uso de tuplas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Estruturas Condicionais: if, elif, else
&lt;/h2&gt;

&lt;p&gt;As instruções if, elif (abreviação de "else if") e else são utilizadas para criar estruturas condicionais, permitindo que você tome decisões no seu código com base em condições específicas. Vamos ver isso na prática!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;

&lt;span class="n"&gt;verificar_idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Digite sua idade: &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;verificar_idade&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Você tem 18 anos!&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;verificar_idade&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Você tem mais de 18 anos&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Você tem menos de 18 anos&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;A instrução if verifica se a condição associada a ela é verdadeira. Se for, o bloco de código dentro do if é executado.&lt;/li&gt;
&lt;li&gt;A instrução elif (opcional) é uma abreviação de "else if" e permite que você verifique condições adicionais se a condição do if não for atendida. Você pode ter vários blocos elif se necessário. A primeira condição que for verdadeira terá seu bloco de código executado.&lt;/li&gt;
&lt;li&gt;A instrução else (opcional) é executada se nenhuma das condições anteriores for verdadeira. É a última alternativa.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Bloco de Código
&lt;/h2&gt;

&lt;p&gt;Um bloco de código em Python é definido pela mesma quantidade de espaços em branco no início de cada linha (também conhecido como indentação). É comum usar quatro espaços para definir um bloco. Python utiliza a indentação para delimitar a estrutura do código.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Esta condição é verdadeira.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Este código está dentro do bloco if.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Esta condição é falsa.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Este código está dentro do bloco else.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Este código está fora de qualquer bloco.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Observe como o código dentro do bloco &lt;code&gt;if&lt;/code&gt; e do bloco &lt;code&gt;else&lt;/code&gt; é indentado com espaços em branco.&lt;/p&gt;

&lt;p&gt;A indentação é crucial para indicar quais instruções fazem parte de um bloco específico. No exemplo acima, as duas instruções &lt;code&gt;print&lt;/code&gt; dentro de cada bloco estão indentadas, indicando que fazem parte daquele bloco condicional.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fae4063iw3vm70a2igrvw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fae4063iw3vm70a2igrvw.png" alt="Imagem pessoa estudando python" width="311" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aprender Python é uma escolha valiosa, independentemente do seu nível de experiência em programação. Seja para desenvolvimento web, análise de dados, automação, aprendizado de máquina ou outras áreas, Python oferece uma base sólida e uma comunidade vibrante para suportar seu crescimento como desenvolvedor.&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>programming</category>
      <category>coding</category>
    </item>
    <item>
      <title>Resolvendo um conflito no git</title>
      <dc:creator>Carla Crija</dc:creator>
      <pubDate>Sat, 10 Feb 2024 21:58:08 +0000</pubDate>
      <link>https://dev.to/crija/resolvendo-um-conflito-no-git-58m4</link>
      <guid>https://dev.to/crija/resolvendo-um-conflito-no-git-58m4</guid>
      <description>&lt;p&gt;Quando tentamos subir um commit da máquina local para o repositório remoto pode acontecer um conflito. Esse tipo de problema é muito comum em ambiente de desenvolvimento, onde fazemos o versionamento de códigos usando o git. Saber resolver esse tipo de erro é crucial para não resultar em perdas de trabalho e tempo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Identificar o problema
&lt;/h2&gt;

&lt;p&gt;Nesse exemplo abaixo aconteceu um conflito por eu ter feito um commit no repositório remoto e no repositório local, em seguida tentei subir uma alteração para o repositório remoto sem antes ter atualizado o repositório local.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que resultou em um conflito&lt;/strong&gt;&lt;br&gt;
alterei o repositório remoto;&lt;br&gt;
alterei o repositório local;&lt;br&gt;
tentei subir a alteração para o repositório remoto&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Para não resultar em um conflito&lt;/strong&gt;&lt;br&gt;
alterar o repositório remoto;&lt;br&gt;
trazer alteração para o repositório local;&lt;br&gt;
fazer alteração no repositório local;&lt;br&gt;
subir para o repositório remoto&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22m4q76s2trtx9kzrk47.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22m4q76s2trtx9kzrk47.png" alt="Conflito ao subir um commit" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nessa imagem podemos identificar o erro pelo hash(identificador do commit) dos commits listados, onde o último commit da direita(local) e o último commit da esquerda(servidor) estão com os hashs diferentes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resolver o problema
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Atualiza as referências remotas no repositório local, possibilitando a comparação do repositório remoto com o repositório local. Esse comando é muito importante para a identificação do erro.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git fetch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Lista todos os commits do repositório remoto.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log origin/main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Lista todos os commits do repositório local.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Reorganiza o histórico dos commits da branch local com base na branch remota. O git reorganiza os commits do mais velho para o mais novo, trazendo uma sequência de commits mais linear.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git rebase origin/main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Envia o commit para o repositório remoto.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Evitar o problema
&lt;/h2&gt;

&lt;p&gt;Para que problemas como esse não ocorram é importante que os repositórios estejam sempre alinhados. É recomendado escolher um dos dois repositórios para fazer as alterações, mas quando é necessário utilizar os dois, certifique-se que o repositório local esteja alinhado com o repositório remoto, para isso você precisa rodar o &lt;code&gt;git pull&lt;/code&gt; antes de fazer qualquer alteração na máquina local. É interessante fazer commits pequenos e frequentes para reduzir a complexidade e ser mais fácil de resolver algum problema futuro.&lt;/p&gt;

&lt;p&gt;Em caso de trabalho em equipe, é fundamental manter a equipe informada em caso de alterações.&lt;/p&gt;

</description>
      <category>git</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>conflito</category>
    </item>
  </channel>
</rss>
