introdução ao oracle sql e pl-sql em português - vol 1

456
 Introdução ao Oracle: SQL e PL/SQL Guia do Estudante • Volume 1 41010BP13 Produção 1.3 Fevereiro de 2000 M08944-BP

Transcript of introdução ao oracle sql e pl-sql em português - vol 1

Introduo ao Oracle: SQL e PL/SQLGuia do Estudante Volume 1

41010BP13 Produo 1.3 Fevereiro de 2000 M08944-BP

AutoresNeena Kochhar Ellen Gravina Priya Nathan

Copyright Oracle Corporation, 1998, 1999. Todos os direitos reservados e de titularidade da Oracle Corporation, inclusive aqueles referentes traduo para o idioma portugus - Brasil. Esta documentao contm informaes de propriedade da Oracle Corporation. fornecida sob um contrato de licena que contm restries sobre seu uso e sua divulgao, sendo tambm protegida pela legislao de direitos autorais. No permitida a engenharia reversa dos programas de computador. Se esta documentao for entregue/distribuda a uma Agncia do Departamento de Defesa do Governo dos Estados Unidos da Amrica do Norte, ser ento entregue/distribuda com Direitos Restritos e a seguinte legenda ser aplicvel: Legenda de Direitos Restritos O uso, duplicao ou divulgao por aquele Governo esto sujeitos s restries aplicveis aos programas comerciais de computadores e sero considerados como programas de computador com Direitos Restritos de acordo com a legislao federal daquele Governo, conforme descrito no subpargrafo da legislao norte-americana (c) (1) (ii) de DFARS 252.227-7013, Direitos sobre Dados Tcnicos e Programas de Computador (outubro de 1988). Proibida a reproduo total ou parcial desta documentao sem a expressa autorizao prvia por escrito da Oracle Corporation ou da Oracle do Brasil Sistemas Ltda. A cpia deste material, de qualquer forma ou por qualquer meio, eletrnico, mecnico ou de outra natureza, inclusive atravs de processos xerogrficos, de fotocpia e de gravao, constitui violao da legislao de direitos autorais e ser punida civil e-ou criminalmente na forma da lei. Se esta documentao for entregue / distribuda a uma Agncia do Governo dos Estados Unidos da Amrica do Norte que no esteja subordinada ao Departamento de Defesa, ser ento entregue / distribuda com "Direitos Restritos", conforme definido no FAR 52.227-14, Direitos sobre Dados - Geral, inclusive a Alternativa III (junho de 1987). As informaes contidas neste documento esto sujeitas a alteraes sem aviso prvio. Se voc encontrar algum problema na documentao, envie a Products Education - Oracle Corporation ou a Education - Oracle do Brasil Sistemas Ltda. uma descrio de tal problema por escrito. Education Products, Oracle Corporation, 500 Oracle Parkway, Box SB-6, Redwood Shores, CA 94065. Distribuidor no Brasil: Oracle do Brasil Sistemas Ltda. Rua Jos Guerra, 127, So Paulo, SP - 04719-030 Brasil CGC: 59.456.277/0001-76. A Oracle Corporation e a Oracle do Brasil Sistemas Ltda. no garantem que este documento esteja isento de erros. Oracle e todos os demais produtos Oracle citados nesta documentao so marcas comerciais ou marcas comerciais registradas da Oracle Corporation. Todos os outros nomes de produtos ou de empresas aqui mencionados o so apenas para fins de identificao e podem ser marcas comerciais registradas de seus respectivos proprietrios.

Colaboradores Tcnicos e RevisoresClaire Bennet Christa Miethaner Tony Hickman Sherin Nassa Nancy Greenberg Hazel Russell Kenneth Goetz Piet van Zon Ulrike Dietrich Helen Robertson Thomas Nguyen Lisa Jansson Kuljit Jassar

EditorJerry Brosnan

Sumrio

Prefcio Mapa de Curso Introduo Objetivos I-2 Ciclo de Vida de Desenvolvimento do Sistema I-3 Armazenamento de Dados em Diferentes Mdias I-5 Conceito de Banco de Dados Relacional I-6 Definio de Banco de Dados Relacional I-7 Modelos de Dados I-8 Modelo de Relacionamento de Entidades I-9 Convenes de Modelo para Relacionamento de Entidades I-11 Terminologia de Banco de Dados Relacional I-13 Relacionando Vrias Tabelas I-15 Propriedades de Banco de Dados Relacional I-17 Comunicando-se com um RDBMS Usando o SQL I-18 Sistema de Gerenciamento de Banco de Dados Relacional I-19 Oracle8: Sistema de Gerenciamento de Banco de Dados Relacional de Objeto I-20 Oracle8i: Banco de Dados de Plataforma Internet para Recursos de Computao na Internet I-21 Plataforma Internet da Oracle I-23 Instrues SQL I-24 Sobre PL/SQL I-25 Ambiente PL/SQL I-26 Tabelas Usadas no Curso I-27 Sumrio I-28 1 Criando Instrues SQL Bsicas Objetivos 1-2 Recursos das Instrues SELECT SQL 1-3 Instruo SELECT Bsica 1-4 Criando Instrues SQL 1-5 Selecionando Todas as Colunas 1-6 Selecionando Colunas Especficas 1-7 Defaults de Cabealho de Coluna 1-8 Expresses Aritmticas 1-9 Usando Operadores Aritmticos 1-10

iii

Precedncia do Operador 1-11 Usando Parnteses 1-13 Definindo um Valor Nulo 1-14 Valores Nulos nas Expresses Aritmticas 1-15 Definindo um Apelido de Coluna 1-16 Usando Apelidos de Coluna 1-17 Operador de Concatenao 1-18 Usando um Operador de Concatenao 1-19 Strings Literais de Caracteres 1-20 Usando Strings Literais de Caracteres 1-21 Linhas Duplicadas 1-22 Eliminando Linhas Duplicadas 1-23 Interao SQL e SQL*Plus 1-24 Instrues SQL Versus Comandos SQL*Plus 1-25 Viso Geral do SQL*Plus 1-26 Estabelecendo Login no SQL*Plus 1-27 Exibindo a Estrutura de Tabela 1-28 Comandos de Edio do SQL*Plus 1-30 Comandos de Arquivo do SQL*Plus 1-32 Sumrio 1-33 Viso Geral do Exerccio 1-34 2 Restringindo e Classificando Dados Objetivos 2-2 Limitando Linhas Usando uma Seleo 2-3 Limitando Linhas Selecionadas 2-4 Usando a Clusula WHERE 2-5 Strings de Caractere e Datas 2-6 Operadores de Comparao 2-7 Usando Operadores de Comparao 2-8 Outros Operadores de Comparao 2-9 Usando o Operador BETWEEN 2-10 Usando o Operador IN 2-11 Usando o Operador LIKE 2-12 Usando o Operador IS NULL 2-14 Operadores Lgicos 2-15 Usando o Operador AND 2-16 Usando o Operador OR 2-17 Usando o Operador NOT 2-18 Regras de Precedncia 2-19 Clusula ORDER BY 2-22iv

Classificando em Ordem Decrescente 2-23 Classificando por Apelido de Coluna 2-24 Classificando por Vrias Colunas 2-25 Sumrio 2-26 Viso Geral do Exerccio 2-27 3 Funes de Uma nica Linha Objetivos 3-2 Funes SQL 3-3 Dois Tipos de Funes SQL 3-4 Funes de Uma nica Linha 3-5 Funes de Caractere 3-7 Funes de Converso de Maisculas e Minsculas 3-9 Usando Funes de Converso de Maisculas e Minsculas 3-10 Funes de Manipulao de Caractere 3-11 Usando as Funes de Manipulao de Caractere 3-12 Funes Numricas 3-13 Usando a Funo ROUND 3-14 Usando a Funo TRUNC 3-15 Usando a Funo MOD 3-16 Trabalhando com Datas 3-17 Aritmtica com Datas 3-18 Usando Operadores Aritmticos com Datas 3-19 Funes de Data 3-20 Usando Funes de Data 3-21 Funes de Converso 3-23 Converso Implcita de Tipo de Dados 3-24 Converso Explcita de Tipo de Dados 3-26 Funo TO_CHAR com Datas 3-29 Elementos de Modelo de Formato de Data 3-30 Usando a Funo TO_CHAR com Datas 3-32 Funo TO_CHAR com Nmeros 3-33 Usando a Funo TO_CHAR com Nmeros 3-34 Funes TO_NUMBER e TO_DATE 3-35 Formato de Data RR 3-36 Funo NVL 3-37 Usando a Funo NVL 3-38 Funo DECODE 3-39 Usando a Funo DECODE 3-40 Aninhando Funes 3-42 Sumrio 3-44 Viso Geral do Exerccio 3-45v

4

Exibindo Dados de Vrias Tabelas Objetivos 4-2 Obtendo Dados de Vrias Tabelas 4-3 O Que uma Juno? 4-4 Produto Cartesiano 4-5 Gerando um Produto Cartesiano 4-6 Tipos de Junes 4-7 O Que uma Juno Idntica? 4-8 Recuperando Registros com Junes Idnticas 4-9 Qualificando Nomes de Coluna Ambguos 4-10 Condies de Pesquisa Adicional Usando o Operador AND Usando Apelidos de Tabela 4-12 Unindo Mais de Duas Tabelas 4-13 Junes No-idnticas 4-14 Recuperando Registros com Junes No-idnticas 4-15 Junes Externas 4-16 Usando Junes Externas 4-18 Autojunes 4-19 Unindo uma Tabela a Ela Mesma 4-20 Sumrio 4-21 Viso Geral do Exerccio 4-22 Agregando Dados Usando Funes de Grupo Objetivos 5-2 O Que So Funes de Grupo? 5-3 Tipos de Funes de Grupo 5-4 Usando Funes de Grupo 5-5 Usando Funes AVG e SUM 5-6 Usando Funes MIN e MAX 5-7 Usando a Funo COUNT 5-8 Funes de Grupo e Valores Nulos 5-10 Usando a Funo NVL com Funes de Grupo 5-11 Criando Grupos de Dados 5-12 Criando Grupos de Dados: Clusula GROUP BY 5-13 Usando a Clusula GROUP BY 5-14 Agrupando por Mais de Uma Coluna 5-16 Usando a Clusula GROUP BY em Vrias Colunas 5-17 Consultas Ilegais Usando Funes de Grupo 5-18 Excluindo Resultados do Grupo 5-20 Excluindo Resultados do Grupo: Clusula HAVING 5-21 Usando a Clusula HAVING 5-22vi

4-11

5

Aninhando Funes de Grupo 5-24 Sumrio 5-25 Viso Geral do Exerccio 5-26 6 Subconsultas Objetivos 6-2 Usando uma Subconsulta para Resolver um Problema 6-3 Subconsultas 6-4 Usando uma Subconsulta 6-5 Diretrizes para o Uso de Subconsultas 6-6 Tipos de Subconsultas 6-7 Subconsultas de uma nica Linha 6-8 Executando Subconsultas de uma nica Linha 6-9 Usando Funes de Grupo em uma Subconsulta 6-10 Clusula HAVING com Subconsultas 6-11 O Que H de Errado com esta Instruo? 6-12 Esta Instruo Ir Funcionar? 6-13 Subconsultas de Vrias Linhas 6-14 Usando o Operador ANY em Subconsultas de Vrias Linhas 6-15 Usando o Operador ALL em Subconsultas de Vrias Linhas 6-16 Sumrio 6-17 Viso Geral do Exerccio 6-18 Subconsultas de Vrias Colunas Objetivos 7-2 Subconsultas de Vrias Colunas 7-3 Usando Subconsultas de Vrias Colunas 7-4 Comparaes de Coluna 7-6 Subconsulta de Comparao que No Seja aos Pares 7-7 Subconsulta que No Seja aos Pares 7-8 Valores Nulos em uma Subconsulta 7-9 Usando uma Subconsulta na Clusula FROM 7-10 Sumrio 7-11 Viso Geral do Exerccio 7-12 Produzindo uma Sada Legvel com o SQL*Plus Objetivos 8-2 Relatrios Interativos 8-3 Variveis de Substituio 8-4 Usando a Varivel de Substituio & 8-5 Usando o Comando SET VERIFY 8-6 Valores de Caractere e Data com Variveis de Substituio 8-7vii

7

8

Especificando Nomes de Coluna, Expresses e Texto no Tempo de Execuo 8-8 Usando a Varivel de Substituio && 8-10 Definindo as Variveis de Usurio 8-11 O Comando ACCEPT 8-12 Usando o Comando ACCEPT 8-13 Comandos DEFINE e UNDEFINE 8-14 Usando o Comando DEFINE 8-15 Personalizando o Ambiente SQL*Plus 8-16 Variveis do Comando SET 8-17 Salvando as Personalizaes no Arquivo login.sql 8-18 Comandos de Formato do SQL*Plus 8-19 O Comando COLUMN 8-20 Usando o Comando COLUMN 8-21 Modelos de Formato COLUMN 8-22 Usando o Comando BREAK 8-23 Usando os Comandos TTITLE e BTITLE 8-24 Criando um Arquivo de Script para Executar um Relatrio 8-25 Exemplo de Relatrio 8-27 Sumrio 8-28 Viso Geral do Exerccio 8-29 9 Manipulao de Dados Objetivos 9-2 DML (Data Manipulation Language) 9-3 Adicionando uma Nova Linha em uma Tabela 9-4 A Instruo INSERT 9-5 Inserindo Novas Linhas 9-6 Inserindo Linhas com Valores Nulos 9-7 Inserindo Valores Especiais 9-8 Inserindo Valores Espec'ificos de Data 9-9 Inserindo Valores Usando Variveis de Substituio 9-10 Criando um Script com Prompts Personalizados 9-11 Copiando Linhas a partir de Outra Tabela 9-12 Alterando os Dados em uma Tabela 9-13 A Instruo UPDATE 9-14 Atualizando Linhas em uma Tabela 9-15 Atualizando com Subconsulta de Vrias Colunas 9-16 Atualizando Linhas Baseadas em Outra Tabela 9-17 Atualizando Linhas: Erro de Restrio de Integridade 9-18 Removendo uma Linha de uma Tabela 9-19 A Instruo DELETE 9-20viii

Deletando Linhas de uma Tabela 9-21 Deletando Linhas Baseadas em Outra Tabela 9-22 Deletando Linhas: Erro de Restrio de Integridade 9-23 Transaes de Banco de Dados 9-24 Vantagens das Instrues COMMIT e ROLLBACK 9-26 Controlando Transaes 9-27 Processando Transaes Implcitas 9-28 Estado dos Dados Antes do COMMIT ou ROLLBACK 9-29 Estado dos Dados Aps COMMIT 9-30 Submetendo Dados a Commit 9-31 Estado dos Dados Aps ROLLBACK 9-32 Fazendo Roll Back de Alteraes para um Marcador 9-33 Rollback no Nvel da Instruo 9-34 Consistncia na Leitura 9-35 Implementao da Consistncia na Leitura 9-36 Bloqueando 9-37 Sumrio 9-38 Viso Geral do Exerccio 9-39 10 Criando e Gerenciando Tabelas Objetivos 10-2 Objetos do Banco de Dados 10-3 Convenes para Nomeao 10-4 A Instruo CREATE TABLE 10-5 Fazendo Referncia a Tabelas de Outro Usurio 10-6 A Opo DEFAULT 10-7 Criando Tabelas 10-8 Tabelas no Banco de Dados Oracle 10-9 Consultando o Dicionrio de Dados 10-10 Tipos de Dados 10-11 Criando uma Tabela Usando uma Subconsulta 10-13 A Instruo ALTER TABLE 10-15 Adicionando uma Coluna 10-16 Modificando uma Coluna 10-18 Eliminando uma Coluna 10-19 Opo SET UNUSED 10-20 Eliminando uma Tabela 10-22 Alterando o Nome de um Objeto 10-23 Truncando uma Tabela 10-24 Adicionando Comentrios a uma Tabela 10-25 Sumrio 10-26 Viso Geral do Exerccio 10-27ix

11 Incluindo Restries Objetivos 11-2 O Que So Restries? 11-3 Diretrizes sobre Restries 11-4 Definindo Restries 11-5 A Restrio NOT NULL 11-7 A Restrio UNIQUE KEY 11-9 A Restrio PRIMARY KEY 11-11 A Restrio FOREIGN KEY 11-13 Palavras-chave da Restrio FOREIGN KEY 11-15 A Restrio CHECK 11-16 Adicionando uma Restrio 11-17 Eliminando uma Restrio 11-19 Desativando Restries 11-20 Ativando Restries 11-21 Restries em Cascata 11-22 Verificando Restries 11-24 Verificando Colunas Associadas com Restries 11-25 Sumrio 11-26 Viso Geral do Exerccio 11-27 12 Criando Views Objetivos 12-2 Objetos de Banco de Dados 12-4 O Que uma View? 12-5 Por Que Usar Views? 12-6 Views Simples e Views Complexas 12-7 Criando uma View 12-8 Recuperando Dados de uma View 12-11 Consultando uma View 12-12 Modificando uma View 12-13 Criando uma View Complexa 12-14 Regras para Executar Operaes DML em uma View 12-15 Usando a Clusula WITH CHECK OPTION 12-17 Negando Operaes DML 12-18 Removendo uma View 12-19 Views Em Linha 12-20 Anlise "Top-N 12-21 Executando a Anlise Top-N 12-22 Exemplo de Anlise Top-N 12-23 Sumrio 12-24 Viso Geral do Exerccio 12-26x

13 Outros Objetos do Banco de Dados Objetivos 13-2 Objetos do Banco de Dados 13-3 O Que uma Seqncia? 13-4 A Instruo CREATE SEQUENCE 13-5 Criando uma Seqncia 13-7 Confirmando Seqncias 13-8 Pseudocolunas NEXTVAL e CURRVAL 13-9 Usando uma Seqncia 13-11 Modificando uma Seqncia 13-13 Diretrizes para Modificar uma Seqncia 13-14 Removendo uma Seqncia 13-15 O Que um ndice? 13-16 Como os ndices so Criados? 13-17 Criando um ndice 13-18 Quando Criar um ndice 13-19 Quando No Criar um ndice 13-20 Confirmando ndices 13-21 ndices Baseados em Funo 13-22 Removendo um ndice 13-23 Sinnimos 13-24 Criando e Removendo Sinnimos 13-25 Sumrio 13-26 Viso Geral do Exerccio 13-27 14 Controlando o Acesso do Usurio Objetivos 14-2 Controlando o Acesso do Usurio 14-3 Privilgios 14-4 Privilgios de Sistema 14-5 Criando Usurios 14-6 Privilgios de Sistema de Usurio 14-7 Concedendo Privilgios de Sistema 14-8 O Que uma Funo? 14-9 Criando e Concedendo Privilgios a uma Funo 14-10 Alterando Sua Senha 14-11 Privilgios de Objeto 14-12 Concedendo Privilgios de Objeto 14-14 Usando as Palavras-chave WITH GRANT OPTION e PUBLIC 14-15 Confirmando Privilgios Concedidos 14-16 Como Revogar Privilgios de Objeto 14-17

xi

Revogando Privilgios de Objeto 14-18 Sumrio 14-19 Viso Geral do Exerccio 14-20 15 SQL Workshop Viso Geral do Workshop 15-2 16 Declarando Variveis Objetivos 16-2 Sobre PL/SQL 16-3 Benefcios da Linguagem PL/SQL 16-4 Estrutura de Bloco PL/SQL 16-6 Tipos de Bloco 16-8 Construes de Programa 16-9 Uso de Variveis 16-11 Tratando Variveis em PL/SQL 16-12 Tipos de Variveis 16-13 Declarando Variveis PL/SQL 16-16 Regras para Nomeao 16-18 Atribuindo Valores s Variveis 16-19 Palavras-chave e Inicializao de Variveis 16-20 Tipos de Dados Escalares 16-22 Tipos de Dados Escalares Bsicos 16-23 Declarando Variveis Escalares 16-25 O Atributo %TYPE 16-26 Declarando Variveis com o Atributo %TYPE 16-27 Declarando Variveis Booleanas 16-28 Estrutura de Registro PL/SQL 16-29 Variveis de Tipo de Dados LOB 16-30 Variveis de Ligao 16-31 Referenciando Variveis No-PL/SQL 16-33 DBMS_OUTPUT.PUT_LINE 16-34 Sumrio 16-35 Viso Geral do Exerccio 16-37 17 Criando Instrues Executveis Objetivos 17-2 Diretrizes e Sintaxe de Bloco PL/SQL 17-3 Comentando Cdigo 17-6 Funes SQL em PL/SQL 17-7 Funes PL/SQL 17-8 Converso de Tipo de Dados 17-9xii

Blocos Aninhados e Escopo de Varivel 17-11 Operadores em PL/SQL 17-14 Usando Variveis de Ligao 17-16 Diretrizes de Programao 17-17 Convenes para Nomeao de Cdigo 17-18 Endentando o Cdigo 17-19 Determinando o Escopo da Varivel 17-20 Sumrio 17-21 Viso Geral do Exerccio 17-22 18 Interagindo com o Oracle Server Objetivos 18-2 Instrues SQL em PL/SQL 18-3 Instrues SELECT em PL/SQL 18-4 Recuperando Dados em PL/SQL 18-6 Manipulando Dados Usando o PL/SQL 18-8 Inserindo Dados 18-9 Atualizando Dados 18-10 Deletando Dados 18-11 Convenes para Nomeao 18-12 Instrues COMMIT e ROLLBACK 18-14 Cursor SQL 18-15 Atributos do Cursor SQL 18-16 Sumrio 18-18 Viso Geral do Exerccio 18-20 19 Criando Estruturas para Controle Objetivos 19-2 Controlando o Fluxo de Execuo PL/SQL 19-3 Instrues IF 19-4 Instrues IF Simples 19-5 Fluxo de Execuo da Instruo IF-THEN-ELSE 19-6 Instrues IF-THEN-ELSE 19-7 Fluxo de Execuo da Instruo IF-THEN-ELSIF 19-8 Instrues IF-THEN-ELSIF 19-9 Elaborando Condies Lgicas 19-10 Tabelas Lgicas 19-11 Condies Booleanas 19-12 Controle Iterativo: Instrues LOOP 19-13 Loop Bsico 19-14 Loop FOR 19-16

xiii

Loop WHILE 19-19 Loops e Labels Alinhados 19-21 Sumrio 19-23 Viso Geral do Exerccio 19-24 20 Trabalhando com Tipos de Dados Compostos Objetivos 20-2 Tipos de Dados Compostos 20-3 Registros PL/SQL 20-4 Criando um Registro PL/SQL 20-5 Estrutura de Registro PL/SQL 20-7 O Atributo %ROWTYPE 20-8 Vantagens de Usar %ROWTYPE 20-9 O Atributo %ROWTYPE 20-10 Tabelas PL/SQL 20-11 Criando uma Tabela PL/SQL 20-12 Estrutura de Tabela PL/SQL 20-13 Criando uma Tabela PL/SQL 20-14 Usando Mtodos de Tabela PL/SQL 20-15 Tabela de Registros PL/SQL 20-16 Exemplo de Tabela de Registros PL/SQL 20-17 Sumrio 20-18 Viso Geral do Exerccio 20-19 21 Criando Cursores Explcitos Objetivos 21-2 Sobre os Cursores 21-3 Funes do Cursor Explcito 21-4 Controlando Cursores Explcitos 21-5 Declarando o Cursor 21-7 Abrindo o Cursor 21-9 Extraindo Dados do Cursor 21-11 Fechando o Cursor 21-13 Atributos do Cursor Explcito 21-14 Controlando Vrias Extraes 21-15 O Atributo %ISOPEN 21-16 Os Atributos %NOTFOUND e %ROWCOUNT 21-17 Cursores e Registros 21-19 Loops FOR de Cursor 21-20 Loops FOR do Cursor Usando Subconsultas 21-22 Sumrio 21-23 Viso Geral do Exerccio 21-25xiv

22 Conceitos de Cursor Explcito Avanados Objetivos 22-2 Cursores com Parmetros 22-3 A Clusula FOR UPDATE 22-5 A Clusula WHERE CURRENT OF 22-7 Cursores com Subconsultas 22-9 Sumrio 22-10 Viso Geral do Exerccio 22-11 23 Tratando Excees Objetivos 23-2 Tratando Excees com Cdigo PL/SQL 23-3 Tratando Excees 23-4 Tipos de Exceo 23-5 Capturando Excees 23-6 Diretrizes para a Captura de Excees 23-7 Capturando Erros Predefinidos do Oracle Server 23-8 Exceo Predefinida 23-10 Capturando Erros No Predefinidos do Oracle Server 23-11 Erro No Predefinido 23-12 Funes para Captura de Excees 23-13 Capturando Excees Definidas pelo Usurio 23-15 Exceo Definida pelo Usurio 23-16 Ambientes de Chamada 23-17 Propagando Excees 23-18 Procedimento RAISE_APPLICATION_ERROR 23-19 Sumrio 23-21 Viso Geral do Exerccio 23-22 A Solues Prticas B Descries da Tabela e Dados ndice

xv

xvi

Prefcio

Prefcio - 2

Perfil Antes de Iniciar Este Curso Antes de iniciar este curso, voc deve ser capaz de usar uma GUI (Graphical User Interface, interface grfica com o usurio). O pr-requisito necessrio estar familiarizado com conceitos e tcnicas de processamento de dados. Como Este Curso Est Organizado Introduo ao Oracle: SQL and PL/SQL um curso orientado por instrutor contendo palestras e exerccios prticos. Sesses de demonstrao on-line e de exerccio escrito reforam os conceitos e tcnicas apresentadas.

Prefcio - 3

Publicaes Relacionadas Publicaes da Oracle Ttulo Oracle8i Server, Release 8.1.5 Oracle8i Concepts, Release 8.1.5 Oracle8i SQL Reference Manual, Release 8.1.5 Oracle8i Server Application Developers Guide SQL*Plus Users Guide and Reference, Release 8.1.5 SQL*Plus Quick Reference, Release 8.1.5 PL/SQL Users Guide and Reference, Release 8.1.5 Publicaes Adicionais Boletins sobre verso do sistema Guias de instalao e do usurio arquivos README artigos do International Oracle User's Group (IOUG) Oracle Magazine Nmero do Componente A68826-01 A67781-01 A67779-01 A68003-01 A66736-01 A66735-01 A67842-01

Prefcio - 4

Convenes Tipogrficas A seguir esto duas listas de convenes tipogrficas usadas especificamente dentro de texto ou de cdigo. Convenes Tipogrficas Dentro de Texto Conveno Letras maisculas Objeto ou Condio Comandos, funes, nomes de coluna, nomes de tabelas, objetos PL/SQL, esquemas Nomes de arquivo, variveis de sintaxe, nomes de usurio, senhas Nomes de gatilho nomes de boto Exemplo Use o comando SELECT para visualizar informaes armazenadas na coluna LAST_NAME coluna da tabela EMP.

Letras minsculas, itlico

onde:

funo o nome da funo a ser criada.

Inicial maiscula

Atribua um gatilho a When-Validate-Item ao bloco ORD. Escolha Cancelar.

Itlico

Livros, nomes de cursos e manuais e palavras ou frases enfatizadas Ttulos de mdulo de lio a que feito referncia dentro de um curso

Para obter mais informaes sobre o assunto, consulte o Oracle Server SQL Language Reference Manual No salve alteraes para o banco de dados.

Aspas

Este assunto abordado na Lio 3, "Trabalhando com Objetos".

Prefcio - 5

Convenes Tipogrficas (continuao) Convenes Tipogrficas Dentro de Cdigo Conveno Letras maisculas Letras minsculas, itlico Inicial maiscula Objeto ou Termo Comandos, funes Variveis de sintaxe Gatilhos de forms ExemploSQL> SELECT userid 2 FROM emp; SQL> CREATE ROLE role; Form module: ORD Trigger level: S_ITEM.QUANTITY item Trigger name: When-Validate-Item . . . . . . OG_ACTIVATE_LAYER (OG_GET_LAYER ('prod_pie_layer')) . . . SQL> SELECT last_name 2 FROM emp;

Letra minscula

Nomes de colunas, nomes de tabelas, nomes de arquivos, objetos do PL/SQL

Negrito

Texto que deve ser includo por um usurio

SQLDBA> 2>

DROP USER scott IDENTIFIED BY tiger;

Prefcio - 6

Mapa de Curso

Curso de Linguagens Integradas: Linhas de CertificaoIntroduo ao Oracle: SQL e PL/SQL PL/SQL SQL1 Fundamentals Introduo ao Oracle para Usurios Experientes em SQL Oracle SQL PL/SQL Specifics Fundamentals

ou

Linha do DBADesenvolvimento de Unidades de Programa em PL/SQL

Linha do Application Developer

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Curso de Linguagens Integradas: Linhas de Certificao Introduo ao Oracle: SQL e PL/SQL consiste em dois mdulos, SQL1 e PL/SQL Fundamentals. Esse curso pr-requisito para a linha do DBA ou Application Developer. O SQL1 abrange a criao de estruturas de bancos de dados e o armazenamento, recuperao e manipulao de dados em um banco de dados relacional. O curso PL/SQL Fundamentals abrange a criao de blocos PL/SQL de cdigo de aplicao. Para aqueles que trabalharam com outros bancos de dados relacionais e tm conhecimentos de SQL, oferecido outro mdulo chamado Oracle SQL Specifics. Ele abrange as instrues SQL que no fazem parte do ANSI SQL mas so especficas do Oracle. Esse mdulo combinado com o PL/SQL Fundamentals forma o Introduo ao Oracle para Usurios Experientes em SQL. Introduo ao Oracle: O SQL e PL/SQL e a Introduo ao Oracle para Usurios Experientes em SQL so considerados equivalentes e, aps terminar um deles, voc poder passar para a linha de DBA. Para a linha do Application Developer, voc deve fazer o curso Desenvolvimento de Unidades de Programa em PL/SQL. Esse curso ensina como criar funes, pacotes, acionadores e procedimentos PL/SQL.

Mapa de Curso - 2

Curso de Linguagens IntegradasSQL1Basic SELECT Statements Data Retrieval Techniques DML and DDL

Oracle SQL SpecificsRetrieving & Formatting Data Creating & Managing Database Objects

SQL for End Users Oracle8 3GL Oracle8 3GL Precompiler Precompiler Workshop Workshop Oracle8 Call Interface Oracle8 Call Interface Workshop WorkshopAdvanced Techniques for PL/SQL Developers PL/SQL Best Practices Oracle8: New Features in PL/SQL Oracle Built-in Packages

Extended Data Retrieval with SQLAdvanced SELECT Statements SQL*Plus and Reporting

PL/SQL FundamentalsBasics

Develop PL/SQL Program UnitsProcedures, Functions, and Packages Database Programming

SQL Statement TuningDiagnostics Rules and Guidelines

Advanced PL/SQLILT CBT Seminar

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Curso de Linguagens Integradas O slide lista vrios mdulos e cursos disponveis no curso de linguagens. Para a maioria desses mdulos e cursos, h CBTs equivalentes. Curso ou Mdulo CBT Equivalente SQL1 Oracle SQL: Basic SELECT Statements Oracle SQL: Data Retrieval Techniques Oracle SQL: DML and DDL Oracle SQL Specifics Oracle SQL Specifics: Retrieving and Formatting Data Oracle SQL Specifics: Creating and Managing Database Objects PL/SQL Fundamentals PL/SQL: Basics Extended Data Retrieval with Oracle SQL and SQL*Plus: Advanced SELECT Statements SQL Oracle SQL and SQL*Plus: SQL*Plus and Reporting Develop PL/SQL Program Units PL/SQL: Procedures, Functions, and Packages PL/SQL: Database Programming SQL Statement Tuning SQL and PL/SQL Tuning: Diagnostics SQL and PL/SQL Tuning: Rules and Guidelines So oferecidos quatro seminrios sobre PL/SQL: Advanced Techniques for PL/SQL Developers, PL/SQL Best Practices, Oracle8: New Features in PL/SQL e Oracle Built-in Packages.

Mapa de Curso - 3

Mapa de Curso - 4

IIntroduo

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

ObjetivosDepois de completar esta lio, voc poder fazer o seguinte: Discutir os aspectos tericos e fsicos de um banco de dados relacional Descrever a implementao Oracle do RDBMS e ORDBMS Descrever os novos recursos do Oracle8i Descrever como o SQL e o PL/SQL so usados no conjunto de produtos Oracle Descrever o uso e os benefcios do PL/SQLI-2 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Objetivo da Lio Nesta lio, voc entender o RDBMS (relational database management system) e o ORDBMS (object relational database management system). Voc tambm ser apresentado aos seguintes tpicos: Instrues SQL especficas do Oracle SQL*Plus, usado para executar o SQL e para fins de formatao e elaborao de relatrios O PL/SQL, que a linguagem procedural do Oracle

Introduo ao Oracle: SQL e PL/SQL I-2

Ciclo de Vida de Desenvolvimento do SistemaEstratgia e Anlise Design Elaborao e Documentao Transio Produo

I-3

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Ciclo de Vida de Desenvolvimento do Sistema Do conceito produo, voc pode desenvolver um banco de dados usando o ciclo de vida de desenvolvimento do sistema, que contm vrios estgios de desenvolvimento. Essa abordagem completa e sistemtica para o desenvolvimento de bancos de dados transforma necessidades de informaes comerciais em um banco de dados operacional. Estratgia e Anlise Estude e analise as necessidades comerciais. Entreviste usurios e gerentes para identificar as necessidades de informaes. Incorpore as declaraes de objetivos da aplicao e da empresa, alm de qualquer especificao futura do sistema. Elabore modelos do sistema. Transfira a narrativa comercial para uma representao grfica das regras e necessidades de informaes comerciais. Confirme e refine o modelo com os analistas e especialistas.

Design Projete o banco de dados de acordo com o modelo desenvolvido na fase de estratgia e anlise. Elaborao e Documentao Elabore o sistema prottipo. Crie e execute os comandos para elaborar tabelas e objetos de suporte para o banco de dados. Desenvolva uma documentao para o usurio, textos de ajuda e manuais de operao para suporte ao uso e operao do sistema.Introduo ao Oracle: SQL e PL/SQL I-3

Ciclo de Vida de Desenvolvimento do SistemaEstratgia e Anlise Design Elaborao e Documentao Transio Produo

I-4

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Ciclo de Vida de Desenvolvimento do Sistema (continuao) Transio Refine o prottipo. Mova uma aplicao para a produo com teste de aceitao do usurio, converso de dados existentes e operaes paralelas. Faa as modificaes necessrias. Produo Fornea o sistema aos usurios. Opere o sistema de produo. Monitore o desempenho, aperfeioe e refine o sistema. Observao: possvel executar as vrias fases do ciclo de vida de desenvolvimento do sistema repetidamente. Este curso se concentra na fase de elaborao do ciclo de vida de desenvolvimento do sistema.

Introduo ao Oracle: SQL e PL/SQL I-4

Armazenamento de Dados em Diferentes MdiasSALGRADEGRADE LOSAL HISAL --------- --------- --------DEPT 1 700 1200 DEPTNO DNAME LOC 2 1201 1400 --------- -------------- ---------3 1401 2000 10 ACCOUNTING NEW YORK 4 2001 3000 20 RESEARCH DALLAS 5 3001 9999 30 SALES CHICAGO 40 OPERATIONS BOSTON

Planilha eletrnicaI-5

Arquivo fsico

Banco de Dados

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Armazenando Informaes Toda organizao necessita de informaes. Uma biblioteca mantm uma lista de membros, livros, datas de entrega e multas. Uma empresa precisa gravar informaes sobre funcionrios, departamentos e salrios. Essas informaes so chamadas de dados. As organizaes podem armazenar dados em vrias mdias e em formatos diferentes, por exemplo, um documento impresso em um arquivo fsico ou dados em planilhas eletrnicas ou bancos de dados. Um banco de dados um conjunto organizado de informaes. Para gerenciar bancos de dados, voc precisa de DBMSs (database management systems). Um DBMS um programa que armazena, recupera e modifica dados do banco de dados a pedido. H quatro tipos principais de bancos de dados: hierrquico, de rede, relacional e relacional de objeto, o mais recente. Observao: O Oracle7 um RDBMS (relational database management system) e o Oracle8 um ORDBMS (object relational database management system).

Introduo ao Oracle: SQL e PL/SQL I-5

Conceito de Banco de Dados Relacional O Dr. E.F. Codd props o modelo relacional de sistemas de bancos de dados em 1970. Ele a base para o RDBMS (relational database management system). O modelo relacional consiste nos seguintes itens: Conjunto de objetos ou relaes Conjunto de operadores para agir sobre as relaes Integridade de dados para preciso e consistncia

I-6

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Modelo Relacional Os princpios do modelo relacional foram definidos primeiramente pelo Dr. E.F. Codd em junho de 1970 em um estudo chamado "A Relational Model of Data for Large Shared Data Banks". Nesse estudo, o Dr. Codd props o modelo relacional de sistemas de bancos de dados. Os modelos mais populares usados naquele tempo eram hierrquicos, de rede ou mesmo estruturas de dados de arquivos simples. Os RDBMSs (relational database management systems) em breve se tornaram muito populares, especialmente pela facilidade de uso e flexibilidade na estrutura. Alm disso, vrios fornecedores inovadores, como a Oracle, ofereciam o RDBMS com um conjunto eficiente de desenvolvimento de aplicaes e produtos para usurios, formando uma soluo completa. Componentes do Modelo Relacional Conjuntos de objetos ou relaes que armazenam os dados Conjunto de operadores que podem agir sobre as relaes para produzir outras relaes Integridade de dados para preciso e consistncia

Para obter mais informaes, consulte E.F. Codd, The Relational Model for Database Management Version 2 (Reading, Mass.: Addison-Wesley, 1990).

Introduo ao Oracle: SQL e PL/SQL I-6

Definio de Banco de Dados RelacionalUm banco de dados relacional um conjunto de relaes ou tabelas bidimensionais. Banco de Dados

Nome da Tabela: EMPEMPNO 7839 7698 7782 7566 ENAME KING BLAKE CLARK JONES JOB PRESIDENT MANAGER MANAGER MANAGER DEPTNO 10 30 10 20

Nome da Tabela: DEPTDEPTNO 10 20 30 40 DNAME ACCOUNTING RESEARCH SALES OPERATIONS LOC NEW YORK DALLAS CHICAGO BOSTON

I-7

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Definio de Banco de Dados Relacional Um banco de dados relacional usa relaes ou tabelas bidimensionais para armazenar informaes. Por exemplo, voc pode armazenar informaes sobre todos os funcionrios de uma empresa. Em um banco de dados relacional, voc cria vrias tabelas para armazenar informaes diferentes sobre funcionrios, como tabelas de funcionrios, departamentos e salrios.

Introduo ao Oracle: SQL e PL/SQL I-7

Modelos de Dados

Modelo de sistema imaginado pelo cliente

Modelo de entidade do modelo do cliente

Modelo de tabela do modelo de entidade

Servidor

Tabelas em discosI-8 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Modelos de Dados Os modelos so a base do design. Os engenheiros criam um modelo de carro para estudar os detalhes antes de coloc-lo em produo. Da mesma forma, projetistas de sistemas desenvolvem modelos para explorar idias e compreender melhor o design de um banco de dados. Objetivo dos Modelos Os modelos ajudam a comunicar conceitos imaginados pelas pessoas. possvel us-los com os seguintes objetivos: Comunicar Categorizar Descrever Especificar Investigar Desenvolver Analisar Imitar

O objetivo produzir um modelo que se adapte a vrios usos, possa ser compreendido por um usurio final e contenha detalhes suficientes para que um desenvolvedor crie um sistema de banco de dados.Introduo ao Oracle: SQL e PL/SQL I-8

Modelo de Relacionamento de Entidades Crie um diagrama de relacionamento de entidades a partir de narrativas ou especificaes comerciaisEMPLOYEE #* nmero * nome o cargo atribudo a composto de DEPARTMENT #* nmero * nome o localizao

Cenrio "...Atribua um ou mais funcionrios a um departamento..." "...Alguns departamentos ainda no tm funcionrios atribudos a eles..."I-9 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Modelo de Relacionamento de Entidades Em um sistema eficiente, os dados so divididos em categorias ou entidades distintas. Um modelo de relacionamento de entidades (ER) uma ilustrao de vrias entidades em uma empresa e dos relacionamentos entre elas. Um modelo de relacionamento de entidades derivado de narrativas ou especificaes comerciais e criado durante a fase de anlise do ciclo de vida de desenvolvimento do sistema. Os modelos para relacionamento de entidades separam as informaes necessrias para uma empresa das atividades desempenhadas dentro dela. Embora as empresas possam alterar suas atividades, o tipo de informaes tende a permanecer constante. Portanto, as estruturas de dados tambm tendem a ser constantes. Benefcios do Modelo de Relacionamento de Entidades Documenta as informaes da organizao em formato claro e preciso Fornece uma imagem clara do escopo das necessidades de informaes Fornece um mapa ilustrado facilmente compreendido para o design do banco de dados Oferece uma estrutura eficiente para a integrao de vrias aplicaes

Introduo ao Oracle: SQL e PL/SQL I-9

Componentes-chave Entidade: Um item importante sobre o qual necessrio obter informaes. Os exemplos so departamentos, funcionrios e pedidos. Atributo: Um item que descreve ou qualifica uma entidade. Por exemplo, para a entidade de funcionrios, os atributos so o nmero, o nome e o cargo do funcionrio, alm do nmero do departamento e assim por diante. Cada um desses atributos necessrio ou opcional. Esse estado chamado opcionalidade. Relacionamento: Uma associao nomeada entre entidades que demonstra opcionalidade e grau. Os exemplos so funcionrios e departamentos, alm de pedidos e itens.

Introduo ao Oracle: SQL e PL/SQL I-10

Convenes de Modelo para Relacionamento de EntidadesEntidade Soft box Nome exclusivo, individual Letra maiscula Sinnimo entre parnteses Atributo Nome individual Letra minscula Obrigatrio marcado com "*" Opcional marcado com "o"

EMPLOYEE #* nmero * nome o cargo

atribudo a composto de

DEPARTMENT #* nmero * nome o localizao

UID (Identificador nico) Primrio marcado com "#" Secundrio marcado com "(#)"I-11 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Entidades Para representar uma entidade em um modelo, use as seguintes convenes: Soft box com qualquer dimenso Nome de entidade exclusivo, individual Nome de entidade em letras maisculas Sinnimos opcionais em letras maisculas entre parnteses: ( )

Atributos Para representar um atributo em um modelo, use as seguintes convenes: Use nomes singulares em letras minsculas Marque os atributos obrigatrios ou os valores que devem ser conhecidos com um asterisco: * Marque os atributos opcionais ou valores que podem ser conhecidos com a letra oSmbolo Linha tracejada Linha contnua P-de-galinha Linha simples Descrio Elemento opcional que indica algo que pode ser Elemento obrigatrio que indica algo que deve ser Elemento de classificao que indica um ou mais Elemento de classificao que indica um nico

Relacionamentos

Introduo ao Oracle: SQL e PL/SQL I-11

Convenes de Modelo para Relacionamento de EntidadesEntidade Soft box Nome exclusivo, individual Letra maiscula Sinnimo entre parnteses Atributo Nome individual Letra minscula Obrigatrio marcado com "*" Opcional marcado com "o"

EMPLOYEE #* nmero * nome o cargo

atribudo a composto de

DEPARTMENT #* nmero * nome o localizao

UID (Identificador nico) Primrio marcado com "#" Secundrio marcado com "(#)"I-12 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Relacionamentos Cada direo do relacionamento contm: Um nome, por exemplo, atribudo Uma opcionalidade, que indica algo que deve ser ou pode ser Um grau, que indica um nico ou um ou mais

Observao: O termo cardinalidade um sinnimo para o termo grau. Cada entidade de origem {pode ser | deve ser} um nome de relacionamento {um nico | um ou mais} entidade de destino. Observao: A conveno deve ser lida em sentido horrio. Identificadores nicos Um UID (identificador nico) corresponde a qualquer combinao de atributos ou relacionamentos (ou os dois) que serve para diferenciar ocorrncias em uma entidade. Cada ocorrncia de entidade deve ser identificada com exclusividade. Marque cada atributo que faz parte do UID com uma tralha: # Marque os UIDs secundrios com uma tralha entre parnteses: (#)

Introduo ao Oracle: SQL e PL/SQL I-12

Terminologia de Banco de Dados Relacional2 3 4EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----------10 30 10 20 1400 300 30 30 30 30 500 30 20 20 20 20 10 ------------- ------------ --------------------- -------- ---------------- ----------- -------------7839 KING 7698 BLAKE 7782 CLARK 7566 JONES 7654 MARTIN 7499 ALLEN PRESIDENT MANAGER MANAGER MANAGER SALESMAN SALESMAN 7839 7839 7839 7698 7698 7698 7698 7698 7566 7902 7566 7788 7782 17-NOV-81 01-MAY-81 09-JUN-81 02-APR-81 28-SEP-81 20-FEB-81 08-SEP-81 03-DEC-81 22-FEB-81 03-DEC-81 17-DEC-80 09-DEC-82 12-JAN-83 23-JAN-82 5000 2850 2450 2975 1250 1600 1500 950 1250 3000 800 3000 1100 1300

6

7844 TURNER SALESMAN 7900 JAMES 7521 WARD 7902 FORD 7369 7788 7876 SMITH SCOTT ADAMS MILLER CLERK SALESMAN ANALYST CLERK ANALYST CLERK CLERK

5

0

1I-13

7934

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Terminologia de Banco de Dados Relacional Um banco de dados relacional pode conter uma ou vrias tabelas. Uma tabela a estrutura de armazenamento bsica de um RDBMS. Ela armazena todos os dados necessrios sobre algo do mundo real, por exemplo, funcionrios, NFFs ou clientes. O slide mostra o contedo da relao ou tabela EMP. Os nmeros indicam o seguinte: 1. Uma linha simples ou tupla que representa todos os dados necessrios para um funcionrio especfico. Cada linha de uma tabela deve ser identificada por uma chave primria, que no permite linhas duplicadas. A ordem das linhas no importante; especifique essa ordem quando os dados forem recuperados. 2. Uma coluna ou atributo que contm o nmero do funcionrio, que tambm a chave primria. O nmero do funcionrio identifica um nico funcionrio na tabela EMP. Uma chave primria deve conter um valor. 3. Uma coluna que no um valor de chave. Uma coluna representa um tipo de dados em uma tabela; no exemplo, o cargo de todos os funcionrios. A ordem das colunas no importante durante o armazenamento de dados; especifique essa ordem quando os dados forem recuperados. 4. Uma coluna que contm o nmero do departamento, que tambm uma chave estrangeira. Uma chave estrangeira uma coluna que define como as tabelas se relacionam umas com as outras. Uma chave estrangeira se refere a uma chave primria ou a uma chave exclusiva em outra tabela. No exemplo, DEPTNO identifica com exclusividade um departamento da tabela DEPT.Introduo ao Oracle: SQL e PL/SQL I-13

Terminologia de Banco de Dados Relacional (continuao) 5. possvel encontrar um campo na interseo entre uma linha e uma coluna. S pode haver um valor nesse campo. 6. Um campo pode no conter nenhum valor. Nesse caso, o valor nulo. Na tabela EMP, apenas funcionrios com cargo de vendedor tm um valor no campo COMM (comisso). Observao: Os valores nulos so abordados com mais detalhes nas lies posteriores.

Introduo ao Oracle: SQL e PL/SQL I-14

Relacionando Vrias Tabelas Cada linha de dados de uma tabela identificada com exclusividade por uma chave primria (PK). Voc pode relacionar logicamente dados de vrias tabelas usando as chaves estrangeiras (FK).Nome da Tabela: EMPEMPNO 7839 7698 7782 7566 ENAME KING BLAKE CLARK JONES JOB PRESIDENT MANAGER MANAGER MANAGER DEPTNO 10 30 10 20

Nome da Tabela: DEPTDEPTNO 10 20 30 40 DNAME ACCOUNTING RESEARCH SALES OPERATIONS LOC NEW YORK DALLAS CHICAGO BOSTON

Chave primriaI-15

Chave estrangeira

Chave primria

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Relacionando Vrias Tabelas Cada tabela contm dados que descrevem exatamente uma entidade. Por exemplo, a tabela EMP contm informaes sobre funcionrios. As categorias de dados so listadas ao longo da parte superior de cada tabela e os casos individuais so listados abaixo da tabela. Usando o formato de tabela, voc pode visualizar, entender e usar informaes imediatamente. Como os dados sobre entidades diferentes so armazenados em tabelas diferentes, talvez voc precise combinar duas ou mais tabelas para responder a uma pergunta especfica. Por exemplo, talvez voc queira saber a localizao do departamento no qual um funcionrio trabalha. Nesse cenrio, voc precisa de informaes da tabela EMP (que contm dados sobre funcionrios) e da tabela DEPT (que contm informaes sobre departamentos). Um RDBMS permite relacionar os dados de uma tabela aos dados de outra usando as chaves estrangeiras. Uma chave estrangeira uma coluna ou um conjunto de colunas que se refere a uma chave primria na mesma tabela ou em outra tabela. O recurso de relacionar dados de uma tabela a dados de outra permite organizar informaes em unidades gerenciveis separadas. possvel manter logicamente os dados dos funcionrios separados dos dados dos departamentos armazenando-os em uma tabela separada.

Introduo ao Oracle: SQL e PL/SQL I-15

Diretrizes para Chaves Primrias e Estrangeiras No so permitidos valores duplicados em uma chave primria. Geralmente, no possvel alterar chaves primrias. As chaves estrangeiras so baseadas nos valores dos dados e so ponteiros unicamente lgicos e no fsicos. Uma chave estrangeira deve corresponder a um valor de chave primria existente, a um valor de chave exclusiva ou ser nula. No possvel definir chaves estrangeiras sem chaves primrias (exclusivas) existentes.

Introduo ao Oracle: SQL e PL/SQL I-16

Propriedades de Banco de Dados RelacionalUm banco de dados relacional Pode ser acessado e modificado executando instrues SQL (Structured Query Language) Contm um conjunto de tabelas sem ponteiros fsicos Usa um conjunto de operadores

I-17

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Propriedades de Banco de Dados Relacional Em um banco de dados relacional, voc no especifica a rota de acesso s tabelas e no precisa saber como os dados so organizados fisicamente. Para acessar o banco de dados, execute uma instruo SQL (Structured Query Language), que a linguagem padro ANSI (American National Standards Institute) para a operao em bancos de dados relacionais. A linguagem contm um grande conjunto de operadores para dividir e combinar relaes. possvel modificar o banco de dados usando as instrues SQL.

Introduo ao Oracle: SQL e PL/SQL I-17

Comunicando-se com um RDBMS Usando o SQLA instruo SQL informadaSQL> SELECT loc 2 FROM dept;

A instruo enviada para o banco de dados

Banco de Dados Os dados so exibidosLOC ------------NEW YORK DALLAS CHICAGO BOSTON

I-18

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

SQL (Structured Query Language) O SQL permite comunicar-se com o servidor e tem as seguintes vantagens: Eficincia Facilidade de aprendizagem e uso Funcionalidade completa (O SQL permite definir, recuperar e manipular dados das tabelas.)

Introduo ao Oracle: SQL e PL/SQL I-18

Sistema de Gerenciamento de Banco de Dados RelacionalServidor

Tabelas de usuriosI-19 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Dicionrio de dados

Sistema de Gerenciamento de Banco de Dados Relacional A Oracle fornece um RDBMS flexvel chamado Oracle7. Usando os recursos desse RDBMS, voc pode armazenar e gerenciar dados com todas as vantagens de uma estrutura relacional alm do PL/SQL, um mecanismo com recurso para armazenar e executar unidades de programas. O servidor oferece as opes de recuperao de dados com base em tcnicas de otimizao. Ele inclui recursos de segurana que controlam como um banco de dados acessado e usado. Outros recursos incluem a consistncia e a proteo de dados atravs de mecanismos de bloqueio. As aplicaes Oracle podem ser executadas no mesmo computador que o Oracle Server. Como opo, voc pode executar aplicaes em um sistema local de usurio e executar o Oracle Server em outro sistema (arquitetura cliente-servidor). Nesse ambiente cliente-servidor, possvel usar uma grande variedade de recursos de computao. Por exemplo, uma aplicao de reservas de uma linha area baseada em forms pode ser executada no PC de um cliente, enquanto o acesso a dados de vo gerenciado convenientemente por um Oracle Server em um computador central. Para obter mais informaes, consulte o Oracle Server Concepts Manual, Release 8.

Introduo ao Oracle: SQL e PL/SQL I-19

Oracle8: Sistema de Gerenciamento de Banco de Dados Relacional de Objeto Objetos e tipos de dados definidos pelo usurio Compatibilidade total com o banco de dados relacional Suporte de objetos grandes e multimdia Recursos de servidor de banco de dados de alta qualidade

I-20

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Sobre o Oracle8 O Oracle8 o primeiro banco de dados com recurso de objeto desenvolvido pela Oracle. Ele estende os recursos de modelo de dados do Oracle7 para suportar um novo modelo de banco de dados relacional de objeto. O Oracle8 fornece um novo mecanismo que oferece programao orientada a objeto, tipos de dados complexos, objetos comerciais complexos e compatibilidade total com o universo relacional. O Oracle8 estende o Oracle7 de vrias formas. Ele inclui vrios recursos para desempenho e funcionalidade aperfeioados de aplicaes OLTP (Online Transaction Processing), como um melhor compartilhamento de estruturas de dados no tempo de execuo, caches de buffer maiores e restries diferenciveis. As aplicaes de armazenamento de dados se beneficiaro de aperfeioamentos como a execuo paralela de operaes para inserir, atualizar e deletar, a diviso e a otimizao de consultas paralelas. Operando na estrutura NCA (Network Computing Architecture), o Oracle8 suporta aplicaes cliente-servidor e baseadas da Web distribudas e com vrias camadas. O Oracle8 pode escalonar dezenas de milhares de usurios simultneos, suportar 512 petabytes e tratar qualquer tipo de dados, incluindo dados espaciais, de textos, imagens, som, vdeo e sries de tempos, alm de dados estruturados tradicionais. Para obter mais informaes, consulte o Oracle Server Concepts Manual, Release 8.

Introduo ao Oracle: SQL e PL/SQL I-20

Oracle8i: Banco de Dados de Plataforma Internet para Recursos de Computao na Internet Ferramentas avanadas para gerenciar todos os tipos de dados em sites da Web Mais que um simples armazenamento de dados relacional: iFS Java VM integrado no servidor: JServer Melhor desempenho, segurana mais firme, aperfeioamento de linguagem Maior integrao com o ambiente Windows NT: AppWizardI-21 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Sobre o Oracle8i O Oracle8i, o banco de dados de computao na Internet, fornece ferramentas avanadas para gerenciar todos os tipos de dados em sites da Web. Ele muito mais que um simples armazenamento de dados relacionais. O iFS (Internet File System) combina a potncia do Oracle8i com a facilidade de uso de um sistema de arquivos. Ele permite que os usurios movam todos os dados para o banco de dados do Oracle8i, no qual eles podem ser armazenados e gerenciados com mais eficincia. Os usurios finais podem acessar facilmente arquivos e pastas no Oracle iFS atravs de vrios protocolos, como HTML, FTP e IMAP4, que fornecem acesso universal aos dados. O Oracle8i interMedia permite que os usurios tornem seus dados multimdia acessveis Web, incluindo dados de imagens, textos, udio e vdeo. O Oracle8i inclui um Java Virtual Machine robusto, integrado e escalonvel no servidor (Jserver), que suporta Java em todas as camadas de aplicaes. Esse recurso elimina a necessidade de recompilar ou modificar um cdigo Java quando for preciso depur-lo em uma camada diferente. Como o gerenciamento de recursos recentemente introduzido, o DBA pode escolher o melhor mtodo para adequar ao perfil e carga de trabalho de uma aplicao. Os recursos estendidos de servidor paralelo e rede melhoram a facilidade de administrao do sistema. A funcionalidade estendida da duplicao avanada resulta em um melhor desempenho e segurana aperfeioada. Foram adicionados recursos novos e importantes a linguagens.

Introduo ao Oracle: SQL e PL/SQL I-21

Sobre o Oracle8i (continuao) O Oracle8i fornece integrao nativa total com o Microsoft Transaction Server (MTS) no ambiente Windows NT. O desenvolvimento de aplicaes simplificado pelo Oracle Application Wizard (AppWizard) para Visual Studio, que fornece aos desenvolvedores uma ferramenta de GUI para criar uma aplicao Visual C++, Visual Interdev ou Visual Basic acessando dados em um banco de dados do Oracle. Para obter mais informaes, consulte o Oracle Server Concepts Manual, Release 8i.

Introduo ao Oracle: SQL e PL/SQL I-22

Plataforma Internet da OracleClientesQualquer navegador Qualquer cliente de correio Qualquer cliente FTP

Gerenciamento de sistema

Aplicaes para Internet

Ferramentas de desenvolvimento

SQL

Lgica comercial e dados

Apresentao e lgica comercial

PL/SQL

Bancos de dados

Servidores de aplicaes

Java

Servios de redeCopyright Oracle Corporation, 1999. Todos os direitos reservados.

I-23

Plataforma Internet da Oracle A Oracle oferece uma plataforma Internet abrangente e de alto desempenho para comrcio eletrnico e armazenamento de dados. Essa plataforma integrada inclui tudo o que necessrio para desenvolver, depurar e gerenciar aplicaes para Internet. A Plataforma Internet da Oracle criada em trs partes principais: Clientes baseados em navegadores para processar apresentaes Servidores de aplicaes para executar a lgica comercial e a lgica de apresentao de servidor aos clientes baseados em navegadores Bancos de dados para executar a lgica comercial com uso intensivo do banco de dados e dos dados do servidor

A Oracle oferece vrias ferramentas de desenvolvimento orientadas a GUI (Graphical User Interface) mais avanadas para criar aplicaes comerciais, alm de um grande conjunto de aplicaes de software para vrias reas de comrcio e indstria. possvel criar procedimentos de armazenamento, funes e pacotes usando SQL, PL/SQL ou Java.

Introduo ao Oracle: SQL e PL/SQL I-23

Instrues SQLSELECT INSERT UPDATE DELETE CREATE ALTER DROP RENAME TRUNCATE COMMIT ROLLBACK SAVEPOINT GRANT REVOKEI-24

Recuperao de dados

DML (Data Manipulation Language)

DDL (Data Definition Language)

Controle de transao

DCL (Data Control Language)

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Instrues SQL O Oracle SQL compatvel com os padres aceitos pela indstria. A Oracle Corporation garante a compatibilidade futura com padres em desenvolvimento envolvendo ativamente uma equipe-chave nos comits de padres SQL. Os comits aceitos pela indstria so o ANSI (American National Standards Institute) e o ISO (International Standards Organization). O ANSI e o ISO aceitaram o SQL como a linguagem padro para os bancos de dados relacionais.Instruo SELECT INSERT UPDATE DELETE CREATE ALTER DROP RENAME TRUNCATE COMMIT ROLLBACK SAVEPOINT GRANT REVOKE Descrio Recupera dados do banco de dados Informa novas linhas, altera linhas existentes e remove linhas indesejveis de tabelas do banco de dados, respectivamente. O conjunto dessas instrues conhecido como DML (Data Manipulation Language). Configura, altera e remove estruturas de dados de tabelas. O conjunto dessas instrues conhecido como DDL (Data Definition Language).

Gerencia as alteraes feitas pelas instrues DML. possvel agrupar as alteraes dos dados em transaes lgicas. Fornece ou remove direitos de acesso ao banco de dados Oracle e s estruturas contidas nele. O conjunto dessas instrues conhecido como DCL (Data Control Language).

Introduo ao Oracle: SQL e PL/SQL I-24

Sobre PL/SQL O PL/SQL uma extenso do SQL com recursos de design de linguagens de programao. As instrues de consulta e a manipulao de dados do SQL esto includas nas unidades procedurais de cdigo.

I-25

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Sobre PL/SQL O PL/SQL (Procedural Language/SQL) uma extenso de linguagem procedural da Oracle Corporation para SQL, a linguagem de acesso a dados padro para bancos de dados relacionais. O PL/SQL oferece recursos de engenharia de software modernos, como, por exemplo, a encapsulao de dados, o tratamento de excees, a ocultao de informaes, a orientao de objeto e assim por diante, trazendo os recursos de programao mais modernos para o Oracle Server e o Toolset. O PL/SQL incorpora muitos recursos avanados feitos em linguagens de programao projetadas durante as dcadas de 70 e 80. Alm de aceitar a manipulao de dados, ele tambm permite que instrues de consulta do SQL sejam includas em unidades procedurais de cdigo e estruturadas em blocos, tornando o PL/SQL uma linguagem de processamento de transaes poderosa. Com o PL/SQL, voc pode usar as instrues SQL para refinar os dados da Oracle e as instrues de controle do PL/SQL para processar os dados.

Introduo ao Oracle: SQL e PL/SQL I-25

Ambiente PL/SQLMecanismo PL/SQL bloco PL/SQL bloco PL/SQL PL/SQL SQL Executor da Instruo Procedural

Executor da Instruo SQL Oracle Server

I-26

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Mecanismo PL/SQL e Oracle Server O PL/SQL no um produto Oracle em si; ele uma tecnologia empregada pelo Oracle Server e por algumas ferramentas Oracle. Os blocos PL/SQL so passados e processados por um mecanismo PL/SQL, que pode residir na ferramenta ou no Oracle Server. O mecanismo usado depende do local no qual o PL/SQL chamado. O mecanismo PL/SQL no Oracle Server processa os blocos PL/SQL submetidos de um programa de sada de usurio, Pro*, SQL*Plus ou Server Manager. Ele separa as instrues SQL e as envia individualmente para o executor da instruo SQL. Uma nica transferncia necessria para enviar o bloco da aplicao para o Oracle Server, melhorando o desempenho, especialmente em uma rede cliente-servidor. Tambm possvel armazenar o PL/SQL no Oracle Server sob a forma de subprogramas que podem ser consultados pelas aplicaes conectadas ao banco de dados.

Introduo ao Oracle: SQL e PL/SQL I-26

Tabelas Usadas no CursoEMPEMPNO --------7839 7698 7782 7566 7654 7499 7844 7900 DEPTNO --------10 ENAME ---------KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES JOB MGR HIREDATE SAL COMM DEPTNO --------- --------- --------- --------- --------- --------PRESIDENT 17-NOV-81 5000 10 MANAGER 7839 01-MAY-81 2850 30 MANAGER MANAGER SALESMAN SALESMAN SALESMAN CLERK SALESMAN LOC ANALYST ---------CLERK NEW YORK ANALYST DALLAS CLERK CHICAGO CLERK BOSTON 7839 7839 7698 7698 7698 7698 7698 7566 7902 7566 7788 7782 09-JUN-81 02-APR-81 28-SEP-81 20-FEB-81 08-SEP-81 03-DEC-81 22-FEB-81 03-DEC-81 17-DEC-80 09-DEC-82 12-JAN-83 23-JAN-82 2450 2975 1250 1600 1500 950 10 20 30 30 30 30

1400 300 0

7521 WARD DNAME 7902 FORD -------------7369 SMITH ACCOUNTING 20 7788 SCOTT RESEARCH 30 7876 ADAMS SALES 40 7934 MILLER OPERATIONS

1250 500 30 3000 20 800 20 GRADE LOSAL HISAL 3000 20 --------- --------- --------1100 1 20 700 1200 1300 2 10 1201 1400 3 1401 2000 4 5 2001 3001 3000 9999

DEPT

SALGRADEI-27 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Tabelas Usadas no Curso As trs tabelas a seguir sero usadas neste curso: Tabela EMP, que fornece detalhes sobre todos os funcionrios Tabela DEPT, que fornece detalhes sobre todos os departamentos Tabela SALGRADE, que fornece detalhes sobre salrios de vrias classes

A estrutura e os dados de todas as tabelas so fornecidos no Apndice B.

Introduo ao Oracle: SQL e PL/SQL I-27

Sumrio Os bancos de dados relacionais so compostos por relaes, gerenciados por operaes relacionais e regidos por restries de integridade de dados. O Oracle Server permite armazenar e gerenciar informaes usando a linguagem SQL e o mecanismo PL/SQL. O Oracle8 baseado no ORDBMS (object relational database management system). O Oracle8i Server o banco de dados de computao na Internet. O PL/SQL uma extenso do SQL com recursos de design de linguagens de programao.I-28 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Sumrio Os RDBMSs (relational database management systems) so compostos por objetos ou relaes. Eles so gerenciados por operaes e regidos por restries de integridade de dados. A Oracle Corporation cria produtos e servios para atender suas necessidades de RDBMS. O produto principal o Oracle Server, que permite armazenar e gerenciar informaes usando o SQL e o mecanismo PL/SQL para construes procedurais. SQL O Oracle Server suporta o SQL do padro ANSI e contm extenses. O SQL uma linguagem usada para comunicar-se com o servidor e acessar, manipular e controlar dados. PL/SQL A linguagem PL/SQL estende a linguagem SQL oferecendo construes procedurais estruturados em blocos combinados com recursos no procedurais do SQL.

Introduo ao Oracle: SQL e PL/SQL I-28

1Criando Instrues SQL Bsicas

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

ObjetivosDepois de completar esta lio, voc poder fazer o seguinte: Listar os recursos das instrues SELECT SQL Executar uma instruo SELECT bsica Diferenciar instrues SQL e comandos SQL*Plus

1-2

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Objetivo da Lio Para extrair dados do banco de dados, preciso usar a instruo SELECT SQL (Structured Query Language). Talvez voc necessite restringir as colunas exibidas. Esta lio descreve todas as instrues SQL necessrias para executar essas aes. Talvez voc deseje criar instrues SELECT que possam ser usadas continuamente. Esta lio tambm aborda o uso dos comandos SQL*Plus para executar instrues SQL.

Introduo ao Oracle: SQL e PL/SQL 1-2

Recursos das Instrues SELECT SQLSeleo Projeo

Tabela 1

Tabela 1

Juno

Tabela 11-3

Tabela 2

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Recursos das Instrues SELECT SQL A instruo SELECT recupera informaes do banco de dados. Usando uma instruo SELECT, voc pode fazer o seguinte: Seleo: Voc pode usar o recurso de seleo no cdigo SQL para escolher as linhas de uma tabela que deseja ver retornadas por uma consulta. Pode usar vrios critrios para restringir seletivamente as linhas que voc v. Projeo: Voc pode usar o recurso de projeo no cdigo SQL para escolher as colunas de uma tabela que deseja ver retornadas por uma consulta. possvel escolher mais ou menos colunas da tabela conforme sua necessidade. Juno: Voc pode usar o recurso de juno no cdigo SQL para reunir dados armazenados em tabelas diferentes, criando um vnculo entre eles. Voc aprender mais sobre junes em uma lio posterior.

Introduo ao Oracle: SQL e PL/SQL 1-3

Instruo SELECT Bsica

SELECT FROM

[DISTINCT] {*, coluna [apelido],...} tabela;

SELECT identifica que colunas. FROM identifica qual tabela.

1-4

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Instruo SELECT Bsica Da forma mais simples, uma instruo SELECT deve incluir o seguinte: Uma clusula SELECT, que especifica as colunas a serem exibidas Uma clusula FROM, que especifica a tabela que contm as colunas listadas na clusula SELECT SELECT DISTINCT * coluna apelido FROM tabela uma lista de uma ou mais colunas suprime os itens duplicados seleciona todas as colunas seleciona a coluna nomeada fornece cabealhos diferentes s colunas selecionadas especifica a tabela contendo as colunas

Na sintaxe:

Observao: Em todo o curso so usados os termos palavra-chave, clusula e instruo. Uma palavra-chave refere-se a um elemento SQL individual. Por exemplo, SELECT e FROM so palavras-chave. Uma clusula parte de uma instruo SQL. Por exemplo, SELECT empno, ename, ... uma clusula. Uma instruo uma combinao de duas ou mais clusulas. Por exemplo, SELECT * FROM emp uma instruo SQL.Introduo ao Oracle: SQL e PL/SQL 1-4

Criando Instrues SQL Instrues SQL sem distino entre maisculas e minsculas. Instrues SQL podem estar em uma ou mais linhas. Palavras-chave no podem ser abreviadas ou dividas entre as linhas. Normalmente, as clusulas so colocadas em linhas separadas. Guias e endentaes so usadas para aperfeioar a legibilidade.1-5 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Criando Instrues SQL Usando as seguintes diretrizes e regras simples, voc pode construir instrues vlidas fceis de ler e editar: As instrues SQL no fazem distino entre maisculas de minsculas, a menos que indicado. As instrues SQL podem ser digitadas em uma ou mais linhas. As palavras-chave no podem ser divididas entre as linhas nem abreviadas. As clusulas so em geral colocadas em linhas separadas para melhor legibilidade e facilidade de edio. As guias e endentaes podem ser usadas para tornar o cdigo mais legvel. Em geral, as palavras-chave so digitadas em letras maisculas, todas as outras palavras, como nomes de tabela e colunas so digitadas em minsculas. Dentro do SQL*Plus, uma instruo SQL digitada no prompt SQL e as linhas subseqentes so numeradas. Isso chama-se buffer de SQL. Somente uma instruo pode ser a atual a qualquer momento dentro do buffer. Coloque um ponto-e-vrgula (;) no final da ltima clusula. Coloque uma barra na ltima linha do buffer. Coloque uma barra no prompt SQL. Emita um comando RUN do SQL*Plus no prompt SQL.Introduo ao Oracle: SQL e PL/SQL 1-5

Executando Instrues SQL

Selecionando Todas as ColunasSQL> SELECT * 2 FROM dept; DEPTNO --------10 20 30 40 DNAME -------------ACCOUNTING RESEARCH SALES OPERATIONS LOC ------------NEW YORK DALLAS CHICAGO BOSTON

1-6

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Selecting All Columns, All Rows Exiba todas as colunas de dados em uma tabela seguindo a palavra-chave SELECT com um asterisco (*). No exemplo do slide, a tabela do departamento contm trs colunas: DEPTNO, DNAME e LOC. A tabela contm quatro linhas, uma para cada departamento. possvel, tambm, exibir todas as colunas na tabela, listando todas elas aps a palavra-chave SELECT. Por exemplo, a instruo SQL a seguir, como no exemplo do slide, exibe todas as colunas e linhas da tabela DEPT:SQL> SELECT deptno, dname, loc 2 FROM dept;

Introduo ao Oracle: SQL e PL/SQL 1-6

Selecionando Colunas EspecficasSQL> SELECT deptno, loc 2 FROM dept;

DEPTNO --------10 20 30 40

LOC ------------NEW YORK DALLAS CHICAGO BOSTON

1-7

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Selecionando Colunas Especficas, Todas as Linhas Voc pode usar a instruo SELECT para exibir colunas especficas da tabela, ao especificar os nomes da coluna, separado por vrgulas. O exemplo do slide exibe todos os nmeros dos departamentos e locais na tabela DEPT. Na clusula SELECT, especifique as colunas a serem vistas, na ordem que deseja que apaream na sada. Por exemplo, para exibir o local antes do nmero do departamento, use a seguinte instruo:SQL> SELECT loc, deptno 2 FROM dept; LOC DEPTNO ------------- --------NEW YORK 10 DALLAS 20 CHICAGO 30 BOSTON 40

Introduo ao Oracle: SQL e PL/SQL 1-7

Defaults de Cabealho de Coluna

Justificativa default Esquerda: Dados de caractere e data Direita: Dados numricos

Exibio default: Letra maiscula

1-8

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Defaults de Cabealho de Coluna Os dados e o cabealho da coluna de caracteres bem como os dados e o cabealho da coluna de data so justificados esquerda na largura da coluna. Os cabealhos de nmero e dados so justificados direita. SQL> SELECT ename, hiredate, sal 2 FROM emp;ENAME HIREDATE SAL ---------- --------- --------KING 17-NOV-81 5000 BLAKE 01-MAY-81 2850 CLARK 09-JUN-81 2450 JONES 02-APR-81 2975 MARTIN 28-SEP-81 1250 ALLEN 20-FEB-81 1600 ... 14 rows selected.

Os cabealhos da coluna de caracteres e datas podem ser truncados, mas os cabealhos de nmeros, no. Os cabealhos de coluna aparecem por default em letra minscula. Voc pode sobrepor a exibio do cabealho de coluna com um apelido. Os apelidos de coluna so abordados posteriormente nesta lio.Introduo ao Oracle: SQL e PL/SQL 1-8

Expresses AritmticasCriar expresses com dados NUMBER e DATE usando operadores aritmticos.Operador + * / Descrio Adicionar Subtrair Multiplicar Dividir

1-9

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Expresses Aritmticas Talvez voc necessite modificar a forma de exibio dos dados, efetuar clculos ou consultar cenrios what-if. Isso possvel usando expresses aritmticas. Uma expresso aritmtica possui nomes de coluna, valores numricos constantes e operadores aritmticos. Operadores Aritmticos O slide lista os operadores aritmticos disponveis no cdigo SQL. Voc pode usar operadores aritmticos em qualquer clusula de uma instruo SQL exceto na clusula FROM.

Introduo ao Oracle: SQL e PL/SQL 1-9

Usando Operadores AritmticosSQL> SELECT ename, sal, sal+300 2 FROM emp; ENAME SAL SAL+300 ---------- --------- --------KING 5000 5300 BLAKE 2850 3150 CLARK 2450 2750 JONES 2975 3275 MARTIN 1250 1550 ALLEN 1600 1900 ... 14 rows selected.

1-10

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Usando Operadores Aritmticos O exemplo no slide usa o operador de adio para calcular um aumento de salrio de US$300 para todos os funcionrios e exibe uma nova coluna SAL+300 na sada. Observe que a coluna SAL+300 resultante do clculo no uma nova coluna na tabela EMP; ela somente para exibio. Por default, o nome de uma coluna surge do clculo que a criou nesse caso, sal+300. Observao: O SQL*Plus ignora espaos em branco antes e depois do operador aritmtico.

Introduo ao Oracle: SQL e PL/SQL 1-10

Precedncia do Operador

*

/

+

_

A multiplicao e a diviso tm prioridade sobre a adio e a subtrao. Os operadores com a mesma prioridade so avaliados da esquerda para a direita. Os parnteses so usados para forar a avaliao priorizada e para esclarecer as instrues.

1-11

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Precedncia do Operador Se uma expresso aritmtica tiver mais de um operador, a multiplicao e a diviso sero avaliadas primeiro. Se os operadores dentro uma expresso tiverem a mesma prioridade, ento a avaliao ser realizada da esquerda para a direita. Voc pode usar os parnteses a fim de forar a avaliao da expresso entre parnteses primeiro.

Introduo ao Oracle: SQL e PL/SQL 1-11

Precedncia do OperadorSQL> SELECT ename, sal, 12*sal+100 2 FROM emp; ENAME SAL 12*SAL+100 ---------- --------- ---------KING 5000 60100 BLAKE 2850 34300 CLARK 2450 29500 JONES 2975 35800 MARTIN 1250 15100 ALLEN 1600 19300 ... 14 rows selected.

1-12

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Precedncia do Operador (continuao) O exemplo no slide exibe o nome, o salrio e a remunerao anual dos funcionrios. Ele calcula a remunerao anual como 12 multiplicado pelo salrio mensal, mais um bnus de US$100. Observe que a multiplicao realizada antes da adio. Observao: Use os parnteses para reforar a ordem de procedncia padro e aumentar a compreenso. Por exemplo, a expresso acima pode ser criada como (12*sal)+100 sem que haja alterao no resultado.

Introduo ao Oracle: SQL e PL/SQL 1-12

Usando ParntesesSQL> SELECT ename, sal, 12*(sal+100) 2 FROM emp; ENAME SAL 12*(SAL+100) ---------- --------- ----------KING 5000 61200 BLAKE 2850 35400 CLARK 2450 30600 JONES 2975 36900 MARTIN 1250 16200 ... 14 rows selected.

1-13

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Usando Parnteses Voc pode sobrepor as normas de precedncia usando parnteses para especificar a ordem de execuo dos operadores. O exemplo no slide exibe o nome, o salrio e a remunerao anual dos funcionrios. Ele calcula a remunerao anual como o salrio mensal mais um bnus mensal de US$100, multiplicado por 12. Por causa dos parmetros, a adio tem prioridade sobre a multiplicao.

Introduo ao Oracle: SQL e PL/SQL 1-13

Definindo um Valor Nulo Um valor nulo no est disponvel, no atribudo, desconhecido ou no aplicvel. Um valor nulo no o mesmo que um zero ou um espao em branco.SQL> SELECT ename, job, sal, comm 2 FROM emp; ENAME JOB SAL COMM ---------- --------- --------- --------KING PRESIDENT 5000 BLAKE MANAGER 2850 ... TURNER SALESMAN 1500 0 ... 14 rows selected.1-14 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Valores Nulos Se faltar o valor de dados em uma linha de uma determinada coluna, diz-se que esse valor nulo ou contm nulo. Um valor nulo no est disponvel, no atribudo, desconhecido ou no aplicvel. Um valor nulo no o mesmo que um zero ou um espao. O zero um nmero e o espao um caractere. As colunas de qualquer tipo de dados podem conter valores nulos, a menos que tenham sido definidas como NOT NULL ou como PRIMARY KEY ao serem criadas. Na coluna COMM da tabela EMP, note que somente o SALESMAN pode ganhar comisso. Outros funcionrios no esto autorizados a ganhar comisso. Um valor nulo representa esse fato. Turner, que um vendedor, no ganha nenhuma comisso. Observe que sua comisso zero e no nula.

Introduo ao Oracle: SQL e PL/SQL 1-14

Valores Nulos nas Expresses AritmticasExpresses aritmticas contendo um valor nulo avaliado como nulo.SQL> select ename, 12*sal+comm 2 from emp 3 WHERE ename='KING'; ENAME 12*SAL+COMM ---------- ----------KING

1-15

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Valores Nulos (continuao) Se qualquer valor da coluna em uma expresso aritmtica for nulo, o resultado ser nulo. Por exemplo, se voc tentar executar uma diviso com zero, obter um erro. No entanto, se dividir um nmero por nulo, o resultado ser nulo ou desconhecido. No exemplo do slide, o funcionrio KING no est em SALESMAN e no receber nenhuma comisso. Como a coluna COMM na expresso aritmtica nula, o resultado ser nulo. Para obter mais informaes, consulte o Oracle Server SQL Reference, Release 8, "Elements of SQL".

Introduo ao Oracle: SQL e PL/SQL 1-15

Definindo um Apelido de Coluna Renomeia um cabealho de coluna til para clculos Segue imediatamente o nome da coluna; palavra-chave AS opcional entre o nome da coluna e o apelido Necessita de aspas duplas caso contenha espaos ou caracteres especiais ou faa distino entre maisculas e minsculas

1-16

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Apelidos de Coluna Ao exibir o resultado de uma consulta, o SQL*Plus normalmente usa o nome da coluna selecionada como o cabealho da mesma. Em muitos casos, esse cabealho pode no ser descritivo e, desse modo, de difcil compreenso. possvel alterar um cabealho de coluna usando um apelido da coluna. Especifique o apelido aps a coluna na lista SELECT usando um espao como um separador. Por default, os cabealhos de apelidos aparecem em letras maisculas. Se o apelido possuir espaos, caracteres especiais (tais como # ou $) ou fizer distino entre maisculas e minsculas, coloque o apelido entre aspas duplas (" ").

Introduo ao Oracle: SQL e PL/SQL 1-16

Usando Apelidos de ColunaSQL> SELECT ename AS name, sal salary 2 FROM emp; NAME SALARY ------------- --------... SQL> SELECT ename "Name", 2 sal*12 "Annual Salary" 3 FROM emp; Name Annual Salary ------------- ------------...1-17 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Apelidos de Coluna (continuao) O primeiro exemplo exibe o nome e o salrio mensal de todos os funcionrios. Note que a palavrachave AS opcional foi usada antes do nome do apelido de coluna. O resultado da consulta dever ser o mesmo caso a palavra-chave AS seja usada ou no. Note tambm que a instruo SQL possui os apelidos de coluna, nome e salrio, em letra minscula, enquanto o resultado da consulta exibe os cabealhos da coluna em maiscula. Conforme mencionado no ltimo slide, os cabealhos de coluna aparecem, por default, em maiscula. O segundo exemplo exibe o nome e o salrio anual de todos os funcionrios. Como o Annual Salary possui espaos, ele foi includo entre aspas duplas. Note que o cabealho da coluna na sada exatamente o mesmo do apelido da coluna.

Introduo ao Oracle: SQL e PL/SQL 1-17

Operador de Concatenao Concatena colunas ou strings de caractere a outras colunas representado por duas barras verticais (||) Cria uma coluna resultante que uma expresso de caracteres

1-18

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Operador de Concatenao Voc pode vincular colunas outras colunas, expresses aritmticas ou valores constantes usando o operador de concatenao (||). As colunas em cada lado do operador so combinadas para formar uma coluna de sada nica.

Introduo ao Oracle: SQL e PL/SQL 1-18

Usando um Operador de ConcatenaoSQL> SELECT 2 FROM ename||job AS "Employees" emp;

Employees ------------------KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER MARTINSALESMAN ALLENSALESMAN ... 14 rows selected.

1-19

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Operador de Concatenao (continuao) No exemplo, ENAME e JOB esto concatenados e recebem o apelido Employees. Note que o nmero e cargo do funcionrio so combinados para formar uma coluna de sada nica. A palavra-chave AS antes do nome do apelido torna a clusula SELECT mais fcil de ser lida.

Introduo ao Oracle: SQL e PL/SQL 1-19

Strings Literais de Caracteres Uma literal um caractere, um nmero ou uma data includa na lista SELECT. Os valores literais de caractere e data devem estar entre aspas simples. Cada string de caractere gerada uma vez para cada linha retornada.

1-20

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Strings Literais de Caracteres Uma literal um caractere, um nmero ou uma data includa na lista SELECT que no seja um nome ou apelido de coluna. Ela impressa para cada linha retornada. Strings literais de formato de texto livre podem ser includas no resultado da consulta e so tratadas da mesma forma que uma coluna na lista SELECT. As literais de caractere e data precisam estar entre aspas simples (' '); as literais de nmero, no.

Introduo ao Oracle: SQL e PL/SQL 1-20

Usando Strings Literais de CaracteresSQL> SELECT ename ||' is a '||job 2 AS "Employee Details" 3 FROM emp; Employee Details ------------------------KING is a PRESIDENT BLAKE is a MANAGER CLARK is a MANAGER JONES is a MANAGER MARTIN is a SALESMAN ... 14 rows selected.

1-21

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Strings Literais de Caracteres (continuao) O exemplo do slide exibe os nomes e cargos de todos os funcionrios. A coluna possui o cabealho Employee Details. Note os espaos entre as aspas simples na instruo SELECT. Os espaos melhoram a legibilidade da sada. No exemplo a seguir, o nome e o salrio de cada funcionrio esto concatenados a uma literal para dar mais sentido s linhas retornadas.SQL> SELECT ename ||': '||'1'||' Month salary = '||sal Monthly 2 FROM emp; MONTHLY --------------------------------------------------------------KING: 1 Month salary = 5000 BLAKE: 1 Month salary = 2850 CLARK: 1 Month salary = 2450 JONES: 1 Month salary = 2975 MARTIN: 1 Month salary = 1250 ALLEN: 1 Month salary = 1600 TURNER: 1 Month salary = 1500 ... 14 rows selected.Introduo ao Oracle: SQL e PL/SQL 1-21

Linhas DuplicadasA exibio default das consultas de todas as linhas, incluindo linhas duplicadas.SQL> SELECT deptno 2 FROM emp;

DEPTNO --------10 30 10 20 ... 14 rows selected.

1-22

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Linhas Duplicadas Exceto se indicado o contrrio, o SQL*Plus exibe os resultados de uma consulta sem eliminar as linhas duplicadas. O exemplo do slide exibe todos os nmeros de departamento a partir da tabela EMP. Note que os nmeros de departamento esto repetidos.

Introduo ao Oracle: SQL e PL/SQL 1-22

Eliminando Linhas DuplicadasElimine linhas duplicadas usando a palavrachave DISTINCT na clusula SELECT.SQL> SELECT DISTINCT deptno 2 FROM emp;

DEPTNO --------10 20 30

1-23

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Linhas Duplicadas (continuao) Para eliminar linhas duplicadas de um resultado, inclua a palavra-chave DISTINCT na clusula SELECT logo aps a palavra-chave SELECT. No exemplo do slide, a tabela EMP contm, na verdade, quatorze linhas, mas h somente trs nmeros de departamento exclusivos na tabela. Voc pode especificar vrias colunas aps o qualificador DISTINCT. O qualificador DISTINCT afeta todas as colunas selecionadas e o resultado representa uma combinao distinta das colunas.SQL> SELECT DISTINCT deptno, job 2 FROM emp; DEPTNO -----10 10 10 20 ... 9 rows JOB --------CLERK MANAGER PRESIDENT ANALYST selected.

Introduo ao Oracle: SQL e PL/SQL 1-23

Interao SQL e SQL*PlusInstrues SQL

Buffer

Instrues SQL

Servidor

SQL*Plus

Comandos do SQL*Plus Relatrio Formatado

Resultados da Consulta

1-24

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

SQL e SQL*Plus SQL uma linguagem de comando para comunicao com o Oracle Server a partir de qualquer ferramenta ou aplicao. O Oracle SQL possui muitas extenses. Quando voc informa uma instruo SQL, ela armazenada em uma parte da memria chamada buffer de SQL e permanece l at que voc informe uma nova instruo. O SQL*Plus uma ferramenta Oracle que reconhece e submete instrues SQL ao Oracle Server para execuo e contm sua prpria linguagem de comando. Recursos do Cdigo SQL Podem ser utilizados por uma grande faixa de usurios, incluindo aqueles com pouca ou nenhuma experincia em programao uma linguagem no procedural Reduz o perodo de tempo necessrio para a criao e manuteno de sistemas uma linguagem similar ao ingls Recursos do SQL*Plus Aceita entrada ad hoc das instrues Aceita entrada SQL a partir dos arquivos Oferece um editor de linha para modificar instrues SQL Controla as configuraes ambientais Formata os resultados da consulta em um relatrio bsico Acessa bancos de dados remotos e locaisIntroduo ao Oracle: SQL e PL/SQL 1-24

Instrues SQL Versus Comandos SQL*PlusSQL Uma linguagem Padro ANSI A palavra-chave no pode ser abreviada As instrues manipulam definies de dados e tabela no banco de dados SQL*Plus Um ambiente Patenteado pela Oracle As palavras-chave podem ser abreviadas Os comandos no permitem a manipulao dos valores no banco de dados

Instrues SQL

Buffer de SQL

Comandos SQL*Plus

Buffer de SQL*Plus

1-25

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

SQL e SQL*Plus (continuao) A tabela a seguir compara os cdigos SQL e SQL*Plus:SQL uma linguagem de comunicao com o Oracle Server para acesso aos dados. baseada no padro SQL da American National Standards Institute (ANSI). Manipula definies de dados e tabela no banco de dados. Digita-se no buffer de SQL em uma ou mais linhas. No possui caractere de continuao. possvel abreviar. Usa um caracter de finalizao para executar o comando imediatamente. Usa funes para executar algumas formataes. SQL*Plus Reconhece instrues SQL e as envia ao Servidor. a interface patenteada da Oracle para execuo de instrues SQL. No permite a manipulao dos valores no banco de dados. Digita-se uma linha de cada vez; no armazenada no buffer de SQL. Possui um hfen (-) como caractere de continuao caso os comandos ultrapassem uma linha. No possvel abreviar. No necessita de caracteres de finalizao; os comandos so executados imediatamente. Usa comandos para formatar dados.

Introduo ao Oracle: SQL e PL/SQL 1-25

Viso Geral do SQL*Plus Estabelecer login no SQL*Plus. Descrever a estrutura de tabela. Editar a instruo SQL. Executar o cdigo SQL a partir do SQL*Plus. Salvar as instrues SQL em arquivos e anexar as instrues SQL a arquivos. Executar arquivos salvos. Carregar comandos a partir de arquivo para buffer e edit-los.1-26 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

SQL*Plus SQL*Plus um ambiente no qual voc pode realizar o seguinte: Executar instrues SQL para recuperar, modificar, adicionar e remover dados do banco de dados. Formatar, calcular, armazenar e imprimir resultados de consulta em formulrios. Criar arquivos de script para armazenar instrues SQL para uso repetitivo no futuro.Objetivo Afeta o comportamento geral das instrues SQL para a seo. Formata o resultado da consulta. Salva, carrega e executa arquivos de script. Envia instrues SQL do buffer de SQL para o Oracle8 Server. Modifica as instrues SQL no buffer. Permite criar e passar variveis para instrues SQL, imprimir valores de variveis e imprimir mensagens na tela. Possui diversos comandos para conectar o banco de dados, manipular o ambiente SQL*Plus e exibir definies de coluna.

Os comandos SQL*Plus podem ser divididos nas seguintes categorias principais:Categoria Ambiente Formato Manipulao de arquivo Execuo Editar Interao Diversos

Introduo ao Oracle: SQL e PL/SQL 1-26

Estabelecendo Login no SQL*Plus No ambiente Windows:

Na linha de comando: sqlplus [nome do usurio[/senha [@banco de dados]]]1-27 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Estabelecendo Login no SQL*Plus A forma de chamar o SQL*Plus depende do tipo de sistema operacional ou ambiente Windows que voc est executando. Para estabelecer login atravs de um ambiente Windows: 1. Clique em Iniciar > Programas > Oracle for Windows NT > SQL*Plus 8.0. 2. Preencha o nome do usurio, a senha e o banco de dados. Para estabelecer login atravs de um ambiente de linha de comando: 1. Estabelea login na mquina. 2. Digite o comando SQL*Plus conforme mostrado no slide. No comando: nome do usurio senha o seu nome de usurio do banco de dados a sua senha do banco de dados (se digitar sua senha aqui, ela estar visvel)

@banco de dados a string de conexo do banco de dados Observao: Para garantir a integridade da senha, no a digite no prompt do sistema operacional. Em vez disso, digite somente o nome de usurio. Digite a senha no prompt Password. Uma vez estabelecido o login corretamente no SQL*Plus, voc ver a seguinte mensagem:SQL*Plus Release 8.0.3.0.0 - Produzido em Ter Jun 22 16:03:43 1999 (c) Copyright 1999 Oracle Corporation. (Release 8.0.3.0.0 - Production on Tue Jun 22 16:03:43 1999 (c) Copyright 1999 Oracle Corporation. Todos os direitos reservados. (All rights reserved). Introduo ao Oracle: SQL e PL/SQL 1-27

Exibindo a Estrutura de Tabela

Use o comando DESCRIBE do SQL*Plus para exibir a estrutura de uma tabela.DESC[RIBE] nome da tabela

1-28

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Exibindo a Estrutura de Tabela No SQL*Plus, possvel exibir a estrutura de uma tabela usando o comando DESCRIBE. O resultado do comando para ver os nomes da coluna e tipos de dados, assim como se uma coluna deve conter dados. Na sintaxe: nome da tabela o nome de qualquer tabela, view ou sinnimo existente disponvel para o usurio

Introduo ao Oracle: SQL e PL/SQL 1-28

Exibindo a Estrutura de Tabela

SQL> DESCRIBE dept Name Null? ----------------- -------DEPTNO NOT NULL DNAME LOC Type -----------NUMBER(2) VARCHAR2(14) VARCHAR2(13)

1-29

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Exibindo a Estrutura de Tabela (continuao) O exemplo do slide exibe as informaes sobre a estrutura da tabela DEPT. No resultado: Null? TypeTipo de dado NUMBER(p,s) VARCHAR2(s) DATE CHAR(s)

indica se uma coluna deve conter dados; NOT NULL indica que uma coluna deve conter dados exibe o tipo de dados de uma colunaDescrio Valor numrico que possui um nmero mximo de dgitos p, o nmero de dgitos direita do ponto decimal s. Valor de caracteres com comprimento varivel do tamanho mximo s. Valor de data e hora entre 1 de janeiro, 4712 A.C. e 31 de dezembro, 9999 D.C. Valores de caracteres com comprimento fixo do tamanho s.

Os tipos de dados so descritos na tabela a seguir:

Introduo ao Oracle: SQL e PL/SQL 1-29

Comandos de Edio do SQL*Plus A[PPEND] texto C[HANGE] / antigo / novo C[HANGE] / texto / CL[EAR] BUFF[ER] DEL DEL n DEL m n

1-30

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Comandos de Edio do SQL*Plus Os comandos SQL*Plus so digitados em uma linha de cada vez e no so armazenados no buffer de SQL.Comando A[PPEND] texto C[HANGE] / antigo / novo C[HANGE] / texto / CL[EAR] BUFF[ER] DEL Descrio Adiciona texto no final da linha atual. Altera o texto antigo para o novo na linha atual. Deleta o texto da linha atual. Deleta todas as linhas a partir do buffer de SQL. Deleta a linha atual.

Diretrizes Ao pressionar [Return] antes de completar o comando, o SQL*Plus informa o nmero da linha incompleta. Finalize o buffer de SQL digitando um dos caracteres finalizadores (ponto-e-vrgula ou barra) ou pressionando duas vezes [Return]. Em seguida, aparecer o prompt SQL.

Introduo ao Oracle: SQL e PL/SQL 1-30

Comandos de Edio do SQL*Plus I[NPUT] I[NPUT] texto L[IST] L[IST] n L[IST] m n R[UN]

n n texto 0 texto1-31 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Comandos de Edio do SQL*Plus (continuao)Comando I[NPUT] I[NPUT] texto L[IST] L[IST] n L[IST] m n R[UN] n n texto 0 texto Descrio Insere um nmero indefinido de linhas. Insere uma linha consistindo em texto. Lista todas as linhas no buffer de SQL. Lista uma linha (especificada pelo n). Lista uma faixa de linhas (de m a n). Exibe e executa a instruo SQL atual no buffer. Especifica a linha que deve ser tornar a linha atual. Substitui a linha n pelo texto. Insere uma linha antes da linha 1.

Voc pode digitar somente um comando SQL*Plus por prompt SQL. Os comandos SQL*Plus no ficam armazenados no buffer. Para continuar um comando SQL*Plus na prxima linha, finalize a linha atual com um hfen (-).

Introduo ao Oracle: SQL e PL/SQL 1-31

Comandos de Arquivo do SQL*Plus SAVE nome de arquivo GET nome de arquivo START nome de arquivo @ nome de arquivo EDIT nome de arquivo SPOOL nome de arquivo EXIT1-32 Copyright Oracle Corporation, 1999. Todos os direitos reservados.

Comandos de Arquivo do SQL*Plus As instrues SQL comunicam-se com o Oracle Server. Os comandos SQL*Plus controlam o ambiente, formatam os resultados de consulta e gerenciam arquivos. Voc pode usar os comandos identificados na tabela a seguir:Comando SAV[E] nome de arquivo [.ext] [REP[LACE]APP[END]] Descrio Salva o contudo atual do buffer de SQL para um arquivo. Use APPEND para adicionar um arquivo existente; use REPLACE para substituir um arquivo existente. A extenso default .sql. Salva o contedo de um arquivo salvo anteriormente para o buffer de SQL. A extenso default para o nome de arquivo .sql. Executa um arquivo de comando salvo anteriormente. Executa um arquivo de comando salvo anteriormente (o mesmo que START). Chama o editor e salva o contedo do buffer para um arquivo chamado afiedt.buf. Chama o editor para editar o contedo de um arquivo salvo. Armazena os resultados da consulta em um arquivo. OFF fecha o arquivo perifrico. OUT fecha o arquivo perifrico e envia o os resultados do arquivo para a impressora do sistema. Sai do cdigo SQL*Plus.

GET nome de arquivo [.ext]

STA[RT] n