O curso de base de dados ORACLE terá os seguintes módulos:  Introdução a bases de dados (20h)

 0  0  233  2019-02-05 14:32:49 Report infringing document

DISCIPLINA: BASE DE DADOS 1

  No seu processamento integra código SQL IF… THEN …ELSE …END IF;LOOP …END LOOP; DMI O que é PL/SQL IF … THENUPDATE …; ELSE … INSERT …; SELECT …FROM …;UPDATE …; DMI O que é PL/SQL (Cont.) Define uma estrutura em bloco para execução de códigos SQL. Usando SQL para resolver este problema, precisaríamos de uma declaração SQL para cadadeptno e efectuar a referida bonificação a cada empregado semse esquecer que será preciso verificar o salário antes de atribuir o bónus.

PL/SQL:

  Usando SQL para resolver este problema, precisaríamos de uma declaração SQL para cadadeptno e efectuar a referida bonificação a cada empregado semse esquecer que será preciso verificar o salário antes de atribuir o bónus. DMI Ambiente de PL/SQLExecução de Servidor de Oracle Execução de Ferramentas SQL *Plus ORACLEOracle Forms Bloco de PL/SQL Mota de PL/SQL Bloco PL/SQL Executor de SQL Mota de PL/SQL Procedural SQL Executor de Declaração Procedural Mota de PL/SQL Procedural SQL Executor de Declaração Procedural Executor de SQL ORACLEORACLE PL/SQL DMI Vantagens do PL/SQL 1.

2. Melhoria no desempenho

Sem o PL/SQL não seria possível combinar logicamente DMI (Cont.) 2. Envio um bloco

1. Envio de declarações SQL

  PL/SQL (apenas uma uma a uma à BD (inúmerassolicitação da BD) solicitações da BD) SQL1 SQL2 SQL 1 IF … THENSQL 2 SQL 3Resultado SQL4 ORACLEORACLE ELSE SQL 3 SQL5 SQL 4END IF; Várias vezes DMI (Cont.) 3. Existem trêstipos de blocos que compõem um programa PL/SQL: PROCEDURE nome END;FUNCTION nome RETURN tipo_de_dado END; [DECLARE] BEGIN END;Anónimo Procedimento Função Subprogramas DMI Tipo de Blocos (cont.) Anónimo É um bloco sem nome Declarado num ponto da aplicação onde vai ser executado e é compilado sempre que a aplicação for executada.

SET SERVEROUTPUT ON

DBMS_OUTPUT.PUT_LINE

Use o pacote pré-definido da Oracle e seus procedimentos: DMI PL/SQL (cont.) || sinal de concatenação de caracteres DMI Armazenamento de Script DMI Comando SET Torna a saída legível no SQL*Plus É dispensável o uso deste comando quando se usaiSQL*Plus Variável Valor Descrição HEADING ON ou OFF Exibe títulos de colunaLINESIZE Número Indica comprimento de uma linha NULL Caracter Substitui valor de Nulo por outroPAGESIZE Número Número de linhas por página TIMING ON ou OFF Exibe a duração duma execução Quando quiser saber valor da variável, use comando de SHOW DMI PL/SQL DeveloperAcrescente esta DMI Exemplos

1. Qual dos seguintes blocos PL/SQL será executado com sucesso?

a) BEGINEND; b) DECLAREquantidade INTEGER (10); c) DECLAREBEGIN END;d) DECLAREquantidade INTEGER (10); BEGINDBMS_OUTPUT.PUT_LINE(quantidade); END;

2. Crie e execute um bloco anónimo que imprime na tela a seguinte

  PUT_LINE('O Meu Nome é ' || Nome); END; DMI de Variáveis PL/SQL (cont.)SET SERVEROUTPUT ON DECLARE Nome VARCHAR2(20) ;:= ‘ALBERTO’ BEGIN Nome ;:= ‘JOAO’ DBMS_OUTPUT. PUT_LINE('O Meu Nome é ' || Nome);END; / DMI ApóstrofesMuitas palavras Inglesas levam consigo apóstrofes e por vezes pode haver necessidade de gerar saídas para esse tipo depalavras: SET SERVEROUTPUT ON DECLARE event1 VARCHAR2(15);event2 VARCHAR2(15); BEGINevent1:=q’!

DMI BOOLEAN

  PUT_LINE(salsal); END; DMI Questão 6 Analisemos a seguinte questão: Ao referenciar dados da tabela, temos que declarar variáveis para cada coluna? Por exemplo, =, <, >, =<, =>, &, %, (, ) e mais.

1. Liste os identificadores válidos e não válidos entre os seguintes:

  a) hojeDMI b) p_nome c) today´s day d) #numero e) NUMBER# f) numero5 g) Numero_total_de_dias_de_duracao_do_curso_de_bases_de_dados_Oracle_10g 2. Qual é a vantagem do uso do %TYPE 3.

4. Crie um bloco anónimo em que:

  a) Imprima a data de hoje e a data de amanha, acompanhadasdas seguintes mensagens: Hoje é dia: <dia> e amanha será dia: <dia>b) Imprime na tela o nome completo, o salário e a data de contratação de qualquer empregado que for solicitado. Funções agregadas (Funções estatísticas) DMI Funções SQL no PL/SQLExemplo Obtém o comprimento de caracteresConverte o nome do empregado para letra minúsculatamanho INTEGER(5); descricao VARCHAR2(70) := ‘Você pode usar este produto como seu rádio.’; tamanho := LENGTH(descricao);nome_de_emp := LOWER(nome_de_emp); DMI Dados Converte dados a tipos de dados comparáveis São de dois tipos: 1.

2. Conversões explícitas

  PUT_LINE('A data do aniversário é ' || data_de_ani); END; DMI Variável Num Bloco(cont.) O resultado  Alcance é o bloco do programa onde a variável é declarada e acessível.  A visibilidade é o bloco do programa onde a variável pode ser acedida sem precisar de usar um qualificador  As variáveis afectam as variáveis que são dentro dos seus blocos  Se se tiver mesmo nome para duas variável distintas em blocos aninhados (exterior e interior), a variável interior tem prioridade.

IS NOT NULL, LIKE, BETWEEN, IN

  NEXTVAL, ‘Ruth’, ‘SALESMAN’, SYSDATE, 7000, 1400, 40); DMI Actualização de Dados Aumentar o salário de todos os empregados que tenham a categoria CLERK Exemplo DECLARE sal_aumento emp.sal%TYPE := 800;BEGIN UPDATE empSET sal = sal + sal_aumentoWHERE job = ‘CLERK’; END;/ DMI Eliminação de Dados Eliminar as linhas que pertencem ao departamento 10 da tabela emp. DMI para cursores implícitos Use os atributos do Cursor SQL, para poder testar o resultado da sua declaração de SQLSQL% FOUND Atributo Booleano que retorna VE RDADE IRO se a m ais recente declaração de SQL devolver pelo m enosum a linha.

DMI LOOP

 IF deve diferenciar o processo mediante uma condição CASE separa os casos mediante os valores da condição LOOP repete processo enquanto a condição for verdadeira IF

CASE LOOP

  Falso Falso CondiçãoCondição Condição Valor 1 Valor 2 Valor 3 VerdadeiroVerdadeiro Processo 1 Processo 3 Processo 1 Processo 2 Processo 1Processo 2 DMI Declaração IF IF é semelhante à estrutura de IF de qualquer linguagem procedural Sintaxe IF condição THENDeclarações; [ ELSIF condição THEN Declarações;] [ ELSE Declarações;] 1. DMI Declarações simples de IF a)Minha_idade é 25 b)Condição sempre deve retornar Verdadeiro ou Falso ou Nulo c)Nesta condição minha_idade é menor do que 11.

DMI ELSE

  PUT_LINE(‘Eu não sou criança!!!’);END IF; END;/ a)Se minha_idade não for menor do que 11, é executado declarações do ELSE DMI Cláusula de IF ELSIF ELSE DECLARE minha_idade NUMBER := 31;BEGIN IF minha_idade < 11 THENDBMS_OUTPUT. PUT_LINE(‘Eu não sou criança!!!’); END IF;END;/ a)A variável minha_idade é declarada mas não é inicializada b)A condição IF retorna o valor NULL c)Em tal caso, o controle vai para o ELSE DMI Expressões de CASE Expressão de CASE selecciona o resultado duma expressão satisfeita Para seleccionar o resultado, a declaração CASE usa expressões.

WHEN THEN

  WHEN 'B' THEN 'Muito Bom' WHEN 'C' THEN 'Bom'ELSE 'Não existe esse nível ' || nivel END ; DBMS_OUTPUT. PUT_LINE('Nível é ' || nivel || '. Avaliação é ' || avaliacao || '.');END; DMI Exemplo : CASE PesquisadaSET SERVEROUTPUT ON SET VERIFY OFF DECLAREnivel CHAR(1) := UPPER('&nivel'); avaliacao VARCHAR2(20); BEGIN avaliacao :=CASE -- Não há variável de selecção (selector) WHEN nivel= 'A' THEN 'Excelente' WHEN nivel IN ('B', 'C') THEN 'Bom' ELSE 'Não há esse nível ' || nivelEND ; DBMS_OUTPUT.

WHILE LOOP

Executa as acções repetitivas baseado numa condição 

FOR LOOP

Executa acções repetitivas baseado num intervalo definido DMI LOOP Básico Sintaxe ExemploLOOP Declaração1;…EXIT [WHEN condição]; END LOOP;idade := 0;LOOPidade := idade + 1; idade = 10;

EXIT WHEN

DMI WHILE LOOP

Use WHILE LOOP para repetir declarações enquanto a condição inicial for verdadeira Sintaxe Exemplo WHILE condição LOOPDeclaração1;… WHILE idade < 10 LOOP idade := idade + 1;

DMI FOR LOOP

  PUT_LINE(j);END LOOP; END LOOP; END; / DMI Sumário Condicional (declaração de IF) Expressões de CASE e declarações de CASE LOOP Declarações de EXIT DMI Questão O Edson veio perguntar Eu quero usar variáveis que armazenam vários tipos de dados. Registo TOM 200 MAPUTO coluna1 coluna2 coluna3TOM 200 MAPUTO SMITH 300 MATOLA MAPUTO JOHN 250 ZIMPETOMATOLA DMI Ordens associativas Ordens associativas são estruturas do PL/SQL com duas colunas: Inteiro ou caracter de tipo de chave primária Coluna do tipo escalar ou do tipo de dados de registro Não são compelido no tamanho.

PLS_INTEGER

DMI BY

  EXISTS(1) THEN INSERT INTO emp(empno, ename) VALUES(7999, tabela_ename (1));END IF; END;/ DMI de INDEX BYM étodo Descrição E XISTS(n) Retorna Verdadeiro se existe o n-elem ento na tabela de PL/SQL Retorna o núm ero de elem entos contidos actualm ente na tabela de PL/SQL COUNTFIRST Retorna prim eiro ou últim o núm ero de index na tabela de PL/SQL. PUT_LINE( a_minha_tabela_emp (i).ename);END LOOP; END; DMI (Aninhada) Tabela composta tem semelhante de INDEX BY Funcionalmente Chave é a partir de 1, chave não é possível valor negativo DMIarrays VARRAY é semelhante a tabelas de PL/SQL, sendo que o VARRAY é constrangido pelo tamanho.

RECENT ACTIVITIES
Autor
Tags

O curso de base de dados ORACLE terá os segui..

Livre

Feedback