Banco de Dados I (2019.1) Prof. Tiago Eugenio de Melo

Tamanho: px
Começar a partir da página:

Download "Banco de Dados I (2019.1) Prof. Tiago Eugenio de Melo"

Transcrição

1 Banco de Dados I (2019.1) Prof. Tiago Eugenio de Melo tmelo@uea.edu.br 1

2 Criando Instruções SQL Básicas Objetivos: Listar os recursos das instruções SELECT SQL Executar uma instrução SELECT básica Diferenciar instruções SQL e comandos SQL*Plus 2

3 Recursos das Instruções SELECT SQL Seleção Projeção Tabela 1 Tabela 1 Junção Tabela 1 Tabela 2 3

4 Instrução SELECT Básica SELECT FROM [DISTINCT] {*, coluna [apelido],...} tabela; SELECT identifica que colunas. FROM identifica qual tabela. 4

5 Criando Instruções SQL Instruções SQL não fazem distinção entre maiúsculas e minúsculas. Instruções SQL podem estar em uma ou mais linhas. Palavras-chave não podem ser abreviadas ou divididas entre as linhas. Normalmente, as cláusulas são colocadas em linhas separadas. Guias e endentações são usadas para aperfeiçoar a legibilidade. 5

6 Selecionando Todas as Colunas SQL> SELECT * 2 FROM dept; DEPTNO DNAME LOC ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 6

7 Selecionando Colunas Específicas SQL> SELECT deptno, loc 2 FROM dept; DEPTNO LOC NEW YORK 20 DALLAS 30 CHICAGO 40 BOSTON 7

8 Defaults de Cabeçalho de Coluna Justificada default Esquerda: Dados de caractere e data Direita: Dados numéricos Exibição default: Letra maiúscula 8

9 Expressões Aritméticas Criar expressões com dados NUMBER e DATE usando operadores aritméticos Operador + - * / Descrição Adicionar Subtrair Multiplicar Dividir 9

10 Usando Operadores Aritméticos SQL> SELECT ename, sal, sal FROM emp; ENAME SAL SAL KING BLAKE CLARK JONES MARTIN ALLEN rows selected. 10

11 Precedência do Operador * / + _ A multiplicação e a divisão têm prioridade sobre a adição e a subtração. Os operadores com a mesma prioridade são avaliados da esquerda para a direita. Os parênteses são usados para forçar a avaliação e para esclarecer as instruções. 11

12 Precedência do Operador SQL> SELECT ename, sal, 12*sal FROM emp; ENAME SAL 12*SAL KING BLAKE CLARK JONES MARTIN ALLEN rows selected. 12

13 Usando Parênteses SQL> SELECT ename, sal, 12*(sal+100) 2 FROM emp; ENAME SAL 12*(SAL+100) KING BLAKE CLARK JONES MARTIN rows selected. 13

14 Definindo um Valor Nulo Um valor nulo não está disponível, não é atribuído, é desconhecido ou não é aplicável. Um valor nulo não é o mesmo que um zero ou um espaço em branco. SQL> SELECT ename, job, sal, comm 2 FROM emp; ENAME JOB SAL COMM KING PRESIDENT 5000 BLAKE MANAGER TURNER SALESMAN rows selected. 14

15 Valores Nulos nas Expressões Aritméticas Expressões aritméticas contendo um valor nulo são avaliadas como nulo. SQL> select ename, 12*sal+comm 2 from emp 3 WHERE ename='king'; ENAME 12*SAL+COMM KING 15

16 Definindo um Apelido de Coluna Renomeia um cabeçalho de coluna É útil para cálculos Segue imediatamente o nome da coluna Palavra-chave AS opcional entre o nome da coluna e o apelido Necessita de aspas duplas caso contenha espaços ou caracteres especiais ou faça distinção entre maiúsculas e minúsculas 16

17 Usando Apelidos de Coluna SQL> SELECT ename AS name, sal salary 2 FROM emp; NAME SALARY SQL> SELECT ename "Name", 2 sal*12 "Annual Salary" 3 FROM emp; Name Annual Salary

18 Operador de Concatenação Concatena colunas ou strings de caractere a outras colunas É representado por duas barras Verticais - Cria uma coluna resultante que é uma expressão de caracteres 18

19 Usando um Operador de Concatenação SQL> SELECT ename job AS "Employees" 2 FROM emp; Employees KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER MARTINSALESMAN ALLENSALESMAN rows selected. 19

20 Strings Literais de Caracteres Uma literal é um caractere, um número ou uma data incluída na lista SELECT. Os valores literais de caractere e data devem estar entre aspas simples. Cada string de caractere é gerada uma vez para cada linha retornada. 20

21 Usando Strings Literais de Caracteres SQL> SELECT ename ' is a ' job 2 AS "Employee Details" 3 FROM emp; Employee Details KING is is a PRESIDENT BLAKE is is a MANAGER CLARK is is a MANAGER JONES is is a MANAGER MARTIN is is a SALESMAN rows selected. 21

22 Linhas Duplicadas A exibição default das consultas é de todas as linhas, incluindo linhas duplicadas. SQL> SELECT deptno 2 FROM emp; DEPTNO rows selected. 22

23 Eliminando Linhas Duplicadas Elimine linhas duplicadas usando a palavra-chave DISTINCT na cláusula SELECT. SQL> SELECT DISTINCT deptno 2 FROM emp; DEPTNO

24 Exibindo a Estrutura de Tabela Use o comando DESCRIBE do SQL*Plus para exibir a estrutura de uma tabela. DESC[RIBE] nome da da tabela SQL> DESCRIBE dept Name Null? Type DEPTNO NOT NULL NUMBER(2) DNAME VARCHAR2(14) LOC VARCHAR2(13) 24

25 Restringindo e Classificando Dados Objetivos: Limitar linhas recuperadas por uma consulta Classificar linhas recuperadas por uma consulta 25

26 Limitando Linhas Usando uma Seleção EMP EMPNO ENAME JOB... DEPTNO 7839 KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER " recuperar todos os funcionários do departamento 10" EMP EMPNO ENAME JOB... DEPTNO 7839 KING PRESIDENT CLARK MANAGER MILLER CLERK 10 26

27 Limitando Linhas Selecionadas Restringe as linhas retornadas usando a cláusula WHERE. SELECT [DISTINCT] {* coluna [apelido],...} FROM tabela [WHERE condição(ões)]; A cláusula WHERE segue a cláusula FROM. 27

28 Usando a Cláusula WHERE SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE job='clerk'; ENAME JOB DEPTNO JAMES CLERK 30 SMITH CLERK 20 ADAMS CLERK 20 MILLER CLERK 10 28

29 Strings de Caractere e Datas As strings de caractere e valores de data aparecem entre aspas simples. Os valores de caractere fazem distinção entre maiúsculas e minúsculas e os valores de data diferenciam formatos. O formato de data default é DD-MON-YY. SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE ename = 'JAMES'; 29

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

31 Usando Operadores de Comparação SQL> SELECT ename, sal, comm 2 FROM emp 3 WHERE sal<=comm; ENAME SAL COMM MARTIN

32 Outros Operadores de Comparação Operador BETWEEN...AND... IN(list) LIKE IS NULL IS NOT NULL Significado Entre dois valores (inclusive) Vincula qualquer um de uma lista de valores Vincula um padrão de caractere É um valor nulo Não é um valor nulo 32

33 Usando o Operador BETWEEN Use o operador BETWEEN para exibir linhas baseadas em uma faixa de valores. SQL> SELECT ename, sal 2 FROM emp 3 WHERE sal BETWEEN 1000 AND 1500; ENAME SAL MARTIN 1250 TURNER 1500 WARD 1250 ADAMS 1100 MILLER 1300 Limite inferior Limite superior 33

34 Usando o Operador IN Use o operador IN para testar os valores de uma lista. SQL> SELECT empno, ename, sal, mgr 2 FROM emp 3 WHERE mgr IN (7902, 7566, 7788); EMPNO ENAME SAL MGR FORD SMITH SCOTT ADAMS

35 Usando o Operador LIKE Use o operador LIKE para executar pesquisas curinga de valores de string de pesquisa válidos. As condições de pesquisa podem conter caracteres literais ou números. % denota zero ou muitos caracteres. _ denota um caractere. SQL> SELECT ename 2 FROM emp 3 WHERE ename LIKE 'S%'; 35

36 Usando o Operador LIKE Você pode combinar caracteres de vinculação de padrão. SQL> SELECT ename 2 FROM emp 3 WHERE ename LIKE '_A%'; ENAME MARTIN JAMES WARD É possível usar o identificador ESCAPE para procurar por "%" ou "_". 36

37 Usando o Operador IS NULL Teste para valores nulos com o operador IS NULL. SQL> SELECT ename, mgr 2 FROM emp 3 WHERE mgr IS NULL; ENAME MGR KING 37

38 Operadores Lógicos Operador AND OR NOT Significado Retorna TRUE se as condições de componentes forem TRUE Retorna TRUE se uma condição de componente for TRUE Retorna TRUE se a condição seguinte for FALSE 38

39 Usando o Operador AND AND exige que ambas as condições sejam TRUE. SQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>= AND job='clerk'; EMPNO ENAME JOB SAL ADAMS CLERK MILLER CLERK

40 Usando o Operador OR OR exige que uma condição seja TRUE. SQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>= OR job='clerk'; EMPNO ENAME JOB SAL KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER MARTIN SALESMAN JAMES CLERK rows selected. 40

41 Usando o Operador NOT SQL> SELECT ename, job 2 FROM emp 3 WHERE job NOT IN ('CLERK','MANAGER','ANALYST'); ENAME JOB KING PRESIDENT MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN 41

42 Regras de Precedência Ordem de Avaliação Operador 1 Todos os operadores de comparação 2 NOT 3 AND 4 OR Sobreponha regras de precedência usando parênteses. 42

43 Regras de Precedência SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE job='salesman' 4 OR job='president' 5 AND sal>1500; ENAME JOB SAL KING PRESIDENT 5000 MARTIN SALESMAN 1250 ALLEN SALESMAN 1600 TURNER SALESMAN 1500 WARD SALESMAN

44 Regras de Precedência Use parênteses para forçar a prioridade. SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE (job='salesman' 4 OR job='president') 5 AND sal>1500; ENAME JOB SAL KING PRESIDENT 5000 ALLEN SALESMAN

45 Cláusula ORDER BY Classificar as linhas com a cláusula ORDER BY ASC: ordem crescente, default DESC: ordem decrescente A cláusula ORDER BY vem depois na instrução SELECT. SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate; ENAME JOB DEPTNO HIREDATE SMITH CLERK DEC-80 ALLEN SALESMAN FEB rows selected. 45

46 Classificando em Ordem Decrescente SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate DESC; ENAME JOB DEPTNO HIREDATE ADAMS CLERK JAN-83 SCOTT ANALYST DEC-82 MILLER CLERK JAN-82 JAMES CLERK DEC-81 FORD ANALYST DEC-81 KING PRESIDENT NOV-81 MARTIN SALESMAN SEP rows selected. 46

47 Classificando por Apelido de Coluna SQL> SELECT empno, ename, sal*12 annsal 2 FROM emp 3 ORDER BY annsal; EMPNO ENAME ANNSAL SMITH JAMES ADAMS MARTIN WARD MILLER TURNER rows selected. 47

48 Classificando por Várias Colunas A ordem da lista ORDER BY é a ordem de classificação. SQL> SELECT ename, deptno, sal 2 FROM emp 3 ORDER BY deptno, sal DESC; ENAME DEPTNO SAL KING CLARK MILLER FORD rows selected. Você pode classificar por uma coluna que não esteja na lista SELECT. 48

49 Sumário SELECT [DISTINCT] {* coluna [apelido],...} FROM tabela [WHERE condição(ões)] [ORDER BY {coluna, expr, apelido} [ASC DESC]]; 49

50 Funções de Uma Única Linha Objetivos: Descrever vários tipos de funções disponíveis no SQL Usar funções de data, número e caractere nas instruções SELECT Descrever o uso das funções de conversão 50

51 Funções SQL Entrada arg 1 arg 2 arg n Função A função executa a ação Saída Resultado valor 51

52 Dois Tipos de Funções SQL Funções Funções de Uma Única Linha Funções de Várias Linhas 52

53 Funções de Uma Única Linha Manipulam itens de dados Aceitam argumentos e retornam um valor Agem em cada linha retornada Retornam um resultado por linha Podem modificar o tipo de dados Podem ser aninhadas function_name (coluna expressão, [arg1, arg2,...]) 53

54 Funções de Uma Única Linha Caractere Geral Funções de Uma Única Linha Número Conversão Data 54

55 Funções de Caractere Funções de caractere Funções de Conversão de Maiúsculas e Minúsculas LOWER UPPER INITCAP Funções de manipulação de caractere CONCAT SUBSTR LENGTH INSTR LPAD TRIM 55

56 Exibindo Dados de Várias Tabelas Objetivos: Criar instruções SELECT para obter acesso aos dados a partir de mais de uma tabela usando as junções idênticas e não-idênticas Visualizar dados que, em geral, não correspondem a uma condição de junção usando junções externas Unindo uma tabela a ela mesma 56

57 Obtendo Dados de Várias Tabelas EMP EMPNO ENAME... DEPTNO KING BLAKE MILLER DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON EMPNO EMPNO DEPTNO LOC LOC NEW NEW YORK YORK CHICAGO NEW NEW YORK YORK DALLAS CHICAGO CHICAGO rows rows selected. 57

58 O Que É uma Junção? Use uma junção para consultar dados a partir de uma ou mais tabelas. SELECT FROM WHERE tabela1.coluna, tabela2.coluna tabela1, tabela2 tabela1.coluna1 = tabela2.coluna2; Criar uma condição de junção na cláusula WHERE. Prefixar o nome da coluna com o nome da tabela quando o mesmo nome da coluna aparecer em mais de uma tabela. 58

59 Produto Cartesiano Um produto cartesiano é formado quando: Uma condição de junção estiver omitida Uma condição de junção estiver inválida Todas as linhas na primeira tabela estão unidas a todas as linhas da segunda tabela Para evitar um produto Cartesiano, sempre inclua uma condição de junção válida em uma cláusula WHERE. 59

60 Gerando Produto Cartesiano EMP (14 linhas) EMPNO EMPNOENAME ENAME DEPTNO DEPTNO KING BLAKE MILLER DEPT (4 linhas) DEPTNO DNAME DNAME LOC LOC ACCOUNTING NEW NEW YORK YORK RESEARCH DALLAS SALES SALES CHICAGO OPERATIONS BOSTON "Produto Cartesiano: 14*4=56 linhas" ENAME ENAME DNAME DNAME KING KING ACCOUNTING BLAKE BLAKE ACCOUNTING KING KING RESEARCH BLAKE BLAKE RESEARCH rows rows selected. 60

61 Tipos de Junções Junção idêntica Junção não-idêntica Junção externa Autojunção 61

62 O Que É uma Junção Idêntica? EMP EMPNO ENAME DEPTNO KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES WARD FORD SMITH rows selected. Chave estrangeira DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 30 SALES CHICAGO 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 20 RESEARCH DALLAS 20 RESEARCH DALLAS rows selected. Chave primária 62

63 Recuperando Registros com Junções Idênticas SQL> SELECT emp.empno, emp.ename, emp.deptno, 2 dept.deptno, dept.loc 3 FROM emp, dept 4 WHERE emp.deptno=dept.deptno; EMPNO ENAME DEPTNO DEPTNO LOC KING NEW YORK 7698 BLAKE CHICAGO 7782 CLARK NEW YORK 7566 JONES DALLAS rows selected. 63

64 Qualificando Nomes de Coluna Ambíguos Use os prefixos de tabela para qualificar nomes de coluna que estão em várias tabelas. Melhore o desempenho usando os prefixos de tabela. Diferencie colunas que possuem nomes idênticos, mas que residam em tabelas diferentes usando apelidos de coluna. 64

65 Condições de Pesquisa Adicional Usando o Operador AND EMP EMPNO ENAME DEPTNO KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES WARD FORD SMITH rows selected. DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 30 SALES CHICAGO 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 20 RESEARCH DALLAS 20 RESEARCH DALLAS rows selected. 65

66 Usando Apelidos de Tabela Simplifique consultas usando apelidos de tabela. SQL> SELECT emp.empno, emp.ename, emp.deptno, 2 dept.deptno, dept.loc 3 FROM emp, dept 4 WHERE emp.deptno=dept.deptno; SQL> SELECT e.empno, e.ename, e.deptno, 2 d.deptno, d.loc 3 FROM emp e, dept d 4 WHERE e.deptno= d.deptno; 66

67 Usando Apelidos de Tabela Simplifique consultas usando apelidos de tabela. SQL> SELECT emp.empno, emp.ename, emp.deptno, 2 dept.deptno, dept.loc 3 FROM emp, dept 4 WHERE emp.deptno=dept.deptno; SQL> SELECT e.empno, e.ename, e.deptno, 2 d.deptno, d.loc 3 FROM emp e, dept d 4 WHERE e.deptno= d.deptno; 67

68 Unindo Mais de Duas Tabelas CUSTOMER NAME NAME CUSTID JOCKSPORTS TKB TKB SPORT SPORT SHOP SHOP VOLLYRITE JUST JUST TENNIS K+T K+T SPORTS SPORTS SHAPE SHAPE UP UP WOMENS SPORTS rows rows selected. 68

69 Unindo Mais de Duas Tabelas CUSTOMER NAME NAME CUSTID JOCKSPORTS TKB TKB SPORT SPORT SHOP SHOP VOLLYRITE JUST JUST TENNIS K+T K+T SPORTS SPORTS SHAPE SHAPE UP UP WOMENS SPORTS rows rows selected. ORD CUSTID ORDID ORDID rows rows selected. 69

70 Unindo Mais de Duas Tabelas CUSTOMER NAME NAME CUSTID JOCKSPORTS TKB TKB SPORT SPORT SHOP SHOP VOLLYRITE JUST JUST TENNIS K+T K+T SPORTS SPORTS SHAPE SHAPE UP UP WOMENS SPORTS rows rows selected. ORD CUSTID ORDID ORDID rows rows selected. 70

71 Unindo Mais de Duas Tabelas CUSTOMER NAME NAME CUSTID JOCKSPORTS TKB TKB SPORT SPORT SHOP SHOP VOLLYRITE JUST JUST TENNIS K+T K+T SPORTS SPORTS SHAPE SHAPE UP UP WOMENS SPORTS rows rows selected. ORD CUSTID ORDID ORDID ITEM ORDID ORDID ITEMID rows rows selected rows rows selected. 71

72 Unindo Mais de Duas Tabelas CUSTOMER NAME NAME CUSTID JOCKSPORTS TKB TKB SPORT SPORT SHOP SHOP VOLLYRITE JUST JUST TENNIS K+T K+T SPORTS SPORTS SHAPE SHAPE UP UP WOMENS SPORTS rows rows selected. ORD CUSTID ORDID ORDID ITEM ORDID ORDID ITEMID rows rows selected rows rows selected. 72

73 Junções Não-idênticas EMP EMPNO ENAME SAL KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES rows selected. SALGRADE GRADE LOSAL HISAL

74 Junções Não-idênticas EMP EMPNO ENAME SAL KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES rows selected. SALGRADE GRADE LOSAL HISAL "o salário na tabela EMP está entre salário inferior e salário superior na tabela SALGRADE" 74

75 Recuperando Registros com Junções Não-idênticas SQL> SELECT e.ename, e.sal, s.grade 2 FROM emp e, salgrade s 3 WHERE e.sal 4 BETWEEN s.losal AND s.hisal; ENAME SAL GRADE JAMES SMITH ADAMS rows selected. 75

76 Recuperando Registros com Junções Não-idênticas SQL> SELECT e.ename, e.sal, s.grade 2 FROM emp e, salgrade s 3 WHERE e.sal 4 BETWEEN s.losal AND s.hisal; ENAME SAL GRADE JAMES SMITH ADAMS rows selected. 76

77 Junções Externas EMP ENAME DEPTNO KING 10 BLAKE 30 CLARK 10 JONES DEPT DEPTNO DNAME ACCOUNTING 30 SALES 10 ACCOUNTING 20 RESEARCH OPERATIONS 77

78 Junções Externas EMP ENAME DEPTNO KING 10 BLAKE 30 CLARK 10 JONES DEPT DEPTNO DNAME ACCOUNTING 30 SALES 10 ACCOUNTING 20 RESEARCH OPERATIONS 78

79 Junções Externas EMP ENAME DEPTNO KING 10 BLAKE 30 CLARK 10 JONES DEPT DEPTNO DNAME ACCOUNTING 30 SALES 10 ACCOUNTING 20 RESEARCH OPERATIONS Nenhum funcionário do departamento OPERATIONS 79

80 Junções Externas Use uma junção externa para consultar também todas as linhas que em geral não atendem à condição de junção. O operador de junção externo é um sinal de adição (+). SELECT tabela1.coluna, tabela2.coluna FROM tabela1, tabela2 WHERE tabela1.coluna(+) = tabela2.coluna; 80

81 Junções Externas Use uma junção externa para consultar também todas as linhas que em geral não atendem à condição de junção. O operador de junção externo é um sinal de adição (+). SELECT tabela1.coluna, tabela2.coluna FROM tabela1, tabela2 WHERE tabela1.coluna(+) = tabela2.coluna; SELECT tabela1.coluna, tabela2.coluna FROM tabela1, tabela2 WHERE tabela1.coluna = tabela2.coluna(+); 81

82 Usando Junções Externas SQL> SELECT e.ename, d.deptno, d.dname 2 FROM emp e, dept d 3 WHERE e.deptno(+) = d.deptno 4 ORDER BY e.deptno; ENAME DEPTNO DNAME KING 10 ACCOUNTING CLARK 10 ACCOUNTING OPERATIONS 15 rows selected. 82

83 Usando Junções Externas SQL> SELECT e.ename, d.deptno, d.dname 2 FROM emp e, dept d 3 WHERE e.deptno(+) = d.deptno 4 ORDER BY e.deptno; ENAME DEPTNO DNAME KING 10 ACCOUNTING CLARK 10 ACCOUNTING OPERATIONS 15 rows selected. 83

84 Autojunções EMP (WORKER) EMPNO ENAME MGR KING 7698 BLAKE CLARK JONES MARTIN ALLEN 7698 EMP (MANAGER) EMPNO ENAME KING 7839 KING 7839 KING 7698 BLAKE 7698 BLAKE 84

85 Autojunções EMP (WORKER) EMPNO ENAME MGR KING 7698 BLAKE CLARK JONES MARTIN ALLEN 7698 EMP (MANAGER) EMPNO ENAME KING 7839 KING 7839 KING 7698 BLAKE 7698 BLAKE "MGR na tabela WORKER é igual a EMPNO na tabela MANAGER" 85

86 Unindo uma Tabela a Ela Mesma SQL> SELECT worker.ename ' works for ' manager.ename 2 FROM emp worker, emp manager 3 WHERE worker.mgr = manager.empno; WORKER.ENAME 'WORKSFOR' MANAG BLAKE works for KING CLARK works for KING JONES works for KING MARTIN works for BLAKE rows selected. 86

87 Unindo uma Tabela a Ela Mesma SQL> SELECT worker.ename ' works for ' manager.ename 2 FROM emp worker, emp manager 3 WHERE worker.mgr = manager.empno; WORKER.ENAME 'WORKSFOR' MANAG BLAKE works for KING CLARK works for KING JONES works for KING MARTIN works for BLAKE rows selected. 87

88 Sumário SELECT FROM WHERE tabela1.coluna, tabela2.coluna tabela1, tabela2 tabela1.coluna1 = tabela2.coluna2; Junção idêntica Junção não-idêntica Junção externa Autojunção 88

89 SQL: Lista de Exercício 1. Escreva uma query para mostrar o nome do empregado, número e nome do departamento para todos os empregados 2. Crie uma única lista de todos os cargos que estão no departamento Escreva uma query para mostrar o nome do empregado, nome e localização do departamento de todos os empregados que ganham comissão 4. Mostre o nome do empregado e nome do departamento para todo os empregado que tenha um A em seu nome. Salve em p4q4.sql. 5. Escreva uma query para mostrar o nome, cargo, número e nome do departamento de todos os empregados que trabalham em DALLAS 6. Mostre o nome e número do empregado com o seu respectivo gerente, nome e número. Nomeie as colunas como Employee, emp#, Manager, and Mgr#, respectivamente. Salve em p4q6.sql 7. Modifique p4q6.sql para mostrar todos os empregados, incluindo King, que não tem gerente. Salve em p4q7.sql. Execute. 89

90 SQL: Lista de Exercício 8. Crie uma query que mostre o nome do empregado, número do departamento e todos os empregados que trabalham no mesmo departamento. Nomeie cada coluna apropriadamente. 9. Mostre a estrutura da tabela SALGRADE. Crie uma query que mostre o nome, cargo, nome do departamento, salário e a faixa salarial de todos os empregados. 10. Crie uma query para mostrar o nome e data de contratação de todos empregados contratado após o Blake. 11. Mostre todos os nomes dos empregados com suas datas de contratações, nome dos gerentes e datas de contratações dos empregados que foram contratados antes dos seus gerentes. Nomeie as colunas como Employee, Emp Hiredate, Manager, and Mgr Hiredate, respectivamente. 12. Crie uma query que mostre o nome do empregado e salário como um montante de asteriscos. Cada asterisco significa centenas de dólares. Ordene os dados em ordem descendente de salário. Nomeie a coluna como EMPLOYEE_AND_THEIR_SALARIES. 90

91 Agregando Dados Usando Funções de Grupo Objetivos: Identificar as funções de grupo disponíveis Descrever o uso de funções de grupo Agrupar dados usando a cláusula GROUP BY Incluir ou excluir linhas agrupadas usando a cláusula HAVING 91

92 O Que São Funções de Grupo? As funções de grupo operam em conjuntos de linhas para fornecer um resultado por grupo. EMP DEPTNO SAL "salário máximo na tabela EMP" MAX(SAL)

93 O Que São Funções de Grupo? As funções de grupo operam em conjuntos de linhas para fornecer um resultado por grupo. EMP DEPTNO SAL "salário máximo na tabela EMP" MAX(SAL)

94 Tipos de Funções de Grupo AVG COUNT MAX MIN STDDEV SUM VARIANCE 94

95 Usando Funções de Grupo SELECT FROM [WHERE [GROUP BY [ORDER BY [coluna,] group_function(coluna) tabela condição] coluna] coluna]; 95

96 Usando Funções de Grupo SELECT FROM [WHERE [GROUP BY [ORDER BY [coluna,] group_function(coluna) tabela condição] coluna] coluna]; 96

97 Usando Funções AVG e SUM Você pode usar AVG e SUM para dados numéricos. SQL> SELECT AVG(sal), MAX(sal), 2 MIN(sal), SUM(sal) 3 FROM emp 4 WHERE job LIKE 'SALES%'; AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)

98 Usando Funções AVG e SUM Você pode usar AVG e SUM para dados numéricos. SQL> SELECT AVG(sal), MAX(sal), 2 MIN(sal), SUM(sal) 3 FROM emp 4 WHERE job LIKE 'SALES%'; AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)

99 Usando Funções MIN e MAX Você pode usar MIN e MAX para qualquer tipo de dados. SQL> SELECT MIN(hiredate), MAX(hiredate) 2 FROM emp; MIN(HIRED MAX(HIRED DEC JAN-83 99

100 Usando Funções MIN e MAX Você pode usar MIN e MAX para qualquer tipo de dados. SQL> SELECT MIN(hiredate), MAX(hiredate) 2 FROM emp; MIN(HIRED MAX(HIRED DEC JAN

101 Usando a Função COUNT COUNT(*) retorna o número de linhas em uma tabela. SQL> SELECT COUNT(*) 2 FROM emp 3 WHERE deptno = 30; COUNT(*)

102 Usando a Função COUNT COUNT(*) retorna o número de linhas em uma tabela. SQL> SELECT COUNT(*) 2 FROM emp 3 WHERE deptno = 30; COUNT(*)

103 Usando a Função COUNT COUNT(expr) retorna o número de linhas não nulas. SQL> SELECT COUNT(comm) 2 FROM emp 3 WHERE deptno = 30; COUNT(COMM)

104 Usando a Função COUNT COUNT(expr) retorna o número de linhas não nulas. SQL> SELECT COUNT(comm) 2 FROM emp 3 WHERE deptno = 30; COUNT(COMM)

105 Funções de Grupo e Valores Nulos As funções de grupo ignoram valores nulos na coluna. SQL> SELECT AVG(comm) 2 FROM emp; AVG(COMM)

106 Funções de Grupo e Valores Nulos As funções de grupo ignoram valores nulos na coluna. SQL> SELECT AVG(comm) 2 FROM emp; AVG(COMM)

107 Usando a Função NVL com Funções de Grupo A função NVL força as funções de grupo a incluírem valores nulos. SQL> SELECT AVG(NVL(comm,0)) 2 FROM emp; AVG(NVL(COMM,0))

108 Usando a Função NVL com Funções de Grupo A função NVL força as funções de grupo a incluírem valores nulos. SQL> SELECT AVG(NVL(comm,0)) 2 FROM emp; AVG(NVL(COMM,0))

109 Criando Grupos de Dados EMP DEPTNO SAL "salário médio na tabela EMP para cada departamento" DEPTNO AVG(SAL)

110 Criando Grupos de Dados EMP DEPTNO SAL "salário médio na tabela EMP para cada departamento" DEPTNO AVG(SAL)

111 Criando Grupos de Dados EMP DEPTNO SAL "salário médio na tabela EMP para cada departamento" DEPTNO AVG(SAL)

112 Criando Grupos de Dados EMP DEPTNO SAL "salário médio na tabela EMP para cada departamento" DEPTNO AVG(SAL)

113 Criando Grupos de Dados EMP DEPTNO SAL "salário médio na tabela EMP para cada departamento" DEPTNO AVG(SAL)

114 Criando Grupos de Dados EMP DEPTNO SAL "salário médio na tabela EMP para cada departamento" DEPTNO AVG(SAL)

115 Criando Grupos de Dados EMP DEPTNO SAL "salário médio na tabela EMP para cada departamento" DEPTNO AVG(SAL)

116 Criando Grupos de Dados EMP DEPTNO SAL "salário médio na tabela EMP para cada departamento" DEPTNO AVG(SAL)

117 Criando Grupos de Dados EMP DEPTNO SAL "salário médio na tabela EMP para cada departamento" DEPTNO AVG(SAL)

118 Criando Grupos de Dados EMP DEPTNO SAL "salário médio na tabela EMP para cada departamento" DEPTNO AVG(SAL)

119 Criando Grupos de Dados: Cláusula GROUP BY SELECT FROM [WHERE [GROUP BY [ORDER BY coluna, group_function(coluna) tabela condição] group_by_expression] coluna]; Divida linhas de uma tabela em grupos menores usando a cláusula GROUP BY. 119

120 Criando Grupos de Dados: Cláusula GROUP BY SELECT FROM [WHERE [GROUP BY [ORDER BY coluna, group_function(coluna) tabela condição] group_by_expression] coluna]; Divida linhas de uma tabela em grupos menores usando a cláusula GROUP BY. 120

121 Usando a Cláusula GROUP BY Todas as colunas na lista SELECT que não estejam em funções de grupo devem estar na cláusula GROUP BY SQL> SELECT deptno, AVG(sal) 2 FROM emp 3 GROUP BY deptno; DEPTNO AVG(SAL)

122 Usando a Cláusula GROUP BY Todas as colunas na lista SELECT que não estejam em funções de grupo devem estar na cláusula GROUP BY SQL> SELECT deptno, AVG(sal) 2 FROM emp 3 GROUP BY deptno; DEPTNO AVG(SAL)

123 Usando a Cláusula GROUP BY A coluna GROUP BY não precisa estar na lista SELECT SQL> SELECT AVG(sal) 2 FROM emp 3 GROUP BY deptno; AVG(SAL)

124 Usando a Cláusula GROUP BY A coluna GROUP BY não precisa estar na lista SELECT SQL> SELECT AVG(sal) 2 FROM emp 3 GROUP BY deptno; AVG(SAL)

125 Agrupando por Mais de Uma Coluna EMP DEPTNO JOB SAL MANAGER PRESIDENT CLERK CLERK CLERK ANALYST ANALYST MANAGER SALESMAN MANAGER SALESMAN CLERK SALESMAN SALESMAN 1250 "soma de salários na tabela EMP para cada cargo, agrupados por departamento" DEPTNO JOB SUM(SAL) CLERK 1300 MANAGER 2450 PRESIDENT 5000 ANALYST 6000 CLERK 1900 MANAGER 2975 CLERK 950 MANAGER 2850 SALESMAN

126 Agrupando por Mais de Uma Coluna EMP DEPTNO JOB SAL MANAGER PRESIDENT CLERK CLERK CLERK ANALYST ANALYST MANAGER SALESMAN MANAGER SALESMAN CLERK SALESMAN SALESMAN 1250 "soma de salários na tabela EMP para cada cargo, agrupados por departamento" DEPTNO JOB SUM(SAL) CLERK 1300 MANAGER 2450 PRESIDENT 5000 ANALYST 6000 CLERK 1900 MANAGER 2975 CLERK 950 MANAGER 2850 SALESMAN

127 Usando a Cláusula GROUP BY em Várias Colunas SQL> SELECT deptno, job, sum(sal) 2 FROM emp 3 GROUP BY deptno, job; DEPTNO JOB SUM(SAL) CLERK MANAGER PRESIDENT ANALYST CLERK rows selected. 127

128 Usando a Cláusula GROUP BY em Várias Colunas SQL> SELECT deptno, job, sum(sal) 2 FROM emp 3 GROUP BY deptno, job; DEPTNO JOB SUM(SAL) CLERK MANAGER PRESIDENT ANALYST CLERK rows selected. 128

129 Consultas Ilegais Usando Funções de Grupo Qualquer coluna ou expressão na lista SELECT que não seja uma função agregada deve estar na cláusula GROUP BY. SQL> SELECT deptno, COUNT(ename) 2 FROM emp; SELECT deptno, COUNT(ename) * ERROR at at line 1: 1: ORA-00937: Nenhuma função de de grupo de de grupo único (Not a single-group group function) 129

130 Consultas Ilegais Usando Funções de Grupo Qualquer coluna ou expressão na lista SELECT que não seja uma função agregada deve estar na cláusula GROUP BY. SQL> SELECT deptno, COUNT(ename) 2 FROM emp; Coluna ausente na cláusula GROUP BY SELECT deptno, COUNT(ename) * ERROR at at line 1: 1: ORA-00937: Nenhuma função de de grupo de de grupo único (Not a single-group group function) 130

131 Consultas Ilegais Usando Funções de Grupo Não é possível usar a cláusula WHERE para restringir grupos. Use a cláusula HAVING para restringir grupos. SQL> SELECT deptno, AVG(sal) 2 FROM emp 3 WHERE AVG(sal) > GROUP BY BY deptno; WHERE AVG(sal) > 2000 * ERROR at at line 3: 3: ORA-00934: A função de de grupo não é permitida aqui (Group function is is not allowed here) 131

132 Consultas Ilegais Usando Funções de Grupo Não é possível usar a cláusula WHERE para restringir grupos. Use a cláusula HAVING para restringir grupos. SQL> SELECT deptno, AVG(sal) 2 FROM emp 3 WHERE AVG(sal) > GROUP BY BY deptno; WHERE AVG(sal) > 2000 * ERROR at at line 3: 3: ORA-00934: A função de de grupo não é permitida aqui (Group function is is not allowed here) Não é possível usar a cláusula WHERE para restringir grupos 132

133 Excluindo Resultados do Grupo EMP DEPTNO SAL "salário máximo por departamento maior do que US$ 2.900" DEPTNO MAX(SAL)

134 Excluindo Resultados do Grupo EMP DEPTNO SAL "salário máximo por departamento maior do que US$ 2.900" DEPTNO MAX(SAL)

135 Excluindo Resultados do Grupo: Cláusula HAVING Use a cláusula HAVING para restringir grupos As linhas são agrupadas. A função de grupo é aplicada. Os grupos que correspondem à cláusula HAVING são exibidos. SELECT FROM [WHERE [GROUP BY [HAVING [ORDER BY coluna, group_function tabela condição] group_by_expression] group_condition] coluna]; 135

136 Excluindo Resultados do Grupo: Cláusula HAVING Use a cláusula HAVING para restringir grupos As linhas são agrupadas. A função de grupo é aplicada. Os grupos que correspondem à cláusula HAVING são exibidos. SELECT FROM [WHERE [GROUP BY [HAVING [ORDER BY coluna, group_function tabela condição] group_by_expression] group_condition] coluna]; 136

137 Usando a Cláusula HAVING SQL> SELECT deptno, max(sal) 2 FROM emp 3 GROUP BY deptno 4 HAVING max(sal)>2900; DEPTNO MAX(SAL)

138 Usando a Cláusula HAVING SQL> SELECT deptno, max(sal) 2 FROM emp 3 GROUP BY deptno 4 HAVING max(sal)>2900; DEPTNO MAX(SAL)

139 Usando a Cláusula HAVING SQL> SELECT job, SUM(sal) PAYROLL 2 FROM emp 3 WHERE job NOT LIKE 'SALES%' 4 GROUP BY job 5 HAVING SUM(sal)> ORDER BY SUM(sal); JOB PAYROLL ANALYST 6000 MANAGER

140 Usando a Cláusula HAVING SQL> SELECT job, SUM(sal) PAYROLL 2 FROM emp 3 WHERE job NOT LIKE 'SALES%' 4 GROUP BY job 5 HAVING SUM(sal)> ORDER BY SUM(sal); JOB PAYROLL ANALYST 6000 MANAGER

141 Aninhando Funções de Grupo Exiba o salário médio máximo SQL> SELECT max(avg(sal)) 2 FROM emp 3 GROUP BY deptno; MAX(AVG(SAL))

142 Aninhando Funções de Grupo Exiba o salário médio máximo SQL> SELECT max(avg(sal)) 2 FROM emp 3 GROUP BY deptno; MAX(AVG(SAL))

143 Sumário SELECT FROM [WHERE [GROUP BY [HAVING [ORDER BY coluna, group_function(coluna) tabela condição] group_by_expression] group_condition] coluna]; Ordem de avaliação das cláusulas: cláusula WHERE cláusula GROUP BY cláusula HAVING 143

144 Sumário SELECT FROM [WHERE [GROUP BY [HAVING [ORDER BY coluna, group_function(coluna) tabela condição] group_by_expression] group_condition] coluna]; Ordem de avaliação das cláusulas: cláusula WHERE cláusula GROUP BY cláusula HAVING 144

145 SQL: Lista de Exercício Determine se verdadeiro(v) ou falso(f) as seguintes declarações: 1. Funções de grupo trabalham em muitas linhas para produzir um resultado. 2. Funções de grupo usam nulls nos seus cálculos. 3. A cláusula WHERE restringe linhas antes de incluí-las em cálculos de funções de grupos. 4. Mostre o maior, o menor, a soma e a média dos salários de todos os empregados. Nomeie as colunas como Maximum, Minimum, Sum, and Average, respectivamente. Arredonde os resultados para inteiro. Salve em p5q4.sql. 5. Modifique p5q4.sql para mostrar o menor, o maior, a soma e a média dos salários para cada tipo de cargo. Salve em p5q5.sql. 6. Escreva uma query para mostrar o número de empregados com o mesmo cargo. 7. Determine o número de gerentes sem listá-los. Nomeie a coluna como Number of Managers. 145

146 SQL: Lista de Exercício Determine se verdadeiro(v) ou falso(f) as seguintes declarações: 8. Escreva uma query que mostre a diferença entre o maior e menor salário. Nomeie a coluna como DIFFERENCE. 9. Mostre o número do gerente e o salário mais baixo pago aos funcionários daquele gerente. Exclua o empregado que não possua gerente. Exclua qualquer grupo where o menor salário seja menor que $1000. Ordene por salário (descendente). 10. Escreva uma query para mostrar o nome do departamento, nome da localização, número de empregados, e média de salário para todos os empregados daquele departamento. Nomeie as colunas como dname, loc, Number of People, and Salary, respectivamente. 11. Crie uma query que mostre o número total de empregados e daquele total, o número que foram contratados em 1980, 1981, 1982, e Nomeie as colunas de forma apropriada. 146

147 Subconsultas Objetivos: Descrever os tipos de problemas que as subconsultas podem resolver Definir as subconsultas Listar os tipos de subconsultas Criar subconsultas de uma única linha e de várias linhas 147

148 Usando uma Subconsulta para Resolver um Problema "Quem tem um salário maior que o de Jones?" Consulta principal? "Que funcionários têm um salário maior que o salário de Jones?" Subconsulta? "Qual é o salário de Jones?" 148

149 Usando uma Subconsulta para Resolver um Problema "Quem tem um salário maior que o de Jones?" Consulta principal? "Que funcionários têm um salário maior que o salário de Jones?" Subconsulta? "Qual é o salário de Jones?" 149

150 Subconsultas SELECT FROM WHERE select_list tabela operador expr (SELECT FROM select_list tabela); A subconsulta (consulta interna) é executada uma vez antes da consulta principal. O resultado da subconsulta é usado pela consulta principal (consulta externa). 150

151 Subconsultas SELECT FROM WHERE select_list tabela operador expr (SELECT FROM select_list tabela); A subconsulta (consulta interna) é executada uma vez antes da consulta principal. O resultado da subconsulta é usado pela consulta principal (consulta externa). 151

152 Usando uma Subconsulta SQL> SELECT ename 2 FROM emp 3 WHERE sal > 4 (SELECT sal 5 FROM emp 6 WHERE empno=7566); 152

153 Usando uma Subconsulta SQL> SELECT ename 2 FROM emp WHERE sal > 4 (SELECT sal 5 FROM emp 6 WHERE empno=7566); 153

154 Usando uma Subconsulta SQL> SELECT ename 2 FROM emp WHERE sal > 4 (SELECT sal 5 FROM emp 6 WHERE empno=7566); ENAME KING FORD SCOTT 154

155 Diretrizes para o Uso de Subconsultas Coloque as subconsultas entre parênteses. Coloque as subconsultas no lado direito do operador de comparação. Não adicione uma cláusula ORDER BY a uma subconsulta. Use operadores de uma única linha com subconsultas de uma única linha. Use operadores de várias linhas com subconsultas de várias linhas. 155

156 Tipos de Subconsultas Subconsulta de uma única linha Consulta principal Subconsulta retorna CLERK Subconsulta de várias linhas Subconsulta de várias colunas 156

157 Tipos de Subconsultas Subconsulta de uma única linha Consulta principal Subconsulta Subconsulta de várias linhas Consulta principal Subconsulta retorna retorna CLERK CLERK MANAGER Subconsulta de várias colunas 157

158 Tipos de Subconsultas Subconsulta de uma única linha Consulta principal Subconsulta Subconsulta de várias linhas Consulta principal Subconsulta Consulta Main query principal Subconsulta Subquery retorna retorna Subconsulta de várias colunas retorna CLERK CLERK MANAGER CLERK 7900 MANAGER

159 Subconsultas de uma Única Linha Retorne somente uma linha Use operadores de comparação de uma única linha Operador = > >= < <= <> Significado Igual a Maior do que Maior do que ou igual a Menor do que Menor ou igual a Diferente de 159

160 Executando Subconsultas de uma Única Linha SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4 (SELECT job 5 FROM emp 6 WHERE empno = 7369) 7 AND sal > 8 (SELECT sal 9 FROM emp 10 WHERE empno = 7876); 160

161 Executando Subconsultas de uma Única Linha SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4 (SELECT job 5 FROM emp 6 WHERE empno = 7369) 7 AND sal > 8 (SELECT sal 9 FROM emp 10 WHERE empno = 7876); CLERK

162 Executando Subconsultas de uma Única Linha SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4 (SELECT job 5 FROM emp 6 WHERE empno = 7369) 7 AND sal > 8 (SELECT sal 9 FROM emp 10 WHERE empno = 7876); CLERK 1100 ENAME JOB MILLER CLERK 162

163 Usando Funções de Grupo em uma Subconsulta SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE sal = 4 (SELECT MIN(sal) 5 FROM emp); 163

164 Usando Funções de Grupo em uma Subconsulta SQL> SELECT ename, job, sal 2 FROM emp WHERE sal = 4 (SELECT MIN(sal) 5 FROM emp); 164

165 Usando Funções de Grupo em uma Subconsulta SQL> SELECT ename, job, sal 2 FROM emp WHERE sal = 4 (SELECT MIN(sal) 5 FROM emp); ENAME JOB SAL SMITH CLERK

166 Cláusula HAVING com Subconsultas O Oracle Server primeiro executa as subconsultas. O Oracle Server retorna os resultados para a cláusula HAVING da consulta principal. SQL> SELECT deptno, MIN(sal) 2 FROM emp 3 GROUP BY deptno 4 HAVING MIN(sal) > 5 (SELECT MIN(sal) 6 FROM emp 7 WHERE deptno = 20); 166

167 Cláusula HAVING com Subconsultas O Oracle Server primeiro executa as subconsultas. O Oracle Server retorna os resultados para a cláusula HAVING da consulta principal. SQL> SELECT deptno, MIN(sal) 2 FROM emp 3 GROUP BY deptno 4 HAVING MIN(sal) > (SELECT MIN(sal) 6 FROM emp 7 WHERE deptno = 20); 167

168 O que Há de Errado com esta Instrução? SQL> SELECT empno, ename 2 FROM emp 3 WHERE sal = 4 (SELECT MIN(sal) 5 FROM emp 6 GROUP BY deptno); 168

169 O que Há de Errado com esta Instrução? SQL> SELECT empno, ename 2 FROM emp 3 WHERE sal = 4 (SELECT MIN(sal) 5 FROM emp 6 GROUP BY deptno); 169

170 O que Há de Errado com esta Instrução? SQL> SELECT empno, ename 2 FROM emp 3 WHERE sal = 4 (SELECT MIN(sal) 5 FROM emp 6 GROUP BY deptno); Operador de uma única linha com subconsulta de várias linhas ERROR: ORA-01427: A subconsulta de de uma única linha retorna mais de de uma linha (Single-row subquery returns more than one row) no no rows selected 170

171 Esta Instrução Irá Funcionar? SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4 (SELECT job 5 FROM emp 6 WHERE ename='smythe'); 171

172 Esta Instrução Irá Funcionar? SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4 (SELECT job 5 FROM emp 6 WHERE ename='smythe'); 172

173 Esta Instrução Irá Funcionar? SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4 (SELECT job 5 FROM emp 6 WHERE ename='smythe'); no no rows selected A subconsulta não retorna nenhum valor 173

174 Subconsultas de Várias Linhas Retorne mais de uma linha Use operadores de comparação de várias linhas Operador IN ANY ALL Significado Igual a qualquer membro na lista Compare o valor a cada valor retornado pela subconsulta Compare o valor a todo valor retornado pela subconsulta 174

175 Usando o Operador ANY em Subconsultas de Várias Linhas SQL> SELECT empno, ename, job 2 FROM emp 3 WHERE sal < ANY 4 (SELECT sal 5 FROM emp 6 WHERE job = 'CLERK') 7 AND job <> 'CLERK'; 175

176 Usando o Operador ANY em Subconsultas de Várias Linhas SQL> SELECT empno, ename, job FROM emp WHERE sal < ANY (SELECT sal 5 FROM emp 6 WHERE job = 'CLERK') 7 AND job <> 'CLERK';

177 Usando o Operador ANY em Subconsultas de Várias Linhas SQL> SELECT empno, ename, job FROM emp WHERE sal < ANY (SELECT sal 5 FROM emp 6 WHERE job = 'CLERK') 7 AND job <> 'CLERK'; 1300 EMPNO ENAME JOB MARTIN SALESMAN 7521 WARD SALESMAN 177

178 Usando o Operador ALL em Subconsultas de Várias Linhas SQL> SELECT empno, ename, job 2 FROM emp 3 WHERE sal > ALL 4 (SELECT avg(sal) 5 FROM emp 6 GROUP BY deptno); 178

179 Usando o Operador ALL em Subconsultas de Várias Linhas SQL> SELECT empno, ename, job FROM emp WHERE sal > ALL 4 (SELECT avg(sal) 5 FROM emp 6 GROUP BY deptno); 179

180 Usando o Operador ALL em Subconsultas de Várias Linhas SQL> SELECT empno, ename, job 2 FROM emp WHERE sal > ALL 4 (SELECT avg(sal) 5 FROM emp 6 GROUP BY deptno); EMPNO ENAME JOB KING PRESIDENT 7566 JONES MANAGER 7902 FORD ANALYST 7788 SCOTT ANALYST 180

181 Sumário As subconsultas são úteis quando uma consulta baseia-se em valores desconhecidos. SELECT FROM WHERE select_list tabela operador expr (SELECT select_list FROM tabela); 181

182 Sumário As subconsultas são úteis quando uma consulta baseia-se em valores desconhecidos. SELECT FROM WHERE select_list tabela operador expr (SELECT select_list FROM tabela); 182

183 SQL: Lista de Exercício 1. Escreva uma query para mostrar o nome do empregado e data de contratação para todos os empregados do departamento do Blake. Exclua o Blake. 2. Crie uma query para mostrar o número e nome dos empregados que ganham acima da máeia salarial. Ordene os resultados por salário (decrescente). 3. Escre uma query que mostre o número e nome dos empregados que trabalham em um departamento que tem um empregado cujo nome contem um T. salve em p6q3.sql. 4. Mostre o nome do empregado, número do departamento e cargo para todos eo empregados lotados em Dallas. 5. Mostre o nome do empregado e salário de todos os empregados do King. 6. Mostre o número do departamento, nome do empregado e cargo de todos os empregados do departamento Sales. 7. Modifiique p6q3.sql para mostrar o número e nome do empregado, salário de todos os empregados que ganham mais que média salarial e que trabalham em um departamento que possui um empregado com um T em seu nome. Salve como p6q7.sql. Execute. 183

184 Subconsultas de Várias Colunas Objetivos: Criar uma subconsulta de várias colunas Descrever e explicar o comportamento de subconsultas quando valores nulos forem recuperados Criar uma subconsulta em uma cláusula FROM 184

Criando Instruções SQL Básicas Objetivos:

Criando Instruções SQL Básicas Objetivos: Criando Instruções SQL Básicas Objetivos: Listar os recursos das instruções SELECT SQL Executar uma instrução SELECT básica Diferenciar instruções SQL e comandos SQL*Plus 1 Recursos das Instruções SELECT

Leia mais

ACH2025. Laboratório de Bases de Dados. SQL Oracle Visão geral SELECT. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

ACH2025. Laboratório de Bases de Dados. SQL Oracle Visão geral SELECT. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO ACH2025 Laboratório de Bases de Dados Aula 6 SQL Oracle Visão geral SELECT Professora: Fátima L. S. Nunes Modelo utilizado nos exemplos a seguir: DEPT deptno: NUMBER(2) dname: VARCHAR2(12) loc: VARCHAR2(12)

Leia mais

Ana Cristina de Figueiredo Dornelas SQL E ORACLE 3ª. PARTE

Ana Cristina de Figueiredo Dornelas   SQL E ORACLE 3ª. PARTE Ana Cristina de Figueiredo Dornelas E-mail: anacristina.dornelas@gmail.com SQL E ORACLE 3ª. PARTE 1 Exibindo dados de várias tabelas O que é uma junção? Use uma junção para consultar dados a partir de

Leia mais

Banco de Dados II. Aula do dia 10/03. Revisão. SQL Estudado até o dia 03/03/2011

Banco de Dados II. Aula do dia 10/03. Revisão. SQL Estudado até o dia 03/03/2011 Banco de Dados II Aula do dia 10/03 Revisão SQL Estudado até o dia 03/03/2011 Operadores de Comparação Operador = > >= <

Leia mais

BANCO DE DADOS. SQL Select. Engenharia da Computação. Aula 20. Vamos considerar a tabela EMP para os exemplos a seguir. SELECT colunas FROM tabelas;

BANCO DE DADOS. SQL Select. Engenharia da Computação. Aula 20. Vamos considerar a tabela EMP para os exemplos a seguir. SELECT colunas FROM tabelas; Engenharia da Computação BANCO DE DADOS Aula SQL Select SELECT - recupera informação do Banco de Dados. Formato mais simples: SELECT colunas FROM tabelas; Vamos considerar a tabela EMP para os exemplos

Leia mais

Criando Instruções SQL Básicas Objetivos:

Criando Instruções SQL Básicas Objetivos: Criando Instruções SQL Básicas Objetivos: Listar os recursos das instruções SELECT SQL Executar uma instrução SELECT básica Diferenciar instruções SQL e comandos SQL*Plus 1 Recursos das Instruções SELECT

Leia mais

Linguagem SQL. Banco de Dados André Luiz do Vale Soares

Linguagem SQL. Banco de Dados André Luiz do Vale Soares Linguagem SQL Banco de Dados André Luiz do Vale Soares 1 SQL Structured Query Language Instruções de DML, DDL, VDL, SDL Implementa a maior parte dos operadores da Álgebra Relacional Origem: SEQUEL (Structured

Leia mais

SISTEMAS DE INFORMAÇÃO BANCO DE DADOS 2. SQL (Select) PROF: EDSON THIZON

SISTEMAS DE INFORMAÇÃO BANCO DE DADOS 2. SQL (Select) PROF: EDSON THIZON SISTEMAS DE INFORMAÇÃO BANCO DE DADOS 2 SQL (Select) PROF: EDSON THIZON DML É a parte mais ampla da SQL. Permite pesquisar, alterar, incluir e deletar dados da base de dados. São quatro as sentenças mais

Leia mais

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho Laboratório de Banco de Dados II Aula 04 Prof. Érick de Souza Carvalho 1 SQL (Structured Query Language ) Prof. Érick de Souza Carvalho 2 SQL Structured Query Language - Introdução É uma Linguagem para

Leia mais

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Agrupamento de Dados Após o término do Capítulo: Identificar as funções de agrupamento. Descrever o uso das funções

Leia mais

DML. SQL (Select) Verificando estrutura da tabela

DML. SQL (Select) Verificando estrutura da tabela SISTEMAS DE INFORMAÇÃO BANCO DE DADOS 2 SQL (Select) PROF: EDSON THIZON DML É a parte mais ampla da SQL. Permite pesquisar, alterar, incluir e deletar dados da base de dados. São quatro as sentenças mais

Leia mais

BANCO DE DADOS SQL (DML: SELECT, INSERT, UPDATE, DELETE)

BANCO DE DADOS SQL (DML: SELECT, INSERT, UPDATE, DELETE) BANCO DE DADOS SQL (DML: SELECT, INSERT, UPDATE, DELETE) Prof. Edson Thizon DML É a parte mais ampla da SQL. Permite pesquisar, alterar, incluir e deletar dados da base de dados. São quatro as sentenças

Leia mais

SISTEMAS DE INFORMAÇÃO BANCO DE DADOS SQL PROF: EDSON THIZON

SISTEMAS DE INFORMAÇÃO BANCO DE DADOS SQL PROF: EDSON THIZON SISTEMAS DE INFORMAÇÃO BANCO DE DADOS SQL PROF: EDSON THIZON Histórico Entre 1974 e 1979, o San José Research Laboratory da IBM desenvolveu um SGDB relacional que ficou conhecido como Sistema R. Para a

Leia mais

SISTEMAS DE INFORMAÇÃO BANCO DE DADOS SQL PROF: EDSON THIZON

SISTEMAS DE INFORMAÇÃO BANCO DE DADOS SQL PROF: EDSON THIZON SISTEMAS DE INFORMAÇÃO BANCO DE DADOS SQL PROF: EDSON THIZON Histórico Entre 1974 e 1979, o San José Research Laboratory da IBM desenvolveu um SGDB relacional que ficou conhecido como Sistema R. Para a

Leia mais

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Utilizando Subqueries para Resolver Queries Após o término do Capítulo: Definir subqueries. Descrever os tipos de problemas

Leia mais

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Restringindo e Ordenando Dados Após o término do Capítulo: Restringir as linhas que são recuperadas por uma consulta

Leia mais

Usando Subconsultas para Solucionar Consultas

Usando Subconsultas para Solucionar Consultas Usando Subconsultas para Solucionar Consultas Objetivos Ao concluir esta lição, você será capaz de: Definir subconsultas Descrever os tipos de problemas que as subconsultas podem solucionar Listar os tipos

Leia mais

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única Tópicos do Curso: Introdução Listar os principais recursos do Banco de Dados Oracle 10g Apresentar uma visão geral de: componentes, plataforma de internet, servidor de aplicações e suite do desenvolvedor

Leia mais

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Objetivo: No curso Oracle 11G Introdução ao Oracle, SQL, PL/SQL será abordado desde a introdução da tecnologia do banco de dados em questão como todos os conceitos

Leia mais

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc. MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza DML Data Manipulation Language Linguagem de Manipulação de Dados Comandos básicos: Insert Update

Leia mais

Rápida revisão do Modelo Relacional

Rápida revisão do Modelo Relacional Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.

Leia mais

Oracle Database 11g: Introdução à Linguagem SQL Novo

Oracle Database 11g: Introdução à Linguagem SQL Novo Oracle University Contact Us: 0800 891 6502 Oracle Database 11g: Introdução à Linguagem SQL Novo Duration: 5 Days What you will learn Neste curso, os alunos aprendem os conceitos de bancos de dados relacionais.

Leia mais

Material Teórico. Cláusula GROUP BY e HAVING. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Material Teórico. Cláusula GROUP BY e HAVING. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Banco de Dados Material Teórico Cláusula GROUP BY e HAVING Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Revisão Textual: Profa. Esp.Vera Lídia de Sá Cicarone Cláusula GROUP BY e

Leia mais

SQL DML BANCO DE DADOS. Verificando estrutura da tabela

SQL DML BANCO DE DADOS. Verificando estrutura da tabela BANCO DE DADOS SQL (DML: SELECT, INSERT, UPDATE, DELETE) Prof. Edson Thizon DML É a parte mais ampla da SQL. Permite pesquisar, alterar, incluir e deletar dados da base de dados. São quatro as sentenças

Leia mais

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc. MODELAGEM DE DADOS -INTRODUÇÃO AO SQL: DML Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br DML Data Manipulation Language Linguagem de Manipulação de Dados Comandos básicos: Insert Update

Leia mais

Manipulando a base de dados

Manipulando a base de dados Manipulando a base de dados Uma base de dados pode ser manipulada com quatro operações básicas: Incluir, Apagar, Alterar e Pesquisar. Vale lembrar que como toda linguagem para computadores, o MySQL tem

Leia mais

A lista abaixo possui funções especiais, que em alguns contextos podem ser enquadradas como "pseudo-colunas" da tabela.

A lista abaixo possui funções especiais, que em alguns contextos podem ser enquadradas como pseudo-colunas da tabela. Funções especiais A lista abaixo possui funções especiais, que em alguns contextos podem ser enquadradas como "pseudo-colunas" da tabela. USER UID USERENV ROWID ROWNUM ORA_ROWSCN USER Mostra o nome do

Leia mais

TLBD II. Continuação

TLBD II. Continuação TLBD II Continuação As expressões aritméticas podem conter nomes de colunas, valores numéricos constantes e os operadores aritméticos: OPERADOR DESCRIÇÃO + Adição - Subtracção * Multiplicação / Divisão

Leia mais

<Course name> <Lesson number>- #

<Course name> <Lesson number>- # Obtendo Dados de Várias Tabelas EMPLOYEES DEPARTMENTS Exibindo Dados de Várias Tabelas 4-2 Produtos Cartesianos Gerando um Produto Cartesiano EMPLOYEES (20 linhas) DEPARTMENTS (8 linhas) Um produto cartesiano

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

Prof. Fabiano Taguchi

Prof. Fabiano Taguchi BANCO DE DADOS Prof. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@hotmail.com OPERAÇÕES LÓGICAS AND (E) Avalia as condições e devolve um valor verdadeiro caso ambas condições forem

Leia mais

Oracle Database: Fundamentos de SQL e PL/SQL

Oracle Database: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0800 891 6502 Oracle Database: Fundamentos de SQL e PL/SQL Duration: 5 Days What you will learn Este curso apresenta os fundamentos de SQL e PL/SQL e as vantagens das linguagens

Leia mais

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Oracle Database 10g: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0-800-167225 Oracle Database 10g: Fundamentos de SQL e PL/SQL Duration: 5 Dias O que é que gostaria de aprender Conheça os fundamentos de SQL e PL/SQL usando o SQL Developer

Leia mais

Linguagem SQL Comando SELECT Agrupamento de Resultados

Linguagem SQL Comando SELECT Agrupamento de Resultados BDDAD Bases de Dados Linguagem SQL Comando SELECT de Resultados Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/12 Introdução Sumário Funções de Agregação Básicas COUNT SUM MIN MAX AVG Cláusulas de GROUP BY HAVING

Leia mais

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre

Leia mais

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 17 Escola Politécnica da Universidade de São Paulo 1 SQL STRUCTURED QUERY LANGUAGE Manipulação de dados operações de modificam o estado das tabelas:

Leia mais

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language) AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados

Leia mais

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU Aula 11 SBD SQL Parte 3 Profa. Elaine Faria UFU - 2018 Group by e Having Às vezes deseja-se aplicar operações agregadas a cada um dos vários grupos de linhas em um relação Group by e Having C31: Encontre

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED

Leia mais

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO... Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@facom.ufu.br Bloco B - sala 1B137 SQL DML CONTINUAÇÃO...

Leia mais

MODELO DE DADOS VS ESQUEMA

MODELO DE DADOS VS ESQUEMA MODELO DE DADOS VS ESQUEMA Um modelo de dados é um conjunto de conceitos usados para se descrever dados. Um esquema é uma descrição de uma determinada coleção de dados, descrição essa baseada num certo

Leia mais

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Recuperando Dados com Sub-Consultas Correlacionadas Após o término do Capítulo: Escrever uma sub-consulta de colunas

Leia mais

ACH2025. Aula 11. Visões. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

ACH2025. Aula 11. Visões. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO ACH2025 Laboratório de Bases de Dados Aula 11 Visões Professora: Fátima L. S. Nunes Introdução Nos exemplos mostrados nas aulas anteriores, consideramos o modelo lógico relações usadas são aquelas reais,

Leia mais

SQL - Consultas

SQL - Consultas SQL - Consultas 2008.1 Manipulando Dados CONSULTA SELECT INCLUSÃO INSERT ALTERAÇÃO UPDATE EXCLUSÃO DELETE Consultas SQL Realização de consultas em tabelas SELECT atributo1, atributo2,... FROM tabela 1,

Leia mais

Oracle Database 12c: Introdução ao SQL Ed. 2

Oracle Database 12c: Introdução ao SQL Ed. 2 Oracle Database 12c: Introdução ao SQL Ed. 2 Duração: 5 dias O que você irá aprender Esse curso Oracle Database 12c: Introdução ao SQL Ed. 2 ajudará você a escrever subconsultas (subqueries), combinar

Leia mais

ACH2025. Laboratóriode Bases de Dados. SQL Oracle Asserçõese gatilhos. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

ACH2025. Laboratóriode Bases de Dados. SQL Oracle Asserçõese gatilhos. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO ACH2025 Laboratóriode Bases de Dados Aula10 SQL Oracle Asserçõese gatilhos Professora: Fátima L. S. Nunes REGRAS DE INTEGRIDADE (RI) garantem que mudanças feitas no BD não resultem em inconsistência de

Leia mais

ANEXO B Manual básico de SQL

ANEXO B Manual básico de SQL ANEXO B Manual básico de SQL Este apêndice descreve como utilizar a Linguagem de Pesquisa Estruturada (SQL, Structured Query Language) para criar conjuntos de registros destinados às páginas dinâmicas.

Leia mais

TLBD II. Continuação (04)

TLBD II. Continuação (04) TLBD II Continuação (04) A figura abaixo resume as operações de junção: Junção de Tabelas As junções horizontais atuam sobre linhas. Permite mostrar os dados que estão armazenados em diferentes tabelas

Leia mais

Tecnologias e Linguagens para Banco de Dados II

Tecnologias e Linguagens para Banco de Dados II Tecnologias e Linguagens para Banco de Dados II Aula 3 4327: Criando consultas básicas Trabalhando com valores Formatando resultados Condições que afetam a performance na consulta de dados. Trabalhando

Leia mais

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A BANCO DE DADOS GERENCIAL 1 A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A CONCEITOS LINGUAGEM DE MANIPULAÇÃO DE DADOS (DML) A linguagem

Leia mais

Uniao Educacional e Tecnologica Impacta- Uni Impacta

Uniao Educacional e Tecnologica Impacta- Uni Impacta Gerando relatórios por agrupamento de dados relacionados Objetivos Após concluir este apêndice, você será capaz de: Usar a operação ROLLUP para produzir valores de subtotal Usar a operação CUBE para produzir

Leia mais

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome> 1. Manuseio do banco de dados MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS As seguintes instruções manuseiam o banco de dados: cria o banco mostra os bancos

Leia mais

SQL. Prof. Roger Cristhian Gomes

SQL. Prof. Roger Cristhian Gomes SQL Prof. Roger Cristhian Gomes SQL SQL - Structured Query Language Linguagem de acesso e manipulação de sistemas de base de dados computacionais que segue o padrão ANSI Existem diferenças entre as versões

Leia mais

Álgebra Relacional e SQL

Álgebra Relacional e SQL Álgebra Relacional e SQL Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Álgebra Relacional Maneira teórica de se manipular o banco de dados relacional Linguagem de consulta procedural usuários

Leia mais

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL Sistemas de Informação e Bases de Dados 2012/2013 Linguagem SQL Alberto Sardinha Sumário Linguagem SQL 1 Operações com strings operador like Exemplo: nomes dos clientes cuja rua possui a sequência Main

Leia mais

Utilizando o Postgres - comandos SQL para a manipulação de dados

Utilizando o Postgres - comandos SQL para a manipulação de dados Utilizando o Postgres - comandos SQL para a manipulação de dados SELECT A declaração SELECT é utilizada para selecionar os dados de um banco de dados. SELECT nome FROM clientes WHERE A cláusula WHERE é

Leia mais

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS SQL FELIPE G. TORRES SQL A linguagem SQL (Struct Query Language) é utilizada como padrão em bancos de dados relacionais. Seu desenvolvimento foi originalmente no início

Leia mais

Ana Cristina de Figueiredo Dornelas SQL E ORACLE 2ª. PARTE

Ana Cristina de Figueiredo Dornelas   SQL E ORACLE 2ª. PARTE Ana Cristina de Figueiredo Dornelas E-mail: anacristina.dornelas@gmail.com SQL E ORACLE 2ª. PARTE 1 DML 2 DML Recursos das instruções SELECT Seleção Projeção Junção Tabela 1 Tabela 2 3 Criando uma seleção

Leia mais

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011 Banco de Dados I Aula 16 - Prof. Bruno Moreno 04/11/2011 Plano de Aula O comando DELETE Cláusula CHECK Comparações utilizando NULL Funções agregadas Junções de tabelas em SQL Visões Comando DELETE DELETE

Leia mais

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Principais Instruções em SQL Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Atenção: Esta apostila foi desenvolvida com o auxílio on-line do banco MS-ACCESS,

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

Aula 10 BD 1 SQL Parte 2. Profa. Elaine Faria UFU

Aula 10 BD 1 SQL Parte 2. Profa. Elaine Faria UFU Aula 10 BD 1 SQL Parte 2 Profa. Elaine Faria UFU - 2018 Consultas Aninhadas É um dos recursos mais poderosos da SQL É aquela que tem outra consulta embutida dentro dela A consulta embutida é chamada de

Leia mais

CONSULTANDO O MICROSOFT SQL SERVER

CONSULTANDO O MICROSOFT SQL SERVER 20461 - CONSULTANDO O MICROSOFT SQL SERVER CONTEÚDO PROGRAMÁTICO Módulo 1: Introdução ao Microsoft SQL Server 2014 Este módulo apresenta as principais ferramentas e plataformas de SQL Server. Discute-se

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Laboratório de Banco de Dados Prof. Luiz Antônio Vivacqua C. Meyer (luiz.vcm@gmail.com) Sintaxe Geral SELECT [ALL/DISTINCT] coluna1, coluna2,..., colunan FROM nome_tabela1, nome_tabela2,...,

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

Pedro F. Carvalho Analista de Sistemas contato@pedrofcarvalho.com.br www.pedrofcarvlho.com.br. As cláusulas ROLLUP, CUBE e GROUPING

Pedro F. Carvalho Analista de Sistemas contato@pedrofcarvalho.com.br www.pedrofcarvlho.com.br. As cláusulas ROLLUP, CUBE e GROUPING As cláusulas ROLLUP, CUBE e GROUPING A conjugação das funções de grupo com a cláusula GROUP BY permite obter contagens, somas ou médias sobre os valores dos elementos de um grupo. As cláusulas ROLLUP e

Leia mais

ÁLGEBRA E CÁLCULO RELACIONAL

ÁLGEBRA E CÁLCULO RELACIONAL UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO ÁLGEBRA E CÁLCULO RELACIONAL MARINGÁ 2014 SUMÁRIO SUMÁRIO...1 1 INTRODUÇÃO...2 1.1

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

Leia mais

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC UFU/FACOM Página

Leia mais

Bases de Dados. DML Data Manipulation Language Parte 2

Bases de Dados. DML Data Manipulation Language Parte 2 Bases de Dados DML Data Manipulation Language Parte 2 Funções de Grupo São funções aplicáveis a conjuntos de linhas de uma tabela À totalidade dos elementos ou A um subconjunto especificado na cláusula

Leia mais

Sumário SELECT + FROM

Sumário SELECT + FROM Sumário 1 Introdução SQL - Perguntas André Restivo Faculdade de Engenharia da Universidade do Porto October 18, 2010 2 3 Operadores de Conjuntos 4 5 Agregações 6 Ordenações e Limites 7 Sub-perguntas 8

Leia mais

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala 937 2 quadrimestre

Leia mais

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80

Leia mais

Laboratório de Banco de Dados

Laboratório de Banco de Dados Laboratório de Banco de Dados Linguagens SQL e PL/SQL Aula 8 SELECT com GROUP BY e HAVING 1 Comando SELECT O comando SELECT é formado pelas cláusulas SELECT, FROM, WHERE, ORDER BY, GROUP BY, HAVING, START

Leia mais

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R 101010101 001010101 101010100 E-BOOK GUIA RÁPIDO DE SQL INTRODUÇÃO Este é um guia rápido de SQL criado pela equipe do TreinaWeb e serve principalmente para iniciantes na linguagem. SQL é a sigla em inglês

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar - Aula 7 - FUNÇÕES DE GRUPO E AGRUPAMENTO 1. INTRODUÇÃO Até agora trabalhamos com funções que tratavam apenas uma linha. Contudo, em diversas situações é necessário trabalhar com várias linhas da consulta.

Leia mais

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012 SQL - Perguntas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Perguntas February 24, 2012 1 / 46 Sumário 1 Introdução 2 Seleccionar e Filtrar

Leia mais

Consulta sobre múltiplas relações

Consulta sobre múltiplas relações Consulta sobre múltiplas relações BCD29008 Engenharia de Telecomunicações Prof. Emerson Ribeiro de Mello http://docente.ifsc.edu.br/mello/bcd 25 DE ABRIL DE 2019 Esquema usado nos próximos exemplos 1/36

Leia mais

Aula 3. Objetivos Sequências de escapes ; Um aplicativo que adiciona inteiro; Aritmética.

Aula 3. Objetivos Sequências de escapes ; Um aplicativo que adiciona inteiro; Aritmética. Objetivos Sequências de escapes ; Um aplicativo que adiciona inteiro; Aritmética. Sequências de escape \n Nova linha. Posiciona o cursor de tela no início da próxima linha. \t Tabulação horizontal. Move

Leia mais

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Dados em Algoritmos Quando escrevemos nossos programas, trabalhamos com: Dados que nós fornecemos ao programa Dados

Leia mais

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados> BANCO DE DADOS 1. Scripts de criação de banco de dados Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE Onde:

Leia mais

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Criação de Outros Objetos Após o término do Capítulo: Criar visões simples e complexas. Recuperar dados de visões. Criar,

Leia mais

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 SQL Structured Query Language SQL Desenvolvida pela IBM Structured English Query Language Sequel Linguagem de consulta para o sistema R Primeiro

Leia mais

BCD29008 Banco de Dados

BCD29008 Banco de Dados BCD29008 Banco de Dados Consulta sobre múltiplas relações Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd

Leia mais

BANCO DE DADOS PARA WEB

BANCO DE DADOS PARA WEB BANCO DE DADOS PARA WEB PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com fabianotaguchi@gmail.com BANCO DE DADOS O banco de dados será de fundamental importância para a criação de páginas dinâmicas,

Leia mais

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas Linguagem SQL ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas villas@puc-rio.br SQL Linguagem padrão de acesso tabelas em um banco de dados relacional Permite definir e manipular dados DML

Leia mais

mod._1_teoria_sistemas de bancos de dados.doc

mod._1_teoria_sistemas de bancos de dados.doc SISTEMAS DE BANCOS DE DADOS Os Sistemas de Bancos de Dados apareceram para acabar com os problemas e desvantagens dos tradicionais Sistemas de Processamento de Arquivos, onde os registros permanentes eram

Leia mais

Preparação. Na página do curso, fazer download do arquivo LabAula.txt; No EasySQL,

Preparação. Na página do curso, fazer download do arquivo LabAula.txt; No EasySQL, Estudo Dirigido Preparação Na página do curso, fazer download do arquivo LabAula.txt; No EasySQL, Criar um arquivo de banco de dados chamado Empresa; Cliqueem carregar script... e selecione esse arquivo;

Leia mais

Professor Leonardo Larback

Professor Leonardo Larback Professor Leonardo Larback Para facilitar a manipulação dos dados, o mysql oferece algumas funções prédefinidas. Vejamos algumas: Funções de agregração: AVG() Retorna a média dos valores passados como

Leia mais

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Exibindo Dados de Múltiplas Tabelas Após o término do Capítulo: Acessar dados de mais de uma tabela. Utilizar equijoins,

Leia mais

ACH2025. Laboratório de Bases de Dados Aula 5. SQL Oracle Visão geral. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

ACH2025. Laboratório de Bases de Dados Aula 5. SQL Oracle Visão geral. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO ACH2025 Laboratório de Bases de Dados Aula 5 SQL Oracle Visão geral Professora: Fátima L. S. Nunes Características SQL Os comandos podem ser agrupados em 4 classes: DDL - Comandos para a Definição de Relações

Leia mais

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki PROGRAMA 3.SQL Básico 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação 1 3.SQL Básico A linguagem SQL foi desenvolvida para o ambiente relacional, podendo ser adaptada a ambientes

Leia mais

Uniao Educacional e Tecnologica Impacta- Uni Impacta

Uniao Educacional e Tecnologica Impacta- Uni Impacta Scripts avançados de gravação Objetivos Após concluir este apêndice, você poderá: Descrever o tipo de problemas que são resolvidos usando SQL para gerar SQL Gravar um script que gera um script de instruções

Leia mais

TRABALHO DE DEPENDÊNCIA ETAPA 2

TRABALHO DE DEPENDÊNCIA ETAPA 2 CONTEÚDO DE DEPENDÊNCIA / 2017 DISCIPLINA: BANCO DE DADOS PROFESSOR: DAYLER ALVES CURSO: TÉCNICOS INTEGRADOS AO ENSINO MÉDIO TURMAS: I3A I3B / 2016 SÉRIE: 3º TRABALHO DE DEPENDÊNCIA ETAPA 2 Utilize os

Leia mais

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL. www.pedrofcarvalho.com.br contato@pedrofcarvalho.com.br São José do Rio Preto

Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL. www.pedrofcarvalho.com.br contato@pedrofcarvalho.com.br São José do Rio Preto Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL Objetivos Revisando a sintaxe SQL SELECT, UPDATE, INSERT, DELETE Manipulando expressões Funções matemáticas, etc Condições de Pesquisa Funções de Agregação

Leia mais

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes Escola Secundária de Albufeira Comandos MySQL (Páginas Web Dinâmicas: PHP e MySQL) (csmnunes@gmail.com) 2009/2010 Criar Base de Dados CREATE DATABASE basededados; Apagar Base de Dados DROP DATABASE basededados;

Leia mais