Antes de avançarmos no assunto sobre objetos de Banco de Dados no DB2 LUW, queria apresentar duas dicas que acho de muita valia:

A primeira: Alguns comandos principais podem ser consultados direto no  Command Window com a descrição de sua sintaxe:

Exemplo: db2 ? describe

A Segunda: Pode-se consultar a descrição das mensagens de erro do DB2 também direto no prompt do Command Window:

Exemplo: db2 ? SQL30081N

Obs.: O uso do pipe “|” é apenas para utilizar uma pausa na rolagem da janela.

– Tipos de Dados definidos pelo usuário

No DB2 é aberta a possibilidade de criação de data types, chamados UDTs, onde são baseados em tipos de dados internos:

Exemplo:

Detalhando: é criado um tipo de dados kilogram baseado no tipo integer e que também pode ser utilizado em funções de conversão.

Exemplo 2:

Na utilização do create table:

Exemplo 3:

Na comparação com função:

A partir da versão 9.7 os tipos de dados: NUMBER, VARCHAR2, TIMESTAMP(n), “DATE”, BOOLEAN, INDEX BY, VARRAY, Row Type, Ref Cursor foram disponibilizados no DB2.

Para ativar esta compatibilidade devemos alterar uma variável ambiente chamada DB2_COMPATIBILITY_VECTOR:

Onde FF é utilizado nas definições de SQL PL e FFF para, também, nas definições PL/SQL.

Depois é fazer a criação do Database.

Em breve detalharemos este tópico em um post dedicado exclusivamente ao PL/SQL no DB2.

– Valores Nulos

Representa um estado desconhecido.

Exemplo:

Detalhando: é a criação de uma tabela com nome staff, onde a coluna DEPT não pode ser nula e quando nula, será definido um número padrão 10. Já a coluna JOB sempre vai esperar um valor.

– Colunas de Identificação

O Identity é uma coluna, numérica, com função de contador. É atribuído para somente um objeto tabela.

Exemplo:

Explicando: A tabela criada terá um contador (coluna filaID) onde o valor gerado começará em 1 e será incrementado de 2.

Os valores podem ser gerados sempre (generated always – controle do DB2) ou gerados como padrão (generated by default – controle externo ao DB2).

– Sequência

A Sequence atua também como um contador, só que difere do Identity por não está vinculado diretamente a um objeto.

Exemplo:

Explicando: é criado uma sequence que começa o contador em 10 e com incremento de 1 e sem repetição.

Este tópico é detalhando no post: [DB2 LUW] Sequences

==> O post  [DB2 LUW] Como Trabalhar com Objetos de Banco de Dados – Parte I  você pode acessar clicando aqui.

Continuaremos no próximo post, parte III