Neste laboratório, exploraremos a criação de tabelas e tipos de dados no PostgreSQL. O objetivo é entender os tipos de dados fundamentais, como inteiros, texto, datas e booleanos, que são cruciais para definir estruturas de tabelas e garantir a integridade dos dados.
Conectaremos ao banco de dados PostgreSQL usando psql, criaremos tabelas com chaves primárias usando SERIAL e adicionaremos restrições básicas como NOT NULL e UNIQUE. Em seguida, inspecionaremos a estrutura da tabela e inseriremos dados para demonstrar o uso de diferentes tipos de dados como INTEGER, SMALLINT, TEXT, VARCHAR(n) e CHAR(n).
Explorar os Tipos de Dados do PostgreSQL
Nesta etapa, exploraremos alguns dos tipos de dados fundamentais disponíveis no PostgreSQL. Compreender os tipos de dados é crucial para definir estruturas de tabelas e garantir a integridade dos dados. Abordaremos tipos comuns como inteiros, texto, datas e booleanos.
Primeiro, vamos conectar ao banco de dados PostgreSQL. Abra um terminal e use o comando psql para conectar ao banco de dados postgres como o usuário postgres. Como o usuário postgres é o superusuário padrão, pode ser necessário usar sudo para mudar para esse usuário primeiro.
sudo -u postgres psql
Você deve estar agora no terminal interativo do PostgreSQL. Você verá um prompt como postgres=#.
Agora, vamos explorar alguns tipos de dados básicos.
1. Tipos Inteiros:
O PostgreSQL oferece vários tipos inteiros com diferentes intervalos. Os mais comuns são INTEGER (ou INT) e SMALLINT.
INTEGER: Uma escolha típica para a maioria dos valores inteiros.
SMALLINT: Usado para valores inteiros menores para economizar espaço.
Vamos criar uma tabela simples para demonstrar esses tipos:
CREATE TABLE integer_example (
id SERIAL PRIMARY KEY,
quantity INTEGER,
small_quantity SMALLINT
);
Aqui, SERIAL é um tipo especial que gera automaticamente uma sequência de inteiros, tornando-o adequado para chaves primárias.
Agora, insira alguns dados:
INSERT INTO integer_example (quantity, small_quantity) VALUES (100, 10);
INSERT INTO integer_example (quantity, small_quantity) VALUES (2000000, 32767);
CREATE TABLE boolean_example (
id SERIAL PRIMARY KEY,
is_active BOOLEAN
);
Insira dados:
INSERT INTO boolean_example (is_active) VALUES (TRUE);
INSERT INTO boolean_example (is_active) VALUES (FALSE);
Visualize os dados:
SELECT * FROM boolean_example;
Saída:
id | is_active
----+-----------
1 | t
2 | f
(2 rows)
Finalmente, saia do terminal psql:
\q
Você explorou agora alguns dos tipos de dados fundamentais no PostgreSQL. Esses tipos de dados formam os blocos de construção para criar esquemas de banco de dados robustos e bem definidos.
Criar Tabelas com Chaves Primárias
Nesta etapa, aprenderemos como criar tabelas com chaves primárias no PostgreSQL. Uma chave primária é uma coluna ou um conjunto de colunas que identifica exclusivamente cada linha em uma tabela. Ela impõe a unicidade e serve como um elemento crucial para a integridade dos dados e as relações entre as tabelas.
Primeiro, vamos conectar ao banco de dados PostgreSQL. Abra um terminal e use o comando psql para conectar ao banco de dados postgres como o usuário postgres.
sudo -u postgres psql
Você deve estar agora no terminal interativo do PostgreSQL.
Entendendo as Chaves Primárias
Uma chave primária tem as seguintes características:
Deve conter valores únicos.
Não pode conter valores NULL.
Uma tabela pode ter apenas uma chave primária.
Criando uma Tabela com uma Chave Primária
Existem duas maneiras comuns de definir uma chave primária ao criar uma tabela:
Usando a restrição PRIMARY KEY dentro da definição da coluna:
Neste exemplo, product_id é definido como a chave primária usando a restrição PRIMARY KEY. A palavra-chave SERIAL cria automaticamente uma sequência para gerar valores inteiros únicos para o product_id.
Isso demonstra a restrição de chave primária em ação, impedindo valores duplicados.
Finalmente, saia do terminal psql:
\q
Você criou com sucesso uma tabela com uma chave primária e observou como ela impõe a unicidade. Este é um conceito fundamental no design de banco de dados.
Adicionar Restrições Básicas (NOT NULL, UNIQUE)
Nesta etapa, aprenderemos como adicionar restrições básicas às tabelas no PostgreSQL. Restrições são regras que impõem a integridade e consistência dos dados. Vamos nos concentrar em duas restrições fundamentais: NOT NULL e UNIQUE.
Primeiro, vamos conectar ao banco de dados PostgreSQL. Abra um terminal e use o comando psql para conectar ao banco de dados postgres como o usuário postgres.
sudo -u postgres psql
Você deve estar agora no terminal interativo do PostgreSQL.
Entendendo as Restrições
As restrições são usadas para limitar o tipo de dados que podem ser inseridos em uma tabela. Isso garante a precisão e a confiabilidade dos dados no banco de dados.
1. Restrição NOT NULL
A restrição NOT NULL garante que uma coluna não pode conter valores NULL. Isso é útil quando uma informação específica é essencial para cada linha na tabela.
2. Restrição UNIQUE
A restrição UNIQUE garante que todos os valores em uma coluna sejam distintos. Isso é útil para colunas que devem ter identificadores ou valores únicos, como nomes de usuário ou endereços de e-mail (além da chave primária).
Adicionando Restrições Durante a Criação da Tabela
Você pode adicionar restrições ao criar uma tabela. Vamos criar uma tabela chamada employees com restrições NOT NULL e UNIQUE:
CREATE TABLE employees (
employee_id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
hire_date DATE
);
Nesta tabela:
employee_id é a chave primária.
first_name e last_name são declarados como NOT NULL, o que significa que eles devem ter um valor para cada funcionário.
email é declarado como UNIQUE, garantindo que cada funcionário tenha um endereço de e-mail exclusivo.
Agora, vamos tentar inserir alguns dados que violam essas restrições.
Tentando inserir um valor NULL em uma coluna NOT NULL:
employee_id | first_name | last_name | email | hire_date
-------------+------------+-----------+---------------------+------------
1 | John | Smith | john.smith@example.com | 2023-10-27
2 | Jane | Doe | jane.doe@example.com | 2023-10-28
(2 rows)
Finalmente, saia do terminal psql:
\q
Você criou com sucesso uma tabela com restrições NOT NULL e UNIQUE e observou como elas impõem a integridade dos dados.
Inspecionar a Estrutura da Tabela
Nesta etapa, aprenderemos como inspecionar a estrutura das tabelas no PostgreSQL. Compreender a estrutura de uma tabela, incluindo nomes de colunas, tipos de dados, restrições e índices, é essencial para consultar e manipular dados de forma eficaz.
Primeiro, vamos conectar ao banco de dados PostgreSQL. Abra um terminal e use o comando psql para conectar ao banco de dados postgres como o usuário postgres.
sudo -u postgres psql
Você deve estar agora no terminal interativo do PostgreSQL.
O comando \d
A principal ferramenta para inspecionar a estrutura da tabela no psql é o comando \d (describe). Este comando fornece informações detalhadas sobre uma tabela, incluindo:
Para listar todas as tabelas no banco de dados atual, você pode usar o comando \dt:
\dt
Saída (variará dependendo das tabelas que você criou):
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+----------
public | boolean_example | table | postgres
public | customers | table | postgres
public | datetime_example | table | postgres
public | employees | table | postgres
public | integer_example | table | postgres
public | products | table | postgres
public | text_example | table | postgres
public | users | table | postgres
(8 rows)
Finalmente, saia do terminal psql:
\q
Você aprendeu como inspecionar a estrutura das tabelas no PostgreSQL usando os comandos \d e \dt. Esta é uma habilidade fundamental para entender e trabalhar com bancos de dados.
Resumo
Neste laboratório, exploramos os tipos de dados fundamentais do PostgreSQL, com foco em inteiros e texto. Aprendemos sobre INTEGER e SMALLINT para armazenar valores inteiros, compreendendo suas diferentes faixas e casos de uso. Também examinamos TEXT, VARCHAR(n) e CHAR(n) para lidar com dados de texto, observando as distinções entre strings de comprimento variável e comprimento fixo.
Além disso, praticamos a criação de tabelas usando esses tipos de dados, incluindo o uso de SERIAL para gerar automaticamente sequências de chaves primárias. Inserimos dados de exemplo nas tabelas e verificamos os dados usando as instruções SELECT, solidificando nossa compreensão de como esses tipos de dados se comportam em um contexto prático de banco de dados.