Sei sulla pagina 1di 32

NOES DE BANCO DE DADOS

SANKHYA GESTO DE NEGCIOS

Copyright 2012 SANKHYA Tecnologia em Sistemas Ltda. Todos os direitos reservados. Proibida a reproduo parcial ou total por quaisquer meios, sejam estes eletrnicos, mecnicos, de fotocpia, de gravao, ou outros, sem prvia autorizao, por escrito da SANKHYA Gesto de Negcios.

NOES DE BANCO DE DADOS

O que um banco de dados? ....................................................................................................................... 4 SGBDs .......................................................................................................................................................... 4 Objetos do Banco de Dados ......................................................................................................................... 4 Principais tabelas do Sistema ...................................................................................................................... 5 Tabelas mais utilizadas pelo Sistema: .............................................................................................................6 SQL: Structured Query Language ................................................................................................................. 8 O DBExplorer ............................................................................................................................................... 8 Opes do Boto direito do mouse ..................................................................................................................9 Comandos da Linguagem de Manipulao de Dados ........................................................................................ 10 SELECT ..................................................................................................................................................... 10 Estrutura Bsica Ex 1: Selecionar Ex 2: Selecionar Ex 3: Selecionar do SELECT ...................................................................................................................... 10 Todas as Colunas de Uma Tabela ....................................................................................... 11 determinadas Colunas de Uma Tabela, com Condio ........................................................... 11 determinadas Colunas de Mais de Uma Tabela ..................................................................... 11

Atribuir Apelidos para Colunas e Tabelas........................................................................................................ 12 Ex 4: Atribuir Apelidos para Colunas e Tabelas ............................................................................................ 13 Ordenando o Resultado da Consulta .............................................................................................................. 14 Ex 5: Ordenando o Resultado da Consulta ................................................................................................. 14 Funes de Agregao ................................................................................................................................. 14 Ex 6: Select com estrutura completa, incluindo Funes de Agregao ........................................................... 15 UPDATE ..................................................................................................................................................... 16 Exemplo: ................................................................................................................................................ 16 INSERT ..................................................................................................................................................... 16 Ex 1: Inserindo dados, informando os Nomes dos Campos ............................................................................ 17 Ex 2: Inserindo dados, omitindo os Nomes dos Campos ............................................................................... 17 Ex 3: Inserindo Mltiplos Registros ............................................................................................................ 17 DELETE ..................................................................................................................................................... 18 Exemplo: ................................................................................................................................................ 18 Create View ............................................................................................................................................... 19 Inspetor de Query ..................................................................................................................................... 26 Campos Adicionais ..................................................................................................................................... 27 Parmetros que influenciam este cadastro .................................................................................................. 30 Auxiliar para Pesquisas ............................................................................................................................. 30

-3-

NOES DE BANCO DE DADOS

O QUE UM BANCO DE DADOS?

uma coleo de dados relacionados a um tpico ou propsito particular (especfico). Representa aspectos do mundo real, e uma fonte de onde podemos extrair informaes derivadas, que possui um nvel de interao com eventos como o mundo real que representa. pea fundamental de um sistema de informao, pois onde estas so armazenadas. Como exemplos de operaes envolvendo bancos de dados do dia-a-dia, podemos citar operaes bancrias, passar as compras no caixa de um supermercado e at mesmo o cadastro em uma locadora de vdeo.

SGBDS

SGBDs a abreviao de Sistema de Gerenciamento de Banco de Dados. Trata-se de programas capazes de manipular as informaes do banco de dados e interagir com o usurio, alm controlar os acessos ao banco de dados. Como exemplos de SGBDs, podemos citar: Oracle, Microsoft SQL Server, Interbase, MySQL. Os sistemas da Sankhya trabalham com dois SGBDs: Oracle e Microsoft SQL Server.

OBJETOS DO BANCO DE DADOS

Tabela: uma simples estrutura de colunas e linhas. Todas as informaes do banco de dados so armazenadas em tabelas, e estas podem relacionar-se. Coluna: um atributo de uma tabela. Exemplo: Nome, Data de Nascimento, Nmero do CPF. Linha: uma instncia de uma tabela. Exemplo: Jos, 01/03/1975, 066.541.013-09. Chaves: Primria (Primary Key - PK): Identifica um registro na tabela, no deixando que a(s) coluna(s) de uma chave primria com determinado(s) valor (es) se repita (m). Estrangeira(Foreign Key - FK): o relacionamento atravs de uma ligao com uma chave primria de outra tabela. Cada tabela possui uma ou mais chaves (PKs), sendo que as tabelas so ligadas entre si atravs das FKs.

-4-

NOES DE BANCO DE DADOS

PRINCIPAIS TABELAS DO SISTEMA

As tabelas so objetos do Banco de Dados que armazenam informaes. Elas so compostas de linhas e colunas onde a interseo, destas linhas e colunas, resulta nos campos da tabela. Os nomes das tabelas do sistema normalmente so compostos de 6 letras, onde as 3 primeiras identificam o mdulo ao qual a tabela pertence. Por exemplo: TSI... - Tabelas do Mdulo Bsico. TGF... - Engloba as tabelas dos mdulos: Estoque, Financeiro, Livro Fiscal, Cotao e Produo. TCI... Tabelas do Mdulo de Controle Patrimonial TCB... - Tabelas do Mdulo de Contabilidade. TCS... - Tabelas do Mdulo de Servio. TFP... - Tabelas do Mdulo de Folha de Pagamento. TGM... - Tabelas do Mdulo de Controle Oramentrio e Metas. As outras 3 letras identificam o nome da tabela. Por exemplo: TGFPAR (Tabela de Parceiros)

-5-

NOES DE BANCO DE DADOS

TABELAS MAIS UTILIZADAS PELO SISTEMA:

O Banco de Dados utilizado pelo sistema possui centenas de tabelas. Algumas, porm, so comumente utilizadas nos cadastros e movimentaes bsicas e para que o usurio tenha alguns exemplos desta estrutura, esto listadas a seguir: TGFCAB Chave Primria: NUNOTA TGFCFO - Tabela de CFO Chave Primria: CODCFO TGFDIN - Tabela de Impostos da Nota Chave Primria: NUNOTA, SEQUENCIA, CODIMP, CODINC TGFEMP - Tabela de Empresas Chave Primria: CODEMP TGFEST - Tabela de Estoque de Produtos Chaves Primrias: CODEMP, CODLOCAL, CODPROD, CONTROLE TGFFIN Chave Primria: NUFIN Tabela do Financeiro Nmero nico do Financeiro Tabela de Cabealhos da Nota Nmero nico da Nota

TGFFOR - Tabela de Cdigo de Frmulas de Custo/Preo Chave Primria: CODFORMPREC TGFGRU - Tabela de Grupo de Produtos e Servios Chave Primria: CODGRUPOPROD TGFITE - Tabela de Itens da Nota Chaves Primrias: NUNOTA, SEQUENCIA TGFMBC - Tabela de Movimentao Bancria Chave Primria: NUBCO TGFNAT - Tabela de Naturezas Chave Primria: CODNAT TGFPAR - Tabela de Parceiros Chave Primria: CODPARC TGFPRO - Tabela de Produtos Chave Primria: CODPROD TGFTAB - Tabela de Tabela de Preos Chave Primria: NUTAB TGFTOP - Tabela de TOP Chaves Primrias: CODTIPOPER, DHALTER

TGFTIT - Tabela de Tipos de Ttulos Chave Primria: CODTIPTIT


-6-

NOES DE BANCO DE DADOS

TGFTPV - Tabela de Tipo de Venda Chaves Primrias: CODTIPVENDA,DHALTER TSIBCO - Tabela de Bancos Chave Primria: CODBCO TSICTA - tabela de Contas Bancrias Chave Primria: CODCTABCOINT TSICUS - Tabela de Centro de Resultado Chave Primria: CODCENCUS TSIEND - Tabela de Endereos Chave Primria: CODEND TSIEMP - Tabela de Empresas Chave Primria: CODEMP TSIREG - Tabela de Regies Chave Primria: CODREG

-7-

NOES DE BANCO DE DADOS

SQL: STRUCTURED QUERY LANGUAGE

Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas sua manipulao. O Departamento de Pesquisas da IBM desenvolveu a SQL como forma de interface para o sistema de BD relacional denominado SYSTEM R, incio dos anos 70. Em 1986 o American National Standard Institute (ANSI), publicou um padro SQL. A SQL (Linguagem de Consulta Estruturada) estabeleceu-se como linguagem padro de Banco de Dados Relacional. Fazem parte do SQL os seguintes grupos: DML - Data Manipulation Language (Linguagem de Manipulao de Dados): Comandos destinados manipulao de registros (linhas) no banco de dados. Como exemplo, podemos citar os comandos: INSERT, UPDATE, DELETE, SELECT. DDL - Data Definition Language (Linguagem de Definio de Dados): Comandos que permitem ao utilizador definir tabelas novas, alterar tabelas existentes e seus elementos associados. Exemplos de comandos: ALTER TABLE, CREATE VIEW, DROP TABLE. DCL - Data Control Language (Linguagem de Controle de Dados): Comandos para controle de aspectos como autorizao de usurios, controle de acessos de usurios, entre outros. Exemplos de comandos: GRANT, REVOKE, ALTER USER. Existem outros grupos dentro do SQL, mas os principais foram citados acima. Neste manual iremos detalhar um pouco mais os comandos mais bsicos, que so os da Linguagem de Manipulao de Dados

O DBEXPLORER

Menu Utilitrios\DBExplorer Esta opo do Sistema destinada ao Suporte, Programadores, DBA ou a Implantadores que possuam conhecimentos em comandos SQL. uma ferramenta de auxlio na manuteno do "Banco de Dados" do Sistema, com ela o usurio poder realizar "Consultas" ou "Alterar" dados do Banco de Dados. Observao: Para o G1 (Jiva) o DBExplorer a partir da verso 3.10 passa a servir apenas para "Consultas". A opo "Altervel" fica sempre desabilitada e comandos que alterem o banco de dados no sero permitidos. Todos os comandos executados no DBExplorer sero registrados na tabela TSILOG, com as seguintes informaes: Sequncia, Cdigo do Usurio, Comando, Data e Hora da execuo do comando e Computador onde foi executado.

-8-

NOES DE BANCO DE DADOS

OPES DO BOTO DIREITO DO MOUSE

Exportar para CSV...: Utilizado na exportao do Grid de resultado da consulta, gerando um arquivo com a extenso CSV. CSV uma extenso que quer dizer "Comma-separated values" (Valores Separados por Vrgula), no qual gravado um arquivo de texto que pode ser lidos por editores de planilhas e so normalmente utilizados para converso de dados. Altervel: Esta opo, quando marcada, permite ao usurio que manipule os dados apresentados como resultado de uma consulta (Select), alterando valores das colunas ou at mesmo excluindo linhas da tabela. Gravar automaticamente no Banco de dados: Gravar as alteraes automaticamente (autocommit). Gravar no banco de dados: Quando o "Gravar automaticamente no BD" estiver desligado, esta opo servir para confirmar a gravao no BD. Descartar alteraes: para desfazer as alteraes feitas, quando o "Gravar automaticamente no BD" estiver desligado.
Observao: Todas as tabelas que possuam o campo com tipo de dados "TIMESTAMP" no so suportadas pelo "DBExplorer". Exemplo: TPQPLA, TPQPES e TPQQUE.

Ateno: O DBExplorer permite a execuo de comandos de manipulao de dados (INSERT, UPDATE, DELETE), alm de possuir o facilitador da opo "Altervel", na qual o usurio pode alterar os dados resultantes de um SELECT. Por isso o acesso a esta ferramenta deve ser restrito apenas a colaboradores de confiana e com conhecimento dos impactos destas aes, sobre risco de comprometer a integridade e segurana dos valores apresentados pelo sistema.

-9-

NOES DE BANCO DE DADOS

COMANDOS DA LINGUAGEM DE MANIPULAO DE DADOS

Neste material sero apresentados os comandos bsicos da Linguagem de Manipulao de Dados (SELECT, UPDATE, INSERT e DELETE) Dentro de cada um destes comandos sero descritas suas aplicaes e estruturas bsicas. Cada um deles possui variaes mais avanadas, que normalmente exigem maior formao e experincia do profissional. Como este um Manual de Noes Bsicas, as variaes avanadas no sero descritas.

SELECT

O SELECT o comando mais utilizado em SQL, utilizado para realizar consultas a dados armazenados em tabelas. utilizado por todas as formas de pesquisar a informao. Para explicar o funcionamento das consultas realizadas atravs do comando SELECT, os componentes do comando sero apresentados gradativamente, mostrando exemplos que incorporem cada uma das clusulas apresentadas. Observe nos exemplos que as diferenas entre os exemplos esto destacadas em vermelho, evidenciando os pontos alterados pela incluso de outros componentes.
Estrutura Bsica do SELECT

SELECT FROM WHERE

<COLUNAS> <TABELAS> <CONDIES>

Em <COLUNAS>, deve-se preencher com a lista de colunas a serem retornadas no resultado da consulta. Devem-se separar as colunas solicitadas por vrgula. Exemplo: NOMEPARC, CGC_CPF, TELEFONE. Em <TABELAS>, deve-se listar as tabelas que sero consultadas. Separadas por vrgula, as tabelas precisam possuir ligaes por meio de colunas que se relacionam por meio de Foreign Keys. Exemplo: TGFCAB, TGFPAR. J em <CONDICOES>, deve-se preencher com as condies lgicas para retorno do resultado solicitado. Alm disto, quando h mais de uma tabela no FROM, usa-se fazer as ligaes no WHERE do campo da tabela da Foreign Key com a tabela que possui a Foreign Key. Exemplo de condio lgica: TGFPAR.CODPARC = 1 AND TGFCAB.DTNEG = 04/07/2010' Exemplo de ligao: TGFCAB.CODPARC = TGFPAR.CODPARC

Observao: Os valores atribudos s condies devem ser delimitados por apstrofos (') caso se tratarem de valores no numricos. Ex: Datas ('21/12/2012'), Textos ('V'), etc.

- 10 -

NOES DE BANCO DE DADOS

Na construo das CONDIES, so utilizados os Operadores:

Operador Significado = > < >= <= <> IN EXISTS BETWEEN NOT IS NULL LIKE AND OR Igual Maior Menor Maior ou Igual Menor ou Igual Diferente Lista de opes Existe na ligao Entre Negao Em branco Contendo Lgico - E Lgico - OU

Operador Significado

Ex 1: Selecionar Todas as Colunas de Uma Tabela

SELECT FROM

* TGFPAR

Neste exemplo, estamos selecionando todas as colunas da tabela TGFPAR e todos os registros da tabela, pois neste caso no estamos usando nenhuma condio. Se a tabela tiver muitos registros esta consulta poder ter uma relevante demora. Este exemplo utiliza o curinga "*" para selecionar todas as colunas da tabela, na ordem em que foram criadas
Ex 2: Selecionar determinadas Colunas de Uma Tabela, com Condio

SELECT FROM WHERE

NOMEPARC, CGC_CPF, TELEFONE TGFPAR CODCID = 2

No exemplo 2, estamos selecionando apenas os campos NOMEPARC (Nome do Parceiro), CGC_CPF (CNPJ/CPF do Parceiro) e TELEFONE da tabela TGFPAR (Cadastro de Parceiros), onde o CODCID (Cdigo da Cidade do Parceiro) IGUAL a 2.
Ex 3: Selecionar determinadas Colunas de Mais de Uma Tabela

SELECT

NOMEPARC, CGC_CPF, TELEFONE


- 11 -

NOES DE BANCO DE DADOS

FROM WHERE AND AND

TGFPAR, TGFCAB TGFPAR.CODCID = 2 TGFCAB.TIPMOV = 'V' TGFPAR.CODPARC = TGFCAB.CODPARC

Nesta seleo estamos selecionando os mesmos campos do exemplo anterior, mas agora o objetivo foi selecionar apenas os parceiros para os quais foram lanadas movimentaes do Tipo de Movimento Venda. Como o Tipo de Movimento gravado na tabela do Cabealho da Nota, foi necessrio incluir a tabela TGFCAB na clusula FROM, do SELECT. Para que no sejam apresentados registros em duplicidade, deve-se estabelecer a ligao entre as tabelas TGFPAR e TGFCAB. Isto feito atravs do Campo CODPARC (que PK na tabela TGFPAR, e FK na TGFCAB).
Observao I: Perceba que, para acrescentar mais de uma condio foi utilizada a operao "AND", para estabelecer que os registros devam atender a todas as condies propostas (Cdigo da Cidade igual a 2 E Tipo de Movimento igual a Venda). Nos casos em que se deseja estabelecer regras nas quais os registros precisam atender apenas uma das condies, utiliza-se a operao OR (ou) entre as condies da clusula WHERE.

Observao II: O uso do OR exige cuidado pois, como dito, caso o registro atenda a uma das condies, o mesmo ser considerado. Como numa operao matemtica, podem ser utilizados parnteses para delimitar as condies, de forma a evitar que o resultado seja diferente do esperado. Se o objetivo for filtrar as operaes de vendas de parceiros da cidade 2, ou compras de parceiros da cidade 3: SELECT FROM WHERE AND OR AND AND NOMEPARC, CGC_CPF, TELEFONE TGFPAR, TGFCAB (TGFPAR.CODCID = 2 TGFCAB.TIPMOV=V) (TGFPAR.CODCID = 3 TGFCAB.TIPMOV=V) TGFPAR.CODPARC=TGFCAB.CODPARC

ATRIBUIR APELIDOS PARA COLUNAS E TABELAS

Quando so realizadas consultas, principalmente quando em mais de uma tabela, necessrio apontar diversas vezes referncia tabela que est sendo consultada. Como vimos no exemplo 3, devemos apontar antes dos nomes dos campos, o nome da tabela qual pertencem, para evitar ambigidade nesta definio (TGFPAR.CODCID, por exemplo). Com o intuito de agilizar a construo das consultas e evitar a definio de colunas de maneira ambgua, podem ser definidos "Apelidos" para as tabelas, que normalmente uma identificao com descrio mais curta que a original, de forma a identificar facilmente a tabela apelidada. A partir da definio de apelidos s tabelas, todas as referncias necessrias tabela ao longo do SELECT devem ser realizadas utilizando o apelido para identificar a tabela. Para definir um apelido para uma tabela ou coluna, basta informar o nome da tabela seguido do apelido, separados por espao.

- 12 -

NOES DE BANCO DE DADOS

Ex 4: Atribuir Apelidos para Colunas e Tabelas

SELECT FROM WHERE AND AND

PAR.NOMEPARC, PAR.CGC_CPF CNPJ, PAR.TELEFONE TGFPAR PAR, TGFCAB CAB PAR.CODCID = 2 CAB.TIPMOV='V' PAR.CODPARC=CAB.CODPARC

Neste exemplo est sendo realizada a mesa consulta da realizada no Exemplo 3, a diferena est na atribuio de "Apelidos" s tabelas TGFPAR e TGFCAB, que passam a ser citadas apenas como PAR e CAB, respectivamente. Alm disso, a coluna CGC_CPF tambm foi apelidada, e a coluna ser apresentada com o nome CNPJ, no resultado da seleo.
Observao: Diferentemente do que ocorre com as TABELAS, os apelidos atribudos s colunas no podem ser utilizados para futuras referncias s colunas. Caso seja necessrio incluir uma condio, agrupamento ou ordenao considerando a coluna, dever ser informado o nome original da coluna no Banco de Dados.

- 13 -

NOES DE BANCO DE DADOS

ORDENANDO O RESULTADO DA CONSULTA

A ordenao dos resultados de um SELECT realizada atravs da incorporao da clusula ORDER BY consulta. O ORDER BY deve ser acrescentado ao final da estrutura, assim: SELECT FROM WHERE ORDER BY <COLUNAS> <TABELAS> <CONDIES> <ORDEM COLUNAS>

No campo <ORDEM COLUNAS> define-se a ordem dos resultados do SELECT. Pode ser utilizado de forma crescente ou decrescente (ASC, DESC respectivamente) para uma ou mais colunas. Exemplo de ordenao: ORDER BY NUMNOTA ASC, CODPARC DESC, NUNOTA ASC. Caso no seja informado o critrio (se crescente ou decrescente), os dados sero ordenados de forma crescente.
Ex 5: Ordenando o Resultado da Consulta

SELECT FROM WHERE AND AND ORDER BY

PAR.NOMEPARC, PAR.CGC_CPF CNPJ, PAR.TELEFONE TGFPAR PAR, TGFCAB CAB PAR.CODCID = 2 CAB.TIPMOV='V' PAR.CODPARC=CAB.CODPARC PAR.NOMEPARC

Neste exemplo, alm de realizar a mesma consulta anteriormente realizada no Exemplo 3, solicitado que os dados a serem apresentados sejam ordenados de forma crescente por Nome do Parceiro.

FUNES DE AGREGAO

Funes de agregao so utilizadas para se obter totalizaes. As funes de agregao retornam um nico resultado para vrias linhas de entrada de uma tabela e, com exceo da funo COUNT, sempre esto associadas a uma coluna da tabela. A funo COUNT pode ser associada ao coringa "*" para que seja retornada a quantidade de linhas pesquisadas, ou a uma determinada coluna, para saber a quantidade de registros cuja determinada coluna no esteja vazia na pesquisa realizada. As funes de agregao so as seguintes: Funo COUNT SUM AVG MAX MIN O que faz Retorna o nmero de ocorrncias da coluna na tabela Retorna a soma dos valores da coluna na tabela Retorna a mdia de valores da coluna na tabela Retorna o maior valor da coluna na tabela Retorna o menor valor da coluna na tabela

Os argumentos da funo, normalmente colunas, so informados entre parnteses, assim: SELECT SUM (VLRDESDOB) FROM TGFFIN
- 14 -

NOES DE BANCO DE DADOS

SELECT COUNT (NUFIN) FROM TGFFIN SELECT COUNT (*) FROM TGFFIN SELECT MIN (VLRDESDOB) FROM TGFFIN Alm de informar as funes e seus argumentos no espao destinado s COLUNAS, caso se deseje que outras colunas (sem funes de agrupamento) tambm sejam apresentadas, estas outras colunas devem ser informadas atravs da clusula GROUP BY (agrupar por). Caso haja a necessidade de incluir condies nas quais as funes de agrupamento devam ser observadas, no se utiliza a clusula WHERE para incluso destas condies, mas sim a clusula HAVING. SELECT FROM WHERE GROUP BY HAVING ORDER BY <COLUNAS> <TABELAS> <CONDIES> <CAMPOS DE AGRUPAMENTO> <CONDIES DE AGRUPAMENTO> <ORDEM COLUNAS>

Em <CAMPOS DE AGRUPAMENTO> deve conter a lista de campos para agrupamento, quando se utiliza em <COLUNAS> alguma funo de agrupamento. A opo <CONDIES DE AGRUPAMENTO> tem o mesmo papel das condies lgicas do WHERE, porm, para as funes de agrupamento.
Ex 6: Select com estrutura completa, incluindo Funes de Agregao

SELECT FROM WHERE AND AND GROUP BY HAVING ORDER BY

COUNT(*), PAR.NOMEPARC, PAR.CGC_CPF CNPJ, PAR.TELEFONE TGFPAR PAR, TGFCAB CAB PAR.CODCID = 2 CAB.TIPMOV='V' PAR.CODPARC=CAB.CODPARC PAR.NOMEPARC, PAR.CGC_CPF, PAR.TELEFONE COUNT(*) > 10 COUNT(*) DESC, PAR.NOMEPARC

Neste SELECT, realizado com base no Exemplo 5, solicita-se que seja apresentada a quantidade total de registros (total de notas), alm do Nome do Parceiro, do CGC_CPF e do Telefone do Parceiro. No GROUP BY so listadas todas as colunas que devem ser consideradas para o agrupamento, para que seja apresentada apenas uma linha por Parceiro. O HAVING funciona como o WHERE, porm para funes de agrupamento. Sua condio ento que s devem ser apresentados parceiros com mais que dez movimentaes (mais de dez registros). No ORDER BY definida a ordem que os dados devem ser apresentados. Foi definido que os dados devem ser ordenados, de forma decrescente, pelo nmero de notas (COUNT(*) DESC). Caso haja mais de um parceiro com o mesmo nmero de notas, os mesmos devero ser apresentados em ordem alfabtica (PAR.NOMEPARC).

- 15 -

NOES DE BANCO DE DADOS

UPDATE

O UPDATE um comando utilizado para atualizar (alterar) os dados de um ou mais registros em uma Tabela. Estrutura: UPDATE SET WHERE <TABELA> <COLUNA1>=<VALOR>, <COLUNA2>=<VALOR> <CONDIES>

Em <TABELA> deve-se indicar a tabela que ser atualizada. J em <COLUNA X> definimos as colunas da tabela que sero alteradas. Logo a frente, colocase o valor, separado pelo sinal de igual (=). Caso haja mais de uma coluna na tabela para ser atualizada, necessrio separ-las com vrgula. Em <CONDIES>, definimos as condies lgicas, ou seja, somente as linhas que obedecerem a estas condies sero afetadas.
Exemplo:

Considerando que determinada empresa deseje desbloquear as vendas a prazo e conceder um limite de crdito de R$1.000,00 a todos os parceiros da cidade de Uberlndia (cujo cdigo, no banco de dados, 12): TGFPAR UPDATE SET WHERE BLOQUEAR='N', LIMCRED=1000 CODCID=12

Onde: TGFPAR = Tabela do Cadastro de Parceiros; BLOQUEAR = Campo "Bloquear Venda a Prazo?" do Cadastro de Parceiros LIMCRED = Campo "Limite de Crdito" do Cadastro de Parceiros CODCID = Cdigo da Cidade do Parceiro
Ateno: Apesar de no ser obrigatria, a definio da clusula WHERE muito importante. Caso no seja definida, as alteraes sero aplicadas a todos os registros da tabela.

INSERT

O INSERT utilizado para inserir uma nova linha em uma tabela. Estrutura: INSERT INTO VALUES <TABELA> (<CAMPOS>) (<VALORES>)

- 16 -

NOES DE BANCO DE DADOS

Em <TABELA> deve ser definida a tabela que receber a linha inserida. J em <CAMPOS>, lista-se os campos onde iremos inserir as informaes. Este parmetro opcional. Em <VALORES>, lista-se os valores a serem inseridos na tabela. Isto deve obedecer ordem dos campos definidos em <CAMPOS>, ou caso este seja omitido, utilizar a sequncia de campos criados na tabela.
Ex 1: Inserindo dados, informando os Nomes dos Campos

Para inserir o Bairro de nome "JARDIM INGLATERRA", na tabela de Bairros: INSERT INTO VALUES TSIBAI (CODBAI,NOMEBAI,CODREG,DTALTER) (1000,'JARDIM INGLATERRA',0,'01/01/2012')

Onde: TSIBAI = Tabela do Cadastro de Bairros; CODBAI = Cdigo do Bairro (Chave Primria da Tabela No pode ser repetido) NOMEBAI = Nome do Bairro (Chave Alternativa da Tabela No pode ser repetido) CODREG = Cdigo da Regio do Bairro DTALTER = Data de Alterao Nesta tabela ainda h o campo "DESCRICAOCORREIO" cujo preenchimento no obrigatrio e por isso no foi citado no comando. Como dito anteriormente, a informao dos campos no obrigatria na estrutura do INSERT, podendo ser omitida. Neste caso, devem ser informados valores para todos os campos da tabela, na mesma ordem em que foram criados.
Ex 2: Inserindo dados, omitindo os Nomes dos Campos

INSERT INTO VALUES

TSIBAI (1000,'JARDIM INGLATERRA',0,'01/01/2012',NULL)

A mesma insero realizada pelo comando descrito no Exemplo 1 pode ser realizada tambm pelo comando acima. Com a omisso dos nomes dos campos, devem ser atribudos valores para todos os campos da tabela e, por isso, foi informado o valor NULL (vazio) para o campo "DESCRICAOCORREIO", que foi omitido no exemplo anterior por no ser obrigatrio e que o ltimo campo desta tabela.
Ex 3: Inserindo Mltiplos Registros

O comando apresentado at aqui permite a incluso de um nico registro. Porm possvel tambm inserir mltiplos registros. Para isto, deve-se substituir a clusula VALUES e os <VALORES> atribudos aos campos por um SELECT que busque as informaes necessrias de outras tabelas. Assim:

- 17 -

NOES DE BANCO DE DADOS

INSERT INTO

TSIBAI SELECT CODIGO, NOME, 0, '01/01/2012', NULL FROM TABBAIRROS

Neste exemplo utilizou-se de uma tabela fictcia denominada TABBAIRROS, da qual seria possvel extrair o CODIGO e o NOME dos bairros. As informaes para os campos CODREG, DTALTER e DESCRICAOCORREIO so fixas e, por isso, podem ser fixadas tambm no SELECT que ser utilizado na insero.

DELETE

DELETE a instruo da SQL que remove um ou mais registros de uma tabela. Estrutura: DELETE FROM WHERE Ou, simplesmente: DELETE WHERE <TABELA> <CONDIES> <TABELA> <CONDIES>

Em <TABELA> deve ser definida a tabela cuja(s) linha(s) ser(o) excluda(s). J em <CONDIES>, listam-se as condies lgicas para restringir o conjunto de linhas que sero excludas. Ateno: Caso no sejam definidas as condies (caso no seja informada a clusula WHERE), todas as linhas da tabela sero excludas.
Exemplo:

DELETE WHERE

TSIBAI NOMEBAI LIKE 'JARDIM%'

No exemplo acima, sero excludas todas as linhas da tabela de Bairros onde o nome do Bairro comece com JARDIM (JARDIM HOLANDA, JARDIM EUROPA, JARDIM INGLATERRA). No sero excludos os bairros cujo nome no se encaixe nesta condio.

- 18 -

NOES DE BANCO DE DADOS

CREATE VIEW

Uma ferramenta muito empregada na construo de relatrios, cubos e outros indicadores a VIEW. Resumidamente, pode-se dizer que uma VIEW o armazenamento de um SELECT no Banco de Dados, o que facilita a construo de indicadores mais complexos, pois todos os clculos, campos, tabelas e condies sero armazenadas na VIEW, bastando consult-la para obteno destas informaes. Uma VIEW ter suas linhas e colunas calculadas dinamicamente, sempre que isto for solicitado atravs de um SELECT pr-estabelecido. A VIEW no armazena os dados, contudo, os valores calculados podero ser utilizados em comandos SELECT, INSERT, UPDATE e DELETE, para recuperao e manipulao de dados, por isto, diz-se que se trata de uma tabela virtual, pois no possui linhas prprias, mas as obtm e as disponibiliza para acesso atravs de uma Query.

ESTRUTURA DE COMANDO PARA CRIAO DE VIEWS:

CREATE [OR REPLACE] VIEW <NOME DA VIEW> AS <INSTRUES SQL (SELECT)> [WITH READ ONLY]

As clusulas entre colchetes so opcionais. Caso o usurio deseje utiliz-las, os colchetes no devero fazer parte do comando:

- 19 -

NOES DE BANCO DE DADOS

1) O comando REPLACE recria uma VIEW j existente. Deve ser utilizado para alterar uma viso existente sem necessidade de apag-la. Como neste exemplo, a VIEW ainda no existe, no ser necessrio utiliz-lo.

2) Atravs da clusula WITH READ ONLY pode-se impedir operaes de manipulao de dados sobre a VIEW, restringindo-a apenas leitura. A clusula WITH READ ONLY indica que apenas a operao de consulta (SELECT) ser permitida na VIEW e, desse modo, operaes de atualizao, insero e excluso no sero permitidas. Neste exemplo, esta clusula ser mantida. Vamos utilizar neste exemplo o SELECT modelo abaixo para criao da View: SELECT CAB.NUNOTA, CAB.CODPARC, PAR.NOMEPARC, COUNT(ITE.CODPROD) "Contador de Itens" FROM TGFCAB CAB, TGFITE ITE, TGFPRO PRO, TGFPAR PAR WHERE CAB.TIPMOV = 'V' AND ITE.CODPROD = PRO.CODPROD AND CAB.CODPARC = PAR.CODPARC AND CAB.NUNOTA = ITE.NUNOTA GROUP BY CAB.NUNOTA, CAB.CODPARC, PAR.NOMEPARC HAVING COUNT(ITE.CODPROD)>4 ORDER BY CAB.NUNOTA DESC

- 20 -

NOES DE BANCO DE DADOS

Primeiramente, a Estrutura para Criao da VIEW dever ser digitada conforme modelo.

Na sequncia, atribui-se um nome para a VIEW. Como o SELECT anteriormente criado, retorna dados importantes das movimentaes de vendas, pode-se chamar a VIEW de VGFCAB_VENDAS.

Nota: O comeo do nome (VGF) no obrigatrio, foi utilizado no exemplo acima apenas com o objetivo de manter o padro adotado em outros objetos do Banco de Dados. O ltimo componente da VIEW a ser editado ser a consulta que dever ser realizada. Deve-se inserir o SELECT construdo no espao reservado da estrutura do comando.

- 21 -

NOES DE BANCO DE DADOS

Nota: Os espaos e linhas saltados no so obrigatrios. Foram utilizados apenas para que a estrutura do comando ficasse mais organizada e simples de entender. Ao executar o comando, o sistema emitir a mensagem: Erro ao criar manipulador do cursor.

Se esta mensagem aparecer, o comando foi executado com sucesso, pois esta mensagem emitida pelo fato de o DBExplorer no ter sido desenvolvido, a princpio, para este tipo de comando. Normalmente utilizada uma ferramenta especfica de manuteno de Banco de Dados para comandos mais avanados, como o TOAD, por exemplo. Observaes: 1) O nome da VIEW pode ter at 30 caracteres. Porm, prefervel sempre utilizar identificadores mais curtos, para facilitar as consultas VIEW. Exemplo:

NOTAS_COM_MAIS_DE_QUATRO_ITENS VGF_GRDVDAS

- 22 -

NOES DE BANCO DE DADOS

2) O usurio deve certificar-se de que o nome da VIEW que esta sendo criada, j no pertena a outro objeto do Banco de Dados. Para isto, no se deve utilizar o comando OR REPLACE no momento da criao da VIEW. Assim, caso o nome desta j esteja sendo utilizado por outro objeto, o banco de dados impedir a criao da VIEW.

Quando se utiliza a clusula OR REPLACE na criao da VIEW, caso j exista, a mesma ser substituda. Atravs de ferramentas especficas de manuteno de Banco de Dados tambm possvel consultar as VIEWs existentes.

VISUALIZANDO O CONTEDO DE UMA VIEW:

Para visualizar o contedo de uma VIEW, deve-se realizar uma consulta, um SELECT, como visto anteriormente: SELECT * FROM VGFCAB_VENDAS

- 23 -

NOES DE BANCO DE DADOS

Perceba, atravs do resultado da consulta, o quanto a construo de indicadores facilita em situaes que exigem consultas complexas ao Banco de Dados. Todos os campos, ligaes e condies ficam armazenadas no Banco de Dados. A partir deste momento, uma simples consulta VIEW retorna os dados correspondentes ao SELECT, facilitando o trabalho de extrao destes dados.
EXCLUINDO UMA VIEW:

O comando DROP VIEW usado para excluir uma VIEW do Banco de Dados. Nenhum efeito ocorrer sobre as tabelas referenciadas. Contudo, o usurio dever ter um cuidado redobrado ao realizar este comando, pois o sistema possui VIEWs que so padro, utilizadas para os mais diversos fins. Por isto, ao excluir uma VIEW, deve-se ter certeza de que isto no afetar negativamente o uso do sistema ou de indicadores personalizados que estejam se baseando nela. O comando DROP VIEW, quando executado no DBExplorer irreversvel. Para excluir a VIEW, basta executar o comando: DROP VIEW VGFCAB_VENDAS

- 24 -

NOES DE BANCO DE DADOS

Nota: Novamente, a mensagem Erro ao criar manipulador do cursor indica que o comando foi executado com sucesso.

O uso de VIEWS recomendado principalmente quando as colunas da consulta corresponder a clculos realizados com base em uma ou mais informaes, disponveis no Banco de Dados, e a replicao destes clculos nos formatadores de relatrios, cubos ou em frmulas, for invivel. Como estes clculos so referentes s regras, estas podem ser estudadas e definidas para que sejam armazenadas no Banco de Dados, permitindo que a consulta aos resultados destas regras sejam facilmente obtidos. Exemplos: Indicadores que envolvem Custos, Comisses, Resultados, etc.

- 25 -

NOES DE BANCO DE DADOS

INSPETOR DE QUERY

Permite inspecionar as consultas que o sistema est realizando para lhe apresentar os dados que voc visualiza nas telas de cadastros ou nas rotinas do sistema. muito til para iniciantes no uso do sistema, uma vez que estes desconhecem o nome de todas as tabelas e colunas do sistema.

Na aba SQL visualizada a Query da Consulta realizada no Banco de Dados. Na aba Parmetros so apresentadas as variveis utilizadas pelo sistema na composio da Query. Estas variveis so as colunas de condies que so preenchidas pelo sistema no momento da consulta, pois variam de acordo com os registros que esto sendo pesquisados. J na aba Colunas, apresentada a correlao entre os nomes das colunas no Banco de Dados e os nomes para apresentao. Por exemplo: CODBAI=Cdigo NOMEBAI=Nome CODREG=Cd.Regio DTALTER=DTALTER DESCRICAOCORREIO=Nome do Correio

- 26 -

NOES DE BANCO DE DADOS

Na aba Linha do BD apresentado o resultado da pesquisa apresentada na aba SQL, com o contedo de cada coluna pesquisada, para o registro selecionado. Observao: Esta opo esta visvel apenas para o usurio SUP, ento independe de controle de acesso.

CAMPOS ADICIONAIS

MGE Configuraes ou Mitra - Menu Utilitrios\Campos Adicionais

Campos Adicionais so campos que o usurio pode criar em diversas tabelas do sistema, para registro de informaes especficas necessrias no processo da empresa. Este menu permite a incluso, alterao e excluso destes campos. Esta tela dividida em duas partes: A primeira para incluso e excluso de tabelas nas quais sero criados campos adicionais. Deve-se posicionar o cursor na tabela que se deseja incluir o Campo Adicional. Quando selecionada a tabela nesta grade o sistema apresenta na grade inferior todos os campos adicionais existentes na tabela. A segunda parte onde se realiza a manuteno dos campos:

- 27 -

NOES DE BANCO DE DADOS

Nome do Campo: para definir um nome para o campo, no Banco de Dados. Este deve ter o prefixo AD_<nome do campo>. Caso no seja informado pelo usurio, o prefixo ser adicionado automaticamente pela rotina. Descrio: para definir a descrio que ser apresentada no cadastro ou rotina onde o campo estar sendo mantido. Tipo: para definir o tipo de informao que aquele campo ir conter. Os campos adicionais sero apresentados conforme a sua definio. Exemplo: se criar um campo tipo lista na tela de parceiros, este ser mostrado como uma lista para selecionar a opo. Mscara: para definir a mascar do campo quando este do tipo "Inteiro", "Inteiro 3200", "Float" ou "Texto". Validao: para fazer validaes que sero impostas aos dados que sero gravados nos campos. Por exemplo, se o campo for do tipo inteiro, e seja necessrio restringir que sejam digitados apenas valores maiores que 1000, dever usar o "maior que" e no campo seguinte informar 1000. Grupo: para agrupar os campos adicionais. Lista de Opes: para informar a lista de opes quando o campo do tipo "Lista". Tamanho: para definir o tamanho do campo quando este do tipo "Texto" ou "Lista". Quando o usurio for criar um campo adicional do tipo "Lista", dever informar no "Tamanho", o nmero de caracteres da maior linha do campo. No informar valores muito altos no tamanho do campo, consumindo o Banco de Dados desnecessariamente. O tamanho mximo de cada linha 255 caracteres. Valor Padro: para definir um valor padro para o campo. Quando o campo adicional tiver validao, o sistema no permitir a digitao de um valor padro diferente dos previstos no campo de Validao. Alinhamento: para definir o alinhamento das informaes digitadas no campo (Centro, Direita ou Esquerda). Obrigatrio: para definir se o preenchimento do campo adicional ser obrigatrio. Ch.Estrangeira: para criar integridade referencia do campo adicional, com outra tabela do sistema. Desta forma criado um relacionamento entre tabelas que, originalmente, no so relacionadas entre si. Quando criado este relacionamento, s ser permitido neste campo valores referente chave primria da tabela estrangeira relacionada. Exemplo: Caso a empresa precise apontar, no cadastro de locais, qual o usurio responsvel pelo local. Neste caso dever ser criado um campo do tipo Inteiro, e em Chave Estrangeira devese escolher a tabela TSIUSU (Cadastro de Usurios) para relacionar o Campo Adicional com o cadastro de Usurios. Assim no ser permitido que seja informado no campo adicional um cdigo que no corresponda a um "Cdigo de Usurio" do Cadastro de Usurios. Alm de no permitir que sejam informados valores diferentes dos disponveis na tabela relacionada, o sistema cria, para o Campo Adicional, um boto de pesquisa, nas telas onde isto possvel, para que o usurio possa localizar o registro que deve ser informado no Campo Adicional. Veja maiores detalhes sobre a manuteno opo de Pesquisa mais adiante, no tpico "Auxiliar de Pesquisas".
- 28 -

NOES DE BANCO DE DADOS

Ordem: para definir a ordem de apresentao dos campos para digitao quando existe mais de um campo adicional em uma mesma tabela Observaes: Campo livre, onde podem ser informadas quaisquer observaes relevantes referentes ao Campo Adicional como, por exemplo, a justificativa para sua criao.

- 29 -

NOES DE BANCO DE DADOS

Parmetros que influenciam este cadastro

"Disp. campos adic. para que fiquem visveis na nota?" (VISUADICAB): se estiver ligado, no momento do preenchimento de uma nota os campos adicionais aparecem automaticamente na tela, sem precisar usar a opo de boto direito "Campos adicionais". Observao: Nas telas que tem abas, os campos sero apresentados em abas separadas. Nas telas que no tem abas, sero apresentados em janela suspensa, devendo se abertos utilizando o boto direito, opo campos adicionais. Ateno: Ao criar campos adicionais para tabelas histricas (como Tipo de Negociao ou Tipo de Operao) deve-se ter cincia de que as informaes digitadas nestes campos valero apenas a partir do seu cadastro. Isso porque a cada alterao o sistema cria uma nova linha na Tabela do Cadastro.

AUXILIAR PARA PESQUISAS

MGE Configuraes - Menu "Avanado\Auxiliar para Pesquisas". Esta tela uma interface para a tabela "TSICVT". O usurio utiliza a todo o momento as funcionalidades da tabela TSICVT. Isto porque a tabela "TSICVT" utilizada para facilitar a pesquisa dos "Campos para filtrar" nas "Telas de Filtros" do sistema, apresentando no campo onde se informa o valor a ser pesquisado, um componente de pesquisa que trar os campos informados no campo "Consulta". Por exemplo: No cadastro de Contas Bancrias, quando necessrio filtrar por Cdigo do Banco, o usurio no precisa conhecer o cdigo, pois na tela de filtros h um componente de pesquisa, no qual possvel localizar a TOP que se deseja filtrar.

- 30 -

NOES DE BANCO DE DADOS

Componente de Pesquisa

O sistema possibilita a criao de Campo Adicional do fazendo referncia a outra tabela. As configuraes da tela "Auxiliar para Pesquisas" podem ser integradas tambm com "Campos Adicionais", para estabelecer as condies desta referncia. Quando cadastrado um novo campo adicional no qual seja informada uma "Chave Estrangeira", o sistema cria automaticamente na tabela auxiliar TSICVT a "query" referente a ligao entre as tabelas e o campo adicional. Pode-se utilizar a tela "Auxiliar de Pesquisas" caso seja necessrio alterar esta ligao entre as tabelas, principalmente relacionados s colunas para pesquisa e para exibio. O sistema busca o campo adicional na TSICVT, no o encontrando, ele faz a pesquisa utilizando a FK da tabela que esta sendo utilizada como chave estrangeira. Chave: Informa-se neste campo o nome da "Coluna" que existe na tabela que ser utilizada na pesquisa. Retorno: Este campo utilizado para guardar qual ser a "Coluna" retornada ao campo de "Valor" do filtro, ou ao Campo Adicional. Exibio: Neste campo o usurio far a descrio do campo quando forem utilizados "Campos Adicionais". Exemplo:

- 31 -

NOES DE BANCO DE DADOS

Caso exista este registro no "Auxiliar para Pesquisas" (TSICVT), o campo adicional AD_COUSU criado na tabela de locais apresentar um boto de pesquisa, e quando selecionado um usurio, alm de gravado no campo adicional o cdigo deste, ser apresentado ao lado do cdigo o Nome do Usurio, uma vez que foi escolhida a coluna "Usurio" para exibio, desta forma:

Se no for informada a coluna para Exibio, o Campo Adicional possuiria o componente de pesquisa, mas seria apresentado assim:

Observao: Deve-se, sempre que possvel, fazer a utilizao desta funcionalidade em tabelas que retornem poucos registros, como "Marca" ou "Volume", e evitar o uso em tabelas "volumosas" como "Parceiros" ou "Produtos", pois isso acarretar lentido na abertura da lista de "Pesquisa", uma vez que estas tabelas normalmente possuem muitos registros para serem lidos.

- 32 -