Banco de Dados - WordPress.com · 2012. 10. 30. · AULA 12 Banco de Dados Adaptado dos slides do...

Preview:

Citation preview

Disciplina:

http://docente.ifrn.edu.br/edmilsoncampos/

edmilson.campos@ifrn.edu.br

@edmilsonbcn

Edmilson Campos, Prof.

AULA 12

Banco de Dados

Adaptado dos slides do Prof. José Antônio, IFRN – CNAT.

Introdução

Edmilson Campos (edmilson.campos@ifrn.edu.br)2

Edmilson Campos (edmilson.campos@ifrn.edu.br)3

»

»

»

»

»

Edmilson Campos (edmilson.campos@ifrn.edu.br)4

Cod_Cli Nome_Cli Sexo_Cli Renda_Cli RG_Cli

1 João Carlos M 5000.00 123456

2 Daniel M 6000.00 145678

3 Helena F 6000.00 564333

4 Roberta F 5000.00 564322

5 Renata F 3000.00 654321

6 Giovanna F 3500.00 564322

Tabela Cliente

Cod_Func Nome_Func Sexo_Func Sal_Func Data_CadFunc

1 Salvador M 7000.00 03/01/1995

2 Antônio M 6000.00 06/05/1998

3 Antonieta F 6500.00 07/08/1998

4 Eduardo M 4000.00 06/08/2000

5 Leny F 3000.00 06/08/2001

Tabela Funcionário

Edmilson Campos (edmilson.campos@ifrn.edu.br)5

Edmilson Campos (edmilson.campos@ifrn.edu.br)6

SELECT 'Funcionário' AS TIPO,

Nome_Func AS NOME,

Sexo_Func AS SEXO,

Sal_Func AS SEXO,

Data_CadFunc AS 'DATA DE CADASTRO',

RG = null

FROM Funcionario

UNION ALL

SELECT 'Cliente',

Nome_Cli,

Sexo_Cli,

Renda_Cli,

Null,

RG_Cli

FROM Cliente

ORDER BY tipo

TIPO NOME SEXO DATA DE CADASTRO

RG

Cliente João Carlos M NULL 123456

Cliente Daniel M NULL 145678

Cliente Helena F NULL 564333

Cliente Roberta F NULL 564322

Cliente Renata F NULL 654321

Cliente Giovanna F NULL 564322

Funcionário Salvador M 03/01/1995 NULL

Funcionário Antônio M 06/05/1998 NULL

Funcionário Antonieta F 07/08/1998 NULL

Funcionário Eduardo M 06/08/2000 NULL

Funcionário Leny F 06/08/2001 NULL

Edmilson Campos (edmilson.campos@ifrn.edu.br)7

»

»

Edmilson Campos (edmilson.campos@ifrn.edu.br)8

Edmilson Campos (edmilson.campos@ifrn.edu.br)9

Cod_Pai Nome_Pai Idade_Pai

1 Daniel de Souza Leão Sobrinho 62

2 João Carlos da Silva 38

3 Fernando de Oliveira 36

Cod_Filho Cod_Pai Nome_Filho Sexo_Filho

1 1 Renata de Oliveira Leão F

2 1 Fernando de Oliveira Leão M

3 1 Roberta de Oliveira Leão F

4 1 Jairo de Oliveira Leão M

5 2 Giovanna da Silva F

6 3 Lucas Ribeiro Oliveira M

7 3 Helder Ribeiro Oliveira M

Edmilson Campos (edmilson.campos@ifrn.edu.br)10

▪»

▪»

SELECT Pai.Nome_Pai AS ‘Nome do Pai’,

Filho.Nome_Filho AS ‘Nome do Filho’,

Filho.Sexo_Filho AS Sexo

FROM Pai INNER JOIN Filho

ON (Pai.Cod_Pai = Filho.Cod_Pai)

SELECT *

FROM Pai INNER JOIN Filho

ON Pai.Cod_Pai = Filho.Cod_Pai

Edmilson Campos (edmilson.campos@ifrn.edu.br)11

Cod_Emp Nome_Emp Cod_Chefe

1 João Null

2 Matheus 1

3 Lucas 1

4 Pedro 2

5 Thiago 2

6 José 2

7 Tânia 1

8 Joana 3

9 Rosana 3

10 Maria 4

SELECT C.Nome_Emp AS Chefe,

E.Nome_Emp AS Empregado

FROM Empregado C, Empregado E

WHERE C.Cod_Emp = E.Cod_Chefe

ORDER BY C.Nome

SELECT Pai.Nome_Pai AS ‘Nome do Pai’,

Filho.Nome_Filho AS ‘Nome do Filho’,

Filho.Sexo_Filho AS Sexo

FROM Pai LEFT OUTER JOIN Filho

ON Pai.Cod_Pai = Filho.Cod_Pai

Esse consulta retorna

todos os pais com

filhos ou não

SELECT Pai.Nome_Pai AS ‘Nome do Pai’,

Filho.Nome_Filho AS ‘Nome do Filho’,

Filho.Sexo_Filho AS Sexo

FROM Pai RIGHT OUTER JOIN Filho

ON (Pai.Cod_Pai = Filho.Cod_Pai)

Esse consulta retorna

todos os filhos com

pais registrados ou

não no sistema

Edmilson Campos (edmilson.campos@ifrn.edu.br)12

Edmilson Campos (edmilson.campos@ifrn.edu.br)13

SELECT Pai.Nome_Pai AS ‘Nome do Pai’,

Filho.Nome_Filho AS ‘Nome do Filho’,

Filho.Sexo_Filho AS Sexo

FROM Pai FULL OUTER JOIN Filho

ON (Pai.Cod_Pai = Filho.Cod_Pai)

Edmilson Campos (edmilson.campos@ifrn.edu.br)14

Select Pedido.Num_Ped,

Material.Nome_Mat

FROM Pedido CROSS JOIN Material

Cod_Mat Nome_Mat

1 Caderno

2 Lápis

3 Borracha

4 Caneta

Num_Ped Data_Ped

1 24/06/2002

2 06/08/2002

Tabela Pedido Tabela Material

Edmilson Campos (edmilson.campos@ifrn.edu.br)15

SELECT DISTINCT Pai.Nome_Pai AS ‘Nome do Pai’,

Filho.Nome_Filho AS ‘Nome do Filho’,

Notas.Nota_Filho AS ‘Nota do Filho’

FROM Pai INNER JOIN Filho ON (Pai.Cod_Pai = Filho.Cod_Pai)

INNER JOIN Notas ON (Filho.Cod_Filho = Notas.Cod_Filho)

Retorna todos os filhos e seus

respectivos pais e suas notas

Edmilson Campos (edmilson.campos@ifrn.edu.br)16

SELECT DISTINCT Pai.Nome_Pai AS ‘Nome do Pai’,

Filho.Nome_Filho AS ‘Nome do Filho’,

Notas.Nota_Filho AS ‘Nota do Filho’

FROM Pai INNER JOIN Filho ON (Pai.Cod_Pai = Filho.Cod_Pai)

LEFT JOIN Notas ON (Filho.Cod_Filho = Notas.Cod_Filho)

Retorna todos os filhos e seus

respectivos pais e suas notas,

inclusive os filhos sem notas

Edmilson Campos (edmilson.campos@ifrn.edu.br)17

SELECT DISTINCT Pai.Nome_Pai AS ‘Nome do Pai’,

Filho.Nome_Filho AS ‘Nome do Filho’,

Notas.Nota_Filho AS ‘Nota do Filho’

FROM Pai LEFT JOIN Filho ON (Pai.Cod_Pai = Filho.Cod_Pai)

LEFT JOIN Notas ON (Filho.Cod_Filho = Notas.Cod_Filho)

Retorna todos os filhos e seus

respectivos pais e suas notas.

Mostra também os pais com filhos e

filhos sem notas e os pais sem filhos.

Edmilson Campos (edmilson.campos@ifrn.edu.br)18

SELECT DISTINCT Pai.Nome_Pai AS ‘Nome do Pai’,

Filho.Nome_Filho AS ‘Nome do Filho’,

Notas.Nota_Filho AS ‘Nota do Filho’

FROM Pai FULL JOIN Filho ON (Pai.Cod_Pai = Filho.Cod_Pai)

FULL JOIN Notas ON (Filho.Cod_Filho = Notas.Cod_Filho)

Retorna pai com filho e filho

com nota, e filho sem pai e

sem nota.

Edmilson Campos (edmilson.campos@ifrn.edu.br)19

Recommended