POSTGRESS SQL

- ACID
- PADRÃO ANSI

ARQUIVO POSTGREESQL.CONF

- LISTEN ADRRESS É A VARIAVEL QUE GUARDA OS IPS QUE PODEM ACESSAR SEU CLUSTER DE BANCO DE DADOS: 
EXEMPLO 198.34.324.65 (IP DO SERVER QUE ESTA HOSPEDADA MINHA MAQUINA)

-  NAO USAR * EM PRODUÇÃO

ARQUIVO PG_HBA.CONF

- ARQUIVO RESPONSAVEL PELO CONTROLE DE USAURIOS QUE ACESSAM O BANCO DE DADOS


POSTRGRESS SCHEMA É DIFERENTE DE DATABASE
NO MYSQL SE VOCE DER CREATE SCHEMA É O MESMO 
QUE CREATE DATABASE NO POSTGREE NAO

FOREIGN DATA WRAPPERS EM POSTGREES DA PARA CONECTAR 
A UM OUTRO BANCO DE DADOS E PEGAR OS DADOS OU POR 
EXEMPLO EM UMA PLANILHA CSV E CONSUMIR SEUS DADOS
QUE GERAM AS FOREIGN TABLES

INDEPODENCIA

ON CONFLICT <QUERY> DO NOTHING
    - INSERT
    - UPDATE
    - DELETE

DDL
    - IF NOT EXISTS
    - IF EXISTS
    - CREATE
    - CREATE OR REPLACE

VIEWS
    - CREATE OR REPLACE VIEW
    - CREATE VIEW
    - ALTER VIEW
    - DROP VIEW
    - VIEWS COM JOIN APENAS ACEITAM SELECT OUTRAS ACEITAM O CRUD
    - A VIEW É UMA JANELA
    - AO ADICIONAR DADOS NA VIEW ESTA ADICIONANDO NA TABELA QUE ESTA VINCULADA A VIEW
    - QUANDO SE USA UMA VIEW RECURSIVA
        - UNIOL ALL: UNE RESULTADOS CONCRETOS E RESULTADOS NULOS
        - UNION: UNE SOMENTE RESULTADOS CONCRETOS
        - CHECK OPTIONS: O INSERT PE OBRIGADO A SEGUIR AS REGRAS DA TABELA ORIGINAL
            - CHECK OPTIONS ON CASCADE: HERENÇA DAS REGRAS

FUNCOES

SECURITY
    - INVOKER - A FUNÇÃO VAI SER CRIADA COM AS PERMIÇÕES DO USUARIO QUE CHAMOU
    - DEFINER - A FUNÇÃO VAI SER CRIADA COM AS PERMIÇÕES DO USUARIO QUE CRIOU

COMPORTAMENTO
    - IMMUTABLE
    - STABLE
    - VOLATILE

BOAS PRATICAS
    - CALLED ON NULL INPUT - VAI EXECUTAR A FUNÇÃO CASO O PARAMETRO SEJA NULO
    - RETURNS NULL ON NULL INPUT - CASO O PARAMETRO SEJA NULO ELE VAI RETORNAR NULL

RECURSOS
    - COST - LIMITA O USO DA CPU
    - ROWS - AUMENTA O LIMITE DE LINHAS