Professional Documents
Culture Documents
BrOffice.org Base
18 de maro de 2006
Todas as marcas registradas citadas no documento pertencem aos seus legtimos proprietrios.
Autor
Noelson Alves Duarte
Crditos
Ao The Hypersonic SQL Group pela documentao do HSQLDB, sem a qual boa parte deste
trabalho no seria possvel.
Agradecimentos
Ao The Hypersonic SQL Group pelo desenvolvimento do HSQLDB e pela permisso do seu uso
pelo Base.
A Sun Microsystems, Inc pelo apoio para a criao e desenvolvimento do OpenOffice.org.
Aos desenvolvedores do OpenOffice.org pelo contnuo melhoramento do aplicativo.
Ao projeto BrOffice.org pelo esforo para melhorar e difundir o OpenOffice.org no Brasil.
A Gustavo Buzzatti Pacheco pela leitura do documento e sugestes de melhoria.
A Manoel Pinho pela gentileza em disponibilizar este documento no servidor:
ftp://mirror.de9.ime.eb.br/pub/openoffice/apostilas/noelsonalves
Contato
Contribuies, crticas e sugestes para correes sero bemvindas. Contate o autor em:
noelsonalves@yahoo.com.br
Sumrio
Criando um documento do Base...........................................................................................................4
O Ambiente do Base.............................................................................................................................6
Tabelas..................................................................................................................................................7
Tipos de dados.................................................................................................................................7
Chaves..............................................................................................................................................8
Chave primria............................................................................................................................8
Chave secundria........................................................................................................................9
Criando uma tabela..........................................................................................................................9
Usando o assistente.....................................................................................................................9
Usando a janela de projeto..........................................................................................................9
ndices............................................................................................................................................12
Relaes.........................................................................................................................................12
Editando dados...................................................................................................................................15
Janela de entrada de dados.............................................................................................................15
Formulrios....................................................................................................................................15
Assistente de formulrios..........................................................................................................16
Editando formulrios.................................................................................................................18
Entrada de dados............................................................................................................................20
Consultas............................................................................................................................................23
Assistente para consultas...............................................................................................................23
Janela da SQL................................................................................................................................25
Comando SELECT...................................................................................................................25
Janela de desenho de consultas.................................................................................................26
Expresses.................................................................................................................................28
Ordenando consultas......................................................................................................................30
Evitando duplicaes.....................................................................................................................30
Consultas com parmetros.............................................................................................................30
Funes do Base............................................................................................................................31
Funes de resumo....................................................................................................................31
Funes numricas....................................................................................................................32
Funes de caracteres................................................................................................................33
Funes temporais.....................................................................................................................34
Exibies............................................................................................................................................35
Relatrios............................................................................................................................................37
Criando Relatrios.........................................................................................................................37
Editando Relatrios........................................................................................................................38
Administrao do Banco de Dados....................................................................................................40
Registrar / Excluir Fontes de Dados...................................................................................................42
Conexo com outros Bancos de Dados..............................................................................................43
Importando dados para o Base...........................................................................................................44
Mais informaes...............................................................................................................................46
Criando um documento do Base
Para criar um novo documento do Base siga os passos abaixo:
Na barra de Ferramentas do BrOffice.org, clique sobre o cone [Novo] e selecione Banco de
Dados:
O Ambiente do Base
Vamos analisar, rapidamente, a janela do Base:
Tabelas
Se voc no tem nenhuma familiaridade com banco de dados, imagine uma tabela como uma
coleo de colunas (como as de uma planilha). As colunas so tambm chamadas de <Campos>.
Elas formam linhas (como as de uma planilha) chamadas de <Registros>.
Cada coluna tm as suas prprias caractersticas: nome, tipo de dado, tamanho, entrada obrigatria,
dentre outras. Aps definir a tabela, voc poder guardar os seus dados nas colunas, respeitando os
atributos de cada uma delas.
Um registro de uma tabela formado pelo conjunto dos valores existentes nas colunas, referentes a
uma mesma entidade. Por exemplo, numa tabela de CDS, um registro (ou linha) o conjunto dos
dados de um nico CD.
Vamos projetar duas tabelas para o cadastro dos CDs musicais, uma para os dados dos CDs e outra
para as Msicas, eis a estrutura bsica de cada uma:
Estrutura da Tabela CDS:
Campo Tipo Tamanho Descrio
IDCD Inteiro Identificador do CD (Chave primria)
TTULO Texto [VARCHAR] 60 Ttulo do CD (obrigatrio)
ARTISTA Texto [VARCHAR] 60 Nome do artista (obrigatrio)
PREO Decimal 15.2 Preo do CD
AQUISIO Data Data de aquisio do CD
CAPA Imagem Imagem com a capa do CD
Tipos de dados
Os dados das colunas do Base podem ser de um dos tipos:
Tipo [SQL] Descrio
Tyny Integer [TINYINT] dados do tipo inteiro de tamanho bem pequeno (1 byte)
BigInt [BIGINT] dados do tipo inteiro de tamanho muito grande
Imagem [LONGVARBINARY] dados do tipo imagem
Binrio [VARBINARY] dados do tipo binrio
Binrio (fixo) [BINARY] dados do tipo binrio de tamanho fixo
Memo [LONGVARCHAR] dados do tipo memo (texto muito grande)
Texto (fixo) [CHAR] dados do tipo texto de tamanho fixo
Nmero [NUMERIC] dados do tipo numrico
Decimal [DECIMAL] dados do tipo numrico com casas decimais
Integer [INTEGER] dados do tipo inteiro normal ( 4 bytes )
Small Integer [SMALLINT] dados do tipo inteiro pequeno ( 2 bytes )
Float [FLOAT] tipo numrico com ponto flutuante (preciso simples)
Real [REAL] tipo numrico com ponto flutuante
Double [DOUBLE] tipo numrico com ponto flutuante (preciso dupla)
Texto [VARCHAR] dados do tipo texto (cadeia de caracteres)
Texto [VARCHAR_IGNORECASE] dados do tipo texto, ignorando maisculas / minsculas
Sim/No [BOOLEAN] dados do tipo lgico ( verdadeiro / falso )
Data [DATE] dados do tipo data
Hora [TIME] dados do tipo hora
Data/Hora [TIMESTAMP] dados do tipo data-hora
OTHER [OTHER] dados do tipo objeto
Os nomes entre colchetes refletem a nomenclatura da SQL.
Chaves
As chaves esto diretamente relacionadas com a recuperao e a manuteno da integridade
dos dados do banco de dados. So de dois tipos: (1) Primria e (2) Secundria (ou Externa).
Chave primria
A chave primria uma espcie de identificador nico do registro. Pode ser formada
por um ou mais campos e deve identificar com exclusividade um registro. permitido
apenas uma chave primria por tabela. Ao escolher vrios campos como chave
primria, certifique-se da exclusividade do valor formado. O Base permite a definio
de um campo automtico (INTEGER ou BIGINT) por tabela, que pode (ou no) ser
usado como chave primria. Finalmente, sem uma chave primria no ser possvel a
edio da tabela.
Chave secundria
So usadas, principalmente, para estabelecer uma relao entre diferentes tabelas. Na
maioria das vezes, uma chave secundria de uma tabela contm valores de uma chave
primria de outra tabela. Neste caso, ambas devem ser do mesmo tipo de dado.
Em nosso exemplo, temos duas tabelas, a primeira CDS, com dados sobre cada CD e
um campo IDCD como chave primria, a segunda MSICAS, com dados sobre todas
as msicas da coleo de CDs. Pergunta-se: como saber quais so as msicas existentes
num dado CD, se as informaes esto em tabelas diferentes ?
A soluo consiste na incluso de um campo IDCD na tabela MSICAS. Assim, ao
cadastrar uma msica, podemos inserir neste campo o valor do campo IDCD da tabela
CDS. O campo IDCD da tabela MSICAS uma chave secundria (ou externa).
Ao organizar os campos das tabelas deste modo, para recuperar as msicas de um dado
CD, basta uma consulta como:
Selecione as msicas com o campo IDCD igual ao campo IDCD da tabela CDS
Vejamos agora como criar as nossas tabelas.
Usando o assistente
O uso do assistente bem simples e compreende quatro etapas (crie uma tabela
qualquer para se familiarizar):
Na primeira, escolha uma categoria e uma tabela (fictcia) de exemplo, depois selecione
e mova os campos desejados para a listagem <Campos selecionados>.
Na segunda, defina os atributos dos campos. Para isto, selecione o campo na lista
Crie os campos da tabela CDS, de acordo com a figura acima. Agora ajuste as suas
propriedades (as outras propriedades permanecem com o valor padro):
IDCD: <Auto Valor>: Sim
TTULO: <Entrada Obrigatria>: Sim | <Tamanho>: 60
ARTISTA: <Entrada Obrigatria>: Sim | <Tamanho>: 60
PREO: <Tamanho>: 15 | <Decimais>: 2
Agora, vamos definir a nossa chave primria. Selecione a linha do campo IDCD, clique
com o boto direito do mouse e, no menu do contexto, selecione <Chave Primria>.
Note que o cone de uma chave ser acrescentado esquerda do nome do campo IDCD.
Salve a tabela: clique sobre o cone <Salvar>, digite o nome CDS e clique em [OK].
Feche a janela de desenho de tabelas para retornar ao Base. Observe que temos uma
tabela de nome CDS na rea de objetos do Base.
ndices
ndices so arquivos ordenados com base numa ou mais colunas de uma tabela, cujo objetivo
principal apontar para a localizao fsica da informao no banco de dados. Para tabelas
Relaes
Uma relao define o modo como os dados entre diferentes tabelas esto relacionados entre si
e pode ser de trs tipos:
Um a Um, para cada registro da tabela_1 existe outro na tabela_2;
Um com Muitos, para cada registro da tabela_1 existem vrios na tabela_2 (dizemos que a
tabela_1 a Principal e a tabela_2 a Detalhe);
Muitos com Muitos, cada registro da tabela_1 pode ter muitos registros na tabela_2 e cada
registro da tabela_2 pode ter muitos registros na tabela_1.
Devemos criar Relaes se quisermos usar alguns recursos (ou regras) dos bancos de dados
relacionais. Para operaes simples, elas no so necessrias.
Em nosso exemplo, o relacionamento entre as tabelas CDS e MSICAS do tipo Um com
Muitos, porque num CD podemos ter vrias msicas. No tpico sobre Chaves, explicamos
como estruturar os campos das tabelas de modo a permitir este tipo de relacionamento.
Somente a criao de chaves em duas tabelas, no implica na existncia de uma relao entre
as mesmas, ento precisamos cri-la.
No Base, selecione Ferramentas | Relaes para ativar a janela de desenho de relaes:
No dilogo <Adicionar Tabelas> selecione CDS e clique sobre [Adicionar], depois selecione
MSICAS e clique em [Adicionar], a seguir feche o dilogo. Observe que as tabelas, com a
lista de campos, foram adicionadas na janela de desenho.
Agora, na barra de menu, selecione <Inserir | Nova Relao> para ativar o dilogo Relaes.
Alguns dos benefcios da existncia de uma Relao entre tabelas podem ser notados em
<Atualizar opes>, que lista o comportamento durante a atualizao de dados e <Excluir
opes>, que lista o comportamento durante as excluses; por exemplo, a opo <Excluir
cascata> significa que, ao excluir um registro da tabela CDS os registros de todas as suas
msicas sero excludos da tabela MSICAS.
Ajuste as informaes de acordo com a figura acima, clique sobre [OK] e note, na janela, o
relacionamento 1 para N entre as duas tabelas.
Editando dados
Isto pode ser feito de duas maneiras: (1) usando a janela de entrada de dados e (2) usando
formulrios.
Formulrios
Formulrios permitem a visualizao e edio dos dados de uma ou mais tabelas (ou
consulta), de modo flexvel e configurvel pelo usurio. Podemos trabalhar apenas os campos
que nos interessa e na ordem que quisermos, isto til porque nem sempre dispomos dos
dados na mesma ordem em que os campos foram criados na tabela.
Formulrios do Base contm controles (caixa de texto, etiquetas, etc) dispostos sobre um
documento do Writer. possvel ter um formulrio (principal) com um ou mais
subformulrios (detalhes). Lembre-se que tanto os formulrios como os controles possuem
suas prprias propriedades e eventos, o que aumenta, ainda mais, o poder dos mesmos.
Eles podem ser salvos como documentos embutidos no documento do Base ou como
documentos independentes (estes, no podem ser criados com o assistente).
So criados de duas maneiras: (1) na exibio de design e (2) usando o assistente. A primeira
exige um certo domnio sobre os formulrios do BrOffice.org e a segunda menos
especializada, porm mais intuitiva.
Assistente de formulrios
Vamos usar o assistente para criar o nosso formulrio. Selecione <Formulrios> e
clique sobre <Usar assistente para criar formulrio>, para exibir o seu primeiro
dilogo.
Editando formulrios
Voc deve ter percebido que o assistente no lida (ainda) com campos do tipo Imagem.
Ento, devemos editar o formulrio para incluir a coluna CAPA da tabela CDS.
Para tal, selecione o formulrio, clique com o boto direito do mouse e escolha a opo
<Editar> no menu do contexto. Surge o formulrio numa janela do Writer (sem o aviso
somente leitura na barra de ttulo).
Selecione o subformulrio e na barra de rgua vertical posicione-o a 5 cm da borda
superior.
Selecione o campo <Aquisio> e mova-o para baixo do campo <Preo>. Ajuste o
alinhamento na rgua horizontal.
Selecione qualquer campo do formulrio principal, localize na parte inferior da janela a
barra de ferramentas <Design de formulrio>.
Clique no cone <Adicionar campo>, surge uma lista com os campos da tabela CDS:
D um duplo clique no campo CAPA, observe que um novo controle com o rtulo
CAPA foi adicionado ao formulrio. Mova-o para o lado direito do formulrio. Feche a
lista <Adicionar campo>.
No precisamos do rtulo. Selecione o controle de imagem, clique com o boto direito
do mouse e escolha <Agrupar> | <Desagrupar>.
Clique sobre o boto [...] da propriedade <Campo de rtulo> para exibir o dilogo de
<Seleo de campo de rtulo>.
Marque a caixa <nenhuma atribuio> e clique sobre [OK]. Note, nas propriedades, que
o rtulo foi excludo.
Aproveite e ajuste as propriedades indicadas para:
<Cor do plano de fundo> : Cinza 10%
<Cor da borda> : Preto
Feche o dilogo de propriedades.
Selecione o controle do rtulo CAPA e pressione a tecla <Del> para exclu-lo do nosso
formulrio.
Eis a aparncia final:
Entrada de dados
Abra o formulrio CDS (duplo clique). Na parte inferior da janela, encontramos a barra de
navegao e operaes sobre os registros.
As aes ocorrem no formulrio ativo (com o foco). Eis uma breve descrio dos cones (da
esquerda para a direita):
<Localizar registro>: abre o dilogo para pesquisa de registro.
<Contador de registros>: exibe o registro atual e o total de registros da tabela.
<Primeiro registro>: seleciona o primeiro registro da tabela (ou consulta).
<Registro anterior>: seleciona o registro anterior da tabela (ou consulta).
<Prximo registro>: seleciona o prximo registro da tabela (ou consulta).
<ltimo registro>: seleciona o ltimo registro da tabela (ou consulta).
<Novo registro>: cria um novo registro na tabela
<Salvar registro>: salva o registro corrente, use sempre que alterar dados.
<Desfazer entrada de dados>: desfaz uma entrada de dado.
<Excluir registro>: exclui o registro corrente da tabela.
<Atualizar>: atualiza os dados de um controle.
A seguir temos cones para <Classificar> e <Filtrar> registros.
Observe, ainda, que o subformulrio tem a sua prpria barra de navegao (reduzida).
Tanto a tecla <Tab> como <Enter> move o foco para o prximo controle, selecionando o seu
contedo. A ordem de tabulao pode ser alterada, atravs da propriedade <Ordem de
tabulao>, no dilogo de propriedades do controle.
Finalmente, estamos prontos para digitar os dados do primeiro CD.
Selecione o campo TTULO (IDCD automtico), digite o ttulo do CD e tecle <Enter>
ou <Tab> passando ao prximo campo;
Digite os dados dos campos seguintes, at o campo AQUISIO. Aqui, aps o <Tab> o
foco move-se para o subformulrio. Contudo, nenhuma linha abre-se para a entrada da
msica, ento force a atualizao do controle clicando sobre o cone <Atualizar> na barra
de ferramentas.
Digite os dados das msicas do CD. Aqui, o campo IDCD no automtico, mas o Base
acrescenta o seu valor.
Aps digitar as msicas, vamos incluir a CAPA do CD no seu controle voc precisar de
alguns arquivos de imagem (jpg, gif, bmp, etc) no seu HD:
Clique com o boto direito do mouse sobre o controle da capa (mantenha o boto
pressionado), aparece o menu do contexto, selecione <Inserir figura de> e libere o boto
do mouse;
Aparece o dilogo <Inserir Figura>. Localize e selecione o arquivo e clique sobre o boto
[Abrir]. A figura ser inserida no controle do formulrio.
Eis os dados que digitei na tabela CDS:
Consultas
Uma consulta uma solicitao, sobre o contedo dos dados, que se faz ao Base, algo do tipo:
Quais so os valores nas colunas Ttulo e Artista da tabela CDS ?
O Base analisa e responde a consulta, selecionando e exibindo os dados requisitados.
Consultas so teis pela capacidade de recuperar apenas os dados que obedeam a um determinado
critrio, por exemplo: operar apenas com os CDs do artista Sicrano.
As nossas perguntas devem ser formuladas numa linguagem que o Base tambm possa
compreender, esta linguagem a SQL. Como nem todos tem tempo ou interesse para aprender uma
nova linguagem, o Base oferece trs maneiras para criar consultas: (1) usando o assistente; (2)
usando a janela de desenho e (3) usando a janela da linguagem SQL.
Para ativar um dos modos, selecione <Consultas> no painel Banco de Dados e escolha o modo
desejado no painel <Tarefas>.
campos tm o nome da tabela como prefixo. Mova todos os campos da tabela CDS;
Se desejado, alterar a ordem de exibio dos campos da consulta;
Clique sobre o boto [Avanar].
Na segunda etapa <Ordem de classificao> podemos:
Em <Clasificar por>, definir um ou mais campos para ordenar a consulta. Note que a
ordem pode ser <Crescente> ou <Decrescente>. No desejamos classificar, ento clique
sobre [Avanar] passando terceira etapa.
Na etapa <Condies de pesquisa> podemos:
Escolher at trs condies de pesquisa para a consulta. Selecione o campo IDCD, a
condio < maior que> e digite 2 na caixa <Valor>;
Eis o resultado final, observe que apenas os registros cujo IDCD so maiores que 2 foram
selecionados. Nesta janela podemos, entre outras operaes, editar os dados. Altere o PREO
do Cd 4 para 22,00 e clique sobre o cone <Salvar registro atual>.
Janela da SQL
Ative a janela da SQL selecionando <Criar consulta na exibio SQL>.
Comando SELECT
O comando da SQL usado para consultas o SELECT, um comando muito poderoso,
com diversas clusulas. Vejamos a sua sintaxe bsica:
SELECT lista_de_colunas FROM lista_de_tabelas WHERE expresso
onde:
SELECT => comando SQL para consultas
lista_de_colunas => nomes das colunas, separados por vrgula (use * para todas)
FROM => clusula para definir a origem dos dados ( tabelas )
lista_de_tabelas => nomes das tabelas, separados por vrgula
Expresses
Numa clusula WHERE, uma expresso ser avaliada como Falsa ou Verdadeira. Se
falsa nenhuma linha ser retornada. Se verdadeira, apenas os registros que satisfazem a
condio sero retornados.
Algumas expresses tambm podem ser usadas para calcular valores numa coluna de
uma consulta.
Os principais elementos encontrados numa expresso so:
Constantes
Constante Definio
Numrica um valor numrico ( ex: 100 )
Cadeia um valor delimitado por apstrofo ( ex: 'Joo da Silva' )
Data / Hora uma data / hora delimitada por apstrofo ( ex: '2005-12-25' )
Simblica valor de uma funo do sistema ( ex: CURRENT_DATE )
O apstrofo < ' > usado como delimitador de constantes ( cadeia e data / hora ).
Exemplos:
SELECT * FROM CDS WHERE AQUISIO > '2004-01-01'
data no formato yyyy-mm-dd ( ano-ms-dia )
SELECT * FROM MSICAS WHERE REPRODUO > '00:10:00'
hora no formato hh:mm:ss ( horas:minutos:segundos )
Operadores Aritmticos
Operador Definio
+ soma valores ( ex: 21 + 30 ou Coluna1 + Coluna2 )
subtrai valores ( ex: 30 - 10 ou Coluna2 - Coluna1 )
* multiplica valores ( ex: 21 * 2 ou Coluna1 * 2 )
/ divide valores ( ex: 30/2 ou Coluna1 / Coluna2 )
|| concatena cadeias ( ex: 'Joo ' || 'Silva' ou Coluna1 || Coluna2 )
Ao misturar operadores, certifique-se da precedncia entre os mesmos.
Exemplos:
SELECT TTULO, PREO, PREO * 2 FROM CDS
usa uma expresso para criar uma coluna numa consulta
SELECT IDCD, (10+100+1000+10000) / PREO FROM CDS
usa uma expresso para criar uma coluna, os parnteses foram a precedncia
Operadores de comparao
Operador Definio
<> diferente de ( ex: Coluna1 <> Coluna2 )
!= diferente de ( ex: Coluna1 != Coluna2 )
= igual a ( ex: Coluna1 = Coluna2 )
>= maior ou igual a ( ex: Coluna1 >= Coluna2 )
<= menor ou igual a ( ex: Coluna1 <= Coluna2 )
> maior que ( ex: Coluna1 > Coluna2 )
< menor que ( ex: Coluna1 < Coluna2 )
Exemplo:
SELECT TTULO, ARTISTA, PREO FROM CDS WHERE PREO < 20.00
retorna as colunas consultadas dos registros que satisfaam ao critrio
Operadores lgicos
Operador Definio
AND retorna TRUE se todas as expresses forem TRUE
OR retorna TRUE se qualquer uma das expresses for TRUE
Estes operadores juntam vrias expresses numa s expresso.
Exemplos:
SELECT TTULO, ARTISTA FROM CDS WHERE IDCD > 0 AND PREO < 20
retorna os CDs com IDCD maior que zero e preo menor que 20
SELECT * FROM MSICAS WHERE AUTOR = 'Autor 2' OR AUTOR = 'Autor 5'
retorna as msicas cuja autoria seja do Autor 2 ou do Autor 5
Operadores da SQL
Operador Definio
[NOT] LIKE [ NO ] COMO ( ex: Col1 LIKE 'Ada' ou Col2 NOT LIKE 'Ada' )
BETWEEN ENTRE x E y ( ex: Coluna1 BETWEEN 10 AND 100 )
[NOT] IN [ NO ] IN ( ex: Coluna1 IN (2, 4, 6) )
IS [NOT] NULL [ NO ] VAZIO ( ex: Coluna1 IS NULL )
Os caracteres % e _ podem ser usados na cadeia da clusula LIKE, como em:
LIKE '%Y%' => contm Y em qualquer posio
LIKE '_Y%' => o segundo caractere da coluna Y
LIKE 'Y%K%' => comea com Y e contm K
NOT LIKE 'Y%' => no comea com Y
Exemplos:
SELECT * FROM MSICAS WHERE NOME LIKE '%3%'
retorna as msicas cujo nome contm 3
Ordenando consultas
Para classificar o resultado de uma consulta, use a clusula ORDER BY do comando
SELECT, como em:
SELECT . . . ORDER BY lista_de_colunas [ ASC | DESC ]
ASC => ordem crescente, o valor padro
DESC => ordem decrescente
ORDER BY deve estar aps a clusula WHERE, se exisitir uma
Exemplos:
SELECT * FROM MSICAS ORDER BY AUTOR ASC
registros da tabela MSICAS em ordem crescente por AUTOR
SELECT * FROM MSICAS WHERE IDCD > 1 ORDER BY AUTOR DESC
registros da tabela MSICAS em ordem decrescente por AUTOR
SELECT * FROM MSICAS WHERE IDCD > 1 ORDER BY IDCD DESC, AUTOR ASC
registros em ordem decrescente por IDCD e ascendente por AUTOR
Comande a execuo de cada um dos exemplos e observe o resultado.
Evitando duplicaes
Para descartar os registros que tenham valores duplicados numa dada coluna, o comando
SELECT dispe da clusula DISTINCT, eis a sintaxe bsica:
SELECT DISTINCT coluna1 [ , . . ., colunaN ] FROM tabelas
descarta registros com valores duplicados na coluna1
Por exemplo, para saber quais so os compositores na tabela MSICAS, podemos:
SELECT DISTINCT AUTOR FROM MSICAS ORDER BY AUTOR
retorna os nomes dos autores na tabela Msicas, sem repetio
Funes do Base
O Base tem muitas funes que podem ser usadas como parte de uma expresso. Outras, so
usadas como valor padro de uma coluna na criao de um registro.
Ao usar funes em consultas, podemos misturar minsculas e maisculas nos seus nomes. O
Base se encarrega da converso para maisculas.
Procure analisar, executar e observar a sada de cada um dos exemplos a seguir.
Funes de resumo
Estas funes operam sobre um conjunto de valores.
Funo Descrio
COUNT (*) retorna o nmero total de linhas
COUNT retorna o nmero total de linhas
MIN retorna o menor valor na coluna
MAX retorna o maior valor na coluna
SUM retorna a soma dos valores da coluna
AVG retorna a mdia dos valores da coluna
SOME
EVERY
VAR_POP retorna a varincia dos valores da coluna, base a populao
VAR_SAMP retorna a varincia dos valores da coluna, base uma amostra
STDDEV_POP retorna o desvio padro dos valores da coluna, base a populao
STDDEV_SAMP retorna o desvio padro dos valores da coluna, base uma amostra
Exemplos:
Select Count(*) From CDS
Funes numricas
As principais funes matemticas esto disponveis nesta categoria.
Funo Descrio
ABS (d) retorna o valor absoluto de um valor
ACOS (d) retorna o arco-cosseno de um ngulo
ASIN (d) retorna o arco-seno de um ngulo
ATAN (d) retorna o arco-tangente de um ngulo
ATAN2 (a, b) retorna a tangente de a / b
BITAND (a, b) retorna a AND b ( bit a bit )
BITOR (a, b) retorna a OR b ( bit a bit )
CEILING (d) retorna o menor inteiro no menor que d
COS (d) retorna o cosseno de um ngulo
COT (d) retorna a cotangente de um ngulo
DEGREES (d) converte de radiano para graus (decimal)
EXP (d) retorna o nmero e elevado potncia d
FLOOR (d) retorna o maior inteiro no maior que d
LOG (d) retorna o logaritmo natural (base e) de d
LOG10 (d) retorna o logaritmo (base 10) de d
MOD (a, b) retorna o valor ( a MOD b )
PI ( ) retorna pi (3.1415...)
POWER (a, b) retorna a elevado a potncia b
RADIANS (d) converte graus para radianos
RAND ( ) retorna um valor pseudo-aleatrio, tal que: 0.0 >= x < 1.0
ROUND (a, b) arredonda a para b dgitos aps o ponto decimal
ROUNDMAGIC (d) resolve arredondamentos como: 3.11 3.1 0.01
SIGN (d) retorna -1 se d < 0; 0 se d = 0; 1 se d > 0
SIN (d) retorna o seno do ngulo
SQRT (d) retorna a raiz quadrada de d
TAN (A) retorna a tangente de um ngulo
Funo Descrio
TRUNCATE (a, b) trunca a para b dgitos aps o ponto decimal
Exemplo:
Select PREO, Degrees(Asin(Rand())), Sqrt (PREO) From CDS
cria colunas usando funes numricas
Funes de caracteres
Nesta categoria, temos diversas funes para manipulao de cadeias de caracteres.
Funo Descrio
ASCII (s) retorna o valor ASCII do primeiro caracter de s
BIT_LENGTH (str) retorna o comprimento de str em bits
CHAR (c) retorna o caractere com o cdigo ASCII c
CHAR_LENGTH(str) retorna o comprimento da cadeia str em caracteres
CONCAT (str1, str2) concatena str1 e str2
DIFFERENCE (s1, s2) retorna a diferena entre o som de s1 e s2
HEXTORAW (s1) retorna a cadeia s1 traduzida
INSERT (s, start, len, s2) cadeia com len caracteres, a partir de start, substitudos por s2
LCASE (s) converte s para minsculas
LEFT (s, count) retorna os count caracteres esquerda de s usa aspas
LENGTH (s) retorna o nmero de caracteres de s
LOCATE (search, s, [start]) retorna a posio de search em s (0 se no encontrar)
LTRIM (s) remove os espaos iniciais de s
OCTET_LENGTH (str) retorna o comprimento da cadeia str em bytes
RAWTOHEX (s1) retorna a cadeia s1 traduzida
REPEAT (s, count) retorna uma cadeia com count caracteres s
REPLACE (s, replace, s2) substitui todas as ocorrncias de replace em s por s2
RIGHT (s, count) retorna os count caracteres a direita de s
RTRIM (s) remove os espaos finais de s
SOUNDEX (s) retorna um cdigo de quatro caracteres, representado o som de s
SPACE (count) retorna uma cadeia contendo count espaos
SUBSTR (s, start [,len]) semelhante a substring
SUBSTRING (s, start [,len]) retorna a subcadeia iniciando em start com o tamanho len
UCASE (s) converte a cadeia s para maisculas
LOWER (s) converte a cadeia s para minsculas
UPPER (s) converte a cadeia s para maisculas
Exemplo:
Select UPPER(ARTISTA), Lower(TTULO), Concat (Repeat('@',5), TTULO) From CDS
usando funes de cadeias de caracteres numa consulta
Funes temporais
Lidam com dados do tipo Data, Hora ou DataHora.
Funo Descrio
CURDATE ( ) retorna a data corrente
CURTIME ( ) retorna a hora corrente
DAYNAME (data) retorna o nome do dia
DAYOFMONTH (data) retorna o dia do ms (1-31)
DAYOFWEEK (data) retorna o dia da semana (1 = domingo)
DAYOFYEAR (data) retorna o dia do ano (1 a 366)
HOUR (hora) retorna a hora (0 a 23)
MINUTE (hora) retorna os minutos (0 a 59)
MONTH (date) retorna o ms (1 a 12)
MONTHNAME (data) retorna o nome do ms
QUARTER (data) retorna o trimestre (1 a 4)
SECOND (hora) retorna os segundos (0 a 59)
WEEK (data) retorna a semana deste ano (1 a 53)
YEAR (data) retorna o ano
DATEDIFF (s, dh1, dh2) intervalo transcorrido entre dh1 e dh2, conforme a unidade em s
NOW ( ) retorna a data e hora corrente
TODAY ( ) retorna a data atual
CURRENT_DATE retorna a data atual
CURRENT_TIME retorna a hora atual
CURRENT_TIMESTAMP retorna a data e hora atual
Exemplo:
Select AQUISIO, DayName(AQUISIO), MonthName( AQUISIO), Now() From CDS
usa funes de data / hora numa consulta
O Base aceita outras funes (no apresentadas), como CaseWhen:
Select TTULO, PREO, CASEWHEN (PREO > 15, 'Caro', 'Barato') From CDS
cria uma coluna com Caro ou Barato, segundo o resultado da expresso PREO > 15
Crditos:
Sintaxe e descrio das funes compiladas do tpico Stored Procedures / Functions, do
Chapter 9. SQL Syntax, da documentao do HSQL, do The Hypersonic SQL Group.
Exibies
Uma exibio (ou viso) uma espcie de tabela virtual. Esta tabela definida por uma consulta
armazenada no prprio banco de dados. Os dados da exibio residem nas tabelas reais da base de
dados.
Para criar uma exibio, selecione <Tabelas> e clique sobre <Criar exibio>. A janela de desenho
de consultas ser aberta, com o dilogo <Adicionar Tabelas> ativo.
Selecione CDS, clique sobre [Adiconar]. O mesmo para MSICAS. Eis a aparncia:
Clique sobre o cone <Salvar>, digite ExibeCDs na caixa de texto e clique sobre [OK].
A janela de desenho ser fechada. Salve tambm o documento do Base. Note que a exibio foi
acrescentada junto aos objetos <Tabelas>.
Um duplo clique sobre o nome da exibio abre a janela de visualizao com os dados.
Relatrios
Se voc precisar imprimir dados das tabelas ou consultas, use relatrios.
Criando Relatrios
O Base usa um assistente para criar os seus relatrios, que so documentos do Writer
embutidos.
Clique sobre <Relatrios> e, no painel <Tarefas>, sobre <Usar assistente para criar
relatrio> (ou use o menu do contexto de uma tabela ou consulta).
Antes da exibio do assistente, um novo documento do Writer ser carregado. Note que ele
j contm informaes no cabealho (Ttulo, Autor e Data).
Eis a primeira etapa do assistente:
O assistente no permite a seleo de campos em diferentes tabelas. Para isto, crie uma
Consulta ou Exibio e use-a como base do relatrio.
Selecione a tabela MSICAS e mova os campos de <Campos disponveis> para <Campos
no relatrio> como na figura. Clique sobre [Avanar].
Na segunda etapa, devemos definir os ttulos das colunas, deixe como est e prossiga para a
prxima etapa.
Na terceira etapa, definimos o tipo de agrupamento dos nossos dados. Agrupamentos so teis
quando o contedo de uma ou mais colunas o mesmo em vrios registros. possvel definir
vrios nveis de agrupamento.
Imagine uma rede de lojas com dados sobre as vendas. Ao criar um relatrio, pode-se agrupar
as vendas por filial e, dentro de cada filial, por setor.
Na tabela Msicas, o valor da coluna IDCD repete-se nos registros das msicas de um dado
Editando Relatrios
Para editar um relatrio, clique com o boto direito do mouse sobre o seu nome e escolha a
opo <Editar> no menu do contexto.
J vimos que a opo Relaes deve ser usada para criar relacionamentos entre tabelas.
A opo Administrao de usurio no est implementada (ainda) para bancos de dados do Base.
Apenas para bancos de outros fabricantes que suportem esta funcionalidade.
A opo Filtro de tabela, exibe o dilogo <Filtros de tabelas>, para ocultar tabelas do banco de
dados. No exemplo abaixo, a tabela biblio no ser visvel nos aplicativos do BrOffice.org.
Para bancos de dados externos, podemos alterar algumas propriedades, atravs da opo Editar |
Banco de Dados, no menu principal do Base.
Na verso 2.0.1 do BrOffice.org, esta opo est indisponvel para bancos de dados do Base.
A seguir, expanda a entrada Banco de Dados do BrOffice.org e clique sobre Bancos de Dados. As
aes possveis so:
Boto [Novo]: para criar uma nova fonte de dados; o dilogo abaixo ser exibido.
Selecione o arquivo do Base, digite um nome para a fonte de dados e clique sobre o boto OK.
A partir da verso 2.0, devemos criar um arquivo do Base para registrar uma fonte, inclusive
para bancos de dados externos.
Boto [Excluir]: para excluir uma fonte de dados j registrada.
Boto [Editar]: para alterar uma fonte de dados registrada, atravs do dilogo Editar link de
banco de dados.
O assistente ajusta os seus passos de acordo com o mecanismo selecionado. Por exemplo, para
alguns bancos de dados devemos fornecer informaes da fonte de dados, de logon, arquivo ou
diretrio do banco de dados, dentre outras.
importante lembrar que algumas fontes devem ser configuradas com antecedncia.
Ao usar o Base como interface para outros bancos de dados, algumas funcionalidades podem no
estar disponveis. Por exemplo, numa conexo Microsoft Access, os seus formulrios, relatrios e
macros no so acessados. Devemos cri-los no prprio Base.
Aps a criao do documento, podemos alterar algumas propriedades do banco de dados, atravs da
opo Editar | Banco de Dados, no menu principal do Base.
Conforme a fonte, algumas funes de administrao podem estar disponveis. Verifique a opo
Ferramentas no menu principal do Base ou consulte o captulo Administrao do Banco de Dados.
Criar chave primria: cria um campo de chave primria para a nova tabela do Base. Deve ser
utilizada, por exemplo, quando a fonte de origem no possuir chave primria.
Clique sobre [Avanar], para a etapa Aplicar Colunas:
Aqui, devemos escolher as colunas cujos dados devem ser importados para a tabela. Mova todas as
colunas para a caixa da direita e clique sobre [Avanar].
Neste dilogo, devemos definir os atributos dos campos na tabela do Base. O tipo de campo deve
estar de acordo com o tipo do dado da coluna de origem. O BrOffice.org pode tentar reconhecer
automaticamente o tipo da origem. A caixa de texto Linhas (mx.) define a quantidade de linhas
analisadas para a deteco do tipo.
Aps ajustar os atributos das colunas, clique sobre [Criar] para concluir a operao. Verifique, no
destino se tudo correu, conforme o esperado.
Mais informaes
Nas pginas WEB abaixo, voc encontra mais informaes sobre o Base e o BrOffice.org.
No Brasil
Projeto BrOffice.org
http://www.openoffice.org.br ou http://www.broffice.org.br
Projeto Rau-Tu : frum de perguntas e respostas, tendo uma seo para o OpenOffice.org
http://www.rau-tu.unicamp.br/openoffice/
No exterior
Projeto OpenOffice.org
http://www.openoffice.org
Projeto de Banco de Dados do OpenOffice.org
http://dba.openoffice.org
Projeto do HSQL ( Hypersonic SQL )
http://hsqldb.org/
OOoForum : frum de perguntas e respostas sobre o OpenOffice.org
http://www.oooforum.org
Um Livro
Linux Bancos de Dados (Como projetar e gerenciar), de Fred Butzen e Dorothy Forbes,
publicado pela Editora Cincia Moderna, em 1997.