A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SELECT Professor: Virgílio Fries Müller www. vfm.com.br

Apresentações semelhantes


Apresentação em tema: "SELECT Professor: Virgílio Fries Müller www. vfm.com.br"— Transcrição da apresentação:

1 SELECT Professor: Virgílio Fries Müller www. vfm.com.br
Schedule: Timing Topic 40 minutes Lecture 25 minutes Practice 65 minutes Total

2 Select Schedule: Timing Topic 30 minutes Lecture 20 minutes Practice
50 minutes Total

3 O Comando SELECT SELECT identifica as colunas
SELECT [DISTINCT] {*, column [alias],...} FROM table; SELECT identifica as colunas FROM identifica as tabelas

4 Selecionando linhas SQL> SELECT * 2 FROM depto;
SQL> SELECT depto_num, depto_loc 2 FROM depto; SQL> SELECT enome, sal, sal+300 2 FROM emp; SQL> SELECT enome, sal, 12*sal+100 2 FROM emp; SQL> SELECT deptno, dname, loc 2 FROM dept;

5 Definindo Alias para Colunas
SQL> SELECT enome AS nome, sal AS salario 2 FROM emp; NOME SALARIO SQL> SELECT enome "Nome", sal*12 “Salario Anual" 3 FROM emp; Nome Salario Anual

6 Eliminando Linhas Duplicadas
DISTINCT SQL> SELECT DISTINCT depto_num 2 FROM emp; DEPTO_NUM 10 20 30 SQL> SELECT DISTINCT deptno, job 2 FROM emp;

7 Restringindo consultas e ordenando resultados

8 Utilizando a Cláusula WHERE
SQL> SELECT enome, cargo, depto_num 2 FROM emp 3 WHERE cargo='CAIXA'; ENOME CARGO DEPTO_NUM RONALDO CAIXA MANUEL CAIXA PAULO CAIXA LUCIANO CAIXA

9 Operadores de Comparação
= > >= < <= <> Significado Igual a Maior que Maior ou igual a Menor que Menor ou igual a Diferente de

10 Outros Operadores Operador BETWEEN ...AND... IN(lista) LIKE IS NULL
Significado Entre dois valores (inclusive) Satisfaz uma lista de valores Satisfaz um padrão de caracteres É um valor nulo (null)

11 Operador BETWEEN SQL> SELECT enome, sal 2 FROM emp
3 WHERE sal BETWEEN 1000 AND 1500; ENOME SAL MARIA SERGIO MATHEUS PAULO LUCIANO limite inferior superior

12 Operador IN SQL> SELECT enum, enome, sal, ger 2 FROM emp
3 WHERE ger IN (7902, 7566, 7788); ENUM ENOME SAL GER 7902 JOSE 7369 MANUEL 7788 FABIO 7876 PAULO

13 Operador LIKE Utilize o operador LIKE para realizar pesquisas por padrões (wildcards). % substitui zero ou mais caracteres _ substitui um único caracter SQL> SELECT enome 2 FROM emp 3 WHERE enome LIKE ‘M%'; SQL> SELECT ename, hiredate 2 FROM emp 3 WHERE hiredate LIKE '%81';

14 Operador IS NULL Testando valores nulos (null)
SQL> SELECT enome, ger 2 FROM emp 3 WHERE ger IS NULL; ENOME GER CARLOS SQL> SELECT ename, job, comm 2 FROM emp 3 WHERE comm IS NULL; ENAME JOB COMM KING PRESIDENT BLAKE MANAGER CLARK MANAGER ...

15 Operadores Lógicos Operador AND OR NOT Significado
Retorna TRUE se a condição de ambos os componentes for TRUE Retorna TRUE se a condição de um dos componentes for TRUE Retorna TRUE se a condição for FALSE (vise-versa)

16 Operador NOT SQL> SELECT enome, cargo 2 FROM emp
3 WHERE cargo NOT IN('CAIXA','GERENTE','ANALISTA'); ENOME CARGO CARLOS PRESIDENTE MARIA VENDEDOR CELSO VENDEDOR SERGIO VENDEDOR MATHEUS VENDEDOR

17 Cláusula ORDER BY SQL> SELECT enome, cargo, depto_num, dtinicio
2 FROM emp 3 ORDER BY dtinicio DESC; ENOME CARGO DEPTO_NUM DTINICIO PAULO CAIXA JAN-83 FABIO ANALISTA DEC-82 LUCIANO CAIXA JAN-82 RONALDO CAIXA DEC-81 JOSE ANALISTA DEC-81 CARLOS PRESIDENTE NOV-81 MARIA VENDEDOR SEP-81 ... 14 rows selected.

18 Manipulando dados

19 O Comando UPDATE Modificando linhas existentes com o comando UPDATE.
Modifique mais de uma linha por vez especificando uma condição na cláusula WHERE. Não esqueça o COMMIT UPDATE table SET column = value [, column = value] [WHERE condition];

20 Atualizando linhas em uma tabela
Linhas específicas podem ser modificadas utilizando a cláusula WHERE. Todas as linhas da tabela são modificadas se a cláusula WHERE for omitida. SQL> UPDATE emp 2 SET depto_num = 20 3 WHERE enum = 7782; 1 row updated. SQL> UPDATE emp 2 SET depto_num = 20; 14 rows updated. Note: The EMPLOYEE table has the same data as the EMP table. SQL> SELECT ename, deptno 2 FROM employee; ENAME DEPTNO KING BLAKE CLARK JONES MARTIN ALLEN TURNER ... 14 rows selected.

21 Eliminando Linhas de uma Tabela
Linhas específicas podem ser eliminadas utilizando a cláusula WHERE. Todas as linhas da tabela são eliminadas se a cláusula WHERE for omitida. SQL> DELETE FROM depto 2 WHERE depto_nome = 'DESENVOLVIMENTO'; 1 row deleted. SQL> DELETE FROM depto; 4 rows deleted. SQL> SELECT * 2 FROM department 3 WHERE dname = 'DEVELOPMENT'; no rows selected. SQL> DELETE FROM emp 2 WHERE hiredate > TO_DATE(' ', 'DD.MM.YY'); 1 row deleted.

22 Exibindo dados de múltiplas tabelas

23 Joins Utilize uma junção para consultar dados de mais de uma tabela.
Especifique a condição de junção na cláusula WHERE. Informe o nome da tabela junto com o nome da coluna, se tabelas diferentes possuírem colunas com os mesmos nomes. SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1 = table2.column2;

24 Criando Alias para Tabelas
SQL> SELECT emp.enum, emp.enome, emp.depto_num, 2 depto.depto_num, depto.depto_loc 3 FROM emp, depto 4 WHERE emp.depto_num = depto.depto_num; SQL> SELECT e.enum, e.enome, e.depto_num, d.depto_num, d.depto_loc 3 FROM emp e, depto d 4 WHERE e.depto_num = d.depto_num;

25 Funções de Grupo (Agregação)

26 O que são Funções de Grupo?
Funções de grupo operam em conjuntos de linhas, produzindo um resultado por grupo. EMP DEPTO_NUM SAL “o maior salário da tabela EMP” MAX(SAL) 5000

27 Tipos de Funções de Grupo
AVG (média) COUNT (contagem) MAX (máximo) MIN (mínimo) SUM (soma)

28 Utilizando Funções de Grupo
SELECT column, group_function(column) FROM table [WHERE condition] [ORDER BY column]; Class Management Note Stress the use of DISTINCT and group functions ignoring null values. ALL is the default and is very rarely specified.

29 Funções AVG e SUM Utilize o AVG e SUM apenas para dados numéricos
SQL> SELECT AVG(sal), MAX(sal), 2 MIN(sal), SUM(sal) 3 FROM emp 4 WHERE cargo LIKE ‘VEND%'; AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)

30 Funções MIN e MAX Utilize MIN e MAX para qualquer tipo de dado
SQL> SELECT MIN(dtinicio), MAX(dtinicio) 2 FROM emp; MIN(DTINI MAX(DTINI 17-DEZ JAN-83 SQL> SELECT MIN(ename), MAX(ename) 2 FROM emp; MIN(ENAME) MAX(ENAME) ADAMS WARD

31 Função COUNT COUNT(*) retorna o número de linhas na tabela
SQL> SELECT COUNT(*) 2 FROM emp 3 WHERE depto_num = 30; COUNT(*) 6 Class Management Note Demo: l5count1.sql, l5count2.sql Purpose: To illustrate using the COUNT(*) and COUNT(expr) functions.

32 Função COUNT COUNT(coluna) retorna o número de linhas não nulas da tabela SQL> SELECT COUNT(comis) 2 FROM emp 3 WHERE depto_num = 30; COUNT(COMIS) 4 SQL> SELECT COUNT(deptno) 2 FROM emp; COUNT(DEPTNO) 14 SQL> SELECT COUNT(DISTINCT (deptno)) 2 FROM emp; COUNT(DISTINCT(DEPTNO)) 3

33 Criando Grupos de Dados: A Cláusula GROUP BY
SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY group_by_expression] [ORDER BY column]; Divida as linhas de uma tabela em pequenos grupos usando a cláusula GROUP BY.

34 A Cláusula GROUP BY Colunas utilizadas em funções de grupo não precisam estar listadas no GROUP BY. SQL> SELECT AVG(sal) 2 FROM emp 3 GROUP BY depto_num; AVG(SAL) 2175 Class Management Note Demonstrate the query with and without the DEPTNO in the SELECT statement. SQL> SELECT deptno, AVG(sal) 2 FROM emp 3 GROUP BY deptno 4 ORDER BY AVG(sal); DEPTNO AVG(SAL)

35 Criando Grupos de Dados
EMP DEPTO_NUM SAL DEPTO_NUM AVG(SAL) 2175 “média salarial por departamento”

36 Utilizando GROUP BY em Múltiplas Colunas
SQL> SELECT depto_num, cargo, sum(sal) 2 FROM emp 3 GROUP BY depto_num, cargo; DEPTO_NUM CARGO SUM(SAL) 10 CAIXA 10 GERENTE 10 PRESIDENTE 20 ANALISTA 20 CAIXA ... 9 rows selected.

37 TRABALHANDO COM O BANCO DE DADOS REALIZADO NA AVALIAÇÃO
Select * From disciplinas

38 Select estados.nome, Estados.siglas, Cidades.nome From Estados Inner join cidades On estados.id.estado = cidade.id_estado

39 resultado

40 Select a. nome as aluno, e. nome as estado. E. sigla, c
Select a.nome as aluno, e.nome as estado. E.sigla, c.nome as cidade from alunos as a inner join cidades as c on c.id.cidade = a.id.cidade inner join estado as e on e.id_estado = c.id_estado

41 Resultado

42 FIM! POR FAVOR ESTUDE-ME EM CASA!
Schedule: Timing Topic 30 minutes Lecture 20 minutes Practice 50 minutes Total


Carregar ppt "SELECT Professor: Virgílio Fries Müller www. vfm.com.br"

Apresentações semelhantes


Anúncios Google