{"id":521,"date":"2026-04-29T10:00:35","date_gmt":"2026-04-29T13:00:35","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/04\/29\/aula-5-ddl-no-postgresql-create-table-alter-drop-e-schemas\/"},"modified":"2026-04-29T10:00:35","modified_gmt":"2026-04-29T13:00:35","slug":"aula-5-ddl-no-postgresql-create-table-alter-drop-e-schemas","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/04\/29\/aula-5-ddl-no-postgresql-create-table-alter-drop-e-schemas\/","title":{"rendered":"Aula 5: DDL no PostgreSQL \u2014 CREATE TABLE, ALTER, DROP e schemas"},"content":{"rendered":"<p>Bem-vindo \u00e0 Aula 5 do nosso curso &#8220;PostgreSQL \u2014 Do Zero ao Avan\u00e7ado&#8221;. Nesta aula, vamos explorar os fundamentos do DDL (Data Definition Language) no PostgreSQL, abordando os comandos SQL essenciais para defini\u00e7\u00e3o e gest\u00e3o de estruturas de banco de dados: <strong>CREATE TABLE<\/strong>, <strong>ALTER<\/strong>, <strong>DROP<\/strong> e o uso de <strong>schemas<\/strong>. Compreender esses conceitos \u00e9 crucial para gerenciar eficientemente os dados em um banco PostgreSQL.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<ul>\n<li>O conceito de DDL no PostgreSQL e sua import\u00e2ncia para a defini\u00e7\u00e3o de dados.<\/li>\n<li>Como criar tabelas utilizando o comando <strong>CREATE TABLE<\/strong>.<\/li>\n<li>Maneiras de alterar estruturas de tabelas existentes com o comando <strong>ALTER<\/strong>.<\/li>\n<li>Como excluir tabelas e entender o comando <strong>DROP<\/strong>.<\/li>\n<li>O que s\u00e3o e como usar <strong>schemas<\/strong> no PostgreSQL.<\/li>\n<\/ul>\n<h3>Entendendo o DDL no PostgreSQL<\/h3>\n<p>O DDL (Data Definition Language) \u00e9 uma subcategoria de comandos SQL usados para definir e modificar a estrutura de um banco de dados, essencialmente moldando o esqueleto onde os dados s\u00e3o armazenados e gerenciados. No contexto do <strong>PostgreSQL<\/strong>, o DDL abrange opera\u00e7\u00f5es para cria\u00e7\u00e3o, altera\u00e7\u00e3o e exclus\u00e3o de tabelas e esquemas.<\/p>\n<p>Pense no DDL como as ferramentas essenciais de um arquiteto de dados: assim como um arquiteto desenha plantas e ajusta as estruturas conforme necess\u00e1rio, o DDL permite que desenvolvedores e administradores criem e modifiquem as tabelas que armazenam seus dados.<\/p>\n<h3>Praticando com o comando CREATE TABLE<\/h3>\n<p>Criar uma tabela \u00e9 o primeiro passo para armazenar dados em um banco de dados. No <strong>PostgreSQL<\/strong>, utilizamos o comando <strong>CREATE TABLE<\/strong> para esta tarefa. Vamos criar uma tabela simples para um exemplo pr\u00e1tico:<\/p>\n<pre><code>CREATE TABLE clientes (\n    id SERIAL PRIMARY KEY,\n    nome VARCHAR(100) NOT NULL,\n    email VARCHAR(100) NOT NULL UNIQUE,\n    data_cadastro DATE DEFAULT CURRENT_DATE\n);<\/code><\/pre>\n<p>Vamos entender o que cada linha faz:<\/p>\n<ul>\n<li><strong>CREATE TABLE clientes<\/strong>: Inicia a cria\u00e7\u00e3o de uma tabela chamada &#8220;clientes&#8221;.<\/li>\n<li><strong>id SERIAL PRIMARY KEY<\/strong>: Cria uma coluna &#8220;id&#8221; que \u00e9 uma chave prim\u00e1ria e incrementada automaticamente.<\/li>\n<li><strong>nome VARCHAR(100) NOT NULL<\/strong>: Define uma coluna &#8220;nome&#8221; para armazenar texto com at\u00e9 100 caracteres e requer que sempre tenha um valor.<\/li>\n<li><strong>email VARCHAR(100) NOT NULL UNIQUE<\/strong>: Cria uma coluna &#8220;email&#8221; com a mesma restri\u00e7\u00e3o de texto, mas com a condi\u00e7\u00e3o adicional de unicidade.<\/li>\n<li><strong>data_cadastro DATE DEFAULT CURRENT_DATE<\/strong>: Adiciona uma coluna &#8220;data_cadastro&#8221; que armazena a data de cadastro, padr\u00e3o para a data atual.<\/li>\n<\/ul>\n<h3>Alterando Tabelas com o Comando ALTER<\/h3>\n<p>O comando <strong>ALTER<\/strong> \u00e9 usado para modificar tabelas existentes. Vamos adicionar uma coluna &#8220;telefone&#8221; \u00e0 tabela &#8220;clientes&#8221;:<\/p>\n<pre><code>ALTER TABLE clientes\nADD COLUMN telefone VARCHAR(15);<\/code><\/pre>\n<p>Este comando acrescenta uma nova coluna permitindo armazenar n\u00fameros de telefone, com capacidade para at\u00e9 15 caracteres.<\/p>\n<h3>Excluindo Tabelas com DROP e Trabalhando com Schemas<\/h3>\n<p>Para excluir uma tabela, utilizamos o comando <strong>DROP<\/strong>. Precisa ser aplicado com cautela, pois sua a\u00e7\u00e3o \u00e9 irrevers\u00edvel:<\/p>\n<pre><code>DROP TABLE IF EXISTS clientes;<\/code><\/pre>\n<p>O uso de <strong>IF EXISTS<\/strong> evita erros caso a tabela n\u00e3o exista. Al\u00e9m disso, o conceito de <strong>schemas<\/strong> organiza tabelas dentro de namespaces, melhorando a gest\u00e3o do banco. Por padr\u00e3o, no PostgreSQL, as tabelas s\u00e3o criadas dentro do schema &#8220;public&#8221;, mas outros schemas podem ser criados para segregar diferentes partes de um aplicativo ou projeto.<\/p>\n<p>No JRT Technology Solutions, utilizamos schemas para estruturar projetos de banco de dados complexos, permitindo que diferentes equipes trabalhem simultaneamente sem conflitos.<\/p>\n<h3>Resumo da Aula 5<\/h3>\n<p>Nesta aula, exploramos o DDL no PostgreSQL, cobrindo como criar, alterar e excluir tabelas, al\u00e9m da import\u00e2ncia do uso de schemas. Na pr\u00f3xima aula, vamos aprofundar na manipula\u00e7\u00e3o de dados com DML (Data Manipulation Language), a fim de gerenciar os dados armazenados nessas estruturas que acabamos de criar.<\/p>\n<div style=\"margin:48px 0 32px;padding:32px 24px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:16px;text-align:center;\">\n<p style=\"margin:0 0 8px;font-size:17px;color:#111827;font-weight:700;\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 24px;font-size:15px;color:#1f2937;font-weight:400;\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de PostgreSQL para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1%21+Tenho+interesse+no+treinamento+de+PostgreSQL.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:600;padding:14px 28px;border-radius:100px;text-decoration:none;box-shadow:0 4px 12px rgba(37,211,102,0.4);letter-spacing:0.01em;\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\">\n      <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/>\n    <\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Aprenda DDL no PostgreSQL: descubra como usar CREATE TABLE, ALTER, DROP e explorar schemas. Clique e domine o gerenciamento de bancos de dados!<\/p>\n","protected":false},"author":1,"featured_media":520,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0,"footnotes":""},"categories":[75],"tags":[851,850,849,852,853],"class_list":["post-521","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-alter-table","tag-create-table","tag-ddl","tag-drop-table","tag-schemas-postgresql"],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/521","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=521"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/521\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/520"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=521"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}