Você está na página 1de 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

Tabela de Cabealhos da Nota


Nmero nico da Nota

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

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
=

Igual

>

Maior

<

Menor

>=

Maior ou Igual

<=

Menor ou Igual

<>

Diferente

IN

Lista de opes

Operador Significado
EXISTS

Existe na ligao

BETWEEN

Entre

NOT

Negao

IS NULL

Em branco

LIKE

Contendo

AND

Lgico - E

OR

Lgico - OU

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

<TABELA>
<CONDIES>

Ou, simplesmente:
DELETE
WHERE

<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

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 -

Você também pode gostar