Aula1 SQL Revisao Select
Aula1 SQL Revisao Select
BANCO DE DADOS 2
SQL
(Select)
ITEM LIMITE
Tabela na Base de dados Não há limites.
Linhas por Tabelas Não há limites
Colunas por tabelas 254
Indices por tabelas Não há limites
Tebelas ou views joined em Não há limites
uma query
Niveis de ninho de subqueries 30
Caracteres em um nome 255
Colunas por índices 16
TIPOS DE DADOS(DATATYPES)
TIPO DESCRIÇÃO DO TIPO DE DADO
Char(n) Tamanho Fixo, pode conter uma seqüência de 1 a 255
bytes alfanuméricos;
Varchar2(n) Tamanho Variável, pode conter uma seqüência de 1 a
2000 bytes - alfanuméricos.
Long Tamanho Variável até 2 Gigabytes alfanuméricos
nota : só pode existir uma coluna long em cada tabela
Number(p,s) Numérico com sinal e ponto decimal,
sendo precisão de 1 a 38 dígitos
Raw Binário - Variável até 255 bytes
Long Raw Binário - Variável até 2 gigabytes - imagem
Date Data c/ hora, minuto e segundo
Tabelas utilizadas nos exemplos:
Desc EMP;
Desc DEPT;
Desc SALGRADE;
SELECT
- Lista os atributos desejados como resultados de uma consulta;
- Corresponde a operação de projeção da álgebra relacional;
- Lista de atributos pode ser substituído por “*” (todos);
From
- Lista de relação (tabelas) a serem usados na execução da
expressão;
WHERE
-São definidos critérios de pesquisa envolvendo atributos das
relações (tabelas) definidas na cláusula from ;
-Corresponde ao predicado da operação de seleção da álgebra
relacional;
-Comando opcional;
Exemplos:
SELECT *
FROM emp
WHERE job = ‘MANAGER’;
• And E
• Or OU
3- Selecionar os nomes de todos os empregados Gerentes com
salários maior que R$ 500,00
SELECT ename
FROM emp
Where job = ‘MANAGER’ and sal > 500;
SELECT ENAME
FROM EMP
WHERE DEPTNO=10 AND SAL>600;
Order By
SELECT ename
FROM emp
ORDER BY ename;
Between
Not Between
Faz uma pesquisa descartando uma faixa de valores.
Exemplo
Select *
from emp
where comm between 0 and 1000;
SELECT ENAME
FROM EMP
WHERE JOB='MANAGER' AND SAL between 1000
AND 3000;
IN
Consulta a presença de um campo em um conjunto de
valores
NOT IN
Not Like
SELECT *
FROM EMP
WHERE ENAME NOT LIKE ‘%FORD%’
Is Not Null
E os que possuem:
SELECT EMPNO,ENAME,SAL
FROM EMP
WHERE COMM IS NOT NULL;
Operadores Aritméticos
+ adição
- Subtração
* Multiplicação
/ Divisão
Exemplo
Selecionar o nome dos empregados, seu salário e o
salário mais 300:
Select ename, sal, sal + 300
from emp
Nome salario
------------------------- --------------
........
Usando o comando de
concatenação
Concatena colunas ou caracteres com outras colunas
(||)
Exemplo
Select ename ||job as “Empregado”
from emp
Eliminando Linhas Duplicadas
Para Eliminar as linhas duplicadas use a palavra DISTINCT na
cláusula SELECT.
Exemplo:
Select Distinct deptno
form emp;
Lista de Exercícios 1
Funções Numéricas
Round ROUND(SAL,2) sal é arredondado para 2
casas apos o ponto
decimal
Trunc TRUNC(SAL,2) Sal é truncado para 2 dígitos
após o ponto decimal.
Mod Mod(sal,comm) Retorna o resto da divisão de
sal/comm
Power Power(sal,2) Retorna o sal elevado ao
quadrado.
Sign Sign(sal) Se SAL maior que O retorna
+1
Se SAL menor que 0 retorna
-1
Se SaL igual a 0 retorna 0.
SQRT SQRT(25) retorna a raiz quadrada de 25
Exemplo
Exemplo
REGRA PARA UTILIZAR FUNÇÕES DE GRUPO: Se você incluir uma função de grupo em um
comando SELECT, você não pode selecionar resultados individuais a menos que a coluna
individual apareça na cláusula GROUP BY.
Exemplos
Selecionar a média salarial de cada departamento.
- SELECT AVG(SAL), DEPTNO
FROM EMP
GROUP BY DEPTNO;
Selecionar a média salarial de cada profissão.
- SELECT AVG(SAL), JOB
FROM EMP
GROUP BY JOB;
HAVING
Exemplo:
Select curso_alu, avg(idade)
from alunos
group by curso_alu
having aveg(idade) > 18;
Exemplos
• Selecionar a mediA de salario dos departamentos
com media superiora 700.
SELECT AVG(SAL), DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING AVG(SAL)>700;
• Selecionar a media salarial das funções com
media inferior a 1550.
SELECT AVG(SAL), JOB
FROM EMP
GROUP BY JOB
HAVING AVG(SAL)<1550;
Lista de Exercícios 2
JUNÇÕES (JOIN)
EQUI-JOIN