Escolar Documentos
Profissional Documentos
Cultura Documentos
07
Sábado, 21 de Outubro de 2023
PostgreSQL
Ferramenta de banco de dados gratuita com os melhores recursos do mercado.
Muito robusto, seguro e com ótimas funcionalidades de programação e administração, é
recomendado para aplicações de médio e grande porte.
-- Aula 7 BD - 21/10/2023
/*
Estudo de Caso
Uma empresa requer armazenar os dados de seus clientes. Existem dois tipos de
clientes, pessoa física e pessoa jurídica.
Os dados dos clientes pessoa física são: nome, email, renda, endereço, cpf e gênero.
Os dados dos clientes pessoa jurídica são: nome, email, renda, endereço, cnpj e ramo.
**/
/*
Instruções nativas de linha de comando do PostgreSQL (SQL Shell) são iniciadas com \
1
Banco de Dados Aula
07
Sábado, 21 de Outubro de 2023
**/
-- Criar tabelas.
CREATE TABLE cliente (
codCliente INTEGER PRIMARY KEY,
nome VARCHAR(60) NOT NULL,
email VARCHAR(40) NOT NULL,
renda FLOAT NOT NULL);
/*
ON DELETE CASCADE (Deleção em Cascata) - Quando o registro da tabela
referenciada(Cliente) for excluído, o registro
da
tabela relacionada(pessoaFisica) também será excuído.
**/
CREATE TABLE pessoaFisica (
codCliente INTEGER PRIMARY KEY,
cpf CHAR(14) NOT NULL,
sexo CHAR NOT NULL,
FOREIGN KEY(codCliente) REFERENCES cliente (codCliente) ON DELETE
CASCADE);
2
Banco de Dados Aula
07
Sábado, 21 de Outubro de 2023
\d
\d cliente
\d pessoaFisica
\d pessoaJuridica
\d endereco
INSERT INTO endereco VALUES(NEXTVAL('seqend'), 'Rua s', '318', 'Cidade w', 'RJ', 1),
(NEXTVAL('seqend'), 'Rua d', '231', 'Cidade
e', 'RJ', 4),
(NEXTVAL('seqend'), 'Rua f', '710', 'Cidade
r', 'SP', 2),
(NEXTVAL('seqend'), 'Rua g', '412', 'Cidade
t', 'SP', 5),
(NEXTVAL('seqend'), 'Rua j', '157', 'Cidade
u', 'RJ', 3);
-- Pesquisas
3
Banco de Dados Aula
07
Sábado, 21 de Outubro de 2023
-- Programação no PostgreSQL.
-- Função SQL
$$
LANGUAGE SQL;
-- Executar a Função.
SELECT obterDadosCliente(3);
SELECT obterDadosCliente(5);
-- Função PLPGSQL
RETURN resultado;
4
Banco de Dados Aula
07
Sábado, 21 de Outubro de 2023
END;
$$
LANGUAGE PLPGSQL;
-- Execuções da função.
SELECT calcDesconto(100, 5);