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);
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)