Criação e Inserção de Dados
Criação da Tabela produtos com Restrições
CREATE TABLE produtos (
id SERIAL PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
categoria VARCHAR(50) NOT NULL,
preco DECIMAL(10, 2) NOT NULL,
estoque INT NOT NULL );
CREATE TABLE produtos (
id SERIAL PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
categoria VARCHAR(50) NOT NULL,
preco DECIMAL(10, 2) NOT NULL,
estoque INT NOT NULL );
Inserção de Dados na Tabela
INSERT INTO produtos (nome, categoria, preco, estoque) VALUES ('Celular', 'Eletrônicos', 1500.00, 10), ('Notebook', 'Eletrônicos', 3500.00, 5), ('Cadeira Gamer', 'Móveis', 800.00, 20), ('Mesa', 'Móveis', 300.00, 15), ('Monitor', 'Eletrônicos', 1200.00, 8);
Restrições (Constraints)
1. PRIMARY KEY
- Define uma ou mais colunas como identificadoras únicas de cada registro na tabela.
- Exemplo:
id SERIAL PRIMARY KEY
.
2. NOT NULL
- Garante que a coluna não pode conter valores nulos.
- Exemplo:
nome VARCHAR(100) NOT NULL
.
3. UNIQUE
- Garante que os valores de uma coluna ou conjunto de colunas sejam únicos.
- Exemplo:
CREATE TABLE usuarios ( email VARCHAR(255) UNIQUE );
4. DEFAULT
- Define um valor padrão para a coluna, caso não seja especificado na inserção.
- Exemplo:
CREATE TABLE clientes ( status VARCHAR(20) DEFAULT 'ativo' );
Tipos de Dados Comuns no PostgreSQL
1. SERIAL
- Tipo especial para gerar números inteiros automaticamente. Usado frequentemente como chave primária.
- Exemplo:
id SERIAL PRIMARY KEY
. - Características:
- Incrementa automaticamente a cada nova inserção.
- Internamente é um
INTEGER
com uma sequência associada.
2. VARCHAR(n)
- Armazena strings com tamanho máximo especificado por
n
. - Exemplo:
nome VARCHAR(100)
. - Quando usar:
- Quando o tamanho máximo do texto é conhecido.
3. TEXT
- Armazena strings de tamanho ilimitado.
- Exemplo:
descricao TEXT
. - Quando usar:
- Quando o tamanho do texto pode variar muito e não é limitado.
4. INT (ou INTEGER)
- Armazena números inteiros.
- Exemplo:
estoque INT
. - Quando usar:
- Para contadores, identificadores ou números sem casas decimais.
5. DECIMAL (ou NUMERIC)
- Armazena números com precisão exata, ideal para valores monetários.
- Exemplo:
preco DECIMAL(10, 2)
. - Diferença do FLOAT:
- DECIMAL garante precisão exata (usado para cálculos financeiros).
- FLOAT é mais eficiente, mas pode introduzir pequenas imprecisões.
6. FLOAT
- Armazena números de ponto flutuante (com casas decimais).
- Exemplo:
taxa FLOAT
. - Quando usar:
- Para cálculos científicos ou quando a precisão não é uma prioridade.
Diferença Entre VARCHAR e TEXT
Característica | VARCHAR | TEXT |
---|---|---|
Tamanho Máximo | Limitado pelo valor “n”. | Ilimitado. |
Performance | Melhor em validações. | Sem validação de tamanho. |
Uso Comum | Dados com limite fixo. | Dados grandes e variáveis. |
Operações SQL
Exemplo de SELECT
SELECT * FROM produtos;
Exemplo de INSERT
INSERT INTO produtos (nome, categoria, preco, estoque) VALUES ('Teclado', 'Eletrônicos', 150.00, 30);
Exemplo de UPDATE
UPDATE produtos SET preco = 1400.00 WHERE id = 5;
Exemplo de DELETE
DELETE FROM produtos WHERE id = 4;
Exemplo com FLOAT
Criação da Tabela com FLOAT
CREATE TABLE produtos ( id INT PRIMARY KEY, nome VARCHAR(100) NOT NULL, categoria VARCHAR(50) NOT NULL, preco FLOAT NOT NULL, estoque INT NOT NULL );
Inserção de Dados com FLOAT
INSERT INTO produtos (id, nome, categoria, preco, estoque) VALUES (1, 'Celular', 'Eletrônicos', 1500.99, 10), (2, 'Notebook', 'Informática', 3500.49, 5), (3, 'Fone de Ouvido', 'Acessórios', 199.99, 50);
Este guia combina a criação de tabelas, manipulação de dados e explicações sobre tipos de dados e restrições no SQL, ideal para iniciantes e intermediários.