Skip to content

Latest commit

 

History

History
218 lines (158 loc) · 6.98 KB

oracle.md

File metadata and controls

218 lines (158 loc) · 6.98 KB

Oracle

Este guia fornece informações abrangentes sobre como trabalhar com o Banco de Dados Oracle, incluindo exemplos comuns de consultas SQL, melhores práticas e dicas para o gerenciamento do banco de dados. Seja você um iniciante ou um usuário experiente, este guia ajudará você a aproveitar ao máximo o Banco de Dados Oracle.

Índice


Introdução ao Banco de Dados Oracle

O Banco de Dados Oracle é um sistema de gerenciamento de banco de dados relacional (RDBMS) poderoso e amplamente utilizado, que suporta uma grande variedade de aplicativos, desde pequenos até sistemas empresariais de grande porte. Conhecido por sua robustez, escalabilidade e recursos abrangentes, o Banco de Dados Oracle é uma escolha preferida por muitas empresas ao redor do mundo.

Principais Recursos do Banco de Dados Oracle:

  • Suporte multi-modelo (relacional, documento, chave-valor, gráfico).
  • Alta disponibilidade e tolerância a falhas.
  • Recursos avançados de segurança, incluindo criptografia e auditoria.
  • Suporte completo para SQL e PL/SQL.
  • Escalabilidade de aplicações pequenas a sistemas empresariais grandes.
  • Ferramentas integradas para backup, recuperação e ajuste de desempenho.

Conectando-se ao Banco de Dados Oracle

Para se conectar ao Banco de Dados Oracle, você pode usar diferentes métodos, dependendo da linguagem de programação ou ferramenta que está utilizando. Aqui estão exemplos para vários cenários.

Exemplo usando SQL*Plus (Ferramenta de Linha de Comando):

  1. Abra o terminal ou prompt de comando.
  2. Execute o seguinte comando para se conectar ao seu Banco de Dados Oracle:
    sqlplus usuario/senha@host:porta/nome_serviço
  3. Após a conexão, você pode executar consultas SQL diretamente na linha de comando do SQL*Plus.

Exemplo usando Python com cx_Oracle:

import cx_Oracle

# Estabelecendo a conexão com o banco de dados Oracle
conexao = cx_Oracle.connect('usuario/senha@host:porta/nome_serviço')

# Criando um objeto cursor para executar as consultas SQL
cursor = conexao.cursor()

Exemplo usando Oracle SQL Developer:

  1. Abra o SQL Developer.
  2. Crie uma nova conexão inserindo seu nome de usuário, senha, host, porta e nome do serviço.
  3. Após a conexão, você pode executar consultas e gerenciar seu banco de dados através da interface gráfica.

Consultas SQL Básicas no Oracle

Aqui estão algumas consultas SQL básicas frequentemente utilizadas com o Banco de Dados Oracle.

Selecionando Dados

Para recuperar dados de uma tabela:

SELECT * FROM funcionarios WHERE departamento_id = 10;

Inserindo Dados

Para inserir um novo registro em uma tabela:

INSERT INTO funcionarios (funcionario_id, nome, sobrenome, departamento_id, salario) 
VALUES (101, 'João', 'Silva', 10, 50000);

Atualizando Dados

Para atualizar um registro existente em uma tabela:

UPDATE funcionarios 
SET salario = 55000 
WHERE funcionario_id = 101;

Deletando Dados

Para excluir um registro de uma tabela:

DELETE FROM funcionarios WHERE funcionario_id = 101;

Consultas Avançadas e Funções

Junções

O Oracle suporta diferentes tipos de junções, incluindo INNER JOIN, LEFT JOIN, RIGHT JOIN e FULL OUTER JOIN.

SELECT f.nome, f.sobrenome, d.nome_departamento
FROM funcionarios f
INNER JOIN departamentos d ON f.departamento_id = d.departamento_id;

Subconsultas

Subconsultas são usadas quando você precisa recuperar dados de uma consulta e usá-los em outra consulta.

SELECT nome, sobrenome
FROM funcionarios
WHERE departamento_id = (SELECT departamento_id FROM departamentos WHERE nome_departamento = 'TI');

Criando Gatilhos

Gatilhos executam automaticamente ações quando certos eventos ocorrem no banco de dados, como inserções, atualizações ou exclusões.

CREATE OR REPLACE TRIGGER atualiza_salario_funcionario
BEFORE UPDATE ON funcionarios
FOR EACH ROW
BEGIN
    IF :NEW.salario > 100000 THEN
        RAISE_APPLICATION_ERROR(-20001, 'Salário excede o limite permitido.');
    END IF;
END;

Criando Visões

Visões simplificam consultas complexas criando tabelas virtuais que podem ser consultadas como tabelas regulares.

CREATE VIEW resumo_funcionarios AS
SELECT funcionario_id, nome, sobrenome, departamento_id
FROM funcionarios
WHERE salario > 50000;

Otimização de Desempenho

O Banco de Dados Oracle oferece várias maneiras de otimizar o desempenho das consultas, especialmente ao lidar com grandes volumes de dados.

  • Índices: Índices podem melhorar drasticamente o desempenho das consultas envolvendo cláusulas WHERE e operações de JOIN.
CREATE INDEX idx_funcionario_departamento 
ON funcionarios(departamento_id);
  • EXPLAIN PLAN: Use o EXPLAIN PLAN para analisar o desempenho de consultas SQL.
EXPLAIN PLAN FOR
SELECT * FROM funcionarios WHERE departamento_id = 10;
  • Particionamento: Particione grandes tabelas para melhorar o desempenho e a gerenciabilidade.
CREATE TABLE vendas_part
(
    venda_id NUMBER,
    data_venda DATE,
    valor NUMBER
)
PARTITION BY RANGE (data_venda)
(
    PARTITION vendas_q1 VALUES LESS THAN (TO_DATE('2023-04-01', 'YYYY-MM-DD')),
    PARTITION vendas_q2 VALUES LESS THAN (TO_DATE('2023-07-01', 'YYYY-MM-DD'))
);
  • Otimização de Junções: Use o tipo adequado de junção (INNER JOIN, LEFT JOIN, etc.) de acordo com os dados.

Tratamento de Erros e Depuração

No Oracle, você pode tratar erros e exceções usando blocos PL/SQL e os recursos integrados de tratamento de exceções.

Exemplo de Tratamento de Erros em PL/SQL:

BEGIN
    UPDATE funcionarios 
    SET salario = 60000 
    WHERE funcionario_id = 101;
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        DBMS_OUTPUT.PUT_LINE('Funcionário não encontrado.');
    WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Ocorreu um erro: ' || SQLERRM);
END;

Usando SQL*Plus para Tratar Erros:

Você pode usar o comando SHOW ERRORS para exibir quaisquer erros encontrados no SQL*Plus.

SHOW ERRORS;