Oracle Database gratuito

Instalação, configuração e uso básico
Voltar

Pré-requisitos (Windows):

  1. Docker;
  2. Datagrip.

Passo a passo:

  1. Baixar imagem do Oracle Database:
    
    docker pull container-registry.oracle.com/database/free:latest
    
  2. Executar container:
    
    docker run -d --name oracle-db -p 1521:1521 -p 5500:5500 -e ORACLE_PWD=SenhaForte123 container-registry.oracle.com/database/free:latest
    
  3. Configurar conexão datasource (Datagrip):
    • Driver: Oracle
    • Connection Type: Service Name
    • Hostname: localhost
    • Port: 1521
    • Service: FREEPDB1
    • Driver: Thin
    • Authentication: User & Password
    • User: system
    • Password: SenhaForte123
    • Testar conexão, e confirmar

Utilização (SQL):

  • Criar tabela de gatos:
    
    CREATE TABLE gato (
        id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
        nome VARCHAR2(100) NOT NULL,
        raca VARCHAR2(80),
        idade NUMBER CHECK (idade >= 0),
        peso NUMBER(5, 2) CHECK (peso > 0),
        cor VARCHAR2(50),
        ativo NUMBER(1) DEFAULT 1 CHECK (ativo IN (0, 1)),
        criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        atualizado_em TIMESTAMP
    );
    
  • Inserir gatos:
    
    INSERT INTO
    gato (nome, raca, idade, peso, cor, ativo)
    VALUES
    ('mingau', 'siamês', 3, 4.20, 'branco', 1),
    ('tom', 'srd', 5, 5.10, 'cinza', 1),
    ('luna', 'persa', 2, 3.80, 'preto', 1),
    ('nina', 'maine coon', 4, 6.50, 'marrom', 1),
    ('garfield', 'persa', 6, 7.20, 'laranja', 1),
    ('felix', 'srd', 1, 3.10, 'preto e branco', 0),
    ('oliver', 'british shorthair', 3, 4.90, 'cinza claro', 1);
    
  • Visualizar gatos:
    
    SELECT * FROM gato;
    SELECT * FROM gato WHERE LOWER(TRIM(raca)) = 'persa' AND ativo = 1 AND idade > 5;
    SELECT raca, COUNT(*) AS total_gatos FROM gato WHERE ativo = 1 GROUP BY raca ORDER BY total_gatos DESC;
    
  • Atualizar informações de um gato:
    
    UPDATE gato
    SET
    nome = 'pipo',
    peso = 4.50,
    idade = 4,
    atualizado_em = CURRENT_TIMESTAMP
    WHERE
    LOWER(TRIM(nome)) = 'mingau' AND ativo = 1;
    
    SELECT * FROM gato;
    
  • Excluir um gato:
    
    SELECT LOWER(TRIM(raca)) AS raca, COUNT(*) AS total FROM gato WHERE LOWER(TRIM(raca)) = 'srd' GROUP BY LOWER(TRIM(raca));
    DELETE FROM gato WHERE LOWER(TRIM(nome)) = 'felix' AND LOWER(TRIM(raca)) = 'srd' AND ativo = 0;
    SELECT * FROM gato WHERE LOWER(TRIM(raca)) = 'srd';
    

Elaborado por Mateus Schwede
ubsocial.github.io