Comando SQL para criação de banco de dados

12/04/2024

0

Olá pessoal.
Abaixo segue uma criação de banco de dados que realizei para uma empresa que precisa emitir certidões de débito (se o cliente deve a empresa ou não).
Logo abaixo tem alguns comandos para realização de algumas atividades.

CREATE DATABASE empresax

CREATE TABLE cliente (
id SERIAL PRIMARY KEY,
nome VARCHAR(20) NOT NULL,
cpf VARCHAR(11) NOT NULL
);

CREATE TABLE Certidao (
id SERIAL PRIMARY KEY,
cliente_id INT,
FOREIGN KEY (cliente_id) REFERENCES cliente(id),
data_emissao DATE,
validade DATE,
codigo_validacao INT
)

CREATE TABLE Imovel (
id SERIAL PRIMARY KEY,
cliente_id INT,
FOREIGN KEY (cliente_id) REFERENCES cliente(id),
endereco VARCHAR(50) NOT NULL,
contrato_ativo BOOL
)

CREATE TABLE Debito (
id SERIAL PRIMARY KEY,
cliente_id INT,
FOREIGN KEY (cliente_id) REFERENCES cliente(id),
valor INT,
data_vencimento DATE
)

INSERT INTO cliente (nome, cpf) VALUES ('Pedro', '12345678')

-- Selecionando todos os clientes:
select * from cliente;
-- Selecionando todas as certidões emitidas:
select * from Certidao;
-- Obtendo os débitos pendentes de um cliente específico:
SELECT * FROM Debito WHERE cliente_id = 1 AND data_vencimento < CURRENT_DATE;
-- Obtendo os imóveis de um cliente com contrato ativo:
SELECT * FROM Imovel WHERE cliente_id = 1 AND contrato_ativo = TRUE;
-- Obtendo certidões emitidas por um cliente em um intervalo de datas:
SELECT * FROM Certidao WHERE cliente_id = 1 AND data_emissao BETWEEN 'data_inicio' AND 'data_fim';
-- Obtendo o valor total dos débitos de um cliente:
SELECT SUM(valor) AS valor_total_debitos FROM Debito WHERE cliente_id = 1;
-- Obtendo as certidões emitidas com código de validação e data de validade:
SELECT * FROM Certidao WHERE codigo_validacao IS NOT NULL AND validade IS NOT NULL;
-- Obtendo os clientes que possuem débitos pendentes:
SELECT c.* FROM cliente c
JOIN Debito d ON c.id = d.cliente_id
WHERE d.data_vencimento < CURRENT_DATE;
-- Obtendo a quantidade de certidões emitidas por mês:
SELECT EXTRACT(MONTH FROM data_emissao) AS mes, COUNT(*) AS quantidade_certidoes FROM Certidao
GROUP BY EXTRACT(MONTH FROM data_emissao);
Pedro Bonfim

Pedro Bonfim

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar