apostilasqlrm bis

56
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 Treinamento RM: Caminho certo para o sucesso profissional. Reprodução Proibida 1

Upload: valber-santana

Post on 14-Feb-2015

293 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ApostilaSQLRM Bis

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

INDICE

APRESENTAÇÃO............................................................................................................................................ 3

OBJETIVOS DO CURSO.................................................................................................................................... 3CONTEÚDO PROGRAMÁTICO:............................................................................................................................ 3EXPECTATIVAS DO CURSO............................................................................................................................... 3

BANCOS DE DADOS E SGBD’S.................................................................................................................... 3

TABELAS......................................................................................................................................................... 4CHAVES PRIMÁRIAS......................................................................................................................................... 5CHAVES ESTRANGEIRAS.................................................................................................................................. 5SISTEMAS GERENCIADORES DE BANCOS DE DADOS UTILIZADOS ATUALMENTE NA RM (RELACIONAIS E TECNOLOGIA CLIENTE/SERVIDOR)....................................................................................................................5BANCOS DE DADOS CLIENTE/SERVIDOR...........................................................................................................5DISTRIBUIÇÃO DOS SOFWARES NA REDE ( CORPORERM )................................................................................6NOMENCLATURA DAS TABELAS DO CORPORE RM............................................................................................7TIPOS DE DADOS............................................................................................................................................ 7RELACIONAMENTO 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.Reprodução Proibida

1

Page 2: ApostilaSQLRM Bis

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............................................................................................................................ 33CUBO 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.Reprodução Proibida

2

Page 3: ApostilaSQLRM Bis

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: modelo de rede

Treinamento RM: Caminho certo para o sucesso profissional.Reprodução Proibida

3

Page 4: ApostilaSQLRM Bis

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

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 únicosSão compostas por linhas e colunasLinhas e colunas podem estar em qualquer ordemPreferencialmente devem possuir um identificador único: chave primária (Primary Key)Colunas: são também chamadas atributos

Treinamento RM: Caminho certo para o sucesso profissional.Reprodução Proibida

4

Page 5: ApostilaSQLRM Bis

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.Reprodução Proibida

5

Page 6: ApostilaSQLRM Bis

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.Reprodução Proibida

6

Page 7: ApostilaSQLRM Bis

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 PontoB xxxxx – Testis – Avaliações e PesquisasC xxxxx – Saldus – Contabilidade GerencialD xxxxx – Liber – Escrituração e Controle FiscalE xxxxx – Classis Escola– Escola - Gestão EscolarF xxxxx – Fluxus – Contas a Pagar / ReceberG xxxxx – Tabelas Globais (comuns a todos os sistemas)I xxxxx – Bonum – Controle de PatrimônioK xxxxx – Factor – PCP (Planejamento de Controle da Produção)L xxxxx – Biblios – Gerenciamento de Acervo BibliotecárioM xxxxx – Solum – Controle de ObrasP xxxxx – Labore (Folha de Pagamento)R xxxxx – Gerador de RelatóriosT xxxxx – Nucleus – Faturamento / Estoque / Controle de Controle de ContratosV 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 1038 1 a 1038 1. Os parâmetros p e s definem a precisão.

Treinamento RM: Caminho certo para o sucesso profissional.Reprodução Proibida

7

Page 8: ApostilaSQLRM Bis

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.Reprodução Proibida

8

Page 9: ApostilaSQLRM Bis

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.Reprodução Proibida

9

Page 10: ApostilaSQLRM Bis

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

Treinamento RM: Caminho certo para o sucesso profissional.Reprodução Proibida

10

Page 11: ApostilaSQLRM Bis

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 GCAMPOSWHERE DESCRICAO = ‘FUNCIONARIOS’

SELECT * FROM GCAMPOSWHERE TABELA = ‘PFUNC’ ANDDESCRICAO = ‘SALARIO’

SELECT * FROM GLINKSRELLista 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 PFUNCLista todos códigos de situação existentes por funcionário (com repetição)

SELECT DISTINCT CODSITUACAO FROM PFUNCLista todos códigos de situação existentes, por codsituacao ( sem repetição ).

SELECT * FROM PFUNCLista todos os registros e colunas da tabela pfunc (funcionários)

SELECT NOME, SALARIO FROM PFUNCLista 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 NULLLista 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.Reprodução Proibida

11

Page 12: ApostilaSQLRM Bis

Consultas SQL à base CORPORE RM / RM Bis Versão: 4.03--------------------------------------------------------------------------------------1. COUNT 2. AVG3. MAX 4. MIN5. 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.Reprodução Proibida

12

Page 13: ApostilaSQLRM Bis

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, ~ NOT2. (*)Multiplicação, ( / ) Divisão, (%) Módulo3. (+) ADD e Concatenação, (-) Subtração4. = , <, >, =>, <=,!=, !>,!< (Comparação)5. NOT6. AND7. ALL, ANY, BETWEEN, IN, LIKE, OR SOME

Alguns exemplos:

1. (+) ADD:

Ex. SELECT NOME, SALARIO + 400 FROM PFUNCSeleciona o nome dos funcionários, adicionando 400 reais no salário de todos.

2. CONCATENAÇÃO:

Ex. SELECT NOME, RUA+ ','+ NUMERO FROM PPESSOASeleciona o nome dos funcionários, unindo as colunas Rua e Número.

3. DIVISÃO

Ex. SELECT NOME, SALARIO / 20 FROM PFUNCSeleciona o nome e o salário dos funcionários dividido por 20.

Treinamento RM: Caminho certo para o sucesso profissional.Reprodução Proibida

13

Page 14: ApostilaSQLRM Bis

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

A Tabela abaixo mostra os operadores de aceitos em comparação:

COMPARAÇÃOIgualdade =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.Reprodução Proibida

14

Page 15: ApostilaSQLRM Bis

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.Reprodução Proibida

15

Page 16: ApostilaSQLRM Bis

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,PFUNCWHERE PSECAO.CODIGO=PFUNC.CODSECAO GROUP BY PSECAO.CODIGOHAVING MIN(SALARIO)>1000Mostra 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.Reprodução Proibida

16

Page 17: ApostilaSQLRM Bis

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.Reprodução Proibida

17

Page 18: ApostilaSQLRM Bis

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.Reprodução Proibida

18

Page 19: ApostilaSQLRM Bis

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.Reprodução Proibida

19

Page 20: ApostilaSQLRM Bis

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, PFUNCWHERE GFILIAL.CODCOLIGADA=PFUNC.CODCOLIGADAAND 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.Reprodução Proibida

20

Page 21: ApostilaSQLRM Bis

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.Reprodução Proibida

21

Page 22: ApostilaSQLRM Bis

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.Reprodução Proibida

22

Page 23: ApostilaSQLRM Bis

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.Reprodução Proibida

23

Page 24: ApostilaSQLRM Bis

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 determinadafunção em ordem decrescente de nome das seções..

Treinamento RM: Caminho certo para o sucesso profissional.Reprodução Proibida

24

Page 25: ApostilaSQLRM Bis

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_colunasFROM <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.Reprodução Proibida

25

Page 26: ApostilaSQLRM Bis

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.Reprodução Proibida

26

Page 27: ApostilaSQLRM Bis

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.Reprodução Proibida

27

Page 28: ApostilaSQLRM Bis

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.Reprodução Proibida

28

Page 29: ApostilaSQLRM Bis

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 codsecaoFrom PfuncWhere codcoligada = 1 and salario > 100Group by codsecaoHaving max(salario) < 10000 and min(salario) >=200Order 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.

Treinamento RM: Caminho certo para o sucesso profissional.Reprodução Proibida

29

Page 30: ApostilaSQLRM Bis

Consultas SQL à base CORPORE RM / RM Bis Versão: 4.03--------------------------------------------------------------------------------------3. A consulta abaixo está correta? Se não por favor conserta-la no espaço abaixo e indicar onde foram o

(s) erros.

SELECT avg(salario), nomeFROM pfunc, gfilialGROUP BY nomeHAVING 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.nomeFROM pfunc p ,pfuncao fWHERE p.codfuncao=f.codigo and p.codcoligada=f.codcoligadaGROUP BY f.nomeHAVING 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.Reprodução Proibida

30

Page 31: ApostilaSQLRM Bis

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.

CORPORE RM (Opcional)

Treinamento RM: Caminho certo para o sucesso profissional.Reprodução Proibida

31

Page 32: ApostilaSQLRM Bis

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

Treinamento RM: Caminho certo para o sucesso profissional.Reprodução Proibida

32

Page 33: ApostilaSQLRM Bis

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ãoNesta 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 CuboOs í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.Reprodução Proibida

33

Page 34: ApostilaSQLRM Bis

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.Reprodução Proibida

34

Page 35: ApostilaSQLRM Bis

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.Reprodução Proibida

35

Page 36: ApostilaSQLRM Bis

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.Reprodução Proibida

36

Page 37: ApostilaSQLRM Bis

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.Reprodução Proibida

37

Page 38: ApostilaSQLRM Bis

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.Reprodução Proibida

38

Page 39: ApostilaSQLRM Bis

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.Reprodução Proibida

39

Page 40: ApostilaSQLRM Bis

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 CuboTreinamento RM: Caminho certo para o sucesso profissional.

Reprodução Proibida40

Page 41: ApostilaSQLRM Bis

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.Reprodução Proibida

41