Buscar

Resumo


Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

Linguagem Avançada de Banco de Dados
1) EQUI-JOIN
NATURAL JOIN: É a junção duas ou mais colunas que possuem o mesmo nome e o mesmo tipo de dados. Sintaxe:
SELECT *
FROM table1
NATURAL JOIN table2;
EQUI JOIN: É utilizado com o JOIN seguido da palavra ON e possui a mesma função do Natural Join, porém neste caso, é necessário especificar as colunas a serem relacionadas. Sintaxe:
SELECT column_list 
FROM table1, table2....
WHERE table1.column_name =
table2.column_name;
SELF JOIN: É a junção de uma tabela com ela mesmo. Sintaxe:
SELECT a.column_name, b.column_name... 
FROM table1 a, table1 b 
WHERE a.common_filed = b.common_field;
2) NON-EQUI-JOIN: É a junção que envolve qualquer operador de comparação, além da igualdade. Sintaxe:
SELECT *
FROM table_name1, table_name2 
WHERE table_name1.column [> | < | >= | <= ] table_name2.column;
3) OUTER-JOIN
LEFT OUTER JOIN: Retorna todos os registros da tabela da esquerda (isto é, a primeira tabela mencionada), com os valores da tabela direita correspondente, ou quando não há correspondência retorna o valor NULL. Sintaxe:
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name = table2.column_name;
RIGHT OUTER JOIN: Retorna todos os registros da tabela da direita (isto é, a primeira tabela mencionada), com os valores da tabela esquerda correspondente, ou quando não há correspondência retorna o valor NULL. Sintaxe:
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name = table2.column_name;
FULL OUTER JOIN: Retorna todos os registros das tabelas à esquerda e à direita e apresentará valores nulos para os registros sem correspondência. Sintaxe:
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
CROSS JOIN: Cada registro da primeira tabela se relaciona com todos os elementos da segunda tabela. Sintaxe:
SELECT column_name(s)
FROM table1
CROSS JOIN table2;
VIEW: Pode ser considerada como uma tabela virtual ou uma consulta armazenada para visualizar uma ou mais entidades que compõem uma base de dados. É selecionada através do comando select. Vantagens:
· Restringir o acesso aos dados: através do comando select é possível filtrar linhas e colunas que não podem ser visualizadas por todos os usuários;
· Independência de dados;
· Representar diferentes visões dos mesmos dados.
Sintaxe:
CREATE VIEW nome_view
AS SELECT campos FROM tabela(s)
WHERE condição;
SEQUENCE: São objetos que geram números sequenciais e são muito utilizados na criação de IDs para chave primária na inserção de registros na tabela. Sintaxe:
CREATE SEQUENCE nome_sequence
INCREMENT BY n
START WITH n
MAXVALUE n |NOMAXVALUE
CACHE n | NOCACHE
CYCLE | NOCYCLE;
ÍNDICES: São objetos do banco que você pode criar para aumentar o desempenho das queries.
Um índice é criado automaticamente quando você define:
· uma constraint de primary key; 
· uma constraint unique.
Usuários podem criar índices em determinadas colunas para aumentar a velocidade de acesso na recuperação das linhas. Sintaxe:
CREATE INDEX index
ON table (column[, column]...);
DICIONÁRIO DE DADOS: É um conjunto de tabelas e visões que armazenam informações sobre o Banco de Dados que incluem os nomes dos usuários do servidor Oracle, os privilégios concedidos aos usuários, os nomes dos objetos do Banco de Dados, as constraints de Tabela e as informações de auditoria. 
	Há quatro categorias de views de dicionário de dados, sendo que cada categoria possui um prefixo distinto, que identifica o uso pretendido.
· USER_: contém detalhes dos objetivos pertencentes ao usuário;
· ALL_: contém detalhes dos objetos para os quais o usuário ganhou direitos de acesso e dos objetos pertencentes ao usuário;
· DBA_: contém detalhes dos usuários com privilégios de DBA para acessar qualquer objeto do banco de dados;
· VS_: armazena informações sobre o desempenho ou bloqueio do servidor do banco de dados, disponível para os administradores do banco. 
PL/SQL: Program Language SQL é a linguagem de programação da Oracle que permite desenvolver programas que são armazenados, compilados e executados dentro do servidor de banco de dados Oracle. É tipicamente utilizado em aplicações que requerem alto desempenho na execução de suas tarefas.
Vantagens:
· Portabilidade: qualquer máquina que rode o banco Oracle pode executar a mesma aplicação PL/SQL;
· Integração com o gerenciador de banco: visto que as variáveis podem ser definidas a partir da definição de colunas no banco, as alterações nele realizadas podem automaticamente (ou seja, sem manutenções) refletir nos blocos PL/SQL;
· Capacidade Procedural: comandos de repetição, controle de fluxo e tratamento de erros;
· Produtividade: desenvolvimento de procedures, functions e triggers.
Sintaxe:
· DECLARE (opcional): Variáveis, cursores, constantes, tabelas, estruturas, excepetions;
· BEGIN (obrigatório): SQL statements, PL/SQL statements;
· EXCEPTION (opcional): Ações que deverão ser executadas quando ocorrer erros;
· END (obrigatório).
	Podemos ter três tipos de blocos PL/SQL: anônimos, procedures e functions. 
%TYPE - HERANÇA DE TIPO E TAMANHO: É usada para declarar uma variável com base em: um campo de uma tabela e outra variável já declarada. 
CURSORES: São áreas compostas de linhas e colunas em memória que servem para armazenar o resultado de uma seleção que retorna zero ou mais registros. Temos dois tipos de cursores: 
· Implícitos: declarado e gerenciado pelo Oracle;
· Explícito: declarado e gerenciado pelo programador (OPEN, FETCH e CLOSE).
STORED PROCEDURE: São blocos PL/SQL armazenados no servidor de banco de dados de forma compilada que NÃO retorna valor. Podem ou não receber parâmetros e esses parâmetros podem ser de três tipos:
· IN (padrão): passa um valor do ambiente chamador para o subprograma e esse valor não pode ser alterado dentro do subprograma;
· OUT: passa um valor do subprograma para o ambiente chamador;
· IN/OUT: passa um valor do ambiente chamados para o subprograma. Esse valor pode ser alterado dentro do subprograma e retornado com o valor atualizado para o ambiente chamador.
Somente variáveis do tipo OUT ou IN/OUT podem sofrer alterações dentro da procedure.
Sintaxe:
	CREATE OR REPLACE PROCEDURE Nome_Proc
		(Argumento1 modo Tipo_de_Dados,
Argumento2 modo Tipo_de_Dados,
Argumento3 modo Tipo_de_Dados)
IS ou AS
Variáveis locais, constantes...
BEGIN
Bloco PL/SQL
Excepetion
END nome_do_procedure;
FUNCTIONS (Funções em português): São blocos PL/SQL nomeados, muito semelhantes às Stored Procedures. A diferença principal é que as Funções obrigatoriamente devem retornar um valor.
As funções são muito utilizadas para computar valores, promover reusabilidade e facilidade de manutenção e podem ser chamadas a partir de outros blocos PL/SQL ou até mesmo por instruções SQL.
Sintaxe:
	CREATE OR REPLACE PROCEDURE Nome_Funcao
		(Argumento1 modo Tipo_de_Dados,
Argumento2 modo Tipo_de_Dados,
Argumento3 modo Tipo_de_Dados)
RETURN Tipo_de_Dado
IS ou AS
Declarações
BEGIN
Bloco PL/SQL
Excepetion
END nome_da_funcao;
	As funções não podem ser usadas nas seguintes opções:
· Em uma cláusula de restrição CHECK de um CREATE TABLE ou ALTER TABLE, em uma cláusula DEFAULT de uma instrução CREATE TABLE ou ALTER TABLE. 
· Além disso, quando uma função é chamada a partir de uma consulta ou instrução DML, a função NÃO pode ter OUT ou IN OUT como parâmetros de informações.
EXCEPTIONS: São utilizados no Oracle quando ocorre algum erro. Existem dois tipos de exceções dentro do Oracle:
· Exceções Predefinidas: são exceções existentes implicitamente dentro do Oracle e que são disparadas automaticamente por ele quando ocorre um erro no programa;
· Exceções Definidas pelo Usuário: são exceções que precisam ser declaradas e disparadas pelo usuário. O Oracle desconhece sua existência.
	Sintaxe:
DECLARE
-- variáveis
BEGIN
--
-- comandos
BEGIN
-- comandos
EXCEPTION
WHEN <exception 1> THEN
-- comandos ou mensagens
WHEN <exception n> THEN
-- comandos ou mensagens
END;
-- mais comandos
--
EXCEPTION
WHEN <exception 1> THEN
-- comandosou mensagens
WHEN <exception n> THEN
-- comandos ou mensagens
END;
PACKAGES: É um componente o qual podemos agrupar funções, procedures, variáveis, tipos de dados e etc, como componentes em uma biblioteca armazenada no banco, onde vários usuários poderão ter acesso e se beneficiar de tudo que tem no package com o intuito de organizar esses objetos por assunto.
	Uma package é composta por:
· Especificação: especification;
· Corpo: body.
	Sintaxe:
· Área de Especificação: Declarações públicas, ou seja, as variáveis, constantes, cursores, exceções e subprogramas que estarão disponíveis para uso externo à package.
CREATE OR REPLACE PACKAGE Nome_da_Package IS
	Para procedures e functions, só os cabeçalhos (interface)
	PROCEDURE Nome_da_Procedure (Lista_de_Parâmetros);
FUNCTIONS Nome_da_Function (Lista_de_Parâmetros);
Declaração variáveis, constantes, exceções e cursores públicos
END
· Corpo: Declarações privadas que estarão disponíveis apenas dentro da própria package e a definição das ações para os subprogramas, sejam eles públicos (área de especificação) ou privados.
CREATE OR REPLACE PACKAGE BODY Nome_da_Package IS
Declaração variáveis, constantes, exceções e cursores públicos
	PROCEDURE Nome_da_Procedure (Lista_de_Parâmetros)
	IS
	BEGIN
	END;
FUNCTIONS Nome_da_Function (Lista_de_Parâmetros);
RETURN tipo
	BEGIN
	RETURN
	END;
END
TRIGGERS: São blocos PL/SQL disparados automaticamente e implicitamente sempre que ocorrer um evento associado a uma determinada tabela (INSERT, UPDATE e DELETE).
	As Triggers são amplamente utilizadas para a realização de tarefas relacionadas com validações, restrições de acesso, rotinas de segurança e consistência de dados; assim, estes controles deixam de ser executados pela aplicação e passam a ser executados pelos Triggers em determinadas situações:
· Mecanismos de validação envolvendo múltiplas tabelas;
· Criação de conteúdo de uma coluna derivada de outras colunas da tabela;
· Realizar análise e atualizações em outras tabelas com base em alterações e/ou 
· inclusões da tabela atual;
· Preenchimento de campo resultante de uma expressão;
· Crítica aos dados com mensagens mais adequadas às regras do negócio;
· Acessos que alterem linhas de uma tabela ou eventos que ocorram no BD podem ser registrados em outra tabela (auditoria).
Triggers representam unidades de programa que são executadas, automaticamente, antes ou depois de um comando disparador, que pode ser tanto um DML (update, insert ou delete) como um DDL (create, alter, drop, truncate table), ou mesmo um evento ocorrido no BD (conexão, por exemplo).
A criação de uma Trigger envolve duas etapas:
· Um comando SQL que vai disparar o Trigger (INSERT, DELETE, UPDATE);
· A ação que o Trigger vai executar (Geralmente um bloco de códigos SQL).
A utilização de triggers possui algumas limitações:
· Não é possível criar um Trigger para uma visão;
· O resultado da execução de um Trigger é retornado para a aplicação que o chamou;
· O comando TRUNCATE TABLE não pode ser reconhecido por um Trigger.
A diferença da trigger para stored procedure, é a forma de execução. Uma trigger é disparada no momento da execução de um UPDADE, INSERT OU DELETE.