Escolar Documentos
Profissional Documentos
Cultura Documentos
Nocoes de Banco de Dados PDF
Nocoes de Banco de Dados PDF
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
-3-
SGBDS
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-
-5-
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 do Financeiro
Nmero nico do Financeiro
-7-
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-
-9-
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>
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 -
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
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
SELECT
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
- 12 -
SELECT
FROM
WHERE
AND
AND
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 -
<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
FUNES DE AGREGAO
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
<COLUNAS>
<TABELAS>
<CONDIES>
<CAMPOS DE AGRUPAMENTO>
<CONDIES DE
AGRUPAMENTO>
<ORDEM COLUNAS>
SELECT
FROM
WHERE
AND
AND
GROUP BY
HAVING
ORDER BY
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 -
UPDATE
<TABELA>
<COLUNA1>=<VALOR>, <COLUNA2>=<VALOR>
<CONDIES>
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
<TABELA> (<CAMPOS>)
(<VALORES>)
- 16 -
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
- 17 -
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
<TABELA>
<CONDIES>
Ou, simplesmente:
DELETE
WHERE
<TABELA>
<CONDIES>
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 -
CREATE VIEW
- 19 -
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.
- 20 -
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 -
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 -
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.
Para visualizar o contedo de uma VIEW, deve-se realizar uma consulta, um SELECT, como visto
anteriormente:
SELECT * FROM VGFCAB_VENDAS
- 23 -
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 -
Nota: Novamente, a mensagem Erro ao criar manipulador do cursor indica que o comando
foi executado com sucesso.
- 25 -
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.
- 26 -
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 -
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 -
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 -
"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.
- 30 -
Componente de Pesquisa
- 31 -
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:
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 -