Você está na página 1de 41

Consultas SQL à base CORPORE RM / RM Bis

Versão: 4.03
--------------------------------------------------------------------------------------
INDICE

APRESENTAÇÃO............................................................................................................................................ 3
OBJETIVOS DO CURSO.................................................................................................................................... 3
CONTEÚDO PROGRAMÁTICO:............................................................................................................................ 3
EXPECTATIVAS DO CURSO............................................................................................................................... 3
BANCOS DE DADOS E SGBD’S.................................................................................................................... 3
TABELAS......................................................................................................................................................... 4
CHAVES PRIMÁRIAS......................................................................................................................................... 5
CHAVES ESTRANGEIRAS.................................................................................................................................. 5
SISTEMAS GERENCIADORES DE BANCOS DE DADOS UTILIZADOS ATUALMENTE NA RM (RELACIONAIS E
TECNOLOGIA CLIENTE/SERVIDOR).................................................................................................................... 5
BANCOS DE DADOS CLIENTE/SERVIDOR........................................................................................................... 5
DISTRIBUIÇÃO DOS SOFWARES NA REDE ( CORPORERM )................................................................................6
NOMENCLATURA DAS TABELAS DO CORPORE RM............................................................................................ 7
TIPOS DE DADOS............................................................................................................................................ 7
RELACIONAMENTO ENTRE AS TABELAS DO CORPORE RM...............................................................................8
MANIPULAÇÃO DOS BANCOS DE DADOS - PADRÃO SQL (STRUCTURED QUERY LANGUAGE)........9
FAMÍLIAS DE COMANDOS SQL........................................................................................................................ 9
...............................................................................................................................................................................
Cláusula SELECT............................................................................................................................. 10
...............................................................................................................................................................................
Funções de Agrupamento ou Embutidas........................................................................................... 11
...............................................................................................................................................................................
Cláusula WHERE.............................................................................................................................. 13
...............................................................................................................................................................................
Exemplos de consulta com os Operadores de Comparação............................................................14
...............................................................................................................................................................................
Cláusula GROUP BY :...................................................................................................................... 15
...............................................................................................................................................................................
Cláusula ORDER BY :....................................................................................................................... 15
...............................................................................................................................................................................
Cláusula HAVING :............................................................................................................................ 16
...............................................................................................................................................................................
Cláusula UNION................................................................................................................................ 16
...............................................................................................................................................................................
Alias de Coluna (Apelidos)............................................................................................................... 17
...............................................................................................................................................................................
Passagem de Parâmetros................................................................................................................. 17
EXERCÍCIOS DIVERSOS - PARTE I.................................................................................................................. 17
CONSULTAS COM JUNÇÃO ( DUAS OU MAIS TABELAS – INNER JOIN, LIGAÇÃO )............................................20
...............................................................................................................................................................................
Alias de Tabela (Apelido).................................................................................................................. 21
EXERCÍCIOS - PARTE II.................................................................................................................................. 21
OUTER JOINS............................................................................................................................................... 25

EXERCÍCIOS - PARTE III............................................................................................................................... 26

EXERCÍCIO 1................................................................................................................................................. 27
Treinamento RM: Caminho certo para o sucesso profissional. 1
Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
EXERCÍCIO 2 ................................................................................................................................................ 28

EXERCÍCIO 3................................................................................................................................................. 29

EXERCÍCIO 4................................................................................................................................................. 31

PARÂMETROS DO RM BIS............................................................................................................................ 33
CUBO DE DECISÃO........................................................................................................................................ 33
...............................................................................................................................................................................
Ícones do Cubo................................................................................................................................. 33
...............................................................................................................................................................................
Áreas de Divisão do Cubo................................................................................................................. 34
...............................................................................................................................................................................
Alterando a Dimensão da Análise dos Dados...................................................................................35
...............................................................................................................................................................................
Para Acrescentar uma Dimensão na Área de Consulta....................................................................35
...............................................................................................................................................................................
Para Remover uma Dimensão da Área de consulta.........................................................................36
...............................................................................................................................................................................
Para Alterar a posição de uma Dimensão da Área de Consulta.......................................................36
...............................................................................................................................................................................
Para Selecionar/Deselecionar um ou mais Registros de uma Dimensão.........................................36
...............................................................................................................................................................................
Gráfico.............................................................................................................................................. 36
ASSISTENTE DE CRIACAO DE CUBOS DO RM BIS...........................................................................................37

Treinamento RM: Caminho certo para o sucesso profissional. 2


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------

Apresentação

Objetivos do Curso
Apresentar ao aluno conceitos básicos de banco de dados e da linguagem de consulta estruturada (SQL),
bem como os procedimentos de configuração dos aplicativos que fazem parte do CORPORE RM.

Conteúdo programático:

- Conceito de Banco de Dados Relacional


- O ambiente Cliente/Servidor (Redes X Bancos de Dados)
- Diagrama de entidades e relacionamentos
- Relacionamento entre tabelas
- A distribuição dos aplicativos CorporeRM na rede.
- Comandos de Manipulação de Dados ( A família de comandos ) – SQL Básico
- O comando Select ( Consultas Simples e com Junção )
- Exercícios

Expectativas do Curso
Ao final do curso, espera-se que o participante esteja apto a executar consultas com a utilização
principalmente da cláusula SELECT, configurar o BDE para utilização com os aplicativos do Corpore RM.

BANCOS DE DADOS E SGBD’S

Qualquer sistema de arquivamento de dados eletrônico pode ser considerado um banco de dados.
Existem diversos tipos de sistemas de arquivamento e como exemplo podemos citar o Microsoft Excel.
Um Sistema de Gerenciador de Banco de Dados (SGBD) consiste numa coleção de dados inter-
relacionados e um conjunto de programas para acessar esses dados. A coleção de dados é que geralmente
é referenciada como o banco de dados. O principal objetivo de um SGBD é proporcionar um ambiente,
conveniente e eficiente, para retirar e armazenar informações no banco de dados.
O gerenciador de banco de dados é o módulo de programa que provê a interface entre os dados
armazenados no banco de dados e os programas de aplicação e consultas submetidas ao sistema. O
gerenciador é responsável pela interação com o sistema operacional para gerenciamento do acesso aos
arquivos, para garantia de integridade e segurança, pelo backup e recuperação, e pelo controle de
concorrência.
Existem diversos modelos de banco de dados, entre eles podemos citar:
Treinamento RM: Caminho certo para o sucesso profissional. 3
Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
 modelo de rede
 modelo hierárquico
 modelo relacional
 modelo orientado a objetos
Entre este modelos vamos destacar o modelo relacional, que envolve o conceito de armazenar dados
em um único “objeto” centralizador, estruturado internamente em tabelas e colunas que se relacionam entre
si através de chaves primárias e estrangeiras, que são as colunas (campos) em comum entre as tabelas.
Citemos alguns Sistemas Gerenciadores de Banco de Dados Relacionais (SGBDR) existentes no
mercado: MS-SQL Server, Oracle, Sybase, Informix, Progress, DB2, etc.; os quais podem gerenciar todas
as suas informações a partir de um único arquivo de banco de dados.

O CorporeRM trabalha com os seguintes:

Tabelas

Unidade básica de armazenamento em um banco de dados relacional. Uma tabela é composta de linhas e
colunas.

Tabelas têm nomes únicos


São compostas por linhas e colunas
Linhas e colunas podem estar em qualquer ordem
Preferencialmente devem possuir um identificador único: chave primária (Primary Key)
Colunas: são também chamadas atributos

Funcionários
chapa nome endereço telefone ……...

1001 João ……. 5554444 ~~~


1002 Alberto ……. 4687999 ~~~
1003 Franciso …….. NULL ~~~
1004 Maria …….. 5678900
1005 Sônia ……... 0988855 ~~~
1006 Roberto ………. NULL ~~~
Treinamento RM: Caminho certo para o sucesso profissional. 4
Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Exemplos de tabelas :

gcoligada (armazena informações referentes às empresas coligadas)


gfilial (armazena informações referentes às filiais das empresas coligadas)
psecao (armazena informações referentes às seções das filiais das empresas coligadas)
pfunc (armazena informações referentes aos funcionários das empresas )

Chaves Primárias
Uma chave primária (primary key) é um campo ou conjunto de campos que identifica de forma única
um registro de uma tabela. Ou seja, se um campo é chave primária de uma tabela, cada registro deve
possuir um valor diferente para este campo. Normalmente, usamos como chave primária campos de
identificadores, como código da coligada (codcoligada), código da filial (codfilial), etc. As chaves primárias
podem ser compostas por mais de uma coluna.

Chaves Estrangeiras

Uma chave estrangeira (foreign key) é um campo ou conjunto de campos que correspondem a chave
primária de uma outra tabela. A chave estrangeira é usada principalmente para relacionamento entre
tabelas.

Podemos dizer:

O conjunto das colunas codcoligada, nomefantasia e nome formam a tabela gcoligada.


O conjunto das tabelas gcoligada, gfilial, psecao, pfunc, pcargo, pfuncao, pcodsituacao, psindic e gbanco
formam um Banco de Dados Relacional.
O conjunto de todas as tabelas utilizadas por todos os nossos aplicativos for windows formam o banco de
dados CorporeRM.

Sistemas Gerenciadores de Bancos de Dados utilizados atualmente na RM


(Relacionais e Tecnologia Cliente/Servidor)

 MS SQL SERVER 6.5/7.0/2000


 ORACLE 7.3/8.0/8i
 MSDE

Bancos de Dados Cliente/Servidor


Até a difusão dos bancos de dados cliente/servidor, a maioria dos bancos de dados armazenava seus
dados na mesma máquina onde os mesmos eram manipulados. Com o surgimento das redes locais, os
bancos de dados foram transferidos para o computador central, que armazenava os registros, enquanto os
nós da rede (computadores cliente, estações de trabalho de cada usuário) requisitavam tais dados para
manipulá-los.

Treinamento RM: Caminho certo para o sucesso profissional. 5


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------

Apesar do aparente aumento de produtividade, a centralização dos bancos de dados nos servidores
trouxe inúmeros problemas, entre eles o crescimento no tráfego da rede. Isto porque, quando determinada
máquina queria realizar uma pesquisa em uma tabela de um banco de dados, toda a tabela era transferida
para a máquina cliente, e lá a pesquisa era feita. Isto piorava enormemente a performance da rede,
principalmente quando a consulta ao banco de dados era feita por varias máquinas simultaneamente.

Com a difusão dos bancos de dados cliente/servidor, este problema foi superado. Isto porque ao realizar
um pesquisa em uma tabela de um banco de dados cliente/servidor, apenas o resultado da pesquisa é
transferido para a máquina cliente, o que reduz o tráfego na rede. Comandos são enviados ao servidor de
banco de dados e resultados são retornados à estação/cliente.

Os nossos aplicativos do CorporeRM acessam o servidor através do BDE , que retorna apenas a
consulta ou o resultado final para as estações cliente.

Distribuição dos sofwares na Rede ( CorporeRM )


Primeiramente, devemos separá-los em 4 (quatro) grupos:

SGBDR - Sistema de gerenciamento do banco de dados relacional ( Interbase, MS SQL Server, Oracle )
Base de Dados - Base de dados vazia ou exemplo ( corpore )
BDE - Borland DataBase Engine ( Localiza o Servidor do Banco de Dados )
Aplicativos - CorporeRM

No Ambiente Cliente/Servidor:

Treinamento RM: Caminho certo para o sucesso profissional. 6


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Servidor - Instala-se o SGBDR e a Base de Dados (MS-SQL, Oracle ou Interbase)
Estações Clientes – Se SQL Server ou Oracle, instala-se o cliente SQL dos mesmos, instala-se então o
BDE, e após os Aplicativos RM.

Opcionalmente mas não recomendável:

Servidor – SGDBR, Base de Dados, BDE e Aplicativos

Obs: É obrigatório a instalação do Client para o MS SQL Server e do Service Pack 5 do SQL e também o
client do Oracle

No Ambiente Local:
Estação Local - Instala-se o SGBDR, a Base de Dados, o BDE e os Aplicativos

Nomenclatura das Tabelas do Corpore RM

A xxxxx– Chronus – Automação de Ponto


B xxxxx – Testis – Avaliações e Pesquisas
C xxxxx – Saldus – Contabilidade Gerencial
D xxxxx – Liber – Escrituração e Controle Fiscal
E xxxxx – Classis Escola– Escola - Gestão Escolar
F xxxxx – Fluxus – Contas a Pagar / Receber
G xxxxx – Tabelas Globais (comuns a todos os sistemas)
I xxxxx – Bonum – Controle de Patrimônio
K xxxxx – Factor – PCP (Planejamento de Controle da Produção)
L xxxxx – Biblios – Gerenciamento de Acervo Bibliotecário
M xxxxx – Solum – Controle de Obras
P xxxxx – Labore (Folha de Pagamento)
R xxxxx – Gerador de Relatórios
T xxxxx – Nucleus – Faturamento / Estoque / Controle de Controle de Contratos
V xxxxx – Vitae (Gestão de RH)
U xxxxx – Classis Escola– Faculdade - Gestão Escolar

Tipos de Dados

Os tipos de dados abaixo relacionados são tipos de dados suportados pelos bancos de dados
relacionais, geralmente usados no sistema:

Char (n) : Armazena até 255 caracteres. O parâmetro “n” define o número de caracteres a serem
alocados. Este número de caracteres será sempre usado independente do tamanho dos dados entrados.

Varchar (n) : Armazena até 255 caracteres. Ao contrário de CHAR, o tipo de dado VARCHAR só
armazena os dados efetivamente entrados, utilizando, portanto, menor espaço em disco.

Datetime : Armazena datas. O padrão é MM-DD-YYYY HH:MMAM. Para entrar somente horas, o valor
precisa conter um sinal de dois pontos(:) ou a expressão AM ou PM. Sempre coloque valores deste tipo
entre aspas simples.

Numeric(p,s): Armazena números exatos entre 10 38  1 a  10 38  1. Os parâmetros p e s


definem a precisão.

Treinamento RM: Caminho certo para o sucesso profissional. 7


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Int: Armazena números inteiros, que podem variar de –2.147.483.648 a 2.147.483.647.

Smallint: Armazena números com valores inteiros, que podem variar de –32.768 a 32.767.

Text : Tipo de dado de comprimento variável, que armazena caracteres. Deve ser utilizado entre aspas
simples. Suporta uma grande quantidade de armazenamento de textos.

Image: Tipo de dado de comprimento variável, que armazena dados de tipo binário. Deve ser precedido
de 0x. Ex.: Fotos, mapas, imagens digitalizadas.

Obs: Campos date e texto ( char, varchar, etc ) devem sempre aparecer entre aspas simples em
expressões.

Relacionamento entre as tabelas do CORPORE RM


1) gcoligada.codcoligada pfunc.codcoligada

2) gfilial.codcoligada pfunc.codcoligada
gfilial.codfilial pfunc.codfilial

3) psecao.codcoligada pfunc.codcoligada
psecao.codigo pfunc.codsecao
psecao.codfilial pfunc.codfilial

4) psindic.codcoligada pfunc.codcoligada
psindic.codigo pfunc.codsindicato

5) gbanco.numbanco pfunc.codbancopagto ou pfunc.codbancofgts

6) pfuncao.codcoligada pfunc.codcoligada
pfuncao.codigo pfunc.codfuncao

7) pcodsituacao.codcliente pfunc.codsituacao

8) pcargo.codcoligada pfuncao.codcoligada pfunc.codcoligada


pcargo.codigo pfuncao.cargo
pfuncao.codigo pfunc.codfuncao

Treinamento RM: Caminho certo para o sucesso profissional. 8


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
MANIPULAÇÃO DOS BANCOS DE DADOS - PADRÃO SQL (Structured Query
Language).

SQL - linguagem estruturada de consulta e manipulação dos elementos no banco de dados, é um padrão
internacional inicialmente desenvolvido pela IBM, agora coordenado pela ANSI-standard, sendo que sua
última publicação foi em 1992.

Características importantes:
 Padronizada para os bancos de dados relacionais.
 Cada comando é uma descrição do que se deseja obter; quem executa o comando é o gerenciador
do banco de dados.

Famílias de Comandos SQL

 DDL – Linguagem de Definição de Dados - Comandos de manipulação da estrutura do banco de dados


( create, alter, drop, rename ).

 DML – Linguagem de Manipulação de Dados - Comandos de manipulação dos registros (dados) do


banco de dados (insert, select, update, delete)

 DCL – Linguagem de Controle de Dados - Comandos de manipulação de acesso a estrutura/registros


do banco de dados (grant, revoke).

A família de comandos DML está associada diretamente ao dia-a-dia do Técnico de Suporte,


principalmente, o comando select. Tendo em vista que os aplicativos do CorporeRM têm a função de inserir
dados (insert), deletar dados (delete) e modificar dados (update), não é aconselhável executarmos tais
procedimentos através do software do banco de dados. No entanto, temos total liberdade e dever de
aprofundarmos na exploração dos recursos que o comando select nos oferece para extração de dados,
convertendo-os em uma rica fonte de consulta.

O comando SELECT

 Seleciona linhas e colunas de uma tabela


 Estrutura do comando SELECT, cada parte do comando é chamado de Cláusula, assim aprenderemos
a utilizar os recursos de cada uma:

 Cláusula SELECT :Lista de colunas para visualização


 Cláusula FROM : Tabela(s) de procura
 Cláusula WHERE : Lista de condições
 Cláusula GROUP BY : Colunas para serem agregadas
 Cláusula HAVING : Especifica as Condições com uso de agrupamento (funções)
 Cláusula ORDER BY : Lista de coluna(s) para ordenação [ASC (ascendente)| DESC (descendente)

Treinamento RM: Caminho certo para o sucesso profissional. 9


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Para efeitos didáticos iremos dividir o comando select em dois tipos de consultas :
1) Consultas simples ( em uma única tabela ).
2) Consultas com junção ( em duas ou mais tabelas ).

 Cláusula SELECT

Sintaxe: SELECT Lista de Colunas

Lista de Colunas: é a lista de colunas (Campos) a ser selecionada na tabela separado por vírgula. Caso
você deseje ver todos os campos da tabelas use *.

Argumentos:
DISTINCT : Define que serão vistos somentes os campos com valores distintos, ou seja sem
repetição.
ALL - Define que todos os registros serão selecionados, este argumento é o default, assim sendo
não é necessário escrever.

 Cláusula FROM : Tabela(s) com os dados a serem pesquisados

Lista de Tabelas: é a lista de tabelas cujos registros serão selecionados. Se quiser selecionar mais de uma
tabela ou mais de um campo, separe-os por vírgula.

Exemplos:

SELECT NOME, SALARIO FROM PFUNC

nome salario
-----------------------------------------------------------------------------

ITAMAR MENDES DA SILVEIRA 1200.00


JOAO DA SILVA JORDAM 500.00
MARIA CONCEICAO DE ASSIS 1939.08
ADALBERTO DE JESUS LIMA 580.00
ALESSANDRA LOPES DE ABREU 686.60

Treinamento RM: Caminho certo para o sucesso profissional. 10


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Algumas sentenças serão muito utilizadas para localização das tabelas, colunas do CorporeRM.

Exemplos:

SELECT NOMESISTEMA, CODSISTEMA FROM GSISTEMA

SELECT * FROM GCAMPOS


Lista todas as tabelas, colunas e descrição de cada uma.

SELECT * FROM GCAMPOS


WHERE DESCRICAO = ‘FUNCIONARIOS’

SELECT * FROM GCAMPOS


WHERE TABELA = ‘PFUNC’ AND
DESCRICAO = ‘SALARIO’

SELECT * FROM GLINKSREL


Lista todos os relacionamentos das tabelas nos relatórios.

SP_HELP PFUNC
Lista todas as informações da tabela pfunc. O nome das colunas, quais são as chaves primárias, chaves
estrangeiras, tipos de dados, índices.

Exemplos de diversas consultas retirando resultados do aplicativo RM Labore.

SELECT CODSITUACAO FROM PFUNC

Lista todos códigos de situação existentes por funcionário (com repetição)

SELECT ALL CODSITUACAO FROM PFUNC


Lista todos códigos de situação existentes por funcionário (com repetição)

SELECT DISTINCT CODSITUACAO FROM PFUNC


Lista todos códigos de situação existentes, por codsituacao ( sem repetição ).

SELECT * FROM PFUNC


Lista todos os registros e colunas da tabela pfunc (funcionários)

SELECT NOME, SALARIO FROM PFUNC


Lista todos os registros da tabela pfunc e somente as colunas com os nomes e salários
dos funcionários.

SELECT NOME, DATADEMISSAO FROM PFUNC


WHERE DATADEMISSAO IS NOT NULL
Lista todos os nomes de funcionários que tenha data de demissão diferente de nula
(preenchida).

 Funções de Agrupamento ou Embutidas

Funções que retornam resultados baseados em grupos de linhas. Por padrão todas as linhas de uma tabela
são tratadas como um grupo. Com exceção da função COUNT todas ignoram valores nulos, até o COUNT
ignora em algumas formas de aplicação, as funções que veremos são :

Treinamento RM: Caminho certo para o sucesso profissional. 11


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
1. COUNT 2. AVG
3. MAX 4. MIN
5. SUM

OBS:. Usando o DISTINCT, a função só atua nos valores diferentes.

1. COUNT: Retorna o número de itens de um grupo;

Ex.: SELECT COUNT(*) FROM PFUNC


Lista a quantidade de registros (qtde de funcionários) existentes na tabela.

Ex.: SELECT COUNT(distinct salario ) FROM PFUNC


Lista a quantidade de funcionários da tabela PFUNC que não possuem salários iguais.

2. SUM: Soma todos os valores da coluna selecionada, os valores nulos são ignorados.

Ex: SELECT SUM(SALARIO) FROM PFUNC


Lista o total (soma) de salários de todos os funcionários da tabela.

Ex: SELECT SUM(DISTINCT SALARIO) FROM PFUNC


Lista o total (soma) de salários não repetidos de todos os funcionários da tabela.

3. AVG: Calcula a média aritmética dos valores de uma coluna, os valores nulos são ignorados

Ex.: SELECT AVG(SALARIO) FROM PFUNC


Lista a média de salários. Primeiramente ele soma os salários de cada funcionário e depois divide o
total encontrado pela quantidade de registros.

Ex.: SELECT AVG(DISTINCT SALARIO) FROM PFUNC


Lista a média dos salários não repetidos da tabela.

4. MAX: Lista o maior valor de uma coluna.

Ex: SELECT MAX(SALARIO) FROM PFUNC


Lista o maior salário da tabela.

5. MIN: Lista o menor valor de uma coluna, valor Nulo é ignorado.

Ex: SELECT MIN(SALARIO) FROM PFUNC


Lista o menor salário da tabela.

Treinamento RM: Caminho certo para o sucesso profissional. 12


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
 Cláusula WHERE

WHERE: Determina uma condição em que os registros devem satisfazer para serem
selecionadas em uma ou mais tabelas.

Ex.: SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO <=500.00


Lista todos os nomes e salários de funcionários com salário menor ou igual 500,00 reais

 Operadores

Há diversos tipos de operadores. Quanto mais de um tipo de operador está presente em uma expressão,
eles são avaliados segundo uma ordem de precedência, descrita na lista a seguir:

1. (+) Positivo, - Negativo, ~ NOT


2. (*)Multiplicação, ( / ) Divisão, (%) Módulo
3. (+) ADD e Concatenação, (-) Subtração
4. = , <, >, =>, <=,!=, !>,!< (Comparação)
5. NOT
6. AND
7. ALL, ANY, BETWEEN, IN, LIKE, OR SOME

Alguns exemplos:

1. (+) ADD:

Ex. SELECT NOME, SALARIO + 400 FROM PFUNC


Seleciona o nome dos funcionários, adicionando 400 reais no salário de todos.

2. CONCATENAÇÃO:

Ex. SELECT NOME, RUA+ ','+ NUMERO FROM PPESSOA


Seleciona o nome dos funcionários, unindo as colunas Rua e Número.

3. DIVISÃO

Ex. SELECT NOME, SALARIO / 20 FROM PFUNC


Seleciona o nome e o salário dos funcionários dividido por 20.

Treinamento RM: Caminho certo para o sucesso profissional. 13


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
A Tabela abaixo mostra os operadores de aceitos em comparação:

COMPARAÇÃO
Igualdade =
Desigualdade <>
Maior que >
Menor que <
Maior ou igual a >=
Menor ou igual a <=
Não menor que !>
Não maior que !<
Não igual a !=

 Exemplos de consulta com os Operadores de Comparação.

Igual a =
SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO = 580
Lista todos os nomes e salários de funcionários com salário igual a 580,00 Reais

Diferente de <>
SELECT NOME, CODSECAO FROM PFUNC WHERE CODSECAO <> ’01.01’
Lista todos os nomes e códigos de seção dos funcionários exceto da seção 01.01

Maior que >


SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO >500
Lista todos os nomes e salários de funcionários com salário maior que R$ 500,00.

Maior ou igual a >=


SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO >=500
Lista todos os nomes e salários de funcionários com salário maior ou igual a 500,00 Reais

Menor que <


SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO <500
Lista todos os nomes e salários de funcionários com salário menor que R$ 500,00.

Menor ou igual a <=


SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO <=500
Lista todos os nomes e salários de funcionários com salário menor ou igual a 500,00 Reais

IN : Compara um valor com uma lista de valores.

SELECT NOME, SALARIO FROM PFUNC


WHERE SALARIO IN (500, 700, 800, 900)
Lista todos os nomes e salários de funcionários com salários iguais a 500, 700, 800 e 900 Reais.

LIKE : Permite procurar strings que atendam determinado padrão de pesquisa.


%(Percentual) – Substitui por um ou mais caracteres.
_(Underscore) – Substitui por um único caracter.

SELECT NOME FROM PFUNC WHERE NOME LIKE ‘M%’


Lista todos os nomes de funcionários iniciados com a letra ‘M’.
SELECT NOME FROM PFUNC WHERE NOME LIKE ‘%O’
Treinamento RM: Caminho certo para o sucesso profissional. 14
Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Lista todos os nomes de funcionários terminados com a letra ‘O’.

SELECT NOME FROM PFUNC WHERE NOME LIKE ‘J_A%’


Lista todos os nomes de funcionários iniciados com a letra ‘J’, 1 caracter qualquer seguido da
letra ‘A’ e terminados com quaisquer combinações de nomes.

SELECT NOME FROM PFUNC WHERE NOME NOT LIKE ‘MARIA_%’


Lista todos os nomes de funcionários exceto as ‘MARIAS’.

 IS NULL : – Testa valores que são nulos.

SELECT NOME, DATADEMISSAO FROM PFUNC


WHERE DATADEMISSAO IS NULL
Lista os nomes de funcionários que tenham data de demissão nula (sem dado).

 NOT : Inverte o resultado de uma condição.

SELECT NOME, DATADEMISSAO FROM PFUNC


WHERE DATADEMISSAO IS NOT NULL

Podemos negar expressões com os seguintes operadores:


<>, NOT , NOT BETWEEN, IS NOT NULL, NOT EXISTS, NOT LIKE, NOT IN.

 Cláusula GROUP BY :

GROUP BY: Agrupa linhas de uma tabela dentro de grupos menores. É utilizada em conjunto com as
funções de grupo.
Ex.: SELECT CODSECAO, AVG(SALARIO) FROM PFUNC
GROUP BY CODSECAO
Lista a média salarial agrupadas por seção.

 Cláusula ORDER BY :

ORDER BY: Define a ordem das linhas do resultado de uma pesquisa definida. Deve ser a última da
cláusula SELECT. Utiliza-se ASC (ordem crescente- default) e DESC (ordem decrescente). O padrão e
ASC.

Treinamento RM: Caminho certo para o sucesso profissional. 15


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Ordem default: 1º) Valores numéricos menores
2º) Valores de datas mais antigas
3º) Caracteres em ordem alfabética
Para alterar a ordem default: Colocar DESC depois do nome da coluna na cláusula ORDER BY.
OBS: Os valores nulos são mostrados por último para seqüências ascendentes.

Ex: SELECT NOME, SALARIO FROM PFUNC ORDER BY NOME ASC


Lista todos os registros da tabela pfunc e somente as colunas com os nomes (em ordem alfabética)
e salários dos funcionários.

Ex.: SELECT NOME, SALARIO FROM PFUNC ORDER BY NOME DESC


Lista todos os registros da tabela pfunc e somente as colunas com os nomes (em ordem
decrescente) e salários dos funcionários.

 Cláusula HAVING :

HAVING: Usada para selecionar os grupos que serão mostrados com base nas informações das funções de
grupo.

Ex: SELECT PSECAO.CODIGO,SUM(SALARIO),MAX(SALARIO),


COUNT(CHAPA)
FROM PSECAO,PFUNC
WHERE PSECAO.CODIGO=PFUNC.CODSECAO
GROUP BY PSECAO.CODIGO
HAVING MIN(SALARIO)>1000
Mostra o código da seção, a soma dos salários, o maior salário e o número de funcionários onde o menor
salário seja superior a 1000.

 Cláusula UNION:

UNION: Usada para unir duas ou mais consultas (select).

Ex.: SELECT CHAPA, NOME, LOCALNASCIMENTO FROM PFDEPEND WHERE


LOCALNASCIMENTO='BETIM'
UNION SELECT CHAPA, NOME, LOCALNASCIMENTO FROM PFDEPEND WHERE
LOCALNASCIMENTO='SALVADOR'

Lista o nome de todos os dependentes dos funcionários que nasceram em Betim e todos os nascidos em
Salvador.

Ex. SELECT CHAPA, NOME, LOCALNASCIMENTO FROM PFDEPEND WHERE


LOCALNASCIMENTO='BETIM'
OR LOCALNASCIMENTO='SALVADOR'

Essa sentença também irá trazer o mesmo resultado, porém utilizando a opção: OR.

Treinamento RM: Caminho certo para o sucesso profissional. 16


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
 Alias de Coluna (Apelidos)

O Alias de coluna serve para nomear (apelidar) uma coluna em uma determinada consulta. É muito útil para
utilização de nomes mais sujestivos no momento da visualização da consulta.
Ex: SELECT NOME, DATAADMISSAO ADMISSAO FROM PFUNC

 Passagem de Parâmetros

Permite ao usuário informar o valor de uma condição no momento da execução da consulta, sem que se
altere a consulta.

Ex: SELECT CHAPA, NOME , DATAADMISSAO FROM PFUNC


WHERE CHAPA =:CHAPA

O parâmetro poderá ser utilizado nos relatórios, juntamente com a inserção da opção Parâmetros ou
Fórmula.

Exercícios Diversos - Parte I

1) Selecione os nomes em ordem alfabética de todos os funcionários da filial 1, bem como o número da
filial.

2) Selecione os nomes e salários (estes em ordem decrescente) dos funcionários cujos salários não estejam
entre 400,00 e 500,00 Reais, que foram admitidos em Janeiro(jan), que trabalham na filial 2 e que possui a
função 00012.

3) Selecione os nomes dos funcionários da Filial 1 cujo nome contenha a letra N.

Treinamento RM: Caminho certo para o sucesso profissional. 17


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
4) Liste os nomes e os salários dos funcionários da coligada 1, cujo nome contenha
a letra M, o salário seja superior a 500.

5) Selecione os nomes, as chapas, os salários e a data de admissão dos funcionários


que não ganham entre 400,00 e 500,00 Reais, que foram admitidos em Junho(jun)
e que trabalham na filial 1.

6) Selecione a quantidade de funcionários agrupados por seção que pertençam a coligada 1

7) Mostre a média salarial, o maior e o menor salário de cada filial.

8) Mostre os códigos das seções e a média salarial das mesmas, mas somente das que possuem a média
salarial maior que 500.

9) Selecione o nome e data de admissão do funcionário mais antigo da empresa.

10) Informe a filial,o número de funcionários de cada filial, a soma dos salários, o maior salário, o menor
salário.Apelidando as colunas: Filial, Total,Maior e Menor.

Treinamento RM: Caminho certo para o sucesso profissional. 18


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
11) Quantos funcionários existem para cada sindicato na empresa.

12) Selecione o código da seção do funcionário que possuam mais de 02 funcionários o código da situação
seja A.

13) Informe os nomes dos funcionários que trabalham na seção 01.01, que possui a função 00011 ou 00012
e que ganham salário maior que 100 em ordem decrescente.

14) Selecione o nome e o código da coligada dos funcionários que foram admitidos em janeiro ou que o
nome começa com a letra ‘J’.

Treinamento RM: Caminho certo para o sucesso profissional. 19


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Consultas com junção ( duas ou mais tabelas – Inner Join, ligação )

A sintaxe é praticamente a mesma. A diferença está na utilização da cláusula WHERE necessária para se
fazer a ligação entre as tabelas. É imprensidível que as colunas de ligação sejam realmente idênticas
(conteúdo). É na junção de tabelas em que a teoria dos bancos de dados relacionais se apoiam para se
diferenciar dos não-relacionais.

A ligação entre tabelas é necessária sempre for preciso selecionar um “valor” de uma coluna, ou de uma
tabela Pai ou de uma tabela filha em relação a tabela principal de sua sentença SQL.

Exemplo:
SELECT GFILIAL.NOME, PFUNC.CHAPA FROM GFILIAL, PFUNC
WHERE GFILIAL.CODCOLIGADA=PFUNC.CODCOLIGADA
AND GFILIAL.CODFILIAL=PFUNC.CODFILIAL

Neste exemplo, a tabela principal é a PFUNC (funcionários da empresa) e não temos o nome da filial
fazendo parte de sua estrutura. O nome da filial está na tabela GFILIAL
( Filiais da empresa ).Sendo assim, ligamos as colunas em que os conteúdos sejam idênticos sendo que
sempre fazem parte das chaves primárias e estrangeiras das tabelas envolvidas. A tabela PFUNC é filha da
tabela GFILIAL pois, a coluna CODFILIAL é chave primária em GFILIAL e, consequentemente, é chave
estrangeira em PFUNC.

Exemplos:

SELECT GCOLIGADA.NOME, PFUNC.CHAPA, PFUNC.NOME


FROM GCOLIGADA, PFUNC
WHERE GCOLIGADA.CODCOLIGADA=PFUNC.CODCOLIGADA
Lista o nome da coligada e as chapas dos funcionários.

SELECT PSECAO.DESCRICAO, PFUNC.CHAPA, PFUNC.NOME


FROM PSECAO, PFUNC
WHERE PSECAO.CODCOLIGADA=PFUNC.CODCOLIGADA
AND PSECAO.CODIGO=PFUNC.CODSECAO
Lista a descrição da seção e as chapas dos funcionários.

SELECT GBANCO.NOME, PFUNC.CHAPA, PFUNC.NOME


FROM GBANCO, PFUNC
WHERE GBANCO.NUMBANCO=PFUNC.CODBANCOPAGTO
Lista o nome do banco de pagamento e as chapas dos funcionários.

SELECT GBANCO.NOME, PFUNC.CHAPA, PFUNC.NOME


FROM GBANCO, PFUNC
WHERE GBANCO.NUMBANCO=PFUNC.CODBANCOFGTS
Lista o nome do banco de FGTS e as chapas dos funcionários

Treinamento RM: Caminho certo para o sucesso profissional. 20


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
SELECT PCODSITUACAO.DESCRICAO, PFUNC.CHAPA, PFUNC.NOME
FROM PCODSITUACAO, PFUNC
WHERE PCODSITUACAO.CODCLIENTE=PFUNC.CODSITUACAO
AND PCODSITUACAO.DESCRICAO LIKE 'AF%'
Lista o nome da situação ( somente as que contem a descrição afastamento ) e as chapas dos
funcionários.

SELECT PFUNCAO.NOME, PFUNC.CHAPA, PFUNC.NOME


FROM PFUNCAO, PFUNC
WHERE PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA
AND PFUNCAO.CODIGO=PFUNC.CODFUNCAO
Lista o nome da função e as chapas dos funcionários

SELECT PCARGO.NOME, PFUNC.CHAPA, PFUNC.NOME


FROM PCARGO, PFUNC, PFUNCAO
WHERE PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA
AND PCARGO.CODIGO=PFUNCAO.CARGO
AND PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA
AND PFUNCAO.CODIGO=PFUNC.CODFUNCAO
Lista o nome do cargo e as chapas dos funcionários. Observe que não existe ligação
direta da tabela pcargo com pfunc. Foi necessário utilizarmos a tabela pfuncao para
compor o resultado.

 Alias de Tabela (Apelido)

O Alias de tabela serve para nomear (apelidar) uma tabela em uma determinada consulta.
Ex: SELECT G.NOME, P.NOME FROM PFUNC P, GFILIAL G
WHERE P.CODCOLIGADA=G.CODCOLIGADA
AND P.CODFILIAL=G.CODFILIAL

Exercícios - Parte II

1) Selecione os nomes dos funcionários com o nome das seções que eles trabalham em ordem alfabética
das seções e ordem decrescente dos nomes.

2) Selecione os nomes e descrição da situação de todos os funcionários que estão de férias sem repetição.

3) Selecione o nome da seção em ordem alfabética e o nome dos funcionários em ordem decrescente.

4) Selecione a chapa, o nome dos funcionários e o nome das funções exercidas por cada um, em ordem
crescente de nome da função.

Treinamento RM: Caminho certo para o sucesso profissional. 21


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------

5) Liste o nome das seções que a média salarial seja maior ou igual a 1000 reais,
e mostre qual é essa média.

6) Selecione os nomes dos funcionários os cargos deles, os nomes das seções da filial 1
em ordem de nome dos funcionários.

7) Liste os cargos que possuem salários média salarial entre 500 e 1500 reais, e mostre as médias dos
mesmos .

8) Mostre a média salarial, o maior e o menor salário de cada filial.

9) Mostre os Sindicatos, cuja a média salarial dos funcionários seja maior que 500.

10) Mostre os nomes e o salário dos funcionários que trabalham na coligada ‘RM SISTEMAS LTDA’ e que
tenham um salário maior que 1.000 em ordem decrescente de salário.

11) Quais os nomes dos bancos de pagamento utilizados pelos funcionários que possuem o cargo de
Gerencia, sem repetição..

12) Selecione o código da filial, a quantidade de funcionários e a média salarial dos funcionários que tem a
Treinamento RM: Caminho certo para o sucesso profissional. 22
Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
função ‘Analista de Sistemas’.

13) Mostre o nome e a data de admissão de todos os funcionários que possuem o cargo ‘Auxiliar’ ou que
trabalham na seção ‘PDE - Depto Pesquisa e Desenvolvimento’.

14) Mostre o total gasto em salário pela empresa por filial, além da média salarial de cada filial.

15)Selecione o nome dos funcionários que tem o salário superior a todos os funcionários da seção ‘COM –
Depto Comercial’.

Treinamento RM: Caminho certo para o sucesso profissional. 23


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
16) Encontre todos os nome dos funcionários que comecem com a letra ‘A’ mas que não trabalham na
seção ‘DST – Suporte Técnico’.

17) Encontre todos os funcionários que possuem o cargo ‘Técnico’ e que foram ganham mais que os
funcionários da filial 'RM Sistemas - Filial RJ'.

18) Mostre o código da seção, a soma dos salários, o maior salário, o número de funcionários e a média
salarial onde o maior salário seja inferior que a soma dos salários da seção.

19) Informe quais são as seções que possuem 2 ou mais funcionários em uma determinada
função em ordem decrescente de nome das seções..

Treinamento RM: Caminho certo para o sucesso profissional. 24


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
20)Desafio: Selecione todas colunas de nomes/descrições de origem relacionados com as colunas (foreign
keys) da tabela pfunc (descritos no D.E.R exemplo) .

Outer Joins

As consultas feitas anteriormente são feitas com base em INNER JOINs, essas consultas desprezam, ou
melhor, não listam as linhas que não tenham um dado correspondente na outra tabela, assim se eu vou
relacionar a tabela de bancos e funcionários, só viram os funcionários que tenham pelo menos um banco
cadastrado e os nomes dos bancos que tenham pelo menos um funcionário cadastrado.
A consultas com OUTER JOINS produzem resultados contendo as colunas selecionadas de cada linha em
uma tabela mesmo que esta não tenha relação com um subconjunto de linhas de uma outra tabela. A
sintaxe para uma consulta com OUTER JOIN é:

SELECT lista_colunas
FROM <tabela_esquerda> { LEFT | RIGHT | FULL } [OUTER] JOIN
<tabela_direita> [ ON <condições>]
[WHERE <condições>]

Assim, se eu utilizar o OUTER JOIN no exemplo acima, ele listará os bancos e os funcionários
independente de terem relação. A cláusula LEFT, RIGHT e FULL determinará se qual tabelas será listada na
integra, ou se ambas no caso do FULL.

É necessário especificar o tipo de junção (JOIN) a ser executado. Existem três possibilidades:

Um LEFT OUTER JOIN ou LEFT JOIN recupera todas as linhas da tabela à esquerda da junção e recupera
aquelas linhas da tabela à direita que satisfazem as condições especificados na cláusula ON.
Um RIGHT OUTER JOIN ou RIGHT JOIN recupera todas as linhas da tabela à direita da junção e recupera
aquelas linhas da tabela à esquerda que satisfazem as condições especificados na cláusula ON.
Um FULL OUTER JOIN ou FULL JOIN recupera todas as linhas de ambas as tabelas independentemente
das condições especificadas na cláusula ON.

A utilização de consultas com OUTER JOINS é útil quando queremos comparar todos os dados de uma
tabela com o subconjunto dos dados relacionados na outra tabela.

Exemplos:

1) SELECT P.NOME,B.NOME FROM PFUNC P LEFT OUTER JOIN


GBANCO B ON P.CODBANCOPAGTO=B.NUMBANCO

Lista todos os nomes dos funcionários e os nomes dos bancos de depósito de pagamento somente para
aqueles que possuem contas de pagamento cadastradas.

Treinamento RM: Caminho certo para o sucesso profissional. 25


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Nos SGBDs do ORACLE e SQL SERVER, temos outras maneiras de especificarmos um outer join na
cláusula WHERE, que é utilizando o (+) e o * respectivamente. Vejamos como ficariam o exemplo um desta
nova maneira:

1) SELECT P.NOME,B.NOME FROM PFUNC P LEFT OUTER JOIN


GBANCO B ON P.CODBANCOPAGTO=B.NUMBANCO

Em Oracle:

SELECT P.NOME,B.NOME
FROM PFUNC , GBANCO
WHERE P.CODBANCOPAGTO (+)= B.NUMBANCO

Em SQL Server

SELECT P.NOME,B.NOME
FROM PFUNC , GBANCO
WHERE P.CODBANCOPAGTO *= B.NUMBANCO

Exercícios - Parte III

1) Listar os nomes, as chapas e os nomes dos bancos de fgts de todos funcionários da coligada 1, mesmo
que ele não tenha conta de FGTS cadastrada, mostrando o total gasto por filial.

2) Listar os nomes dos funcionários e os nomes de todos os sindicatos independente dele possuir
funcionário filiado ou não.

Treinamento RM: Caminho certo para o sucesso profissional. 26


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
3) Liste os nomes, as chapas e os salários dos funcionários e a descrição da situação de todos os
funcionários.

4)Liste os nomes de todas as funções, e naquelas que possuem funcionários, mostre o total de salário gasto
com cada uma em ordem salarial do maior para o menor.

EXERCÍCIOS GERAIS

Exercício 1

1) O que é um SGDB?

2) O que é uma tabela?

3) O que é uma chave primária?

4) O que é uma chave estrangeira?

5) O que é banco de dados cliente/servidor?

6) O que pode repetir, chave primária ou estrangeira? Porque?

Treinamento RM: Caminho certo para o sucesso profissional. 27


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Exercício 2

1) Selecione os nomes dos funcionários sem repetição.

2) Selecione o nome e o código das filiais.

3) Selecione o nome, salário e a data de admissão de todos os funcionários.

4) Selecione o nome dos bancos.

5) Selecione o código e a descrição de todas as situações.

6) Selecione o nome, chapa e sexo dos dependentes.

7) Selecione todos os nomes das funcões.

8) Selecione todos os nomes dos cargos.

Treinamento RM: Caminho certo para o sucesso profissional. 28


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------

Exercício 3

1. Escreva o código SQL que retorna os dados pedido.

a) Listar o nome das funções que começam com a letra A.

b) Listar o Nome dos funcionários que possui o menor salário e o nome do funcionário que possui
o maior salário.

c) Listar o nome dos funcionário que trabalham na seção que possui o maior salário.

d) Listar o nome dos funcionário que trabalham na seção que possui o menor salário.

e) Listar o nome dos funcionários da filial 1 ou 2 que possuem média salarial superior 500

2. Marque V ou F nas questões abaixo:

a) Select * from pfunc


( ) esta consulta me mostra todos os funcionários da tabela PFUNC, exclusivamente pelo uso do *.
( ) esta consulta me traz todos os campos da tabela pfunc exclusivamente pelo uso do *.
( ) esta consulta esta complemente errada não pode usar * sem a cláusula HAVING.

b) Select codsecao
From Pfunc
Where codcoligada = 1 and salario > 100
Group by codsecao
Having max(salario) < 10000 and min(salario) >=200
Order by min(salario)

( ) Esta consulta está errada, porque não pode Ter a Cláusula HAVING antes do GROUP BY.
( ) Esta consulta está errada , porque não se pode fazer mais de uma comparação na cláusula HAVING.
( ) Esta consulta está certa e muito bem escrita, principalmente na parte que envolve a SubQuery .
( ) Esta consulta esta correta, o Having pede um GROUP BY, o mesmo está trazendo o campo certo
agrupamento.

3. A consulta abaixo está correta? Se não por favor conserta-la no espaço abaixo e indicar onde foram o
(s) erros.

Treinamento RM: Caminho certo para o sucesso profissional. 29


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
SELECT avg(salario), nome
FROM pfunc, gfilial
GROUP BY nome
HAVING avg(salario)>1000

4. A consulta abaixo está correta? Se não por favor conserta-la no espaço abaixo e indicar onde foram o
(s) erros.

SELECT count(p.chapa),f.nome
FROM pfunc p ,pfuncao f
WHERE p.codfuncao=f.codigo and p.codcoligada=f.codcoligada
GROUP BY f.nome
HAVING chapa like ‘0001%’
ORDER BY f.nome

Exercício 4

1) Selecione os nomes dos funcionários cujo nome da filial comece com a letra F.

2) Selecione os distintos códigos dos cargos e a chapa dos funcionários da coligada RM Sistemas.

3) Quais são os funcionários que estão com a descrição da situação ‘Licença Mater.’.

4) Quais são os nomes das funcões que possue a secao ‘COM - Depto Comercial’?

5) Mostre as filiais da coligada 1.

Treinamento RM: Caminho certo para o sucesso profissional. 30


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------

6) Selecione todos os nomes dos funcionários exceto os que têm o nome começando com a letra A.

DIAGRAMA DE ENTIDADES E RELACIONAMENTOS

GCOLIGADA
*Codcoligada - Smallint
Nome - Varchar (40)
Nomefantasia - Varchar (35)
1

GFILIAL

*Codcoligada -Smallint
*Codfilial - Smallint
Nome - Varchar (40)
Nomefantasia - Varchar (35)

PSECAO

*Codcoligada - Smallint
*Codigo - Varchar (35)
#Codfilial - Smallint
Descricao- Varchar (60)

PCARGO 1
*Codcoligada - Smallint
*Codigo - Varchar (16)
Nome - Varchar (40)
1
PSINDIC
N
CORPORE RM (Opcional) *Codcoligada - Smallint
N N 1 *Codigo - Varchar(10)
Nome - Varchar (120)
PFUNC
PFUNCAO

*Codcoligada - Smallint 1
*Codigo - Varchar (10) PCODSITUACAO
#Cargo - Varchar (16)
Nome - Varchar (40) 1 *Codcoligada - Smallint
* Chapa - Varchar (16) N 1 *Codcoligada - Smallint
#Codfilial - Smallint *Codcliente - Char (1)
#Codsecao
Treinamento RM: Caminho certo para o sucesso - Varchar (35)
profissional. Descricao - Varchar (50) 31
#CodFuncao
Reprodução - Varchar (10)
PFDEPEND N #Codsindicato - Proibida
Varchar (10)
#Codsituacao - char (1)
*Codcoligada - Smallint N #Codbancofgts - Varchar (3)
#Chapa - Varchar (16) #Codbancopagto - Varchar (3) GBANCO
*Nro Depend - Smallint Nome - Varchar (45)
Nome - Varchar (30) Salario *Numbanco - Varchar (3)
Sexo- Varchar (1) Dataadmissao - Datetime (8) N 1 Nome - Varchar (40)
Datademissao - Datetime (8)
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------

Treinamento RM: Caminho certo para o sucesso profissional. 32


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Parâmetros do RM BIS

Neste menu o usuário terá a opção de Atualizar ou não as informações ao abrir um cubo, ou seja,
quando este parâmetro estiver marcado, ao se abrir um cubo, as informações serão atualizadas
automaticamente de acordo com a base de dados. Quando não estiver marcado, o cubo será aberto
apresentando as informações salvas anteriormente (figura 1).
OBS.: Caso nenhuma informação tenha sido gravada no cubo, aparecerá uma mensagem para
confirmar ou não a atualização das informações de acordo com a base de dados.

Cubo de Decisão
Nesta pasta será feita a análise dos dados registrados no banco de dados CORPORE RM, a função
dos Cubos de decisão é trazer informações atualizadas e confiáveis para tomada de decisões
estratégicas dentro de uma empresa, onde o usuário poderá dimensionar o cubo da maneira
necessária para a sua consulta.
 Ícones do Cubo
Os ícones apresentados são:

Abrir Cubo

Abre uma caixa de diálogo onde outro cubo poderá ser selecionado para a abertura.
Observação: Ao abrir um outro cubo, você estará automaticamente fechando o cubo
visualizado.

Salvar Cubo

Salva as alterações feitas na configuração do cubo. Uma caixa de diálogo será apresentada
para que um nome de arquivo seja informado.
Observação: Para preservar a antiga configuração do cubo, informe outro nome no campo
Nome do Arquivo. Para gravar a nova configuração por cima da antiga configuração do cubo,
preserve o nome do cubo e apenas pressione o botão OK.

Treinamento RM: Caminho certo para o sucesso profissional. 33


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------

Atualizar Informações

Atualiza as informações da base de dados.

Visualizar/Imprimir Cubo

Visualiza a impressão do cubo, caso a pasta Cubo esteja marcada. e, caso a pasta Gráfico esteja
marcada, imprime o gráfico.

Exportar para o Excel

Para exportar o cubo para o MS Excel, clique no ícone e informe um nome para o arquivo .XLS.

Exportar para Arquivo

Para Exportar um Cubo para o formato CSV (Comma Separated Values)


Observação:
Arquivos com a extensão .csv podem ser importados em planilhas eletrônicas ou gerenciadores de
bancos de dados.

Visualizar Sentenca SQL

Para visualizar a Sentença SQL que gerou o cubo, clique no ícone da barra de ferramentas.
Observação:
A sentença SQL não poderá ser alterada.

 Áreas de Divisão do Cubo

· Área de Dimensões: região que contém as dimensões disponíveis para a organização dos
dados.
· Área de Consulta: região que contém as dimensões utilizadas na análise dos dados e os dados
propriamente ditos. Esta área por sua vez se divide em 4 espaços distintos:
- Linhas de Consulta - apresenta as dimensões que formam a Área de Registros.
- Colunas de Consulta - apresenta as dimensões que formam a Área de Dados.
- Área de Registros - apresenta os dados obtidos através da consulta ao Banco de Dados
do CorporeRM, organizados de acordo com as Linhas de Consulta.
- Área de Dados - apresenta os dados obtidos através da consulta ao Banco de Dados do
CorporeRM organizados de acordo com a Área de Registros e com as Colunas de
Consulta.

Treinamento RM: Caminho certo para o sucesso profissional. 34


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------

Observação:

Uma dimensão pode conter um ou mais campos da base de dados CORPORE RM ou pode ser parte
de um desses campos.

 Alterando a Dimensão da Análise dos Dados

A disposição das dimensões influencia a análise dos dados. Alterando uma dimensão de lugar você
estará alterando a forma de visualizar os dados. Cada dimensão pode conter um ou mais registros, e
a seleção destes registros, influencia também a análise dos dados.
Exemplo:
Baseando na figura acima, caso arraste a dimensão Centro Despesa para a Linha da Área de
Consulta, a análise ficará mais detalhada. Anteriormente, a análise era baseada em todos os
pagamentos/recebimentos de cada filial pertencente à coligada RM Sistemas. Agora a análise está
baseada em todos os pagamentos/recebimentos de cada centro de despesa de cada filial pertencente
à coligada RM Sistemas.

 Para Acrescentar uma Dimensão na Área de Consulta.

 Na área de Dimensões, posicione o mouse sobre a dimensão que deseja acrescentar à área
de Consulta. O ponteiro do mouse irá alterar para

 Mantendo o botão esquerdo do mouse pressionado, arraste a dimensão para a posição


desejada na Linha/Coluna da área de Consulta.

Aparecerá o indicador , informando a posição na qual a dimensão será acrescentada.

Treinamento RM: Caminho certo para o sucesso profissional. 35


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
 Para Remover uma Dimensão da Área de consulta

 Na área de Consulta, posicione o mouse sobre a dimensão que deseja remover e, arraste-a para
uma posição na área de Dimensões.

 Para Alterar a posição de uma Dimensão da Área de Consulta.

 Na área de Consulta, posicione o mouse sobre a dimensão que deseja mover e, arraste-a para
outra posição desta área. Uma dimensão pode ser movida entre as posições da linha/coluna ou
pode ser movida de uma linha para uma coluna (ou vice-versa).

 Para Selecionar/Deselecionar um ou mais Registros de uma Dimensão.

 Clique na Seta para Baixo, ao lado direito do nome da dimensão, uma lista de registro
pertencentes a essa dimensão irá aparecer.

 Clique no Quadrado do registro ao qual você deseja selecionar/deselecionar.

 Clique novamente na Seta para Baixo para confirmar a seleção.

Observação:
Para Selecionar / deselecionar todos os registros de uma dimensão, mantenha pressionada a tecla
CTRL e clique em qualquer registro.

 Gráfico

Nesta pasta será visualizado o gráfico referente aos valores selecionados na pasta Cubo de Decisão.

Esta pasta possui dois campos:

Tipo do Gráfico - Determina qual será o tipo de gráfico a ser apresentado: barras, linhas,
pontos, área, pizza e linhas finas.

Observação:
Devido a própria característica do gráfico de pizza, deve-se selecionar apenas uma coluna ou uma linha
para esse tipo de gráfico.

3D - Determina se o o gráfico irá ser apresentado no formato tridimensional (ü) ou não.

Para visualizar o gráfico, siga os passos abaixo:

Na pasta Cubo de Decisão, selecione, com o mouse, os valores desejados.

Depois, clique na pasta Gráfico.

Observações:
Treinamento RM: Caminho certo para o sucesso profissional. 36
Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Para visualizar no gráfico os valores selecionados na pasta Cubo de Decisão, clique em cada
coluna. O sistema automaticamente, irá mostrar o valor selecionado desta coluna. Para retirar o valor
selecionado, clique novamente na coluna.

Para aumentar/diminuir a escala do gráfico, selecione a área do gráfico desejada.

Exemplo: Para aumentar a escala de uma faixa, selecione a faixa. Todas as outras faixas irão desaparecer
da área visualizada e apenas a faixa selecionada será visualizada. Para voltar novamente a visualizar todas
as faixas, selecione toda a área do gráfico a ser visualizada.

Assistente de Criacao de Cubos do RM Bis

Treinamento RM: Caminho certo para o sucesso profissional. 37


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------

Etapa 1 - Sentença SQL

Todo cubo é baseado no resultado da execução de uma sentença SQL e, através deste resultado é
que são formadas as dimensões do cubo e organizada toda informação nele contida.
Nesta etapa, informe a sentença SQL em que se baseia o cubo a ser criado.

Dica:
Você pode, acessando a janela de execução de cubos (Relatórios | Cubos (EIS) | *) visualizar as
sentenças SQL dos cubos que são distribuídos junto com RM Bis.

Treinamento RM: Caminho certo para o sucesso profissional. 38


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Etapa 2 - Organização das Dimensões

Nesta etapa organize as colunas criadas através da execução da sentença SQL em dimensões do
cubo. Para criar as dimensões basta arrastar os campos para cada uma das quatro caixas
disponíveis: Área de Consulta, Linhas de Consulta, Colunas de Consulta e Área de Dados. Quando o
cubo for executado pela primeira vez os dados serão apresentados da seguinte forma, de acordo com
a localização de cada dimensão:

Observação:
Pelo menos deve existir uma dimensão criada na área de dados e nas linhas de consulta.

Treinamento RM: Caminho certo para o sucesso profissional. 39


Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------
Etapa 3 - Formatação do Cubo

Nesta etapa configure o texto a ser apresentado em cada dimensão, e no caso das dimensões das
áreas de dados, configure a máscara dos valores a serem apresentados.

Etapa 4 - Dados do Cubo


Treinamento RM: Caminho certo para o sucesso profissional. 40
Reprodução Proibida
Consultas SQL à base CORPORE RM / RM Bis
Versão: 4.03
--------------------------------------------------------------------------------------

Nesta última etapa informe a localização e o nome do arquivo de cubo a ser criado.

Treinamento RM: Caminho certo para o sucesso profissional. 41


Reprodução Proibida

Você também pode gostar