Curso Oracle SQL e PL/SQL

Parte 1 – O comando Select

Apresentação do modelo de dados criado para o curso. Breve histórico da linguagem SQL e da Teoria Relacional. Datatypes existentes no Oracle e sua utilização. Char, Varchar2, Number, Date, Blob, Clob, Long e Rowid. Conjunto de caracteres nacionais. Nchar e Nvarchar. Startup e Shutdown. SQL*Plus, CONNECT, DISCONNECT. Arquitetura Client/Server. Conceitos de tabela, linha e coluna. Exibindo todas as colunas de uma tabela. Comando DESCRIBE. Conceito de dicionário de dados. Comando CREATE TABLE. Selecionando colunas de uma tabela. Cláusula WHERE. Cláusula DISTINCT. Laboratório

Parte 2 – Ordenando o resultado
Conceito de tabela resultado. Cláusula ORDER BY. Ordenando por várias colunas. Utilizando o número de ordem da coluna. Cláusula DESC. Ordenando por uma coluna não exibida. Laboratório

Parte 3 – Operadores booleanos
Conector AND. Conector OR. Hierarquia dos operadores. Alteração da hierarquia através do uso de parênteses. Uso do operador NOT. Hierarquia com uso do operador NOT. Palavra chave IN. Palavra chave BETWEEN. Laboratório

Parte 4 – Recuperação de strings
Operardor LIKE. Uso dos caracteres %(percentual) e _(underscore). Laboratório

Parte 5 – Expressões aritméticas
Operadores aritméticos na linguagem SQL. Formação de expressões. Hierarquia dos operadores. Alias de colunas. Laboratório

Parte 6 – Funções built-in
Conceito de função built-in. Funções escalares e de grupo. Funções AVG, MAX, MIN e COUNT. Uso do COUNT DISTINCT. Função SUM. Cláusula GROUP BY. Agrupando por mais de uma coluna. Cláusula HAVING. Formato geral do comando SELECT. Laboratório

Parte 7 – Funções escalares
Funções numéricas, de caracteres, de data e conversão. Funções ABS, CEIL,
FLOOR. Função MOD. Conceito de tabela DUAL. Uso da tabela nos cálculos aritméticos. Funções SYSDATE e USER. Função ROUND. Arredondamento para inteiro e com casas decimais. Funções SQRT e SIGN. Função TRUNC. Funções de caracteres. A concatenação de strings. Função CONCAT. Funções INSTR, SUBSTR, LPAD, RPAD, LTRIM, RTRIM e LENGTH. Funções de data. Funções ROUND e TRUNC aplicadas às datas. Funções ADD_MONTHS, LAST_DAY, MONTHS_BETWEEN e NEXT_DAY. Função DECODE. Laboratório

Parte 8 – Insert, Delete e Update
O comando INSERT. Tipos de comando INSERT. O comando UPDATE. Atualizando mais de uma coluna no comando UPDATE. Formato geral do comando UPDATE. O comando DELETE. Formato geral do comando DELETE. O conceito de transação. Comandos COMMIT, ROLLBACK. Conceito de savepoint. Comando SAVEPOINT. O mecanismo de bloqueio automático (LOCK). Laboratório

Parte 9 – O tratamento do nullvalue na linguagem SQL
O conceito de nullvalue. Como o nullvalue pode alterar o resultado do comando
SELECT. Cálculos com nullvalue. Comportamento das funções de grupo diante do nullvalue. Comparações envolvendo nullvalue. Ordenando nullvalue. Laboratório

Parte 10 – Operação de join
O conceito de join. Tipos de join. Equijoin, Non equijoin, Outer join e Auto join.
Produto cartesiano. Alias de tabelas. O operador especial (+). Nullvalue na coluna de join. Join com 3 tabelas. Múltiplas condições de join. Laboratório

Parte 11 – Sinônimos
O conceito de sinônimo. Como criar um sinônimo. Comandos CREATE e DROP SYNONYM. Laboratório

Parte 12 – Subqueries
O que é uma subquery. Formato geral de uma subquery. Subquery multicolunas. Subquery multilinhas. Correlated subquery. Operadores EXISTS e NOT EXISTS. Comandos INSERT, UPDATE e DELETE com subquery. DELETE com correlated subquery. Laboratório

Parte 13 – Operações de conjunto
Operadores UNION, INTERSECT, MINUS. Operador UNION ALL. Laboratório

Parte 14 – Views
O conceito de View. Comando CREATE VIEW. Como funciona uma view. View de mais de uma tabela. Cláusula UNION na montagem de uma view. Operações de UPDATE e INSERT através de uma view. O uso de join na formação de views. Cláusulas WITH CHECK OPTION e WITH READ ONLY. Laboratório

Curso Oracle SQL e PL/SQL (continuação)

Parte 15 – Queries hierárquicas
O conceito de query hierárquica. Auto-relacionamento em tabelas. Cláusulas
CONNECT BY, START WITH e PRIOR. Laboratório

Parte 16 – Atribuição de privilégios
O conceito de privilégio. Os tipos de privilégio. Privilégio de sistema e de objeto. O comando GRANT. Os privilégios de objeto existentes. O comando REVOKE. O uso de sinônimos associados aos privilégios de objeto. Laboratório


Parte 17 – Fundamentos da Linguagem PL/SQL
Introdução à linguagem PL/SQL. PL/SQL engine. PL/SQL na arquitetura
Client/Server. Formação de data names. Estrutura da linguagem. DECLARATION SECTION. EXECUTABLE SECTION. EXCEPTION SECTION. Tipos de variáveis existentes no PL/SQL. Declarando uma variável. Incluindo um comentário no programa. Escopo e visibilidade de uma variável. Laboratório

Parte 18 – Estruturas de controle
Comando de atribuição. Concatenação de strings. Exibindo conteúdo de variáveis. Utilizando DBMS_OUTPUT. Expressões aritméticas. Comandos IF-THEN_ELSE, IFELSIF, GOTO e NULL. Expressões lógicas e operadores de comparação. O loop simples. Comandos EXIT e EXIT WHEN. O loop FOR. O loop WHILE. Tratamento do nullvalue no PL/SQL. Laboratório

Parte 19 – Functions e Procedures
Conceitos básicos de uma função. A chamada de uma função. Formato geral de uma stored function. Sintaxe para a criação de uma stored function. Exemplo de uma stored function. Executando uma stored function. Conceitos básicos de uma procedure. Formato geral de uma stored procedure. Sintaxe para a criação de uma stored procedure. O comando SHOW ERRORS. A passagem de parâmetros. Tipos de parâmetros. IN, OUT, IN OUT. Parâmetros default. Passagem de parâmetros posicional, nomeada e combinada. Exemplo de uma stored procedure. Executando uma stored procedure. Obtendo informação sobre functions e procedures. Laboratório

Parte 20 – Trabalhando com cursores
O conceito de cursor. A lógica de utilização de um cursor. Declarar, abrir, ler e
fechar. O uso do cursor no processamento sequencial. A sintaxe para declaração de um cursor. Declaração de um registro. O atributo %ROWTYPE. Comandos OPEN, FETCH e CLOSE. Os atributos %ROWCOUNT, %NOTFOUND, %ISOPEN. O processamento de um cursor em loop explícito e implícito. Cláusula FOR UPDATE. Passagem de parâmetros para um cursor. Variáveis do tipo cursor. Laboratório.

Parte 21 – Tratamento de erros no PL/SQL
Conceito de exception. Exceptions pré-definidas NO_DATA_FOUND,
TOO_MANY_ROWS, VALUE_ERROR, CURSOR_ALREADY_OPEN. Comportamento do PL/SQL diante da ocorrência de uma exception. Formato geral de uma exception section. Cláusula WHEN OTHERS. Declaração de uma exception pelo usuário. Declarativo PRAGMA_EXCEPTION_INIT. Comando RAISE. As funções SQLCODE e SQLERRM. O comando RAISE_APPLICATION_ERROR. Laboratório.

Parte 22 – Triggers
Conceito de trigger. Usos de um trigger. Usando um trigger para garantir a
integridade dos dados. Usando um trigger para automatizar cálculos na base.
Gravação de trilhas de auditoria. Sintaxe para a criação de um trigger. Trigger de tabela e trigger de linha. Cláusulas BEFORE e AFTER. Cláusula WHEN. Cláusula FOR EACH ROW. Evento de disparo de um trigger. Cláusulas BEFORE e AFTER. Valores :NEW e :OLD. Cláusulas DELETING, UPDATING, INSERTING. Restrições no uso de triggers. O erro de “mutating tables”. Ordem de execução dos triggers. Habilitando e desabilitando triggers. Eliminando um trigger. Obtendo informações sobre triggers. Laboratório.

Parte 23 – Packages
Conceito de package. Sintaxe para a criação de um package. Package Specification e package body. Package público e privado. Criando e executando um package. Exemplo de um package. Utilizando um package para inicializações. Executando um package. Eliminando um package. O uso de packages para criação de variáveis públicas. Recuperando informações sobre packages. Laboratório.

Parte 24 – Tópicos avançados em PL/SQL
A implementação de tabelas em memória no PL/SQL. Privilégios na execução de procedures e functions. O conceito de transação autonôma. Uso de transações autonômas no PL/SQL. O conceito de dependência procedural.