BDII SQL Junção Revisão 8

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

Download "BDII SQL Junção Revisão 8"

Transcrição

1 exatasfepi.com.br BDII SQL Junção Revisão 8 André Luís Duarte Leais são as feridas feitas pelo amigo, mas os beijos do inimigo são enganosos. Provérbios 27:6

2 SQL Introdução Produto cartesiano Nomes alternativos (apelidos) Tipos de junção 08/08/2014 2

3 SQL Introdução Produto cartesiano Nomes alternativos (apelidos) Tipos de junção 08/08/2014 3

4 Introdução Vimos na álgebra relacional que quando necessitávamos combinar tuplas de várias relações para produzir um determinado resultado usávamos a operação produto cartesiano Essa operação nos permite combinar informações a partir de diversas relações e é representada pela (cruz) 08/08/2014 4

5 SQL Introdução Produto cartesiano Nomes alternativos (apelidos) Tipos de junção 08/08/2014 5

6 Produto cartesiano Em SQL o produto cartesiano é realizado quando colocamos na cláusula FROM mais de uma tabela separada por vírgula O resultado desse tipo de comando é a combinação de todas as linhas de uma tabela com todas as linhas da(s) outra(s) tabela(s) envolvidas 08/08/2014 6

7 Produto cartesiano Podemos realizar o produto cartesiano com qualquer quantidade de tabelas Devemos lembrar sempre que precisamos igualar o atributo em comum em cada tabela participante para poder remover o lixo gerado 08/08/2014 7

8 Exemplo SELECT * FROM gerente, agencia; SELECT cpf, nome FROM gerente, agencia; SELECT cpf, nome FROM pessoa, agencia; Obs.: Note que os exemplos realizaram um produto cartesiano entre as relações o resultado não possui aplicação prática por enquanto 08/08/2014 8

9 Exemplo SELECT cpf, nome FROM pessoa, agencia; Cada cpf aparece combinado com todas as agências Como cliente possui 1000 linhas Agencia possui 10 linhas Resultado 1000 * 10 = /08/2014 9

10 Produto cartesiano O resultado de todo produto cartesiano sem o predicado de junção pode gerar muitas linhas que, até certo ponto, podem ser consideradas como lixo dependendo da consulta No exemplo anterior, o produto cartesiano não possui aplicação prática pois não temos atributos em comum entre as tabelas usadas para criar um predicado de junção que remova o lixo gerado 08/08/

11 Junção usando ',' Uma consulta mais útil seria saber o número da conta de cada cliente Poderíamos pensar na seguinte consulta: SELECT numero, cpf, pnome FROM pessoa, pessoaconta WHERE cpf = cpf; 08/08/

12 Junção usando ',' Vimos que a consulta não funcionou pois o SGBD não conseguiu resolver a ambiguidade do atributo cpf que está presente em ambas as tabelas Para resolver essa ambiguidade, devemos informar, para os atributos em comum, de qual tabela eles pertencem 08/08/

13 Junção usando ',' Para isso colocamos o nome da tabela antes do nome do atributo separado por um ponto SELECT numero, pessoa.cpf, pnome FROM pessoa, pessoaconta WHERE pessoa.cpf = pessoaconta.cpf; 08/08/

14 Exercícios de fixação Informe o número da conta e o nome completo de todos clientes nascidos em 1990 Informe o nome completo de todos os gerentes Mostre as contas da agência número 3 Mostre o cpf do gerente e número das contas do gerente com registro 1 14

15 Junção com várias tabelas Podemos realizar a junção de varias tabelas colocando cada uma na cláusula FROM separada por vírgula Para cada junção devemos criar o predicado que removerá o lixo gerado 08/08/

16 Exercícios de fixação Informe o limite de todas as contas e o nome dos respectivos titulares que moram em Maria da Fé Identifique pelo nome os clientes da agência Pass Informe as transações realizadas pela agência Center Informe o cpf, o nome e as transações cujo valor é superior a dos clientes do gerente registro é 41 08/08/

17 SQL Introdução Produto cartesiano Nomes alternativos (apelidos) Tipos de junção 08/08/

18 Nomes alternativos O SQL permite darmos apelidos (aliases) em duas situações Para tabelas Normalmente usada quando fizermos junções Para colunas Normalmente para dar nomes às nossas operações 18

19 Nomes alternativos para tabelas Em SQL podemos ter atributos com o mesmo nome desde que estejam em relações diferentes Quando precisamos juntar essas relações ocorre o problema de ambiguidade dos atributos Devemos qualificar o atributo prefixando o nome da tabela separado por um ponto 08/08/

20 Nomes alternativos para tabelas Quando o nome da relação é muito grande, temos a inconveniência de ter que repeti-la para remover ambiguidades Neste caso podemos dar um apelido para a relação através da palavra-chave (AS) 08/08/

21 Nomes alternativos para tabelas Exemplo: SELECT numero, p.cpf, pnome FROM pessoa AS p, pessoaconta AS pc WHERE p.cpf = pc.cpf AND p.cpf BETWEEN AND ; 08/08/

22 Nomes alternativos para tabelas Outro uso muito comum é quando precisamos fazer o produto cartesiano de uma relação com ela mesma Verifique se existem homônimos no sistema Obs.: Pessoas homônimas possuem o mesmo nome (completo) 08/08/

23 Exemplo SELECT p1.cpf, p1.pnome, p1.mnome, p1.unome, p2.cpf, p2.pnome, p2.mnome, p2.unome FROM pessoa AS p1, pessoa AS p2 WHERE p1.pnome = p2.pnome AND p1.mnome = p2.mnome AND p1.unome = p2.unome; 08/08/

24 Nomes alternativos para tabelas No primeiro caso temos um problema causado pela presença de valor nulo no nome do meio A consulta deveria retornar retornou 1000 linhas que representam os 1000 clientes existentes, mas retornou somente 888 Remova a condição que iguala o nome do meio e execute a consulta 08/08/

25 Exemplo SELECT p1.cpf, p1.pnome, p1.mnome, p1.unome, p2.cpf, p2.pnome, p2.mnome, p2.unome FROM pessoa AS p1, pessoa AS p2 WHERE p1.pnome = p2.pnome AND p1.unome = p2.unome; 08/08/

26 Nomes alternativos para tabelas Considerando somente o primeiro e segundo nome, a consulta retornou 1022 linhas, ou seja, 22 linhas a mais que a quantidade de pessoas Queremos apresentar somente as 22 linhas cujos clientes são homônimos considerando o primeiro e último nome, para isso devemos considerar o cpf na comparação 08/08/

27 Exemplo SELECT p1.cpf, p1.pnome, p1.mnome, p1.unome, p2.cpf, p2.pnome, p2.mnome, p2.unome FROM pessoa AS p1, pessoa AS p2 WHERE p1.pnome = p2.pnome AND p1.unome = p2.unome AND p1.cpf <> p2.cpf; 08/08/

28 Nomes alterativos para tabelas Versões mais atuais dos SGBD permitem omitirmos a palavra-chave (AS) Exiba o(s) nome(s) do(s) cliente(s) da gerente Sara Na tabela pessoa x gerente posso encontrar informações da gerente Sara Na tabela pessoa x gerente x gerenteconta posso encontrar as contas da gerente Sara 28

29 Exemplo SELECT g.registro, p.cpf, p.pnome, gc.numero FROM pessoa p, gerente g, gerenteconta gc WHERE p.cpf = g.cpf AND g.registro = gc.registro AND p.pnome = 'Sara'; 29

30 Exemplo Encontrando os clientes (cpf) da gerente Sara SELECT g.registro, p.cpf, p.pnome, pc.numero, pc.cpf FROM pessoa p, gerente g, gerenteconta gc, pessoaconta pc WHERE p.cpf = g.cpf AND g.registro = gc.registro AND gc.numero = pc.numero AND p.pnome = 'Sara'; 30

31 Exemplo Buscando o nome dos clientes da gerente Sara SELECT g.registro, p.cpf, p.pnome, pc.numero, pc.cpf, p2.pnome FROM pessoa p, gerente g, gerenteconta gc, pessoaconta pc, pessoa p2 WHERE p.cpf = g.cpf AND g.registro = gc.registro AND gc.numero = pc.numero AND pc.cpf = p2.cpf AND p.pnome = 'Sara'; 31

32 Exemplo Projetando somente os nomes dos clientes SELECT p.pnome, p2.pnome, p2.mnome, p2.unome FROM pessoa p, gerente g, gerenteconta gc, pessoaconta pc, pessoa p2 WHERE p.cpf = g.cpf AND g.registro = gc.registro AND gc.numero = pc.numero AND pc.cpf = p2.cpf AND p.pnome = 'Sara'; 32

33 Exercício de fixação Exiba uma lista com o número e o tipo da conta e o nomes dos titulares ordenada pelo primeiro nome do cliente Exiba o(s) nome(s) do(s) cliente(s) dos gerentes que moram em Miami Exiba uma lista com o número da conta, tipo da conta, número da transação, tipo da transação, abreviação e o valor da transação para as contas 500 e 777 (cuidado na construção) 33

34 Erro na construção da consulta Exiba uma lista com o número da conta, tipo da conta, número da transação, tipo da transação, abreviação e o valor da transação para as contas 500 e

35 Exercício de fixação Exiba os cliente das contas corrente tipo 1 da agência Lane Existem transações realizadas pelo cliente Aaron Gregory Weaver? Mostre os clientes que realizaram pelo menos uma transação Mostre as pessoas cadastradas que são clientes na agência Street ou Circle 35

36 SQL Introdução Produto cartesiano Nomes alternativos (apelidos) Tipos de junção 08/08/

37 Junção A operação junção natural é uma operação binária que permite combinar certas seleções e um produto cartesiano em uma operação, é representada pelo símbolo O resultado é uma única tabela com o resultado das cláusulas definidas na junção 37

38 CROSS JOIN Se nenhuma condição é informada na cláusula WHERE, o produto cartesiano entre as tabelas será o resultado Se o(s) atributo(s) em comum forem igualados teremos como resultado o mesmo que o INNER JOIN Funciona da mesma forma como fizemos anteriormente ao separarmos as tabelas por vírgulas 38

39 Exemplo SELECT numero, p.cpf, pnome FROM pessoa p CROSS JOIN pessoaconta pc WHERE p.cpf = pc.cpf AND p.cpf = ; SELECT pc.numero, p.cpf, pnome, c.limite FROM pessoa p CROSS JOIN pessoaconta pc CROSS JOIN conta c WHERE p.cpf = pc.cpf AND c.numero = pc.numero AND p.cpf = ; 39

40 CROSS JOIN A diferença básica entre o CROSS JOIN e INNER JOIN é que no caso do INNER JOIN a cláusula de junção pode ser indicada através da palavra chave ON O MySQL permite o uso da clausula ON no CROSS JOIN Obs.: é uma boa prática de desenvolvimento colocar todo o predicado de junção na cláusula ON deixando a cláusula WHERE somente para filtrar a seleção desejada 40

41 MySQL SELECT numero, p.cpf, pnome FROM pessoa p CROSS JOIN pessoaconta pc ON p.cpf = pc.cpf WHERE p.cpf = ; SELECT c.numero, p.cpf, pnome, c.limite FROM pessoa p CROSS JOIN pessoaconta pc ON p.cpf = pc.cpf CROSS JOIN conta c ON c.numero = pc.numero WHERE p.cpf = ; 41

42 Exemplo Exiba uma lista com o número da conta, tipo da conta, número da transação, tipo da transação, abreviação e o valor da transação para as contas 500 e 777 SELECT c.numero, c.tipo, t.numero, t.tipo, t.abreviacao, t.valor FROM conta c CROSS JOIN transacaoconta tc ON c.numero = tc.numeroc CROSS JOIN transacao t ON tc.numerot = t.numero WHERE tc.numeroc = 500 OR tc.numeroc = 777; 42

43 Exercícios Exiba a quantidade de clientes do sexo feminino que possuem conta poupança (tipo = 2) Exiba a soma dos salários dos cliente que possuem conta corrente (tipo = 1) Exiba a soma de todas as transações realizadas pela agencia Hoffman Exiba todos os clientes do gerente Peter Willian Gray 43

44 INNER JOIN O tipo padrão de junção no SQL é a junção interna (INNER JOIN) Combina (junta) a informação de duas ou mais tabelas aplicando um critério de comparação entre os valores de uma ou mais colunas 44

45 INNER JOIN Uma tupla é inserida na resposta somente se existir uma combinação nos valores em ambas as tabelas para o atributo envolvido No geral é o mesmo que JOIN Se usado o caractere * na projeção, todas as colunas (atributos) serão apresentados no resultado 45

46 INNER JOIN SELECT * FROM pessoa p INNER JOIN pessoaconta pc ON p.cpf = pc.cpf WHERE p.pnome LIKE 'Andre%'; Obs.: note a coluna cpf que aparece duplicada no resultado, isto ocorre porque ela existe em ambas as tabelas 46

47 INNER JOIN SELECT p.cpf, CONCAT(pnome, ' ', mnome, ' ', unome) AS nomecompleto, numero, dataabertura FROM pessoa p INNER JOIN pessoaconta pc ON p.cpf = pc.cpf WHERE p.pnome LIKE 'Andre%'; 47

48 MySQL O MySQL permite o uso da palavra USING para indicar qual atributo será usado como predicado de junção O atributo em comum nas tabelas devem ter o mesmo nome Obs.: usando a palavra USING o atributo em comum não aparece duplicado na consulta 48

49 INNER JOIN SELECT * FROM pessoa p INNER JOIN pessoaconta pc USING(cpf) WHERE p.pnome LIKE 'Andre%'; 49

50 Exercícios de fixação Exiba as transações dos cliente com cpf entre e Exiba a soma de todas as transações obtidas na consulta anterior Exiba todos os depósitos da agência Center Exiba a soma de todas as transações de crédito dos clientes do gerente Eric Shawn Knight 50

51 Otimização de consultas A cláusula ON não é otimizada para trabalhar com operadores lógicos AND, OR ou NOT Por isso, prefira construir uma cláusula ON para cada junção ao invés de uma única cláusula usando AND 51

52 Exemplo SELECT 'Gerente:', p.pnome, 'Cliente: ', p2.pnome, p2.mnome, p2.unome FROM pessoa p INNER JOIN gerente g INNER JOIN gerenteconta gc INNER JOIN pessoaconta pc INNER JOIN pessoa p2 ON p.cpf = g.cpf AND g.registro = gc.registro AND gc.numero = pc.numero AND pc.cpf = p2.cpf; 52

53 Exemplo SELECT 'Gerente:', p.pnome, 'Cliente: ', p2.pnome, p2.mnome, p2.unome FROM pessoa p INNER JOIN gerente g ON p.cpf = g.cpf INNER JOIN gerenteconta gc ON g.registro = gc.registro INNER JOIN pessoaconta pc ON gc.numero = pc.numero INNER JOIN pessoa p2 ON pc.cpf = p2.cpf; 53

54 Exemplo Exemplo de estilo geralmente usado: SELECT 'Gerente:', p.pnome, 'Cliente: ', p2.pnome, p2.mnome, p2.unome FROM pessoa p INNER JOIN gerente g ON p.cpf = g.cpf INNER JOIN gerenteconta gc ON g.registro = gc.registro INNER JOIN pessoaconta pc ON gc.numero = pc.numero INNER JOIN pessoa p2 ON pc.cpf = p2.cpf; 54

55 Exemplo Clientes da gerente Diana SELECT 'Gerente:', p.pnome, 'Cliente: ', p2.pnome, p2.mnome, p2.unome FROM pessoa p INNER JOIN gerente g ON p.cpf = g.cpf INNER JOIN gerenteconta gc ON g.registro = gc.registro INNER JOIN pessoaconta pc ON gc.numero = pc.numero INNER JOIN pessoa p2 ON pc.cpf = p2.cpf WHERE p.pnome = 'Diana'; 55

56 NATURAL JOIN Realiza uma junção natural, que é caracterizada pela criação de uma equijoin, condição equijunção (igualdade) implícita nos atributos em comum Como na junção usando a palavra USING, a NATURAL JOIN exibe o atributo em comum no inicio da projeção e remove a coluna duplicada 56

57 NATURAL JOIN SELECT p.cpf, p.pnome, pc.numero FROM pessoa p NATURAL JOIN pessoaconta pc; - (atributo em comum cpf) SELECT p.cpf, p.pnome, pc.numero, c.limite FROM pessoa p NATURAL JOIN pessoaconta pc NATURAL JOIN conta c; - (atributo em comum cpf e número) 57

58 NATURAL JOIN Cuidado ao usar o NATURAL JOIN Exiba todos os gerentes SELECT * FROM pessoa p NATURAL JOIN gerente g; (atributos em comum?) 58

59 NATURAL JOIN Exibindo todos os gerentes usando INNER JOIN SELECT p.cpf, g.cpf, p.salario, g.salario FROM pessoa p INNER JOIN gerente g USING(cpf); 59

60 NATURAL JOIN Execute a seguinte atualização UPDATE pessoa SET salario = WHERE cpf = ; Busque novamente os gerentes SELECT * FROM pessoa p NATURAL JOIN gerente g; 60

61 Exercício de fixação Mostre o número da conta dos clientes que tem 30 anos completos ou mais e cujo esteja nulo Mostre o número da conta, o tipo da conta e o cpf dos clientes nascidos entre 01/01/1980 e 31/12/1982 Mostre o nome da agência, o número da conta, o cpf e o nome completo do dos clientes que não informaram seu endereço ou telefone 61

62 Exercícios Mostre os nomes dos clientes da agência Pass Selecione todas as contas da agência número 2 Selecione as transações da agência número 2 Mostre o montante de depósitos em caderneta de poupança da agência 1 62

63 Exercícios Mostre o montante de saques em caderneta de poupança da agência Center Mostre o montante de depósitos em conta corrente de homens Mostre o montante de saques em conta corrente de mulheres 63

64 LEFT OUTER JOIN Quando realizamos junções internas (INNER JOIN) para que uma tupla seja inserida na resposta o valor do atributo no predicado de junção deve corresponder nas duas tabelas Quando precisamos que todas as tuplas sejam incluídas no resultado precisamos explicitar uma junção externa (OUTER JOIN) 64

65 LEFT OUTER JOIN Combina todas as tuplas da tabela à esquerda da junção com as tuplas cujos valores combinam na tabela a direita adicionando as tuplas da tabela à esquerda que não possuem ligação na tabela à direita Suponha que precisamos criar um relatório como nome de todos os clientes e suas respectivas contas 65

66 LEFT OUTER JOIN Para ter os dados dos clientes e sua conta precisamos realizar uma junção entre as tabelas pessoa e pessoaconta SELECT cpf, pnome, numero FROM pessoa p INNER JOIN pessoaconta pc USING(cpf); 66

67 LEFT OUTER JOIN Note que temos algumas inconsistências: Existem 1000 registros em pessoa Existem 800 registros em conta O resultado da consulta retornou 998 Parece que 2 pessoas não possuem ligação com contas 67

68 LEFT OUTER JOIN Para que todos os clientes apareçam no resultado, independente de ter uma ocorrência do cpf em pessoaconta devemos ter uma junção externa (OUTER) SELECT p.cpf, pnome, numero FROM pessoa p LEFT OUTER JOIN pessoaconta pc ON p.cpf = pc.cpf; 68

69 LEFT OUTER JOIN SELECT cpf, pnome, numero FROM pessoa p LEFT OUTER JOIN pessoaconta pc USING(cpf); SELECT cpf, pnome, numero FROM pessoa p NATURAL LEFT OUTER JOIN pessoaconta pc; 69

70 LEFT OUTER JOIN Note que temos agora: 998 são retornados com a junção interna (INNER JOIN) 1223 linhas no resultado? = 225 pessoas não possuem relação com alguma conta Como saber quem são? 70

71 LEFT OUTER JOIN SELECT cpf, pnome, numero FROM pessoa p NATURAL LEFT OUTER JOIN pessoaconta pc; (todas as pessoas com nenhuma, uma ou mais ocorrências de cpf em pessoaconta) SELECT cpf, pnome, numero FROM pessoa p NATURAL LEFT OUTER JOIN pessoaconta pc WHERE numero IS NULL; (todas as pessoas com nenhuma ocorrências de cpf em pessoaconta) 71

72 Exercícios de fixação Existem contas que não estão vinculadas a nenhum cliente? Existem contas que não estão vinculadas a nenhuma agencia? Existem transações que não estão relacionadas à nenhuma conta? Exiba o quantidade e o valor total das transações que que não estão relacionadas à nenhuma conta Existem contas que não possuem nenhuma transação? 72

73 RIGHT OUTER JOIN Combina todas as tuplas da tabela à direita da junção com as tuplas cujos valores combinam na tabela a esquerda adicionando as tuplas da tabela à direita que não possuem ligação dos valores na tabela à esquerda Repita os exemplo e exercícios do LEFT OUTER JOIN usando RIGHT OUTER JOIN 73

74 FULL OUTER JOIN Combina o resultado obtido com LEFT OUTER JOIN e RIGHT OUTER JOIN Retorna todas as linhas existentes nas tabela envolvidas SELECT cpf, pnome, numero FROM pessoa p FULL OUTER JOIN pessoaconta pc WHERE pnome LIKE 'A%'; 74

75 MySQL O MySQL não implementa o FULL OUTER JOIN podemos usar várias abordagens para conseguir o comando, por exemplo: Realizar JOIN e UNION Realizar UNION ALL e junção externa 75

76 UNION Usado para combinar o resultado de múltiplas seleções Se usado como UNION, todas as linhas duplicadas serão removidas Se usada com a opção ALL (UNION ALL) todas as linhas serão retornadas independente de serem duplicadas Os nomes das colunas da primeira seleção são usados como nome da coluna no resultado 76

77 Exemplo Exiba uma lista com os nomes dos clientes e de agências sem repetições SELECT pnome FROM pessoa UNION SELECT nome FROM agencia; 77

78 Exemplo Exiba uma lista com os nomes dos clientes e de agências com repetições SELECT pnome FROM pessoa UNION ALL SELECT nome FROM agencia; 78

79 MySQL No MySQL somente as relações envolvidas devem ter o mesmo grau Cuidado: como não existe a regra de mesmo domínio no MySQL, podemos realizar a união de qualquer tipo de dados 79

80 MySQL SELECT numero, tipo FROM conta UNION ALL SELECT numero FROM transacao; SELECT numero, tipo FROM conta UNION ALL SELECT numero, abreviacao FROM transacao; 80

81 MySQL SELECT numero, tipo, 'CONTA' FROM conta UNION ALL SELECT numero, abreviacao, 'TRANS' FROM transacao; Obs.: podemos usar textos marcando as linhas 81

82 FULL OUTER JOIN SELECT p.cpf,pc.* FROM pessoa p LEFT OUTER JOIN pessoaconta pc ON p.cpf = pc.cpf UNION ALL SELECT p.cpf,pc.* FROM pessoa p RIGHT OUTER JOIN pessoaconta pc ON p.cpf = pc.cpf; Obs.: todos os registros da primeira seleção mais os registros da segunda seleção com as duplicidades 82

83 FULL OUTER JOIN SELECT p.cpf,pc.* FROM pessoa p LEFT OUTER JOIN pessoaconta pc ON p.cpf = pc.cpf UNION SELECT p.cpf,pc.* FROM pessoa p RIGHT OUTER JOIN pessoaconta pc ON p.cpf = pc.cpf; Obs.: todos os registros da primeira seleção mais os registros da segunda seleção sem as duplicidades 83

84 Exercícios Exiba uma lista com repetições contendo os nomes de pessoas e agências que comecem com a sequencia 'Pa' Exiba uma lista sem repetições dos números das contas corrente e das transações que são saque Una todos os endereços presentes no banco em uma única lista sem repetições e depois com repetições Foi encontrado o número 1010 anotado em um papel do banco, é preciso que você informe o que pode ser esse número 84

85 Exercícios de Fixação O banco deseja saber se seus gerentes estão ganhando mais do que quando entraram. Para isso, pode-se comparar o salário no momento do seu cadastro como cliente e seu salário de contratação. Crie a instrução SQL que mostre o nome completo, endereço, salários e a diferença salarial dos gerentes que possuem pelo menos 10 anos de casa Um cliente possui um limite de crédito. O limite geralmente inicia com 30% do salário do cliente e vai crescendo conforme o cliente vai se relacionando com o banco. Crie a instrução SQL que mostre se existe clientes cujo limite da conta é menor do que 30% do seu salário Na questão anterior, se existe clientes na situação indicada, crie o código que ajuste este limite para 30% do seu salário 85

86 Exercícios de Fixação 1. O banco deseja saber se seus gerentes estão ganhando mais do que quando entraram. Para isso, pode-se comparar o salário no momento do seu cadastro como cliente e seu salário de contratação. Crie a instrução SQL que mostre o nome completo, endereço, salários e a diferença salarial dos gerentes que possuem pelo menos 10 anos de casa 2. Um cliente possui um limite de crédito. O limite geralmente inicia com 30% do salário do cliente e vai crescendo conforme o cliente vai se relacionando com o banco. Crie a instrução SQL que mostre se existe clientes cujo limite da conta é menor do que 30% do seu salário 3. O banco central obriga que os bancos façam uma poupança de 15% dos valores guardados em suas agencias. Calcule, para o ano corrente, de quanto deve ser o depósito de cada agência junto ao banco central 86

87 Exercícios de Fixação 4. A força tarefa da lava jato encontrou o nome sara em uma anotação com o timbre do banco e deseja saber: Existe alguém que possui esse nome? Mostre o total de crédito movimentado por essas pessoas entre 2014 e hoje Mostre o total de débitos movimentados por essas pessoas entre 2014 e hoje 5. Durante os testes vimos que existem várias pessoas sem contas. Levando em consideração essas pessoas, o banco deseja saber: Quantas pessoas são homens Quantas pessoas são mulheres Quantas pessoas têm mais de 30 anos Quantas pessoas não podem ser contatadas o banco 87

BDII SQL Junção Revisão 8

BDII SQL Junção Revisão 8 exatasfepi.com.br BDII SQL Junção Revisão 8 André Luís Duarte Leais são as feridas feitas pelo amigo, mas os beijos do inimigo são enganosos. Provérbios 27:6 SQL Introdução Produto cartesiano Nomes alternativos

Leia mais

BDII SQL DML II Revisão 8

BDII SQL DML II Revisão 8 exatasfepi.com.br BDII SQL DML II Revisão 8 André Luís Duarte Honra a teu pai e a tua mãe (que é o primeiro mandamento com promessa), para que te vá bem, e sejas de longa vida sobre a terra.(ef 6:2,3)

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

Banco de Dados II. Aula Prof. Diemesleno Souza Carvalho

Banco de Dados II. Aula Prof. Diemesleno Souza Carvalho Banco de Dados II Aula 02.4 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Subconsultas Subconsultas Contextualizando... De forma geral, grande parte das consultas

Leia mais

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação 1/5 Universidade Federal da Bahia Disciplina: Banco de Dados Prof a. Daniela Barreiro Claro ALGEBRA RELACIONAL Duas linguagens formais do Modelo Relacional o Álgebra Relacional e Cálculo Relacional Álgebra

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

- SQL Linguagem de Manipulação de Dados

- SQL Linguagem de Manipulação de Dados - SQL Linguagem de Manipulação de Dados Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SELECT SELECT FROM [ WHERE predicado

Leia mais

Consultas SQL. Andre Noel

Consultas SQL. Andre Noel Consultas SQL Andre Noel Introdução Introdução Uma distinção entre SQL e o modelo relacional: SQL permite que uma tabela tenha duas ou mais tuplas iguais Introdução Uma distinção entre SQL e o modelo relacional:

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

Operações da Álgebra Relacional Operadores Especiais da Álgebra Relacional Renomeação

Operações da Álgebra Relacional Operadores Especiais da Álgebra Relacional Renomeação BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br ROTEIRO Operações

Leia mais

BDII SQL DML Revisão 8

BDII SQL DML Revisão 8 exatasfepi.com.br BDII SQL DML Revisão 8 André Luís Duarte Honra a teu pai e a tua mãe (que é o primeiro mandamento com promessa), para que te vá bem, e sejas de longa vida sobre a terra.(ef 6:2,3) SQL

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

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada 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@ufu.br Bloco B - sala 1B137 1 semestre de 2018 2 Escreva

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

Á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

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

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados: As Instruções DML As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados: o INSERT - permite a inclusão de novos registros (linhas) nas tabelas o

Leia mais

Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan Unidade 6.2 Álgebra Relacional - Junção PACIENTE cod-pac

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

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

Roteiro 10: Consultas com várias tabelas/operadores de busca

Roteiro 10: Consultas com várias tabelas/operadores de busca Roteiro 10: Consultas com várias tabelas/operadores de busca Objetivos: Criar consultas utilizando várias tabelas Explorar as funcionalidades de selects em várias tabelas utilizando a notação tabela.campo

Leia mais

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo. Banco de Dados I Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo DML Data Manipulation Language Parte II Consultas Básicas

Leia mais

Pesquisas em Tabelas

Pesquisas em Tabelas Projeto e Administração de Banco de Dados Pesquisas em Tabelas Objetivo Nesta unidade você vai estudar sobre pesquisas em linguagem SQL incluindo comandos de junção de tabelas. Introdução Agora que temos

Leia mais

Álgebra Relacional e SQL operações de interesse

Álgebra Relacional e SQL operações de interesse Álgebra Relacional e SQL operações de interesse 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

Leia mais

Banco de Dados 1 2º Semestre

Banco de Dados 1 2º Semestre Banco de Dados 1 2º Semestre Aula 06 Prof. Gladimir Ceroni Catarino gladimir@gmail.com SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS SQL SERVIÇO NACIONAL DE APRENDIZAGEM

Leia mais

Roteiro. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

Roteiro. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada 1 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@ufu.br Bloco B - sala 1B137 Roteiro s aulas passadas SQL

Leia mais

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero,

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero, Bases de Dados Álgebra Relacional II Junções, agregações, vistas P. Serendero, 2011-13 1 JUNÇÕES OU JOINS em SQL - R S A condição do JOIN é especificada na claúsula ON ou USING,, ou implicitamente

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

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger Banco de Dados Álgebra Relacional João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger Tópicos Apresentação Seleção Projeção Renomeio de Atributos União, Subtração e operações de conjuntos Junção:

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

Revisão de Bancos de Dados

Revisão de Bancos de Dados Revisão de Bancos de Dados Conceitos Básicos 1. Defina o que é um banco de dados e o que é um sistema gerenciador de bancos de dados (SGBD). 2. Defina as arquiteturas de software em duas camadas (cliente/servidor)

Leia mais

DML - SELECT JUNÇÕES (JOIN)

DML - SELECT JUNÇÕES (JOIN) DML - SELECT JUNÇÕES (JOIN) 1. Apresentação Nas consultas (SELECT) apresentadas até aqui, somente uma tabela foi acessada por vez. Quando for necessário apresentar informações que estão em mais de uma

Leia mais

Banco de dados. Aula 22 O Comando SELECT. 1 Wedson Quintanilha da Silva -

Banco de dados. Aula 22 O Comando SELECT. 1 Wedson Quintanilha da Silva - Banco de dados Aula 22 O Comando SELECT 1 O comando SELECT O comando SELECT serve para recuperarmos os dados armazenados no banco de dados. Sua estrutura BASICA é: SELECT FROM WHERE campo1, campo2, campo3,

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

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

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

SQL (Tópicos) Structured Query Language

SQL (Tópicos) Structured Query Language SQL (Tópicos) Structured Query Language ISI Introdução aos Sistemas de Informação SQL (Tópicos) 1 SQL: componentes SQL / DDL (Data Definition Language) Permite definir os Esquemas de Relação Permite definir

Leia mais

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Banco de Dados Álgebra Relacional João Eduardo Ferreira Osvaldo Kotaro Takai Introdução A Álgebra Relacional contempla um conjunto de operações que permitem especificar consultas sob relações. As operações

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

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

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

IMPLEMENTAÇÃO DE BANCO DE DADOS

IMPLEMENTAÇÃO DE BANCO DE DADOS IMPLEMENTAÇÃO DE BANCO DE DADOS MODULO 2 LINGUAGEM SQL CONTEÚDO 2. LINGUAGEM SQL 2.1 Linguagens de Definição de Dados (DDL) 2.1.1 Criação de tabela: CREATE 2.1.2 Alteração de Tabela: ALTER 2.1.3 Exclusão

Leia mais

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro MATA60 BANCO DE DADOS Aula 10- Indexação Prof. Daniela Barreiro Claro Indexação Indexação em SQL; Vantagens e Custo dos Índices; Indexação no PostgreSQL; FORMAS - UFBA 2 de X; X=23 Indexação Sintaxe: create

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

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

Professor Eros Moura, DSc

Professor Eros Moura, DSc Professor Eros Moura, DSc Nesse capítulo: Operadores de Conjunto Construtor de Linha Operador BETWEEN Operador LIKE 2016 Ifes - Campus Cachoeiro de Itapemirim Eros Moura - Banco de Dados 2 Operador de

Leia mais

Ordenação de tuplos order by

Ordenação de tuplos order by Bases de Dados Elementos da linguagem SQL Ordenação de tuplos order by A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de

Leia mais

SQL Consultas Básicas

SQL Consultas Básicas SQL Consultas Básicas Consulta a dados de uma tabela select lista_atributos from tabela [where condição] Mapeamento para a álgebra relacional select a 1,..., a n from t where c π a1,..., an (σ c (t)) Exemplos

Leia mais

IEC Banco de Dados I Aula 06 Álgebra Relacional

IEC Banco de Dados I Aula 06 Álgebra Relacional IEC Banco de Dados I Aula 06 Álgebra Relacional Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho E- mail: andre@icomp.ufam.edu.br Ambiente virtual: hlp://bdufam.wordpress.com Sumário

Leia mais

SQL-99: Esquema de BD EMPRESA

SQL-99: Esquema de BD EMPRESA SQL-99: Esquema de BD EMPRESA SQL-99: Instâncias do esquema EMPRESA 1 Consultas externa, aninhada e correlacionada para cada tupla da consulta externa, a consulta aninhada devolve o atributo solicitado

Leia mais

CA II Variável Composta

CA II Variável Composta exatasfepi.com.br CA II Variável Composta André Luís Duarte O que adquire entendimento ama a sua alma; o que cultiva a inteligência achará o bem. Provérbios 19:8 Variáveis Compostas Homogêneas Unidimensionais

Leia mais

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi Banco de Dados II Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Álgebra Relacional Linguagem de consulta procedural; Consiste em um conjunto básico de operações,

Leia mais

Sintaxe do comando SELECT

Sintaxe do comando SELECT Universidade Estadual de Mato Grosso do Sul Ciência da Computação Banco de Dados Prof. Nilton nilton@comp.uems.br Sintaxe do comando SELECT SELECT FROM [WHERE ]

Leia mais

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados I Professor: Prof. Me. Everton

Leia mais

Banco de Dados I. Aula 9 - Prof. Bruno Moreno 20/09/2011

Banco de Dados I. Aula 9 - Prof. Bruno Moreno 20/09/2011 Banco de Dados I Aula 9 - Prof. Bruno Moreno 20/09/2011 Operações Binárias União (UNION) Interseção (INTERSECTION) Subtração (MINUS) Produto Cartesiano Junção (JOIN) Divisão (DIVISION) Aula passada! REVISÃO

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

INDEX. Serve para organizar os dados e agilizar a pesquisa/consulta dos dados armazenado nas tabelas.

INDEX. Serve para organizar os dados e agilizar a pesquisa/consulta dos dados armazenado nas tabelas. INDEX Serve para organizar os dados e agilizar a pesquisa/consulta dos dados armazenado nas tabelas. 1 INDEX o Criação de index segue o padrão ANSI (o mesmo comando para criar index em um determinado SGBD,

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

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS ÁLGEBRA E CÁLCULO RELACIONAL FELIPE G. TORRES APRESENTAÇÃO Avaliações AV1 AV2 TRAB1 TRAB2 REFERÊNCIAS GRAVES, M. Projeto de Banco de Dados com XML. São Paulo: Makron

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

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; MySQL SQL (Structured Query Languagem ) Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; Inicialmente - Sequel

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

Múltiplas Tabelas. Disciplina de Banco de Dados

Múltiplas Tabelas. Disciplina de Banco de Dados Múltiplas Tabelas Uma das grandes características de um sistema de banco de dados relacional é a capacidade de interagir com múltiplas tabelas relacionadas. Precisamos lembrar que para relacionar tabelas

Leia mais

Bases de Dados 2005/2006. Aula 5

Bases de Dados 2005/2006. Aula 5 Bases de Dados 2005/2006 Aula 5 Sumário -1. (T.P.C.) Indique diferenças entre uma tabela e uma relação. 0. A base de dados Projecto 1. SQL Join (variantes) a. Cross Join b. Equi-Join c. Natural Join d.

Leia mais

Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional

Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional Banco de Dados Prof. Célio R. Castelano Página 1 de 9 Álgebra Relacional A álgebra relacional é uma linguagem procedural, que possui uma coleção de operações que são utilizadas para manipular relações

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

Otimização de Consultas SQL. André Luiz do Vale Soares Banco de Dados II

Otimização de Consultas SQL. André Luiz do Vale Soares Banco de Dados II Otimização de Consultas SQL André Luiz do Vale Soares Banco de Dados II Fatores que influem na seleção de caminho Formulação da Query Formulação do Predicado Índices Estatísticas Buffers Usuários Concorrentes

Leia mais

CAI Fluxograma Revisão 7

CAI Fluxograma Revisão 7 exatasfepi.com.br CAI Fluxograma Revisão 7 André Luís Duarte O coração do entendido adquire o conhecimento, e o ouvido dos sábios busca a sabedoria. Pv 18:15 Fluxograma Introdução Formas básicas Estrutura

Leia mais

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações. Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Aula 11 1) Cláusulas SELECT e FROM a. Apesar de ser a primeira, ela é a

Leia mais

Manipulação de Dados com SQL

Manipulação de Dados com SQL Manipulação de Dados com SQL Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia www.facom.ufu.br/~wendelmelo Banco de Dados I manipulação de dados com SQL 2 Structured Query Language

Leia mais

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação SQL Básica DML Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 22 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 1 / 16 1 Introdução 2 SQL DML INSERT SELECT UPDATE

Leia mais

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011 Banco de Dados I Aula 14 - Prof. Bruno Moreno 11/10/2011 Plano de Aula INSERT UPDATE SELECT-FROM-WHERE Uso de ALIASES SELECT com * DISTINCT Operações de Conjuntos Comparação entre substrings Operadores

Leia mais

Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 1) Clodis Boscarioli

Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 1) Clodis Boscarioli Banco de Dados I 2007 Módulo III: Linguagens de Consulta (Aula 1) Clodis Boscarioli Conteúdo do Módulo: Linguagens de Consulta Formais Álgebra Relacional; Cálculo Relacional de Tupla; Cálculo Relacional

Leia mais

Modelo Relacional - Manipulação

Modelo Relacional - Manipulação Modelo Relacional - Manipulação Duas categorias de linguagens formais álgebra relacional e cálculo relacional comerciais (baseadas nas linguagens formais) SQL Linguagens formais - Características orientadas

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Marcos André Gonçalves - UFMG Parte 3 Aula

Leia mais

O Modelo e a Álgebra Relacional

O Modelo e a Álgebra Relacional O Modelo e a Álgebra Relacional O Modelo Relacional Modelo de dados, que se baseia no princípio em que todos os dados estão guardados em tabelas Baseado em lógica de predicados e na teoria de conjuntos.

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

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas O que é banco de dados? São conjuntos de registros dispostos

Leia mais

Informática Fundamentos em C++ Revisão 1

Informática Fundamentos em C++ Revisão 1 exatasfepi.com.br Informática Fundamentos em C++ Revisão 1 André Luís Duarte Feliz é o homem que acha sabedoria, e o homem que adquire entendimento; Provérbios 3:13 Conceitos em Programação Técnicas de

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

BDII SQL DML II Revisão 7

BDII SQL DML II Revisão 7 exatasfepi.com.br BDII SQL DML II Revisão 7 André Luís Duarte Honra a teu pai e a tua mãe (que é o primeiro mandamento com promessa), para que te vá bem, e sejas de longa vida sobre a terra.(ef 6:2,3)

Leia mais

Banco de Dados. Aula 8 - Prof. Bruno Moreno 16/09/2011

Banco de Dados. Aula 8 - Prof. Bruno Moreno 16/09/2011 Banco de Dados Aula 8 - Prof. Bruno Moreno 16/09/2011 Plano de Aula Operações Unárias Seleção Projeção Operações de seleção e projeção seqüenciadas Operação Rebatizar Operações Binárias União Interseção

Leia mais

PC Fluxograma Revisão 8

PC Fluxograma Revisão 8 exatasfepi.com.br PC Fluxograma Revisão 8 André Luís Duarte O coração do entendido adquire o conhecimento, e o ouvido dos sábios busca a sabedoria. Pv 18:15 Fluxograma Introdução Formas básicas Estrutura

Leia mais

Curso de Banco de Dados. Prof. Rone Ilídio

Curso de Banco de Dados. Prof. Rone Ilídio Curso de Banco de Dados Prof. Rone Ilídio Introdução BD 1 BD 2 SQL BD 3 Dados Aplicação Sistemas de Gerência de Banco de Dados -SGBD Introdução Aplicação que controla os dados Drives ODBC, BDE, ect SQL

Leia mais

Bancos de Dados Notas de Aula Álgebra Relacional Introdução Prof. Dr. Daniel A. Furtado

Bancos de Dados Notas de Aula Álgebra Relacional Introdução Prof. Dr. Daniel A. Furtado Bancos de Dados Notas de Aula Álgebra Relacional Introdução Prof. Dr. Daniel A. Furtado 1 SELEÇÃO (SELECT): Seleciona todas as tuplas de uma relação R que satisfazem uma condição. Notação: Operadores de

Leia mais

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas UTFPR - Universidade Tecnológica Federal do Paraná Processamento e otimização de consultas Leyza Baldo Dorini 04/Nov/2009 Programação da aula Introdução: processamento e otimização de consultas Etapas:

Leia mais

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE CARACTERISTICA DE UMA TABELA: NÃO EXISTEM DUAS LINHAS IGUAIS A ORDEM DAS LINHAS É INSIGNIFICANTE A ORDEM DAS COLUNAS É INSIGNIFICANTE

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

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo ) Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Aula 10 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas

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

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

Banco de Dados II. Aula 02. Prof. Diemesleno Souza Carvalho

Banco de Dados II. Aula 02. Prof. Diemesleno Souza Carvalho Banco de Dados II Aula 02 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... - Sistemas de Gerenciamento de Banco de Dados

Leia mais

Introdução a Bancos de Dados

Introdução a Bancos de Dados Introdução a Bancos de Dados - Conceitos - Modelos lógicos e relacional - Álgebra relacional - SQL - Projeto Lógico INPE - Divisão de Processamento de Imagens INPE 1 Sistemas de Banco de Dados Definição:

Leia mais

Bases de Dados. Junção de relações. Junção de relações

Bases de Dados. Junção de relações. Junção de relações Bases de Dados Junção de relações Junção de relações Tipicamente usadas na cláusula from SQL oferece várias possibilidades condição da junção determina quais são os atributos a comparar tipo de junção

Leia mais

Combinando tabelas: produto seleção projeção

Combinando tabelas: produto seleção projeção Capítulo 5 Combinando tabelas: produto seleção projeção Este capítulo trata de consultas que envolvem mais de uma tabela ou fonte de registros A combinação de tabelas é genericamente denominada junção

Leia mais

Junções e Índices em Tabelas

Junções e Índices em Tabelas Junções e Índices em Tabelas Prof. Fernanda Baião fernanda.baiao@uniriotec.com.br SGBD Considerados MySQL (http://www.mysql.org) SGBD gratuito e simples, sem muitos recursos avançados Fácil de instalar

Leia mais