DB2 - Conceitos e Utilização

126
DB2 - CONCEITOS E UTILIZAÇÃO 19/11/98 DBMS RELACIONAL..............................................................................................................................3 DB2 é um DBMS Relacional....................................................................................................................5 OBJETOS DO DB2...................................................................................................................................7 ENTIDADE RELACIONAMENTO.......................................................................................................10 RELACIONAMENTO............................................................................................................................11 LINGUAGEM SQL.................................................................................................................................17 INSTRUÇÃO SELECT.......................................................................................................................18 QUERY............................................................................................................................................21 SELECT DE TODAS AS COLUNAS............................................................................................23 CONTROLE DE LINHAS..............................................................................................................24 NULIDADE.....................................................................................................................................26 MÚTIPLAS CONDIÇÕES..............................................................................................................28 IN.....................................................................................................................................................30 PESQUISAS PARCIAIS.................................................................................................................31 MANIPULANDO TABELA RESULTANTE................................................................................33 ORDER BY.....................................................................................................................................33 SELECT DISTINCT.......................................................................................................................35 SELECT DE VALORES CALCULADOS.....................................................................................37 ORDER BY POR VALOR CALCULADO....................................................................................38 SELECT AVANÇADO...................................................................................................................40 JOIN DE TABELAS.......................................................................................................................57 INNER JOIN....................................................................................................................................62 OUTER JOIN...................................................................................................................................63 EXPRESSÕES CASE......................................................................................................................64 UNION.............................................................................................................................................65 SUBQUERY....................................................................................................................................67 MANUTENÇÃO DE DADOS - INSERT.........................................................................................72 MANUTENÇÃO DE DADOS - UPDATE........................................................................................73 MANUTENÇÃO DE DADOS - DELETE........................................................................................74 DATA DEFINITION LANGUAGE.......................................................................................................75 DDL.....................................................................................................................................................76 STORAGE GROUP.............................................................................................................................77 DATABASE........................................................................................................................................78 TABLESPACE....................................................................................................................................79 TABLE.................................................................................................................................................81 ÍNDICE................................................................................................................................................83 VIEW...................................................................................................................................................84 DROP.......................................................................................................................................................85 SQL ESTÁTICO vs. SQL DINÂMICO..................................................................................................86 COMMIT / ROLLBACK........................................................................................................................91 BIND........................................................................................................................................................92 SEGURANÇA INTERNA DO DB2.......................................................................................................97 UTLITÁRIOS DO DB2...........................................................................................................................99 SYSIBM.SYSUTILX........................................................................................................................100 LOAD.................................................................................................................................................101 LOAD – JCL..................................................................................................................................102 FASES DO LOAD.........................................................................................................................105 CHECK DATA..................................................................................................................................109 FASES DO CHECK DATA..........................................................................................................110 CHECK INDEX.................................................................................................................................112 FASES DO CHECK INDEX.........................................................................................................112 REORG..............................................................................................................................................113 FASES DO REORG......................................................................................................................113 COPY.................................................................................................................................................116 MERGECOPY...................................................................................................................................117 RECOVERY......................................................................................................................................118 QUIESCE...........................................................................................................................................120 REPORT............................................................................................................................................120 INDEX RECOVERY........................................................................................................................121 RECOVERY PENDING...................................................................................................................122 MODIFY............................................................................................................................................123 DIAGNOSE.......................................................................................................................................123 #59585 1

description

db2 conceitos e utilização

Transcript of DB2 - Conceitos e Utilização

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    DBMS RELACIONAL..............................................................................................................................3DB2 um DBMS Relacional....................................................................................................................5OBJETOS DO DB2...................................................................................................................................7ENTIDADE RELACIONAMENTO.......................................................................................................10RELACIONAMENTO............................................................................................................................11LINGUAGEM SQL.................................................................................................................................17

    INSTRUO SELECT.......................................................................................................................18QUERY............................................................................................................................................21SELECT DE TODAS AS COLUNAS............................................................................................23CONTROLE DE LINHAS..............................................................................................................24NULIDADE.....................................................................................................................................26MTIPLAS CONDIES..............................................................................................................28IN.....................................................................................................................................................30PESQUISAS PARCIAIS.................................................................................................................31MANIPULANDO TABELA RESULTANTE................................................................................33ORDER BY.....................................................................................................................................33SELECT DISTINCT.......................................................................................................................35SELECT DE VALORES CALCULADOS.....................................................................................37ORDER BY POR VALOR CALCULADO....................................................................................38SELECT AVANADO...................................................................................................................40JOIN DE TABELAS.......................................................................................................................57INNER JOIN....................................................................................................................................62OUTER JOIN...................................................................................................................................63EXPRESSES CASE......................................................................................................................64UNION.............................................................................................................................................65SUBQUERY....................................................................................................................................67

    MANUTENO DE DADOS - INSERT.........................................................................................72MANUTENO DE DADOS - UPDATE........................................................................................73MANUTENO DE DADOS - DELETE........................................................................................74

    DATA DEFINITION LANGUAGE.......................................................................................................75DDL.....................................................................................................................................................76STORAGE GROUP.............................................................................................................................77DATABASE........................................................................................................................................78TABLESPACE....................................................................................................................................79TABLE.................................................................................................................................................81NDICE................................................................................................................................................83VIEW...................................................................................................................................................84

    DROP.......................................................................................................................................................85SQL ESTTICO vs. SQL DINMICO..................................................................................................86COMMIT / ROLLBACK........................................................................................................................91BIND........................................................................................................................................................92SEGURANA INTERNA DO DB2.......................................................................................................97UTLITRIOS DO DB2...........................................................................................................................99

    SYSIBM.SYSUTILX........................................................................................................................100LOAD.................................................................................................................................................101

    LOAD JCL..................................................................................................................................102FASES DO LOAD.........................................................................................................................105

    CHECK DATA..................................................................................................................................109FASES DO CHECK DATA..........................................................................................................110

    CHECK INDEX.................................................................................................................................112FASES DO CHECK INDEX.........................................................................................................112

    REORG..............................................................................................................................................113FASES DO REORG......................................................................................................................113

    COPY.................................................................................................................................................116MERGECOPY...................................................................................................................................117RECOVERY......................................................................................................................................118QUIESCE...........................................................................................................................................120REPORT............................................................................................................................................120INDEX RECOVERY........................................................................................................................121RECOVERY PENDING...................................................................................................................122MODIFY............................................................................................................................................123DIAGNOSE.......................................................................................................................................123

    #59585 1

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 STOSPACE........................................................................................................................................123RUNSTATS.......................................................................................................................................124REPAIR.............................................................................................................................................124DSNTIAUL........................................................................................................................................125COMANDOS DB2............................................................................................................................126

    #595852

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    DBMS RELACIONAL

    QUANDO UM DBMS PODE SER CONSIDERADO RELACIONAL ??

    1. Independncia dos Dados2. Estrutura Tabular3. Operadores de Tabelas4. Uniformidade e Integridade dos Dados.

    Notas:

    DBMS - Significa DATA BASE MANAGEMENT SYSTEM, OU SISTEMA GERENCIADOR DE BANCO DE DADOS (SGBD).

    Um DBMS Relacional exige:

    Estrutura de Dados Tabular Os dados devem ser colocados em tabelas

    Operadores de Tabelas Deve ter operadores que conseguem manipular dados em tabelas

    Uniformidade e Integridade dos Dados Possui Mecanismos que mantm a integridade dos dados que so adicionados ou modificados. O DBMS deve tambm ter mecanismo capazes de forar uma uniformizao dos dados que so nela armazenados. Por exemplo, podemos forar o armazenamento dos dados sempre o formato numrico.

    Independncia dos Dados .Lgica das aplicaes no devem se preocupar com a estrutura de armazenamento e a teoria de acesso aos dados.

    #59585 3

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    Tabela Empregados

    Matricula Nome Cargo Depto Salrio

    000010 Christiane D01 001 260000 000020 Karina R01 002 270010 000030 Jlio S01 003 300010 Linhas 000040 Ingrid P01 004 250500 000050 Juan P02 004 138005

    Colunas

    Notas :

    Todos os dados e relacionamentos entre dados so representados por valores de campo. Pointers fsicos no so utilizados.

    Cada ocorrncia da tabela chamada de linha. Os atributos so chamados de colunas.

    As Tabelas DB2 so definidas e manipuladas usando-se a linguagem SQL.

    Todas as Tabelas so referenciadas pelo seu nome.

    #595854

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    DB2 um DBMS Relacional

    SISTEMA DE GERENCIA DE BANCO DE DADOS

    Integridade e Segurana de Dados Recuperao e Reinicio Integrados Definio Dinmica Operao Contnua

    Modelo de Dados Linguagem SQL Relacional - Os dados vistos - Definio

    como Tabelas Manipulao e - Projeto mais fcil Controle de dados

    #59585 5

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 AMBIENTE DB2

    Notas:

    DB2 pode ser acessado atravs do IMS, CICS, TSO e jobs BATCH simultaneamente.

    Dados que estiverem em IMS/DM (Antigo IMS/DB) podem ser transferidos para o DB2 atravs do DPROP (Data Propagador) ou o DXT (Data Extract).

    #595856

    IMS TM CICS Qmf/Spffi BATCH

    IMS DM DB2DPROP

    DXT

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    OBJETOS DO DB2

    DATA BASE

    Tablespace1

    Indice1 Tabela1

    Tablespace2

    Indice2 Tabela2

    View X

    Storage Group A Storage Group B

    #59585 7

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 OBJETOS DO B2

    Notas:

    DATABASE Conjunto de tabelas, ndices e tablespaces agrupados sob um critrio administrativo.

    TABLE (Tabelas)Conjunto de linhas com as mesmas colunas. Representam uma entidade de um modelo entidade-relacionamento.

    TABLESPACE

    Conjunto de datasets VSAM LDS (Linear Data Sets) que contem de uma ou mais tabelas. Suas paginas podem ser de 4K ou 32K. Existem trs tipos de tablespaces:

    SIMPLESAs pginas de seus data sets podem conter dados de uma ou mais tabelas.

    SEGMENTADO dividido em segmentos que so constitudo de 4 a 64 pginas e sempre mltiplos de 4. Cada segmento s pode conter dados de uma tabela.

    PARTICIONADORecomendado para tabelas gigantes. Pode ser dividido em at 64 parties. Cada partio pode ter no mximo 4Gbytes. Requer um ndice CLUSTER que serve de filtro para determinar a distribuio das linhas entre as parties.

    NDICE Utilizado para agilizar a leitura de dados ou para garantir a unicidade dos dados.Existem trs tipos de ndices:

    UNIQUEFora a unicidade dos dados atravs dos valores de uma coluna escolhida como chave primaria.

    #595858

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    OBJETOS DO B2 (Continuao)

    CLUSTERA seqncia fsica das linhas procura obedecer a seqncia das entradas do ndice. Existem utilitrios que reorganizam um tablespace atravs do ndice CLUSTER de suas tabelas.

    NORMAL

    VIEW uma tabela lgica que um subconjunto de uma ou mais tabelas. Sua utilizao m nada difere com a de uma tabela. Conforme o caso uma View pode ser somente para leitura

    STORAGE GROUP um conjunto de volumes(discos) onde estaro os tablespaces e ndices. Os discos devem ser do mesmo device type.A utilizao do Storage Group nos poupa ca codificao do AMS de VSAM para definir os data sets de um tablespace.

    Os discos de um Storage Group no precisam ser dedicados ao DB2.

    SYNONYM (Sinnimo) um nome alternativo (Apelido) para uma tabela ou uma VIEW. Uma vez criado, a sua utilizao restrita a um AUTH-ID e vlido a nvel de um subsistema DB2.

    ALIAS um nome alternativo(Apelido) para uma tabela ou VIEW. Um alias de uso compartilhado ao contrario do SYNONYM. utilizado mais como apelido para uma tabela remota e vlido a nvel de um subsistema DB2.

    #59585 9

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    ENTIDADE RELACIONAMENTO

    Modelo E R DB2

    Notas:

    Uma vez construdo o modelo entidade relacionamento, passamos fase de implementao em DB2.

    Basicamente temos uma tabela para cada entidade do modelo. Existem casos (relacionamento m:m) em que precisaremos trabalhar com tabelas adicionais.

    Para cada atributo de uma entidade temos uma coluna na tabela correspondente. Uma coluna tem algumas caractersticas tais como tipo de dado, para definir se o contedo numrico ou alfanumrico.

    A distribuio de tabelas entre os tablespace tambm deve seguir alguns critrios tais como tamanho das tabelas, afinidade entre as tabelas, etc.

    #5958510

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    RELACIONAMENTO

    Matr Nome Depto EMPR

    419 Maria A00003 Carlos Z13

    Operador Relacional

    DeptoCod DeptoNome DEPT

    Z13 Reserva A00 Vendas

    Notas:

    Para mapearmos um relacionamento entre duas entidades de um modelo relacional precisamos conhecer o conceito de chaves.

    Chave primria: Identifica uma ocorrncia de uma entidade (Tabela) Chave estrangeira: Identifica uma associao entre as ocorrncias de duas tabelas. Como o valor representado chave primria na outra entidade, a chamamos de chave Estrangeira.

    Conceito de chave primria e chave estrangeira esto implementados no DB2, mas a suas utilizao no obrigatria.

    A chave estrangeira deve pertencer ao mesmo domnio da chave primria a qual esta associada. Ex.: No poderamos associar a coluna NOME de EMPR com a coluna DeptoCod da DEPT.

    A associao lgica entre as ocorrncias das entidades feita atravs das chaves primrias e estrangeiras que sero argumento de um operador relacional.

    #59585 11

    Chave Primria

    Chave Estrangeira

    CarlosTrabalhana Reserva

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 TIPOS DE RELACIONAMETO

    1 PARA MUITOS

    Colocar a chave estrangeira aqui

    EMPREGADO M : 1 DEPARTAMENTOCarlos ReservaPauloMaria Vendas

    DEPTO DeptoCod DeptoNome

    Z13Reserva A00 Vendas : :

    EMPREGADO

    Matr Nome Dept

    419 Maria A00 003 Carlos Z13 087 Paulo Z13 : : :

    #5958512

    ChavePrimria

    ChaveEstrangeira

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 TIPOS DE RELACIONAMENTO

    Notas:

    Em um relacionamento do tipo um para muitos, qualquer ocorrncia de uma entidade pode estar associada vrias ocorrncias da outra entidade, enquanto qualquer ocorrncia desta outra deve estar associada apenas uma ocorrncia da outra.

    Neste caso devemos colocar a chave estrangeira na tabela em que cada ocorrncia s enxerga uma ocorrncia da tabela oposta.

    Caso contrrio deveramos colocar vrias chaves estrangeiras na tabela oposta. No nosso exemplo, se um determinado departamento tiver 30 empregados, a tabela DEPT deveria ter no mnimo 30 chaves estrangeiras! Podemos tambm imaginar uma situao onde um departamento da companhia resolve triplicar o nmero de empregados.

    #59585 13

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 TIPOS DE RELACIONAMENTO

    MUITOS PARA MUITOS

    EMPREGADO M : M PROJETOCarlos Ano 2.000PauloMaria Qualidade

    Onde colocar a chave estrangeira ?

    EMPREGADO EMP-PROJMatr Nome Mat Cod419 Maria 003 A2 PROJETO003 Carlos 087 A2 087 Paulo : : Pcod PNome

    419 A2 A2 Projeto 2.000 : : QD Qualidade 419 QD

    TABELA DE ASSOCIAO

    Notas:

    Em um relacionamento do tipo muitos para muitos, qualquer ocorrncia de ambas as entidades pode estar associada vrias ocorrncias da entidade oposta.

    Neste caso, ao invs de se criar vrias chaves estrangeiras, criamos uma tabela de associao que contm pelo menos duas chaves estrangeiras apontando para as chaves primrias das tabelas associadas.

    Nada impede que uma tabela de associao tenha colunas que no sejam chaves estrangeiras.

    #5958514

    Chave Primria

    Chave PrimriaChave Estrangeira

    Chave Estrangeira

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 INTEGRIDADE DE REFERENCIA

    EMPR DEPT(Dependet) (Parent)

    Matr Nome Depto Dcod Dnome419 Maria A00 A00 Vendas003 Carlos Z13 V75 Contabilidade : : : Z13 Reserva

    : :

    IntegridadeReferencial

    Notas:

    A Integridade de referncia garante que qualquer valor apontado pela chave estrangeira tenha um valor correspondente na chave primria qual est associada.

    A Integridade de Referncia implementado no DB2 via DDL (Instrues de definio de objetos da linguagem SQL).

    No DB2 a Integridade de Referncia obedece s seguintes regras: Uma chave primria tem valor nico e no nulo Uma chave estrangeira nula ou tem valor correspondente na chave

    primria.

    Tanto na insero como na atualizao de linhas, o DB2 fora a observao destas regras.

    #59585 15

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 INTEGRIDADE DE REFERENCIA (Continuao).

    Todas as tabelas associadas entre si via regra de Integridade de Referncia formam um conjunto chamado de ESTRUTURA REFERENCIAL ou REFERENTIAL STRUCTURE.

    Uma tabela com chave primria definida chamada de Parent Table ou tabela Me.

    Uma table com chave estrangeira definida chamada de Dependent Table ou tabela Dependente.

    Uma linha de uma Parent Table chamada Parent Row ou linha Me se existir pelo menos uma linha na tabela dependente com chave estrangeira correspondente sua chave primria.

    Uma linha de uma Dependent Table chamada de Dependent Row ou linha Dependente se existir uma linha Me com valor de chave primria correspondente da sua chave estrangeira. Em outras palavras a chave estrangeira no deve ter valor nulo para ser uma linha dependente.

    Na eliminao de uma linha da tabela me, pode ocorrer situaes conforme a regra de deleo estabelecida pela chave estrangeira.

    CASCADE : Regra onde todas as linhas dependentes so eliminadas juntamente com a me. SET NULL : Regra onde todas as chaves estrangeiras das linhas dependentes so atualizadas com valor nulo aps a eliminao da me. RESTRICT : Regra onde a eliminao da linha me impedida. Neste caso somente as linhas que no so mes podem ser eliminadas.

    #5958516

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    LINGUAGEM SQL

    SQL

    STRUCTUREDQUERY

    LANGUAGE

    SELECT CREATE GRANTUPDATE ALTER REVOKEDELETE DROP COMMITINSERT ROLLBACK

    DML DDL CONTROL

    Notas:

    A Linguagem SQL pode ser separada em trs grupos:

    DMLData Manipulation Language, utilizado para fazer pesquisas e atualizaes nas tabelas DB2.

    DDLData Definition Language, utilizado para definir, alterar e eliminar objetos DB2.

    CONTROL Utilizado para administrar a segurana dos recursos DB2.

    #59585 17

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 INSTRUO SELECT

    No procedural Conceito da teoria os conjuntos Fcil

    Notas:

    A instruo SELECT no procedural. Em outras palavras no precisamos fornecer todos os procedimentos necessrios para fazer uma pesquisa tais como:

    1. Zere o contador2. Abra o arquivo3. Leia um registro4. Verifique se satisfaz o critrio de pesquisa5. Incremente o contador6. etc.

    Com a instruo SELECT basta dizer:

    1. QUERO OS DADOS QUE SATISFAZEM A CONDIO X. SELECT trabalha com conjuntos e permite a execuo de

    operadores elementares que nos so familiares. Quem j no ouviu falar dos operadores unio e interseco? Com uma instruo SQL podemos implementar os seguintes

    operadores: A B

    UNIO A U B

    A B INTERSECO A B

    A B DIFERENA A - B

    PRODUTO A X B = { (x, y) : x A e y B} CARTESIANO

    #5958518

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 TABELAS USADAS NOS EXEMPLOS

    x.staff

    ID NOME DEPT CARGO ANOS SALARIO COMIS10 SANTANA 20 GER 7 18357.50 -20 ORSINI 20 VENDAS 8 18171.25 612.4530 DANTAS 38 GER 5 17506.75 -40 OBRIEN 38 VENDAS 6 18006.00 846.5550 SOUZA 15 GER 10 20659.80 -60 SUZUKI 38 VENDAS - 16808.30 650.2570 ALMEIDA 15 VENDAS 7 16502.83 1152.0080 JAMES 20 ATEND - 13504.60 128.2090 KOONITZ 42 VENDAS 6 18001.75 1386.70

    100 PLOTZ 42 GER 7 18352.80 -110 NGAN 15 ATEND 5 12508.20 206.60120 NAUGHTON 38 ATEND - 12954.75 180.00130 YAMAGUCHI 42 ATEND 6 10505.90 75.60140 FRAYE 51 GER 6 21150.00 -150 OLIVEIRA 51 VENDAS 6 19456.50 637.50160 MOLINARI 10 GER 7 22959,20 -170 KERMISCH 15 ATEND 4 12258.50 110.10180 ABRAHAMS 38 ATEND 3 12009.75 236.50190 SNEIDER 20 ATEND 8 14252.75 126.50200 SCOUTTEN 42 ATEND - 11508.60 84.20210 LU 10 GER 10 20010.00 -220 SMITH 51 VENDAS 7 17654.50 922.80230 LUNDQUIST 51 ATEND 3 13369.80 189.65240 DANIELS 10 GER 5 19260.25 -250 WHEELER 51 ATEND 6 14460.00 513.30260 JONES 10 GER 12 21234.00 -270 LEA 66 GER 9 18555.50 -280 WILSON 66 VENDAS 9 18674.50 811.50290 PINHO 84 GER 10 19818.00 -300 DAVIS 84 VENDAS 5 15454.50 806.10310 GRAHAM 66 VENDAS 13 21000.00 200.30320 GONZALES 66 VENDAS 4 16858.20 844.00330 BURKE 66 ATEND 1 10988.00 55.50340 VIEIRA 84 VENDAS 7 17844.00 1285.00350 GAFNEY 84 ATEND 5 13030.50 188.00TABELAS USADAS NOS EXEMPLOS (Continuao)

    #59585 19

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    x.org

    DEPTCOD DEPTNOME GERENTE DIVISO LOCAL10 MATRIZ 160 CENTRO SO PAULO15 CAMPINAS 50 SUDESTE CAMPINAS20 RIO 10 SUDESTE RIO DE JANEIRO38 MINAS 30 SUDESTE B. HORIZONTE42 BAHIA 100 NORDESTE SALVADOR51 RECIFE 140 NORDESTE RECIFE66 RIO GRANDE 270 SUL PORTO ALEGRE84 PARAN 290 SUL CURITIBA

    #5958520

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    QUERY

    Sequncia obrigatria:

    SELECT NOME, ANOS, SALARIO - Diz quais as colunas mostrar

    FROM x.staff - Diz de quais tabelas

    WHERE DEPT = 38 - Diz quais linhas selecionar

    ORDER BY NOME - Diz como ordenar o resultado

    Notas:

    As clusulas de uma instruo SELECT devem ser especificadas obedecendo uma sequncia.

    As clusulas esto grifadas na figura e no podem ser abreviadas.

    No nosso exemplo estamos fazendo uma pesquisa na tabela chamada x.staff para gerar um relatrio com o nome, tempo de casa e o salrio de todos que trabalham no departamento de cdigo 38. O Resultado deve ser classificado pelo nome os funcionrios.

    Uma instruo SELECT pode ser escrita em formato livre desde que as clusulas estejam obedecendo sequncia obrigatria, como descrito abaixo:

    SELECT NOME, ANOS, SALARIO FROM x.staff WHERE DEPT = 38 ORDER BY NOME

    #59585 21

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    SELECT ... FROM

    SELECT algumas das colunas da tabela Lista as colunas desejadas na sequncia de esquerda para a direita Vrgulas separam as colunas

    FROM lista de tabelas Simples: EMP Qualificado: AUTHID.EMP

    EXEMPLO

    SELECT DEPTNOME, DEPTCODFROM x.org

    Resultado:DEPTNOME DEPTCODMATRIZ 10CAMPINAS 15RIO 20MINAS 38: :

    #5958522

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    SELECT DE TODAS AS COLUNAS

    Para selecionar todas as colunas de uma tabela na mesma sequncia em que foram definidas:

    SELECT * FROM x.org

    Resultado:

    DEPTCOD DEPTNOME GERENTE DIVISO LOCAL10 MATRIZ 160 CENTRO SO PAULO15 CAMPINAS 50 SUDESTE CAMPINAS20 RIO 10 SUDESTE RIO DE JANEIRO38 MINAS 30 SUDESTE B. HORIZONTE

    : : : : :

    #59585 23

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    CONTROLE DE LINHAS

    WHERE

    Traz certas linhas Estabelece condies

    Listar empregados do departamento 20

    SELECT DEPT, NOME, CARGO, COMISFROM x.staffWHERE DEPT = 20

    Resultado:

    ID NOME DEPT CARGO ANOS SALARIO COMIS10 SANTANA 20 GER 7 18357.50 -20 ORSINI 20 VENDAS 8 18171.25 612.4580 JAMES 20 ATEND - 13504.60 128.20

    190 SNEIDER 20 ATEND 8 14252.75 126.50

    Selecionar linhas atravs de dado numrico

    SELECT DEPT, NOME, CARGOFROM x.staffWHERE DEPT = 20

    Selecionar linhas atravs de dado alfanumrico

    SELECT NOME, CARGO, COMISFROM x.staffWHERE NOME = SANTANA

    #5958524

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    OPERADORES DE COMPARAO

    = Igual or = Diferente

    > Maior>= Maior ou Igual< Menor No Maior< No Menor

    SELECT MATR, COMISFROM x.staffWHERE COMIS >= 1000

    SELECT NOME, DEPT, ANOSFROM x.staffWHERE CARGO GER

    #59585 25

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    NULIDADE

    Na insero de linha, uma coluna que :

    NOT NULL O valor deve ser fornecido (ALLOW) NULL O valor pode ser omitido

    Um valor NULO: No zeroNo Branco Desconhecido

    NOT NULL WITH DEFAULT

    Uma coluna pode ser Not Null With Default.

    Aps a Verso 4 podemos atribuir um valor Default para a coluna quando mesma omitida na incluso e se no atribuirmos este valor o sistema atribui como:

    Zero se coluna numrica Branco se coluna definida como caracter Comprimento zero se coluna definida como caracter de tamanho varivel.

    #5958526

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 SELEO DE NULOS

    Valor nulo como critrio de SELECT

    SELECT NOME, CARGO, COMISFROM x.staffWHERE COMIS IS NULL

    Resultado:

    NOME CARGO COMISSANTANA GER -DANTAS GER -SOUZA GER -PLOTZ GER -FRAYE GER -: : :

    Valor no nulo como critrio de SELECT

    SELECT NOME, CARGO, COMISFROM x.staffWHERE COMIS IS NOT NULL

    Resultado:

    NOME CARGO COMISORSINI VENDAS 612.45OBRIEN VENDAS 846.55SUZUKI VENDAS 650.25ALMEIDA VENDAS 1152.00JAMES ATEND 128.20KOONITZ VENDAS 1386.70NGAN ATEND 206.60NAUGHTON ATEND 180.00YAMAGUCHI ATEND 75.60OLIVEIRA VENDAS 637.50KERMISCH ATEND 110.10: : :

    #59585 27

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    MTIPLAS CONDIES

    Operadores mltiplos de condies: AND e OR Dadas duas condies:

    CARGO = VENDAS SALARIO < 17000

    Para ter ambas satisfeitas: AND

    WHERE CARGO VENDAS AND SALARIO < 17000

    Resultado:

    NOME CARGO SALARIOSUZUKI VENDAS 16808.30ALMEIDA VENDAS 16502.83: : :

    Para ter qualquer uma satisfeitas: OR

    WHERE CARGO VENDAS OR SALARIO < 17000

    Resultado:

    NOME CARGO SALARIOORSINI VENDAS 18171.25OBRIEN VENDAS 18006.00SUZUKI VENDAS 16808.30ALMEIDA VENDAS 16502.83JAMES ATEND 13504.60: : :

    #5958528

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 MLTIPLAS CONDIES (Continuao)

    WHERE (CARGO = VENDAS AND COMIS > 1200) OR ANOS > 10

    Resultados:

    NOME CARGO ANOS COMISKOONITZ VENDAS 6 1386.70JONES GER 12 -GRAHAM VENDAS 13 200.30VIEIRA VENDAS 7 1285.00: : : :: : : :

    No equivale a:

    WHERE CARGO = VENDAS AND (COMIS > 1200 OR ANOS > 10)

    Resultados:

    NOME CARGO ANOS COMISKOONITZ VENDAS 6 1386.70GRAHAM VENDAS 13 200.30VIEIRA VENDAS 7 1285.00

    #59585 29

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    IN

    Valor deve coincidir com algum elemento de uma lista

    WHERE DEPT IN ( 38, 20, 42)

    Equivale a mltiplos Ors para a mesma coluna:

    WHERE DEPT = 38 OR DEPT = 20 OR DEPT = 42

    Valor deve ser diferente de algum elemento da lista

    WHERE DEPT NOT IN ( 38, 20, 42)

    BETWEEN

    Para selecionar um intervalo fechado de valores

    SELECT NOME, CARGO, ANOSFROM x.staffWHERE ANOS BETWEEN 9 AND 11

    Equivale a

    SELECT NOME, CARGO, ANOS FROM x.staffWHERE ANOS >= 9 AND ANOS

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    PESQUISAS PARCIAIS

    Para pesquisar um subconjunto de caracteres : LIKE

    % Conjunto de caracteres quaisquer_ Um caracter qualquer

    EXEMPLOS:

    WHERE NOME LIKE G% Inclui: GRAHAMGONZALESGAFNEY

    WHERE NOME LIKE %SON Inclui: WILSONJASON

    WHERE NOME LIKE %M%N% Inclui: SAMANTAMOLINARI

    WHERE NOME LIKE _ _ Inclui: LUWHERE NOME LIKE _R% Inclui: FRAYE

    GRAHAM

    O operadores ESCAPE permite que seja utilizado outro caracter no lugar do %.

    Exemplo: ... WHERE coluna LIKE 100+%% ESCAPE +

    Notas:

    No exemplo estamos procurando strings que comeam por 100%.

    Primeiro % interpretado como um caracter comum pois precedido pelo caracter + que foi definido atravs do operador ESCAPE.

    Segundo % interpretado como um conjunto de caracteres quaisquer pois no precedido por nenhum caracter de ESCAPE.

    Neste exemplo, quaisquer ocorrncia do + que no sejam ++, +% ou +_ provoca erro.

    #59585 31

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 NEGAO

    Para reverter o teste:

    WHERE NOME NOT LIKE G%

    Exclui: GRAHAM, GONZALES, GAFNEY.

    WHERE ANOS NOT BETWEEN 9 AND 11

    Exclui: ANOS de 9 a 11

    USER

    Registro Especial

    Authorization ID do tempo de execuo Comprimento fixo de 8 bytes til para query dependente de executor

    SELECT * FROM SYSIBM.SYSTABLES WHERE OWNER = USER

    #5958532

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    MANIPULANDO TABELA RESULTANTE

    Para classificar as linhas: ORDER BY

    Para eliminar linhas duplicadas: SELECT DISTINCT

    ORDER BY

    Para classificar numa sequncia especifica:

    Lista classificada do pessoal do depto 84

    SELECT NOME, CARGO, ANOS FROM x.staffWHERE DEPT = 84 ORDER BY NOME

    Resultado:

    NOME CARGO ANOSDAVIS VENDAS 5GAFNEY ATEND 5PINHO GER 10VIEIRA VENDAS 7

    Notas:

    Colunas classificadas devem ser referenciadas pelo SELECT

    Nulos so considerados como valor mais alto.

    Podemos especificar colunas para o ORDER BY fornecendo um nmero que indica a posio da mesma coluna na clusula SELECT. O ORDER BY o nico que permite isto.

    A clusulas ORDER BY classifica uma tabela resultante. Logo deve ser SEMPRE a nica e a ltima a aparecer numa instruo SELECT.

    #59585 33

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 ORDER BY (Continuao)

    Para classificar pelas coluna(s) em ordem ASCendente (default) ou DESCendente.

    SELECT NOME, CARGO, ANOSFROM x.staff WHERE DEPT = 84 ORDER BY CARGO, ANOS DESC

    Resultado:NOME CARGO ANOSGAFNEY ATEND 5PINHO GER 10VIEIRA VENDAS 7DAVIS VENDAS 5

    ORDER BY ANOS DESC, CARGO

    Resultado:

    NOME CARGO ANOSPINHO GER 10VIEIRA VENDAS 7GAFNEY ATEND 5DAVIS VENDAS 5

    #5958534

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    SELECT DISTINCT

    SELECT DEPT FROM x.staffDEPT

    20203838153810

    .

    .

    Para eliminar linhas duplicadas:

    SELECT DISTINCT DEPT FROM x.staffDEPT

    20152038

    .

    Mltiplas colunas

    SELECT DISTINCT DEPT, CARGO FROM x.staffDEPT CARGO

    10 GER15 ATEND15 GER15 VENDAS20 ATEND20 GER20 VENDAS38 ATEND

    : :SELECT DISTINCT (Continuao)

    #59585 35

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    Notas:

    A Palavra chave DISTINCT deve aparecer logo depois do SELECT.

    Classificao ocorre pelas colunas da esquerda para a direita.

    ORDER BY pode ser usada para controlar a classificao.

    EXEMPLO:

    SELECT DISTINCT DEPT, CARGOFROM x.staffORDER BY CARGO

    DEPT CARGO15 ATEND20 ATEND38 ATEND. .. .10 GER15 GER20 GER. .. .. .15 VENDAS20 VENDAS. .. .. .

    #5958536

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    SELECT DE VALORES CALCULADOS

    + SOMA * MULTIPLICAO- SUBTRAO / DIVISO

    Ganho total de cada pessoa do DEPT 20

    SELECT ID, SALARIO, COMIS, SALARIO + COMIS AS TOTALFROM x.staffWHERE DEPT = 20

    Resultado: ID SALARIO COMIS TOTAL10 18357.50 - -20 18171.25 612.45 18783.7080 13504.60 128.20 13632.80

    190 14252.75 126.50 14379.25

    Pessoas cujo salrio mais comisso excede R$ 20.000

    SELECT NOME, SALARIO + COMIS AS TOTALFROM x.staffWHERE SALARIO + COMIS > 20000

    Resultado:NOME TOTALOLIVEIRA 20094.15GRAHAM 21200.30

    #59585 37

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    ORDER BY POR VALOR CALCULADO

    Exemplo 1:

    SELECT NOME, SALARIO + COMISFROM x.staffWHERE SALARIO + COMIS > 20000ORDER BY 2 DESC

    Resultado: NOME TOTALGRAHAM 21200.30OLIVEIRA 20094.15

    Exemplo 2:

    SELECT CARGO, SALARIO + COMISFROM x.staffORDER BY CARGO, 2

    #5958538

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    OPERADORES DE CONCATENAO

    string1 || string2 string1string2

    ABC || XYZ ABCXYZ

    TABELAX ( colunas varchar : SNOM e NOME )

    SNOM NOME MIDJONES JOHN PMARQUES FRANCO X. . .

    SELECT SNOM || , || NOME|| || MID || .FROM TABELAX

    Resultado:JONES,JOHN P.MARQUES,FRANCO X.. . .

    #59585 39

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    SELECT AVANADO

    FUNES DE COLUNA

    Transforma dados de uma coluna em um nico valor.

    Dados numricos SUM Total dos valores de uma coluna AVG Mdia dos valores de uma coluna

    Quaisquer tipos de dados MIN Menor valor de uma coluna MAX Maior valor de uma coluna COUNT Nmero de ocorrncias

    Notas:

    Informaes detalhadas no podem ser mostradas. Por exemplo, se for pedida a mdia salarial por departamento, os valores da coluna NOME no podem ser mostrados.

    Nulos so ignorados nos clculos.

    #5958540

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 SUM AVG MAX MIN

    Exemplo:

    SELECT SUM(SALARIO), AVG(SALARIO), MIN(COMIS), MAX(COMIS)

    FROM x.staffWHERE DEPT = 66

    Resultado:

    86076.20 17215.24 55.50 844.00

    Notas:

    Geram um nico valor a partir de um conjunto de valores de uma nica coluna. O resultado no contm detalhes de linhas individuais. Podem ser pedidas mais de um funo para a mesma coluna, conforme o exemplo. Nulos so excludos. Preciso (parte inteira, casa decimal) deriva da coluna. Para a funo AVG de uma coluna DECIMAL(p,s) o resultado ter preciso. Expresses do seguinte tipo tambm podem ser argumento de uma funo de coluna.

    Exemplo: AVG(SALARIO + COMIS)

    #59585 41

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 COUNT

    COUNT(*) Nmero de linhas que satisfazem a condio WHERE

    COUNT(DISTINCT coluna) Nmero de valores diferentes na colunaNulos no so contados.

    Contar as pessoas cujo salrio exceda $ 18.000 e contar os seus respectivos departamentos. Mostre a mdia salarial.

    SELECT COUNT(DISTINCT DEPT), COUNT(*), AVG(SALARIO)FROM x.staffWHERE SALARIO > 18000

    Resultado:

    8 16 19604.190625

    SELECT AVG(COMIS), SUM(COMIS) FROM x.staff

    Resultado:

    513.31 12319.45

    LITERAIS

    SELECT MED: AVG(COMIS), SOMA: SUM(COMIS)FROM x.staff

    Resultado:

    MED: 513.31 SOMA: 12319.45

    Notas:

    Literais podem ser mostradas no resultado de um SELECT So Particularmente teis quando usadas com funes de coluna que no exibem cabealhos.

    GROUP BY

    #5958542

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    Com o GROUP BY, a funo de coluna calcula um valor para cada AGRUPAMENTO.

    SELECT DEPT, SUM(SALARIO) as TOTSAL, SUM(COMIS) as TOTCOM

    FROM x.staffWHERE CARGO GERGROUP BY DEPT

    Resultado:

    DEPT TOTSAL TOTCOM15 41269.53 1468,7020 45928.60 867.1538 59778.80 1913.30

    : : :

    Notas:

    A Funo desta clusula mostrar informaes calculadas por grupo de dados. Note que o resultado classificado. Isto porque o GROUP BY classifica a tabela numa fase intermediria para facilitar o clculo para os grupos. A classificao se d em ordem ascendente a menos que exista um ndice definido para a coluna. Neste caso a classificao no feita. A sequncia obedecer a sequncia do ndice que pode estar definida como sendo de ordem descendente.

    #59585 43

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 GROUP BY ... ORDER BY

    Podemos alterar a ordem de classificao

    SELECT DEPT, SUM(SALARIO) AS TOTSAL,SUM(COMIS) AS TOTCOM

    FROM x.staffWHERE CARGO GERGROUP BY DEPT ORDER BY 3

    Resultado:DEPT TOTSAL TOTCOM

    20 45928.60 867.15. . .

    15 41269.53 1468.70. . .

    38 59778.80 1913.30

    Notas:

    Podemos fazer GROUP BY sobre mltiplas colunas. Isto faz com que sejam formados subgrupos dentro de grupos.

    GROUP BY DEPT, CARGO

    Colunas GROUP BY no precisam ser referenciadas pelo SELECT.

    Mas colunas referenciadas pelo SELECT que no sejam funoprecisam ser agrupadas pelo GROUP BY. Isto um erro muito

    frequente.

    Resultado contm uma linha sumrio para cada grupo.

    Todos os valores nulos so considerados como um grupo.

    #5958544

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    GROUP BY ... HAVING

    Condies sobre grupos

    SELECT . . . FROM . . . WHERE . . .

    GROUP BY . . . FILTROSHAVING . . .

    WHERE - Escolhe linhasHAVING - Escolhe grupos

    SELECT DEPT, SUM(SALARIO) AS TOTSALFROM x.staffGROUP BY DEPT

    DEPT TOTSAL10 83463.4515 61929.3320 64286.1038 77285.5542 58369.05

    : :

    SELECT DEPT, SUM(SALARIO) AS TOTSALFROM x.staffGROUP BY DEPTHAVING SUM(SALARIO) > 65000

    DEPT TOTSAL10 83463.4538 77285.55

    : :

    #59585 45

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 EXEMPLOS DE HAVING(Continuao)

    Mdia salarial por departamento. Considerar apenas os no-gerentes dos departamentos com mais de 3 pessoas sem cargo gerencial.

    SELECT DEPT, AVG(SALARIO) AS MEDIASALFROM x.staffWHERE CARGO GERHAVING COUNT(*) > 3

    Mdia salarial por departamento em ordem decrescente de mdia. Considerar apenas os no-gerentes dos departamentos compostos por pessoas com experincia mnima de 5 anos.

    SELECT DEPT, AVG(SALARIO) AS MEDIASALFROM x.staffWHERE CARGO GERGROUP BY DEPTHAVING MIN(ANOS) >= 5ORDER BY 2 DESC

    Notas:

    Primeiro exemplo mostra que o SELECT e o HAVING podem usar funes diferentes. O Segundo exemplo ilustra que a tabela resultante pode ser classificada.

    #5958546

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 SUMRIO FUNES DE COLUNA

    Funes de colunas s podem ser especificados em: SELECT HAVING

    SELECT pode especificar somente: Funo de Colunas Colunas especificadas no GROUP BY

    HAVING pode especificar: Funo de colunas sobre qualquer coluna contida numa tabela especificada na FROM.

    Funes de Colunas no podem ser embutidas uma dentro da outra

    FUNES ESCALARES

    Transforma um nico valor em outro valor.

    Funes STRING Funes de converso Funes DATE/TIME

    Notas:

    Ao contrrio das Funes de colunas que transformam um conjunto de valores de uma coluna num nico valor, as funes Escalares operam somente sobre um nico valor. Funes escalares podem ser embutidas uma dentro da outra.

    Exemplo: SUBSTR(SUBSTR(...)...) Funes de colunas podem ser argumento de uma funo escalar.

    Exemplo: MAX(SUBSTR(...))

    #59585 47

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 SUBSTR(string, incio, comprimento)

    SELECT DEPTNOME, SUBSTR(DEPTNOME,1,4) as NOMEPARCFROM x.org

    Resultado:DEPTNOME NOMEPARCMATRIZ MATRCAMPINAS CAMPRIO RIOMINAS MINABAHIA BAHI

    . .

    SELECT DEPTCOD, DIVISOFROM x.orgWHERE SUBSTR(DIVISO,4) = ESTE

    Resultado:DEPTCOD DIVISO

    15 SUDESTE20 SUDESTE38 SUDESTE

    Notas:

    Se o Comprimento no for especificado, a funo pega todo o resto. Se a posio do incio ultrapassar o final do string teremos erro. Se o incio + comprimento ultrapassar o final do string teremos erro. Substring de nulo nulo.

    #5958548

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 LENGTH

    SELECT NOME, LENGTH(NOME) AS TAMNOME,CARGO, LENGTH(CARGO) AS TAMCAR

    FROM x.staff

    Resultado: NOME TAMNOME CARGO TAMCAR

    SANTANA 7 GER 6ORSINI 6 VENDAS 6GONZALES 8 VENDAS 6

    . . . .

    Notas:

    Fornece o tamanho de uma coluna do tipo caracter. Se o argumento nulo, o resultado tambm ser nulo.

    #59585 49

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 VALUE

    Dada uma lista de argumentos, mostra o primeiro no nulo

    SELECT ID, COMIS, VALUE(COMIS, 0) FROM x.staff

    Resultado: ID COMIS

    10 - 0.0020 612.45 612.4530 - 0.00

    . . .

    Notas:

    Dada uma lista de argumentos, esta funo faz a varredura da esquerda para a direita at encontrar o primeiro valor no nulo. Todos os argumentos devem ter data types comparveis (todos numricos ou todos caracteres). Se todos argumentos forem nulos, o resultado ser nulo.

    #5958550

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 FUNES DE CONVERSO

    Converte um tipo de representao em outro.

    DECIMAL, FLOAT, INTEGER Nmero - NmeroDIGITS Nmero - AlfaHEX Hexadecimal - Alfa

    SELECT DECIMAL(SAL,9,1), INTEGER(SAL)FROM EMPWHERE ID = 55

    Se coluna SAL (DEC (7,2)):

    17506.75

    17506.7 17506

    Notas:

    DECIMAL, FLOAT, INTEGER: Converte dados numricos DIGITS: Representao alfanumrica de um valor numrico HEX: Representao hexadecimal de um argumento. Cada digito hexadecimal representada por 2 caracteres do string resultante.

    #59585 51

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 DADOS DATE/TIME

    DATE, TIME, TIMESTAMP armazenados como decimal compactado sem sinal

    Data Types Formato InternoDATE aaaammddTIME hhmmssTIMESTAMP aaaammddhhmmssnnnnnn

    Programas lidam s com FORMATO EXTERNO: string de caracteres

    Formato Formato TIME Tamanho Formato Date TamanhoISO hh.mm.ss 8 bytes aaaa-mm-dd 10 bytesUSA hh.mm AM/PM 8 bytes mm/dd/aaaa 10 bytesEUR hh.mm.ss 8 bytes dd.mm.aaaa 10 bytesJIS hh:mm:ss 8 bytes aaaa.mm.dd 10 bytes

    #5958552

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 ARITMTICA DATE/TIME

    Somente adio e subtrao Pode usar MIN, MAX, COUNT No pode usar SUM e AVG

    DURACAO DATE/TIME

    DURAO SIMPLES

    Horrio + ou - Horrio Durao em hhmmss(packed decimal(8,0))

    data + ou - data Durao em aaaammdd(packed decimal(8,0))

    Durao Rotulada

    Nmero n seguida da palavra chave: YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS, MICROSECONDS

    Somando/Subtraindo duraoDATACOL1 + 3 MONTHS Resulta em DataTEMPCOL1 - 30 MINUTES - 20 SECONDS Resulta em tempoTSTCOL + 2 DAYS - 3 HOURSTMSTCOL + 50000 MICROSECONDS

    Subtraindo datas e temposDATACOL1 - DATACOL2DATACOL1 - 25.12.1998TEMPCOL1 - TEMPCOL2TEMPCOL1 - 11.30.00

    #59585 53

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 EXEMPLOS ARITMTICA DATE/TIME

    Tabela DT

    PROJCOD DATAINI DATAFIM HRINI HRFIMAX001 31.01.1990 31.03.2005 00:00:00 15:30:00AX002 29.02.1988 31.08.1988 00:00:00 00:00:00AX003 01.02.1987 01.02.1987 16:00:00 23:41:59

    SELECT PROJCOD, DATAINI + 1 YEAR AS DATAINI, DATAFIM - 2 MONTHS AS DATAFIM ...

    Resultado:PROJCOD DATAINI DATAFIMAX001 31.01.1991 31.01.2005AX002 28.02.1989 30.06.1988AX003 01.02.1988 01.12.1986

    SELECT PROJCOD, DATAFIM - DATAINI AS aaaammdd, HRFIM - HRINI AS hhmmss ...

    Resultado:PROJCOD aaaammdd hhmmssAX001 00150200 153000AX002 00000602 000000AX003 00000000 074159

    #5958554

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 FUNES ESCALARES DATE/TIME

    CHAR: Controla formato externo de dados DATE/TIME

    SELECT CHAR(HRFIM,ISO) AS HR_ISO, CHAR(HRFIM,USA) AS HR_USAFROM DT WHERE PROJCOD = AX001

    Resultado:HR_ISO HR_USA15.30.00 03:30 PM

    DAY, MONTH, YEAR HOURS, MINUTE, SECOND MICROSECOND

    Extrai parte de uma data, horrio ou timestampResulta num inteiro binrio.

    SELECT DAY(DATAINI) AS DIA, MONTH(DATAINI) AS MS, YEAR(DATAINI) AS ANO FROM DTWHERE YEAR(DATAINI) > 1988

    Resultado:DIA MS ANO

    31 1 1990

    #59585 55

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 FUNES ESCALARES DATE/TIME(Continuao)

    DAYS Nmero de dias desde 31/01/0000

    SELECT DATAFIM - DATAIN AS DATAS, DAYS(DATAFIM) - DAYS(DATAIN) AS NU_DIAS FROM DTWHERE PROJCOD = AX001

    Resultado: DATAS NU_DIAS

    00150228 5538 aaaammdd (n. dias)

    DATE, TIME

    Extrai data ou horrio de um timestamp.

    CURRENT DATE

    Data de hoje

    CURRENT TIME

    Horrio do momento.

    CURRENT TIMESTAMP

    Data e horrio do momento convertido para Timestamp.

    #5958556

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    JOIN DE TABELAS

    Mesmo domnio

    ID NOME DEPT10 SANTANA 2020 ORSINI 2030 DANTAS 3840 OBRIEN 3850 SOUZA 1560 SUZUKI 38 DEPTCOD DEPTNOME GERENTE70 ALMEIDA 15 10 MATRIZ 16080 JAMES 20 15 CAMPINAS 5090 KOONITZ 42 20 RIO 10100 PLOTZ 42 38 MINAS 30

    . . . 42 BAHIA 10051 RECIFE 140

    Esta tcnica serve para obtermos informaes que esto espalhadas em uma ou mais tabelas. Tabelas so relacionadas via dados comuns Join implementado pelas clusulas FROM Resultado um subconjunto do produto cartesiano das tabelas.

    #59585 57

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 JOIN DE TABELAS(Continuao)

    Listar o nome dos departamentos e seus respectivos gerentes.

    SELECT DEPTNOME, NOMEFROM x.staff, x.orgWHERE GERENTE = ID

    Resultado:DEPTNOME NOMERIO SANTANAMINAS DANTASCAMPINAS SOUZA. .

    Listar o nome dos departamentos da diviso Sudeste e seus respectivos gerentes.

    SELECT DEPTNOME, NOMEFROM x.staff, x.orgWHERE DIVISAO = SUDESTE AND GERENTE = ID

    ATENO:- Procure no fazer JOIN de tabelas sem a clusula WHERE.

    SELECT A1, B1 FROM TBLA, TBLB Produto Cartesiano.

    A1 A2 A3 R1 R2 B1 B2 B3A A X XB A Y YC B X

    B YC XC Y

    #5958558

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 JOIN COM MAIS DE DUAS TABELAS

    SELECT ID, NOME, DEPT, DEPTNOME, CODPEDIDOFROM x.staff, x.org, x.vendasWHERE DEPT = DEPTCOD AND ID=COD_RVENDA

    Resultado:ID NOME DEPT DEPTNOME CODPEDIDO20 ORSINI 20 RIO 345620 ORSINI 20 RIO 666720 ORSINI 20 RIO 358020 ORSINI 20 RIO 701040 OBRIEN 38 MINAS 4567. . . . .

    QUALIFICADORES

    COD NOME DEPT CARGO COD DEPTNOME GERENTE10 SANTANA 20 GER 10 MATRIZ 16020 ORSINI 20 VENDA . . .. . . . 10 RIO 10

    Listar o nome dos gerentes, e respectivos nome e cdigo de departamentos.

    SOLUO:

    Qualificar com o nome da tabelaSELECT NOME, x.org.CODIGO, DEPTNOMEFROM x.staff, x.orgWHERE CARGO = GER AND DEPT = x.org.CODIGO

    Qualificador correlacionado

    SELECT NOME, Z.CODIGO, DEPTNOMEFROM x.staff, x.org ZWHERE CARGO = GER AND DEPT = Z.CODIGO

    #59585 59

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 QUALIFICADORES

    Notas:

    Aqui neste exemplo temos um caso onde duas colunas de tabelas distintas tem o mesmo nome. A soluo para distingui-las qualificar o nome da coluna com o nome da tabela. Outra tcnica a utilizao do qualificador correlacionado onde atribumos um rtulo tabela.No nosso caso exemplo a tabela x.org foi rotulada como Z. Assim a coluna Z.CODIGO uma referncia coluna x.org.CODIGO.Esta rotulao no permanente e vale somente durante a execuo da instruo SELECT que faz uso da mesma.

    #5958560

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 JOIN DE UMA TABELA COM ELA MESMA

    Liste os empregados que ganham mais que os seus gerentes

    CONCEITUALMENTE:

    1. Obter um empregado da VEMPRMATR NOME ... SALARIO ... GER

    150 OLIVEIRA 19456.50 140

    2. Obter informaes do gerente da VEMPRMATR NOME ... SALARIO ... GER

    140 SANTANA 18357.50 050

    3. Comparar o salrio dos dois

    4. Se a condio satisfeita, colocar a linha na tabela resultante e partir para o prximo empregado.

    Soluo:

    SELECT E.NOME, E.SALARIO, G.NOME, G.SALARIOFROM VEMPR E, VEMPR G WHERE E.GER = G.MATR AND E.SALARIO > G.SALARIO

    Resultado:NOME SALARIO NOME SALARIOOLIVEIRA 19456.50 SANTANA 18357.50

    . . . .

    . . . .

    #59585 61

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    INNER JOIN

    Uma outra maneira de codificar o JOIN entre duas tabelas

    SELECT DEPTNOME, NOMEFROM x.staff INNER JOIN x.orgON GERENTE = ID

    Resultado:DEPTNOME NOMERIO SANTANAMINAS DANTASCAMPINAS SOUZA. .

    Nota:

    Quando utilizamos a clusulas JOIN deve mudar o predicado WHERE por ON.

    TABELAS EXEMPLOS:EMPL DEPTOEMPNO NOME DEPTNOME CODEMP

    10 HAAS SPIFFY COMPUTER 10150 ADAMSON DEVELOPMENT -20 THOMPSON SOFTWARE 100

    250 SMITH ADMINISTRATION 700100 SPENSER BRANCH OFFICE -70 PILASKI

    140 NATZ

    #5958562

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    OUTER JOIN

    Seleciona todas as linhas de um INNER JOIN mais as linhas no selecionadas de ambas as tabelas.

    RIGHT OUTER JOIN Seleciona as linhas da tabela direita. LEFT OUTER JOIN Seleciona as linhas da tabela esquerda. FULL OUTER JOIN Seleciona as linhas de ambas as tabelas.

    SELECT NOME, DEPTNOMEFROM EMPL RIGHT OUTER JOIN DEPTOON EMPNO = CODEMP

    SELECT NOME, DEPTNOMEFROM EMPL LEFT OUTER JOIN DEPTOON EMPNO = CODEMP

    Resultados: RIGHT OUTER JOIN LEFT OUTER JOINNOME DEPTNOME NOME DEPTNOMEHAAS SPIFFY COMPUTER HAAS SPIFFY COMPUTER- DEVELOPMENT ADAMSON -SPENSER SOFTWARE THOMPSON -PULASKI ADMINISTRATION SMITH -- BRANCH OFFICE SPENSER SOFTWARE

    PULASKI ADMINISTRATIONNATZ -

    #59585 63

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    EXPRESSES CASE

    Em tempo de retorno do resultado da Query podemos atribuir valores a serem mostrados/exibidos a determinados retornos, o exemplo abaixo nos dar uma boa noo desta facilidade.

    SELECT PARTNO, DESCRIPT, COLOR, CASE WHEN SIZE = S THEN Small

    WHEN SIZE = M THEN MediumWHEN SIZE = L THEN LargeWHEN SIZE = X THEN XlargeELSE DESCONHECIDO END AS SIZE, QTY

    FROM QTY .25

    Usando em Funes de colunas

    ... MIN (CASE WHEN QTY > 0 THEN QTY ELSE NULL END)

    #5958564

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    UNION

    UNION junta as tabelas resultado

    SELECT A1, A4 FROM TBLAWHERE A2 = Z

    Resultado

    UNION

    SELECT B3, B4 + B2 FROM TBLB WHERE B1 >= N

    Resultado

    Notas:

    Esta tcnica faz a unio de uma ou mais tabelas resultado.Query complexas podem ser feitas usando o UNION.A Quantidade de colunas deve ser a mesma em todos os SELECTs.Os data types das colunas correspondentes devem ser iguais.O tamanho das colunas correspondentes podem ser diferentes. O operador UNION une as tabelas resultantes e elimina as linhas duplicadas, que implica num sort. operador UNION ALL tambm une tabelas mas no elimina linha duplicadas. No chama o SORT portanto. Para os nomes das colunas no cabealho so adotadas as do primeiro bloco de SELECT.

    #59585 65

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 UNION(Continuao)

    A faixa de salrio dos atendentes atingiria a faixa de salrios do pessoal de vendas se fosse dado um aumento de 17% e 2% respectivamente ?

    SELECT CARGO, SALARIO * 1.17 AS SALARIO FROM x.staff WHERE CARGO = ATENDUNIONSELECT CARGO, SALARIO * 1.02 FROM x.staff WHERE CARGO = VENDASORDER BY 2 DESC

    Resultado: CARGO SALARIOVENDAS 21420.0000. .. .VENDAS 17144.4660ATEND 16918.2000VENDAS 16832.8866

    SELECT NOME FROM X.CANDIDATOS WHERE ENDERECO LIKE %SP

    UNION ALL UNION SELECT SOBRENOME FROM X.ENTREVISTADOSWHERE SIT = REP

    Resultado:NOME NOMEJACOBS ARANTESMARQUES JACOBSARANTES MARQUESSILVA SILVAMARQUESJACOBS

    #5958566

    Cabealho do primeiro SELECT

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    SUBQUERY

    um SELECT embutido dentro de um SELECT O resultado de uma subquery usado pelo SELECT EXTERNO

    Exemplo de SUBQUERY.

    Listar empregados cujo departamento esteja subordinado ao departamento A00

    SNOME DEPARTAMENTO DCOD DSUPER

    SELECT SNOME, DEPARTAMENTOFROM EMP WHERE DEPARTAMENTO IN (SELECT DCOD

    FROM DEPTWHERE DSUPER = A00)

    RESULTADO SOMENTE RESULTADO DA SUBQUERYDO SELECT DE NVEL RETORNADO PARA OMAIS ALTO NVEL SUPERIOR

    Consideraes SUBQUERY:1. Pode ser usada no WHERE ou no HAVING2. Pode ser encadeado3. A escolha do operador do SELECT externo depende da quantidade de

    linhas do SUBQUERY.4. Deve estar a direita do operador na condio de seleo.5. Deve ser colocado entre parnteses.6. O SUBQUERY deve selecionar apenas um coluna.7. O SUBQUERY pode retornar uma ou mais linhas e isto acaba

    determinando o operador a ser usado na condio de procurar.8. No pode conter UNION, UNIN ALL ou ORDER BY.9. SUBQUERY conhecido como SUBSELECT.

    #59585 67

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 SUBQUERY DE UMA LINHA

    Listar os funcionrios com salrio superior mdia da companhia

    SELECT NOME, SALARIO FROM x.staff WHERE SALARIO > (SELECT AVG(SALARIO)

    FROM x.staff)

    Resultado: NOME SALARIOSANTANA 18357.50ORSINI 18171.25

    Mostrar o funcionrio com o maior salrio.

    SELECT NOME, SALARIOFROM x.staff WHERE SALARIO = (SELECT MAX(SALARIO)

    FROM x.staff)

    Resultado:NOME SALARIOMOLINARI 22959.20

    #5958568

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 SUBQUERY COM VRIAS LINHAS: ALL

    Lista classificada dos funcionrios com salrio superior a toda e qualquer mdia salarial departamental.

    Encontrar mdia salarial para cada departamento.(SELECT AVG(SALARIO) FROM x.staff GROUP BY DEPT)

    Compare o salrio de cada funcionrio com a lista devolvida pela SUBQUERY.

    SELECT NOME, SALARIO FROM x.staffWHERE SALARIO > ALL (SELECT AVG(SALARIO)

    FROM x.staff GROUP BY DEPT)ORDER BY NOME

    Resultado: NOME SALARIOFRAYE 21150.00GRAHAM 21000.00JONES 21234.00MOLINARE 22959.20

    Lista classificada dos funcionrios com salrio maior que a mdia salarial de qualquer departamento.

    Encontrar a mdia salarial para cada departamento. Compare o salrio e cada funcionrio com a lista devolvida pela SUBQUERY.

    SELECT NOME, SALARIO FROM x.staffWHERE SALARIO > ANY(SELECT AVG(SALARIO)

    FROM x.staff GROUP BY DEPT)ORDER BY NOME

    Resultado: NOME SALARIODANIELS 19260.25DAVIS 15454.50EDWARDS 17844.00

    #59585 69

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 IN

    Lista de gerentes da diviso Sul

    SELECT DEPT, NOME FROM x.staff WHERE ID = ANY (SELECT GERENTE FROM x.org

    WHERE DIVISAO = SUL)

    SUBQUERY Resulta numa lista de Gerentes da diviso SUL IN equivale a um srie de OR ... = sobre uma coluna =ANY pode substituir IN

    SELECT DEPT, NOME FROM x.staff WHERE ID IN (SELECT GERENTE FROM x.org

    WHERE DIVISAO = SUL)

    HAVING COM SUBQUERY

    Liste os departamentos cuja mdia salarial seja inferior mdia da companhia. Ignore os gerentes. Mostre as mdias e ordene pelas mesmas.

    SELECT DEPT, AVG(SALARIO) FROM x.staffWHERE CARGO GER GROUP BY DEPTHAVING AVG(SALARIO) < (SELECT AVG(SALARIO)

    FROM x.staff WHERE CARGO GER)

    ORDER BY 2 DESC

    Resultado: DEPT

    66 16880.17500000051 16235.20000000084 15443.00000000020 15309.530000000

    #5958570

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 SUBQUERY CORRELACIONADA

    Listar os empregados com salrio superior mdia de seus respectivos departamento.

    SELECT NOME, SALARIO FROM x.staff CVWHERE SALARIO > (SELECT AVG(SALARIO) FROM x.staff

    WHERE DEPT = CV.DEPT)

    Uma SUBQUERY correlacionada executada a cada linha devolvida ao SELECT externo!

    Listar os gerentes ganhando menos que $18.000 se existir pelo menos um gerentes com salrio superior $22.000.

    SELECT ID, NOME, SALARIO, DEPT FROM x.staffWHERE CARGO = GER AND SALARIO < 18000 AND EXISTS(SELECT * FROM x.staff

    WHERE CARGO = GER AND SALARIO > 22000)

    ID NOME SALARIO DEPT30 MARENGHI 17506.75 38

    Verdadeiro/Falso no SELECT internoDetermina se o SELECT externo ser executado.

    Notas:

    Este um operador que tem como argumento um SELECT. Esta SUBQUERY no devolve nenhuma tabela resultante. EXISTS devolve V ou F e como faz parte de uma condio de procura, determina uma eventual execuo ou no do SELECT externo. EXISTS pode ser negado por um NOT.

    #59585 71

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 MANUTENO DE DADOS - INSERT

    Insert de uma linha

    INSERT INTO PROJVALUES(MA2114, , B01, , NULL, CURRENT DATE, NULL)

    OU INSERT INTO PROJ(DEPT, PCODIGO, PNOME, RESP, DATAINI) VALUES(B01, MA2114, , , CURRENT DATE)

    Resultado: PCODIGO PNOME DEPT RESP EQUIPE DATAINI DATAFIM........... .............. ....... ........ ............. ................. ................OP2011 SUPORTE E21 320 001.00 25.12.1998 01.02.1999OP2012 APLICACAO E21 330 001.00 25.12.1998 01.02.1999OP2013 DB/DC E21 340 001.00 25.12.1998 01.02.1999MA2114 B01 ? 26.12.1998 ?

    INSERT de mltiplas linhas

    TESTPROJPCOD PROJNOME DEPT RESP EQUIPE DATAINI DATAFIM

    INSERT INTO TESTPROJ SELECT * FROM PROJ WHERE DEPT LIKE B%

    OR DEPT IN (E11. E21, E31)

    ResultadoPCOD PROJNOME DEPT RESP EQUIPE DATAINI DATAFIMPL2100 ...... B01 20 001.00 01.01.1987 15.09.1987OP1010 OPERAO E11 90 005.00 01.01.1986 01.05.1988OP2010 SUPORTE II E21 100 004.00 01.01.1982 01.02.1988OP2011 ..... E21 320 001.00 01.01.1982 01.02.1988OP2012 ..... E21 330 001.00 01.01.1982 01.02.1988OP2013 ..... E21 340 001.00 01.01.1982 01.02.1988

    #5958572

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 MANUTENO DE DADOS - UPDATE

    Update de colunas

    Antes:PCOD PROJNOME DEPT RESP EQUIPE DATAINI DATAFIMPL2100 ...... B01 20 001.00 01.01.1987 15.09.1987OP1010 OPERAO E11 90 005.00 01.01.1986 01.05.1988OP2010 SUPORTE II E21 100 004.00 01.01.1982 01.02.1988OP2011 ..... E21 320 001.00 01.01.1982 01.02.1988OP2012 ..... E21 330 001.00 01.01.1982 01.02.1988OP2013 ..... E21 340 001.00 01.01.1982 01.02.1988

    UPDATE TESTPROJSET EQUIPE = EQUIPE*2, DATAFIM=NULL,

    DATAINI=02.01.1999WHERE DEPT = B01

    Depois:PCOD PROJNOME DEPT RESP EQUIPE DATAINI DATAFIMPL2100 ...... B01 20 002.00 02.01.1999 ?OP1010 OPERAO E11 90 005.00 01.01.1986 01.05.1988OP2010 SUPORTE II E21 100 004.00 01.01.1982 01.02.1988OP2011 ..... E21 320 001.00 01.01.1982 01.02.1988OP2012 ..... E21 330 001.00 01.01.1982 01.02.1988OP2013 ..... E21 340 001.00 01.01.1982 01.02.1988

    Um subconjunto de linhas

    UPDATE PESSOAL SET SALARIO = SALARIO + 300WHERE CARGO = ATEND

    Todas as linhas:

    UPDATE PESSOALSET ANOS = ANOS + 1

    #59585 73

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 MANUTENO DE DADOS - DELETE

    Antes: PCOD PROJNOME DEPT RESP EQUIPE DATAINI DATAFIMPL2100 ...... B01 20 002.00 02.01.1999 ?OP1010 OPERAO E11 90 005.00 01.01.1986 01.05.1988OP2010 SUPORTE II E21 100 004.00 01.01.1982 01.02.1988OP2011 ..... E21 320 001.00 01.01.1982 01.02.1988OP2012 ..... E21 330 001.00 01.01.1982 01.02.1988OP2013 ..... E21 340 001.00 01.01.1982 01.02.1988

    DELETE FROM TESTPROJ WHERE DEPT = B01

    Depois:PCOD PROJNOME DEPT RESP EQUIPE DATAINI DATAFIMOP1010 OPERAO E11 90 005.00 01.01.1986 01.05.1988OP2010 SUPORTE II E21 100 004.00 01.01.1982 01.02.1988OP2011 ..... E21 320 001.00 01.01.1982 01.02.1988OP2012 ..... E21 330 001.00 01.01.1982 01.02.1988OP2013 ..... E21 340 001.00 01.01.1982 01.02.1988

    Eliminar todas as ocorrncias de uma tabela

    DELETE FROM TESTPROJ

    Depois:PCOD PROJNOME DEPT RESP EQUIPE DATAINI DATAFIM

    #5958574

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    DDL

    DATA DEFINITION LANGUAGE

    #59585 75

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 DDL

    A Data Definition Language(DDL) faz parte das instrues SQL e divide-se em trs grupos.

    1. CREATE Definio de objetos2. ALTER Alterao da definio dos objetos3. DROP Eliminao de objetos

    A execuo de DDL permitido somente auth-ids devidamente autorizados.

    O Criador (auth-id) do objeto normalmente o proprietrio (OWNER) do mesmo. Mas o DB2 permite que sejam criados objetos para outros auth-id, isto , posso criar objetos das quais no serei o proprietrio.

    O proprietrio de um objeto tem todos os privilgios sobre o mesmo.

    A equipe de suporte (SYSADM, SYSCTRL, DBADM) ou proprietrio do objeto o responsvel pela concesso de autorizao para acesso e/ou uso dos objetos.

    A execuo das instrues ALTER ou DROP esto reservadas equipe de suporte ou o proprietrio dos objetos.

    #5958576

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 STORAGE GROUP

    O nome de um STORAGE GROUP no deve ultrapassar 8 caracteres Podem ser especificados at 133 volumes do mesmo device type no parmetro VOLUMES.

    VCAT aponta para o catlogo ICF que qualificar os Datasets dos Tablespaces e dos Indexspaces.

    Exemplos:

    Para criao de um Storage Group

    CREATE STOGROUP CURXSG01VOLUMES(PRD510)VCAT DES;

    COMMIT;

    Alterao de um Storage Group:

    ALTER STOGROUP CURXSG01ADD VOLUMES(PRD512, PRD513) REMOVE VOLUMES(PRD510);

    COMMIT;

    ALTER STOGROUP CURXSG01VCAT CUR;

    COMMIT;

    #59585 77

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 DATABASE

    O Database uma definio lgica, onde podemos agrupar todos os Tablespaces, Tabelas, ndices com o mesmo critrio de administrao. Autorizao necessria para Criao de um DATABASE Privilgio de CREATEDBAPrivilgio de CREATEDBCAutoridade de SYSADM ou SYSCTRL

    CREATE DATABASE CURXSG01BUFFERPOOL BP0STOGROUP CURXSG01;

    COMMIT;

    Parmetros do Create DATABASE

    1. BUFFERPOOL Indica o Buffer pool default para os Tablespaces e ndices deste Database.

    2. STOGROUP Indica o Stogroup default para todos os Objetos deste Database.

    #5958578

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 TABLESPACE

    uma VSAM LDS, onde sero definidas as tabelas.Existem 3 tipos de Tablespaces:

    1. SIMPLES As pginas de seus datasets contm dados de uma ou mais tabelas. Aqui na CEF no utilizamos este tipo de Tablespace.

    2. Segmentado dividido em segmentos que variam de 4 a 64 pginas e sempre em mltiplos de 4. E cada segmento s pode conter ocorrncias de uma nica tabela, tamanho mximo deste tipo de tablespace 2Gbytes.

    3. Particionado Utilizada para tabelas com grande quantidade de dados, podendo chegar at 64Gbytes, assim distribudos:

    At 16 Parties Cada partio com 4Gbytes de 17 a 32 Parties Cada partio com 2Gbytes

    de 33 a 64 Parties Cada partio com 1Gbytes

    Exemplo de Criao de Tablespace SEGMENTADO.

    CREATE TABLESPACE CURXTS01 IN CURXDB01USING STOGROUP CURXSG01PRIQTY 144SECQTY 48ERASE NOLOCKSIZE ANYBUFFERPOOL BP0CLOSE NOFREEPAGE 4PCTFREE 25SEGSIZE 8;

    COMMIT;

    ALTER TABLESPACE CURXDB01.CURXTS01PRIQTY 240USING STOGROUP CURXSG02;

    COMMIT;

    #59585 79

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 TABLESPACE

    Parmetros

    PRIQTY, SECQTY - rea de alocao em Kbytes. LOCKSIZE - Tipo de Locking, as opes so:

    Any - o valor default , com este valor a deciso pelo Locking fica por conta do DB2.

    Tablespace - Locking pelo tablespace Table - Locking pela Tabela PAGE - Locking por pgina ROW - Locking por Linha

    ERASE - Especifica se o espao ocupado pelo datasets devem ser preenchidos com zero quando forem eliminados (DROP). CLOSE - Especifica se o Dataset do tablespace deve ser fechado quando no esta sendo utilizado. FREEPAGE - Especifica o intervalo de pginas que devem existir entre as pginas livres quando um tablespace carregado ou reorganizado. O intervalo pode variar de 0 255. Se o tablespace segmentado, o nmero deve ser menor que o tamanho do segmento. PCTFREE - Especifica qual a frao percentual das pginas que devem ser mantidas livres quando o tablespace carregado ou reorganizado. SEGSIZE - Se especificado, determina que o tablespace ser segmentado. O tamanho de um segmento dado em quantidade de pginas, deve ser inteiro mltiplos de 4, variando de 4 64. NUMPARTS - Parmetro mutuamente exclusivo como o SEGSIZE, quando especificado indica que o Tablespace ser Particionado, acompanhado de um nmero que indica a quantidade de parties. Este nmero pode variar de 1 64.

    Se nem SEGSIZE e nem NUMPARTS forem especificados, o Tablespace ser Simples.

    #5958580

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 TABLE

    um conjunto de linhas coma as mesmas colunas. Os atributos das colunas dever ser do tipo:

    NOT NULL Preenchimento obrigatrio NOT NULL WITH DEFAULT Quando no preenchido, assume o valor default NULL Preenchimento opcional

    Definies para colunas numricas: SMALLINT Inteiros, valor entre -32768 a 32767 INTEGER Inteiros, valor entre -2147483648 a 2147483648 DECIMAL (x,y) x=Dgitos e y=Decimais, at 31 Dgitos FLOAT Ponto Flutuante 5.4E-79 TO 7.2E+75

    Smallint uma halfword (2bytes)Integer uma fullword(4bytes)Decimal armazena nmeros em decimal compactado. A faixa de valores depende da quantidade de casas decimais. Definies para colunas alfanumricas:

    CHAR(x) String de tamanho fixo, mximo 254 caracteres VARCHAR(x) String de tamanho varivel, onde x pode variar de 0 a 4096 caracter.

    Uma pgina DB2 no totalmente utilizada para os dados pois existe um espao ocupado para informao de controle.

    Definies para colunas DBCS: GRAPHIC(x) String de tamanho fixo, mximo 127 caracteres. VARGRAPHIC(x) String de tamanho varivel, onde x pode variar de 0 a 2048 caracteres.

    Double Byte Caracter so caracteres especiais como ideogramas asiticos que requerem 2 bytes para serem identificados.

    #59585 81

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 TABLE

    CREATE TABLE SICUR.CURXTB01FUNCAO(CODIGO SMALLINT NOT NULL, DESC_FUNCAO CHAR(20) NOT NULL, DATA_INCLUSAO DATE NOT NULL, PRIMARY KEY (CODIGO))IN CURXDB01.CURXTS01;

    CREATE TABLE SICUR.CURXTB02CONCEITOS( MATR CHAR(9) NOT NULL, ALUNO CHAR(30) NOT NULL. FUNCAO SMALLINT NOT NULL, NOTA SMALLINT , CLASSIFICACAO SMALLINT ,PRIMARY KEY( MATR , ALUNO ),FOREIGN KEY (FUNCAO) REFERENCES SICUR.CURXTB01FUNCAOON DELETE CASCADE)IN CURXDB01.CURXTS01; ALTER TABLE SICUR.CURXTB02CONCEITO

    ADD DT_PROVA DATE ;COMMIT;

    PRIMARY KEY Especifica a chave primria da tabela, sendo que a chave pode ser composta de at 64 colunas. O comprimento de uma chave primria no pode exceder 254 bytes. Apenas uma chave primria permitida por tabela.

    FOREIGN KEY Especifica a chave estrangeira da tabela. A definio de uma chave estrangeira deve ser igual tamanho e tipo de dados. A palavra chave REFERENCES identifica a tabela me (Parent table). A Palavra chave ON DELETE especifica a regra de deleo.

    #5958582

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 NDICE

    utilizado para agilizar o acesso aos dados.

    CREATE [ UNIQUE ] INDEX SICUR.CURXPX02 ON SICUR.CURXTB02CONCEITO(MATR ASC, ALUNO ASC)USING STOGROUP CURXSG02 PRIQTY 48SECQTY 48 ERASE NOBUFFERPOOL BP1 CLOSE YESFREEPAGE 4PCTFREE 15CLUSTER;

    COMMIT;

    ALTER INDEX CURXPX02 USING STOGROUP CURXPX02 PRIQTY 192CLOSE YES ;

    COMMIT;

    Parmetros:

    UNIQUE Palavra chave que indica que o ndice no permite duplicidade nas colunas compostas neste ndice.

    CLUSTER Indica que o dados devem estar clusterizado

    pelo ndice

    #59585 83

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 VIEW

    A View pode poder um subconjuto de uma ou mais tabelas.Uma view um objeto lgico e assim, seus dados no ocupam espao fsico.

    CREATE VIEW SIXXX.CURXVW01JUNCAO (CODIGO, FUNCAO, ALUNO)AS SELECT CODIGO, DESC_FUNCAO, ALUNO

    FROM SICUR.CURXTB02CONCEITO INNER JOIN SICUR.CURXTB01FUNCAO

    ON CODIGO = FUNCAO;COMMIT;

    SYNONYM E ALIAS

    CREATE SYNONYM FUNCAO FOR SICUR.CURXTB01FUNCAO;COMMIT;

    CREATE ALIAS CONCEITO FROM SICUR.CURXTB02CONCEITO;COMMIT;

    Diferena entre e o SYNONYM e ALIAS:

    SYNONYM restrita a um AUTH-ID.ALIAS de uso compartilhado a todos.

    #5958584

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    DROP

    Usado para eliminar qualquer objeto criado a partir de um comando CREATE no DB2.

    DROP DATABASE CURXDB01Quando se elimina um Database, todos os objetos vinculados ele

    tambm so eliminados, tais como TABLESPACE, TABLE, INDEX, VIEW, ALIAS e SYNONYM.

    DROP TABLESPACE CURXDB01.CURXTS01A sua eliminao acarreta a eliminao de Table, Index, View, Alias,

    Synonym e Relacionamentos vinculadas a qualquer objeto deste Tablespace, deleta fisicamente do Disco.

    DROP TABLE SICUR.CURXTB01FUNCAOA eliminao vem acompanhada da eliminao de Index, View, Alias,

    Synonym e Relacionamento.

    DROP INDEX SICUR.CURXPX01Elimina o ndice, inclusive o INDEXSPACE.

    DROP VIEW SICUR.CURXVW01Elimina logicamente do DB2 o apontamento dos dados para a VIEW.

    DROP SYNONYM/ALIAS CONCEITOElimina Sinnimo/Alias

    DROP STOGROUP CURXSG01S podemos eliminar este objeto se o mesmo no estiver mais sendo referenciado por um outro objeto.

    #59585 85

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    SQL ESTTICO vs. SQL DINMICO

    ESTTICO.......................................................................................................... Instruo SQL CompletaExec SQL Fixo

    Delete from DeptEnd-Exec...................................................... Estratgia de acesso ..................................................... pr-estabelecida......................................................

    DINMICO.....................................................Var . Instruo SQL fornecida durante a execuo. .....................................................Exec SQL Estratgia de acesso Execute Immediate : Var pr-estabelecida. End-Exec.....................................................

    Delete from Dept

    Notas:

    A diferena entre o SQL esttico e o dinmico est no instante em que o plano montado.

    No esttico o plano montado antes da primeira execuo da instruo.No SQL dinmico a instruo parcial ou totalmente desconhecida e o DB2 no tem como determinar previamente a estratgia de acesso, validar autorizao, etc.Uma instruo onde o desconhecido apenas o valor que est sendo comparado com uma coluna na clusulas WHERE candidata a esttico. Exemplo: WHERE SALARIO = :SAL AND NOME LIKE :STR

    #5958586

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 PROGRAMAO EM SQL

    Para podermos trabalhar com o SQL dentro de programas em linguagens tradicionais, devemos codific-lo usando delimitadores especiais. Esta tcnica conhecida como SQL embutido e assemelha-se ao COMMAND LEVEL do CICS.

    O SQL trabalha com tabelas e linhas. uma linguagem desenvolvida para manipular conjuntos.

    J as linguagens tradicionais trabalham com arquivos e registros e no conseguem reconhecer tabelas e linhas.

    Para simularmos um arquivo com seus registros existe o CURSOR do DB2. Assim o programa pode acessar a manipular linhas de uma tabela como se estivesse trabalhando com um arquivo comum.

    As colunas no so manipuladas diretamente pelas linguagens tradicionais. Para contornar isto so utilizadas as chamadas variveis HOST que Hospedam o contedo.

    Instruo SQL entre delimitadores. EXEC SQL DELETE FROM DEPT END-EXEC

    Os compilador das linguagens tradicionais no entende instrues SQL.

    As instrues SQL devem ser embutidas dentro de um programa separados por delimitadores para que possam ser tratados antes de serem submetidas ao compilador.

    Cada linguagem tem seu delimitador prprio para isolar as instrues SQL.O delimitador que indica o incio de uma instruo SQL comum todas as linguagens.

    #59585 87

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 VARIVEL HOST

    As variveis HOST so utilizadas para permuta de valores entre a linguagem SQL e a linguagem de programao.

    Uma das possveis utilizaes da varivel HOST a de fornecer um valor a uma instruo AQL, tornando-a assim uma instruo genrica.

    A referencia varivel HOST deve ser precedida pelo caracter :. Seu uso facultativo mas recomenda-se sua utilizao para evitar possibilidade de confuso. O uso da varivel HOST opcional. Seu uso obrigatrio somente para as instrues SELECT.

    A varivel HOST deve ser compatvel com a coluna quanto ao seu data type e ao seu tamanho.

    As variveis HOST no devem ser utilizadas para referenciar nomes de tabelas ou de colunas.

    Exemplo de Variveis HOST:

    EXEC SQL INSERT INTO EMPR (MATR, SOBRENOME) VALUES ( :MATR, :SNOME )

    END-EXEC

    EXEC SQL UPDATE EMPRSET SALARIO = SALARIO * :PERCENTWHERE CARGO = :CARGO

    END-EXEC

    EXEC SQL SELECT MATR, SOBRENOMEINTO :MATR, :SNOMEFROM EMPR WHERE CARGO = :CARGO

    END-EXEC

    #5958588

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 PROCESSAMENTO DE MLTIPLAS LINHAS

    Se o resultado de um Select pode ter mltiplas linhas, o programa deve trabalhar com um CURSOR, pois no tem como prever o tamanho da tabela resultante.

    Quando o programa executa um OPEN de um CURSOR, o DB2 executa o SELECT e a tabela resultante fica presa, esperando pelo processamento.

    O programa deve prover variveis HOST para cada coluna do CURSOR.O programa executa a instruo SQL FETCH, para movimentar o CURSOR para o prximo registro. As variveis HOST contero os valores do registro (linha) apontado.

    SELECT OPENMATR SOBRENOME

    30 SILVA290 SANTOS300 ALMEIDA

    FETCHMATR SOBRENOME

    30 SILVA290 SANTOS300 ALMEIDA

    FETCHMATR SOBRENOME

    30 SILVA290 SANTOS300 ALMEIDA

    #59585 89

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 SELECT COM FETCH

    Definio de um CURSOR

    EXEC SQL DECALRE CUR001 CURSOR FOR

    SELECT MATR, SOBRENOMEFROM EMPRWHERE DEPT = :DEPT

    END-EXEC

    Abrindo um CURSOR previamente definido.

    EXEC SQL OPEN CUR001 END-EXEC

    FETCH das linhas resultantes

    EXEC SQL FETCH CUR001 INTO :MATR, :SNOM

    END-EXEC

    Fechando o CURSOR quando terminar a leitura dos dados.

    EXEC SQL CLOSE CUR001 END-EXEC

    OPEN posiciona o CURSOR antes da primeira linha da tabela resultante.

    FETCH avana o CURSOR uma linha para frente.

    No possvel fazer o FETCH voltar o CURSOR.

    CLOSE no CURSOR no implica em COMMIT.

    #5958590

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    COMMIT / ROLLBACK

    COMMIT Indica trmino bem sucedido de uma unidade de trabalho Alterao dos dados sero gravadas. Todas os PAGE LOCKS sero liberados CURSOR fechado, exceto para CURSOR WITH HOLD

    ROLLBACK Unidade de trabalho corrente abandonado Atualizao dos dados desde o ltimo COMMIT so desfeitas Todos os PAGE LOCKS so liberados CURSOR fechado

    #59585 91

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    BIND

    Preparao de Programa

    #5958592

    Cdigo FonteSQL

    Biblioteca deInclude

    PRECOMPILAO

    Cdigo FonteModificado

    DBRMBiblioteca de Usurio

    Compilao BIND

    Mdulo Objeto

    Linkedio

    Mdulo de Carga

    Language Interface

    Descrio da tabela

    Autorizao

    DBRM

    Plano/Package

    Execuo

    Catlogo DB2

    Diretrio

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 BIND

    Notas:

    A preparao de programa o nome que damos ao processo que torna um programa fonte em um mdulo de carga executvel. A preparao de um programa constitudo das seguintes fases: Precompilao Compilao e Linkedio BIND O precompilador pode ser executado com o DB2 fora. Mas sua funo gerar a partir de fonte dois data sets selados com um Timestamp. Os data sets gerados so:

    DBRM (Database Request Module) Contm todas as instrues SQL embutidas no fonte.

    Fonte Modificada fonte copiado para este data set com modificaes. As instrues SQL so transformadas em comentrios e os CALLs para o DB2 so inseridos logo a seguir. Eventualmente cdigos de definio de variveis HOST so copiados a partir de uma biblioteca de INCLUDE (DCLGEN book das tabelas)

    O precompilador faz a checagem da sintaxe das instrues SQL e da validade das variveis HOST utilizadas. Um relatrio de execuo com eventuais mensagens de erro tambm gerado.

    O compilador gera o mdulo objeto a partir do fonte modificado pelo precompilador. O Timestamp copiado do fonte.

    #59585 93

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 BIND

    O linkage editor gera o mdulo de carga partir do mdulo da linguagem de interface do DB2. O Timestamp original copiado do mdulo Objeto.

    O processador de BIND gera o Plano ou Package partir do DBRM. O Timestamp copiado do DBRM.

    Um Plano ou Package contm a estratgia de acesso aos dados DB2 com informaes do tipo:

    ndices utilizados Estratgia de Locking Estratgia de execuo do SQL E outros

    A fase de compilao/Linkedio e a fase de BIND so executadas separadamente e podem ser executadas em qualquer ordem.

    #5958594

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 BIND

    O propsito de BIND a gerao do Plano ou de um Package. partir do DBRM e do catlogo so executados os seguintes procedimentos:

    Checagem das consistncias das instrues SQL com os Objetos manipulados. So checados nomes, data type das colunas, etc.

    Checagem da autorizao necessria para a execuo das instrues SQL.

    Determinao da estratgia de acesso aos Objetos da manipulao, pelo otimizador do DB2.

    Plano/Package armazenado no diretrio e uma cpia do DBRM carregado no Catlogo.

    BIND ADDUtilizado para criar um novo Plano/Package

    BIND REPLACEUtilizado quando a prpria instruo SQL foi alterada e queremos

    refazer o Plano/Package existente.

    REBINDUtilizado quando o SQL permanece inalterado mas queremos refletir uma modificao ocorrida no ambiente tais como criao/eliminao de ndices ou atualizaes das estatstica do Catlogo.

    #59585 95

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 BIND

    BIND ADD REBIND BIND REPLACE

    Adiciona Refaz Plano Refaz Plano Plano Novo (Ambiente alterado) (SQL Alterado)

    OTIMIZADOR

    DBRM CATLOGO DIRETRIO

    #5958596

    DBRMPLANOPACKAGE

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    SEGURANA INTERNA DO DB2

    A segurana interna do DB2 pode ser ativada ou no durante a gerao.

    Quando existe uma solicitao de atividade, o DB2 verifica trs fatores:

    Auth-id - Quem fez a solicitao?Privilgios - O que se deseja fazer com o recurso?Recurso - Qual o Objeto de manipulao?

    Estas informaes ficam armazenadas no catlogo.Auth-id representa um usurio ou um grupo de usurio e informado ao DB2 atravs do monitor de transaes.

    TABELAS SELECTVIEW UPDATE [Lista de colunas]

    INSERT

    PLANOS BINDPACKAGES EXECUTE

    STOGROUP BUFFERPOOL USETABLESPACE

    SYSADMDB2 RECOVER

    TRACE, etc..

    DBADM DATABASE CREATETS

    LOAD, etc..

    #59585 97

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 SEGURANA INTERNA DO DB2

    Recursos DB2

    Podemos proteger:

    OBJETOS Tabela, View

    PLANOS/PACKAGES Programas, QMF, SPUFI

    COMANDOS DB2 -Bind, -Display

    UTILITRIS DB2 Load, Recover

    RECURSOS DO SISTEMA Buffer, Storage Group

    ATRIBUIO DE AUTORIDADE

    Instruo SQL

    + + +

    + + +

    Exemplo: GRANT SELECT ON EMPR TO PUBLIC REVOKE SELECT FROM EMPR FROM PUBLIC

    #5958598

    GRANTPrivilgioSobreRecurso

    TO AUTH-ID

    REVOKEPrivilgioSobreRecurso

    FROM AUTH-ID

  • DB2 - CONCEITOS E UTILIZAO 19/11/98

    UTLITRIOS DO DB2

    Divididos em 3 grandes grupos:

    ONLINE1. LOAD Carga de arquivo sequencial para uma tabela.2. CHECK INDEX Checa a consistncia entre o ndex e os Dados.3. CHECK DATA Checa a integridade entre a Chave Primria e a Chave estrangeira.4. REORG Reorganiza um Tablespace, Partio de um Tablespace ou ndex.5. RUNSTATS Atualiza informaes do catlogo sobre os Tablespaces e Indexes.6. STOSPACE Atualiza informaes sobre a utilizao em Disco do Storage Group.7. COPY Copia um Tablespace para um dataset Sequencial8. MERGECOPY Utilizado para juntar um ImageCopy FULL com outro Incremental.9. RECOVER Recuperao de um Tablespace, Partio ou Recuperao de ndex.10. QUIESCE Estabelece um ponto de sincronismo de uma lista de tablespaces.11. MODIFY Manuteno no catlogo DB2.12. REPORT Listas informaes de Recovery para Tablespaces.13. REPAIR Funo de reparo fsico em Disco.

    OFFLINE

    1. CHANGE LOG INVENTORY Atualiza log datasets no BSDS.2. PRINT LOG MAP Listas dados de Log BSDS.

    #59585 99

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 3. UTLITRIOS DO DB2(Continuao)

    SERVICE AIDS

    1. DSN1COPY Trata user data por data set2. DSN1PRNT Listas e formatas data set pages3. DSN1COMP Estimativas de espaos a ser arquivados(DB2)4. DSN1LOGP L o contedo da Log e formata para display.5. DSN1CHKR Verifica a Integridade dos diretrios e catlogo.6. DSNTIAUL Unload de tabelas para uma arquivo sequencial.7. DSNTEP2 Para emisso de SQL dinmico.8. DSNTIAD Para emisso de SQL dinmico exceto SELECT.

    SYSIBM.SYSUTILX

    Uma Tabela de Diretrio DB2.

    JOB UTILITY CHECKPOINTUTILID NOME NOME INFORMAO....

    Coluna inserida no Incio do Utility.Coluna atualizada em Pontos de Checkpoints e Parada de Utility.Coluna eliminada quando do termino do Utility.

    #59585100

    Identificadornico

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 LOAD

    Faz carga de arquivo sequencial para um Tablespace

    Pode se carregar mltiplas tabelas em um mesmo TablespaceConverso de dados sero feitas.

    Construir ndices definidos

    ndice nico no permite chaves duplicadas

    Checagem Integridade

    Cada chave estrangeira deve conter uma chave primria correspondente.

    Pode ser inibida esta checagem.

    Notas:

    Os dados podem ser carregado de 2 maneiras:

    1. Atravs do INSERT (SQL).2. Atravs do Utilitrio LOAD.

    S no sero carregadas as tabelas:

    Se a converso dos dados forem diferentes do formato do Tablespace

    Se os ndices nicos detectar violaes.Caso haja relacionamento no existir a chave primria.

    #59585 101

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 LOAD

    Definio da Tabela:

    CREATE TABLE PROD.EMPRESA(NOME_EMPRESA CHAR(6) NOT NULL, PRIMEIRO_NOME VARCHA(12) NOT NULL, INTERM_NOME CHAR(1) NOT NULL, ULTIMO_NOME VARCHAR(15) NOT NULL, FONE CHAR(4) ,SALARIO DECIMAL(8,2) ,DEPTO CHAR(3) ,PRIMARY KEY(NOME_EMPRESA),FOREIGN KEY(DEPTO)

    REFERNCES DEPTON DELETE SET NULL)

    IN TESTEDB1.TESTTSP1;

    Exemplo do Registo para o LOAD:....+.....1....+....2....+....3....+....4....+....5....+....6....+....7000010 KARINA L BEZERRA A00 3978 650101 66 18 F 330814 52750

    LOAD JCL

    //LOADTEST EXEC DSNUPROC,....//DSNUPROC.SYSREC DD DSN=ARQUIVO.ENTRADA ,DISP=SHR//DSNUPROC.SYSUT1 DD DSN=ARQUIVO.SYSUT1,DISP=( MOD,DELETE,CATLG),...//DSNUPROC.SORTOUT DD DSN=ARQUIVO.SORTOUT,DISP=(MOD,DELETE,CATLG),...//DSNUPROC.SYSERR DD DSN=ARQUIVO.SYSERR,DISP=(MOD,DELETE,CATLG),...//DSNUPROC.SYSMAP DD DSN=ARQIVO.SYSMAP,DISP=(MOD,DELETE,CATLG),...//DSNUPROC.SYSIN DD * LOAD DATA INTO TABLE PROD.EMPRESA WHEN (32:34) = A00 (NOME_EMPRESA POSITION (1:6), PRIMEIRO_NOME POSITION(8:16) CHAR, INTERM_NOME POSITION(19), ULTIMO_NOME POSITION(21:30) CHAR, DEPTO POSITION(32:34), FONE POSITION(36:39) NULLIF PHONE = , SALARIO POSITION(65:69) DECIMAL EXTERNAL)

    #59585102

  • DB2 - CONCEITOS E UTILIZAO 19/11/98 LOAD

    Load Logging

    O default LOG YES, a vantagem de no ser necessrio fazer ImageCopy aps a carga. Mas deve ser usar com critrios:

    Carregar uma tabela em um Tablespace compartilhadoCarga e em tabelas pequenasCarga com RESUME YES

    Q