SELECT Professor: Virgílio Fries Müller www. vfm.com.br.
-
Upload
mirella-barata-arantes -
Category
Documents
-
view
217 -
download
2
Transcript of SELECT Professor: Virgílio Fries Müller www. vfm.com.br.
![Page 1: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/1.jpg)
SELECT
Professor:Virgílio Fries Müller
www. vfm.com.br
![Page 2: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/2.jpg)
Select
![Page 3: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/3.jpg)
O Comando SELECT
▫SELECT identifica as colunas▫FROM identifica as tabelas
SELECT [DISTINCT] {*, column [alias],...}FROM table;
![Page 4: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/4.jpg)
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;
![Page 5: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/5.jpg)
Definindo Alias para Colunas
SQL> SELECT enome AS nome, sal AS salario 2 FROM emp;
NOME SALARIO------------- ---------...
SQL> SELECT enome "Nome", 2 sal*12 “Salario Anual" 3 FROM emp;
Nome Salario Anual------------- -------------...
![Page 6: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/6.jpg)
Eliminando Linhas Duplicadas▫DISTINCT
SQL> SELECT DISTINCT depto_num 2 FROM emp;
DEPTO_NUM--------- 10 20 30
![Page 7: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/7.jpg)
Restringindo consultas e ordenando resultados
![Page 8: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/8.jpg)
Utilizando a Cláusula WHERESQL> SELECT enome, cargo, depto_num 2 FROM emp 3 WHERE cargo='CAIXA';
ENOME CARGO DEPTO_NUM---------- --------- ---------RONALDO CAIXA 30MANUEL CAIXA 20PAULO CAIXA 20LUCIANO CAIXA 10
![Page 9: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/9.jpg)
Operadores de ComparaçãoOperador
=
>
>=
<
<=
<>
Significado
Igual a
Maior que
Maior ou igual a
Menor que
Menor ou igual a
Diferente de
![Page 10: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/10.jpg)
Outros OperadoresOperador
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)
![Page 11: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/11.jpg)
Operador BETWEEN
ENOME SAL---------- ---------MARIA 1250SERGIO 1500MATHEUS 1250PAULO 1100LUCIANO 1300
SQL> SELECT enome, sal 2 FROM emp 3 WHERE sal BETWEEN 1000 AND 1500;
limite inferior
limite superior
![Page 12: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/12.jpg)
Operador INSQL> SELECT enum, enome, sal, ger 2 FROM emp 3 WHERE ger IN (7902, 7566, 7788);
ENUM ENOME SAL GER--------- ---------- --------- --------- 7902 JOSE 3000 7566 7369 MANUEL 800 7902 7788 FABIO 3000 7566 7876 PAULO 1100 7788
![Page 13: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/13.jpg)
SQL> SELECT enome 2 FROM emp 3 WHERE enome LIKE ‘M%';
Operador LIKE▫Utilize o operador LIKE para realizar
pesquisas por padrões (wildcards). % substitui zero ou mais caracteres _ substitui um único caracter
![Page 14: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/14.jpg)
SQL> SELECT enome, ger 2 FROM emp 3 WHERE ger IS NULL;
ENOME GER---------- ---------CARLOS
Operador IS NULL▫Testando valores nulos (null)
![Page 15: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/15.jpg)
Operadores LógicosOperador
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)
![Page 16: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/16.jpg)
Operador NOTSQL> SELECT enome, cargo 2 FROM emp 3 WHERE cargo NOT IN('CAIXA','GERENTE','ANALISTA');
ENOME CARGO---------- ---------CARLOS PRESIDENTEMARIA VENDEDORCELSO VENDEDORSERGIO VENDEDORMATHEUS VENDEDOR
![Page 17: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/17.jpg)
Cláusula ORDER BYSQL> SELECT enome, cargo, depto_num, dtinicio 2 FROM emp 3 ORDER BY dtinicio DESC;
ENOME CARGO DEPTO_NUM DTINICIO---------- --------- --------- ---------PAULO CAIXA 20 12-JAN-83FABIO ANALISTA 20 09-DEC-82LUCIANO CAIXA 10 23-JAN-82RONALDO CAIXA 30 03-DEC-81JOSE ANALISTA 20 03-DEC-81CARLOS PRESIDENTE 10 17-NOV-81MARIA VENDEDOR 30 28-SEP-81...14 rows selected.
![Page 18: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/18.jpg)
Manipulando dados
![Page 19: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/19.jpg)
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 tableSET column = value [, column = value][WHERE condition];
![Page 20: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/20.jpg)
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.1 row updated.
SQL> UPDATE emp 2 SET depto_num = 20;14 rows updated.14 rows updated.
![Page 21: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/21.jpg)
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.1 row deleted.
SQL> DELETE FROM depto;4 rows deleted.4 rows deleted.
![Page 22: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/22.jpg)
Exibindo dados de múltiplas tabelas
![Page 23: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/23.jpg)
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.columnFROM table1, table2WHERE table1.column1 = table2.column2;
![Page 24: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/24.jpg)
Criando Alias para TabelasSQL> 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, 2 d.depto_num, d.depto_loc 3 FROM emp e, depto d 4 WHERE e.depto_num = d.depto_num;
![Page 25: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/25.jpg)
Funções de Grupo(Agregação)
![Page 26: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/26.jpg)
O que são Funções de Grupo?▫Funções de grupo operam em conjuntos de
linhas, produzindo um resultado por grupo.EMPEMP
““o maior salário o maior salário da tabela EMP”da tabela EMP”
DEPTO_NUM SAL--------- --------- 10 2450 10 5000 10 1300 20 800 20 1100 20 3000 20 3000 20 2975 30 1600 30 2850 30 1250 30 950 30 1500 30 1250
MAX(SAL)--------- 5000
![Page 27: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/27.jpg)
AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)-------- --------- --------- --------- 1400 1600 1250 5600
SQL> SELECT AVG(sal), MAX(sal), 2 MIN(sal), SUM(sal) 3 FROM emp 4 WHERE cargo LIKE ‘VEND%';
Funções AVG e SUM▫Utilize o AVG e SUM apenas para dados
numéricos
![Page 28: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/28.jpg)
SQL> SELECT MIN(dtinicio), MAX(dtinicio) 2 FROM emp;
MIN(DTINI MAX(DTINI--------- ---------17-DEZ-80 12-JAN-83
Funções MIN e MAX▫Utilize MIN e MAX para qualquer tipo de
dado
![Page 29: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/29.jpg)
COUNT(*)--------- 6
SQL> SELECT COUNT(*) 2 FROM emp 3 WHERE depto_num = 30;
Função COUNT▫COUNT(*) retorna o número de linhas na
tabela
![Page 30: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/30.jpg)
COUNT(COMIS)------------ 4
SQL> SELECT COUNT(comis) 2 FROM emp 3 WHERE depto_num = 30;
Função COUNT▫COUNT(coluna) retorna o número de linhas
não nulas da tabela
![Page 31: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/31.jpg)
Criando Grupos de Dados: A Cláusula GROUP BY
▫Divida as linhas de uma tabela em pequenos grupos usando a cláusula GROUP BY.
SELECT column, group_function(column)FROM table[WHERE condition][GROUP BY group_by_expression][ORDER BY column];
![Page 32: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/32.jpg)
SQL> SELECT AVG(sal) 2 FROM emp 3 GROUP BY depto_num;
A Cláusula GROUP BY▫Colunas utilizadas em funções de grupo
não precisam estar listadas no GROUP BY.
AVG(SAL)--------- 2916.6667 21751566.6667
![Page 33: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/33.jpg)
Criando Grupos de Dados EMPEMP
““média salarial média salarial por por
departamento”departamento”
2916.66672916.6667
21752175
1566.66671566.6667
DEPTO_NUM SAL--------- --------- 10 2450 10 5000 10 1300 20 800 20 1100 20 3000 20 3000 20 2975 30 1600 30 2850 30 1250 30 950 30 1500 30 1250
DEPTO_NUM AVG(SAL) --------- --------- 10 2916.6667 20 2175 30 1566.6667
![Page 34: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/34.jpg)
SQL> SELECT depto_num, cargo, sum(sal) 2 FROM emp 3 GROUP BY depto_num, cargo;
Utilizando GROUP BY em Múltiplas Colunas
DEPTO_NUM CARGO SUM(SAL)--------- --------- --------- 10 CAIXA 1300 10 GERENTE 2450 10 PRESIDENTE 5000 20 ANALISTA 6000 20 CAIXA 1900...9 rows selected.
![Page 35: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/35.jpg)
TRABALHANDO COM O BANCO DE DADOS REALIZADO NA AVALIAÇÃO
Select * From disciplinas
![Page 36: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/36.jpg)
Select estados.nome, Estados.siglas,Cidades.nomeFromEstadosInner join cidadesOn estados.id.estado = cidade.id_estado
![Page 37: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/37.jpg)
resultado
![Page 38: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/38.jpg)
Select a.nome as aluno,e.nome as estado.E.sigla,c.nome as cidadefromalunos as ainner join cidades as con c.id.cidade = a.id.cidadeinner join estado as eon e.id_estado = c.id_estado
![Page 39: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/39.jpg)
Resultado
![Page 40: SELECT Professor: Virgílio Fries Müller www. vfm.com.br.](https://reader036.fdocuments.in/reader036/viewer/2022062522/570638641a28abb8239015bb/html5/thumbnails/40.jpg)
FIM!
POR FAVORESTUDE-ME EM CASA!