72
Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob uma Licença Creative Commons . Veja detalhes e restrições adicionais no último slide.

Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Embed Size (px)

Citation preview

Page 1: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Aplicações – SQLBanco de Dados: Teoria e Prática

André SantanchèInstituto de Computação – UNICAMP

Agosto 2011

Estes slides são concedidos sob uma Licença Creative Commons. Veja detalhes e restrições adicionais no último slide.

Page 2: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SQL

SQL – Structured Query Language

Originalmente: SEQUEL – Structured English QUEry Language

Criada pela IBM Research

Interface BD Relacional SYSTEM R→

Page 3: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SQLPadronização

ANSI + ISO

SQL-86 ou SQL1

SQL-92 ou SQL2

SQL:1999 ou SQL3

SQL:2003

SQL:2006

Page 4: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Aplicações e Armazenamento

Arquivos

Arquivos

Aplicação Aplicação Aplicação

(esquema) (esquema) (esquema)

Arquivos Arquivos

Page 5: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Aplicações e Armazenamento

SGBD

Banco de Dados

SGBDSistema Gerenciador de

Banco de Dados

Aplicação Aplicação Aplicação

Page 6: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Dicionário de Dados

Dicionário de Dados

Banco de Dados

SGBDSistema Gerenciador de

Banco de Dados

Aplicação Aplicação Aplicação

(esquema)(esquema)

(esquema)

Page 7: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

CREATE SCHEMA

CREATE SCHEMA <esquema> AUTHORIZATION <id_autorizado>

executeUpdate(...)

Page 8: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

CREATE TABLE

CREATE TABLE <tabela> (<campo

1> <tipo> [NULL|NOT NULL] [restrição],

[...,<campo

n> <tipo> [NULL|NOT NULL] [restrição],

PRIMARY KEY <chave_primaria>])

executeUpdate(...)

Page 9: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

CREATE TABLE

CREATE TABLE Taxi2 ( Placa VARCHAR(7) NOT NULL, Marca VARCHAR(30) NOT NULL, Modelo VARCHAR(30) NOT NULL, AnoFab INTEGER, Licenca VARCHAR(9), PRIMARY KEY(Placa))

Page 10: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

INSERT

INSERT INTO <tabela>[(<campo

1>[,..., <campo

n>])]

VALUES ( <valor1>[,..., <valor

n>])

executeUpdate(...)

Page 11: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

SELECT * | <campo1>[,..., <campo

n>]

FROM <tabela1>[,..., <tabela

n>]

WHERE <condição/junção>

executeQuery(...)

Page 12: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

LIKE SELECT ...

FROM <tabela1>[,..., <tabela

n>]

WHERE <condição/junção>

% qualquer cadeia com 0 a n caracteres→ _ exatamente um caractere (qualquer)→ = caractere de escape→

e.g., serve para encontrar um caractere _

Page 13: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

AS (alias)

SELECT <campo1> [AS] <alias

1>

[,..., <campon> [AS] <alias

n>]

...

SELECT ...FROM <tabela

1> [AS] <alias

1>

[,..., <tabelan> [AS] <alias

n>]

...

Page 14: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

DISTINCT e ALL SELECT DISTINCT ...

SELECT ALL ...

A cláusula ALL é implícita se não especificada

Page 15: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

ORDER BY SELECT ...

ORDER BY <campo1>[,..., <campo

n>]

Page 16: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

DELETE

DELETE FROM <tabela1>

WHERE <condição>

executeUpdate(...))

Page 17: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

UPDATE

UPDATE <tabela>SET <campo

1>=<valor

1>

[,..., <campon>=<valor

n>]

WHERE <condição>

executeUpdate(...)

Page 18: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Estudo de Caso

SQL UPDATE Marcadores

SET Categoria = <nova>WHERE Categoria = <antiga>

UPDATE TaxonomiaSET Categoria = <nova>WHERE Categoria = <antiga>

UPDATE TaxonomiaSET Superior = <nova>WHERE Superior = <antiga>

Page 19: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Prepared Statement

Page 20: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Utilizando o PreparedStatement

SELECT FROM MarcadoresWHERE Titulo = ?

<comando>.setString(<numero>, <valor>)

Page 21: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Utilizando o PreparedStatement

INSERT INTO MarcadoresVALUES ( ? , ? , ? , ? )

<comando>.setString(<numero>, <valor>)

<comando>.setInt(<numero>, <valor>)

Page 22: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Utilizando o PreparedStatement

UPDATE MarcadoresSET Categoria = ?WHERE Categoria = ?

<comando>.setString(<numero>, <valor>)

<comando>.setInt(<numero>, <valor>)

Page 23: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Agrupamento

Page 24: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

GROUP BY

SELECT * | <campo1>[,..., <campo

n>]

FROM <tabela1>[,..., <tabela

n>]

WHERE <condição/junção>

GROUP BY <coluna_agrupar>

HAVING <condição_grupo>

Page 25: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Funções de Agregação

COUNT(*) contagem

SUM(<coluna>) soma

AVG(<coluna>) média

MAX(<coluna>) maior valor

MIN(<coluna>) menor valor

Page 26: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Visões

Page 27: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

VIEW

CREATE VIEW <nome> ASSELECT ...

Page 28: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Consultas Aninhadas

Page 29: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

IN e NOT IN SELECT ...

WHERE <campo> IN(SELECT <campo> …)

SELECT ...WHERE <campo> NOT IN

(SELECT <campo> ...)

Page 30: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

EXISTS e NOT EXISTS SELECT ...

WHERE EXISTS(SELECT <campo> …)

SELECT ...WHERE NOT EXISTS

(SELECT <campo> ...)

Page 31: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

Comparação SELECT ...

WHERE <campo> <comparação>(SELECT <campo> …)

Page 32: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Outer Join

Page 33: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Outer Join

SELECT … FROM <tabela> <join> <tabela> ON <condição> …

<join>

JOIN

NATURAL JOIN

LEFT JOIN

RIGT JOIN

FULL JOIN

Page 34: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

União, Interseção e Diferença

SELECT …<operador>SELECT ...

<operador>

UNION

INTERSECT

EXCEPT

Page 36: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Licença Estes slides são concedidos sob uma Licença Creative

Commons. Sob as seguintes condições: Atribuição, Uso Não-Comercial e Compartilhamento pela mesma Licença, com restrições adicionais:

Se você é estudante, você não está autorizado a utilizar estes slides (total ou parcialmente) em uma apresentação na qual você esteja sendo avaliado, a não ser que o professor que está lhe avaliando:

lhe peça explicitamente para utilizar estes slides;

ou seja informado explicitamente da origem destes slides e concorde com o seu uso.

Mais detalhes sobre a referida licença Creative Commons veja no link:http://creativecommons.org/licenses/by-nc-sa/2.5/br/

Page 37: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Aplicações – SQLBanco de Dados: Teoria e Prática

André SantanchèInstituto de Computação – UNICAMP

Agosto 2011

Estes slides são concedidos sob uma Licença Creative Commons. Veja detalhes e restrições adicionais no último slide.

Page 38: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SQL

SQL – Structured Query Language

Originalmente: SEQUEL – Structured English QUEry Language

Criada pela IBM Research

Interface BD Relacional SYSTEM R→

Page 39: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SQLPadronização

ANSI + ISO

SQL-86 ou SQL1

SQL-92 ou SQL2

SQL:1999 ou SQL3

SQL:2003

SQL:2006

Page 40: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Aplicações e Armazenamento

Arquivos

Arquivos

Aplicação Aplicação Aplicação

(esquema) (esquema) (esquema)

Arquivos Arquivos

Page 41: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Aplicações e Armazenamento

SGBD

Banco de Dados

SGBDSistema Gerenciador de

Banco de Dados

Aplicação Aplicação Aplicação

“Database System:- The DBMS software together with the data itself. Sometimes, the applications are also included” (Elmasri, 2007, c. 1, s. 5)

Page 42: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Dicionário de Dados

Dicionário de Dados

Banco de Dados

SGBDSistema Gerenciador de

Banco de Dados

Aplicação Aplicação Aplicação

(esquema)(esquema)

(esquema)

Page 43: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

CREATE SCHEMA

CREATE SCHEMA <esquema> AUTHORIZATION <id_autorizado>

executeUpdate(...)

Page 44: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

CREATE TABLE

CREATE TABLE <tabela> (<campo

1> <tipo> [NULL|NOT NULL] [restrição],

[...,<campo

n> <tipo> [NULL|NOT NULL] [restrição],

PRIMARY KEY <chave_primaria>])

executeUpdate(...)

Page 45: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

CREATE TABLE

CREATE TABLE Taxi2 ( Placa VARCHAR(7) NOT NULL, Marca VARCHAR(30) NOT NULL, Modelo VARCHAR(30) NOT NULL, AnoFab INTEGER, Licenca VARCHAR(9), PRIMARY KEY(Placa))

Page 46: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

INSERT

INSERT INTO <tabela>[(<campo

1>[,..., <campo

n>])]

VALUES ( <valor1>[,..., <valor

n>])

executeUpdate(...)

Page 47: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

SELECT * | <campo1>[,..., <campo

n>]

FROM <tabela1>[,..., <tabela

n>]

WHERE <condição/junção>

executeQuery(...)

Page 48: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

LIKE SELECT ...

FROM <tabela1>[,..., <tabela

n>]

WHERE <condição/junção>

% qualquer cadeia com 0 a n caracteres→ _ exatamente um caractere (qualquer)→ = caractere de escape→

e.g., serve para encontrar um caractere _

Page 49: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

AS (alias)

SELECT <campo1> [AS] <alias

1>

[,..., <campon> [AS] <alias

n>]

...

SELECT ...FROM <tabela

1> [AS] <alias

1>

[,..., <tabelan> [AS] <alias

n>]

...

Page 50: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

DISTINCT e ALL SELECT DISTINCT ...

SELECT ALL ...

A cláusula ALL é implícita se não especificada

Page 51: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

ORDER BY SELECT ...

ORDER BY <campo1>[,..., <campo

n>]

Page 52: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

DELETE

DELETE FROM <tabela1>

WHERE <condição>

executeUpdate(...))

Page 53: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

UPDATE

UPDATE <tabela>SET <campo

1>=<valor

1>

[,..., <campon>=<valor

n>]

WHERE <condição>

executeUpdate(...)

Page 54: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Estudo de Caso

SQL UPDATE Marcadores

SET Categoria = <nova>WHERE Categoria = <antiga>

UPDATE TaxonomiaSET Categoria = <nova>WHERE Categoria = <antiga>

UPDATE TaxonomiaSET Superior = <nova>WHERE Superior = <antiga>

Page 55: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Prepared Statement

Page 56: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Utilizando o PreparedStatement

SELECT FROM MarcadoresWHERE Titulo = ?

<comando>.setString(<numero>, <valor>)

Page 57: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Utilizando o PreparedStatement

INSERT INTO MarcadoresVALUES ( ? , ? , ? , ? )

<comando>.setString(<numero>, <valor>)

<comando>.setInt(<numero>, <valor>)

Page 58: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Utilizando o PreparedStatement

UPDATE MarcadoresSET Categoria = ?WHERE Categoria = ?

<comando>.setString(<numero>, <valor>)

<comando>.setInt(<numero>, <valor>)

Page 59: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Agrupamento

Page 60: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

GROUP BY

SELECT * | <campo1>[,..., <campo

n>]

FROM <tabela1>[,..., <tabela

n>]

WHERE <condição/junção>

GROUP BY <coluna_agrupar>

HAVING <condição_grupo>

Page 61: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Funções de Agregação

COUNT(*) contagem

SUM(<coluna>) soma

AVG(<coluna>) média

MAX(<coluna>) maior valor

MIN(<coluna>) menor valor

Page 62: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Visões

Page 63: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

VIEW

CREATE VIEW <nome> ASSELECT ...

Page 64: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Consultas Aninhadas

Page 65: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

IN e NOT IN SELECT ...

WHERE <campo> IN(SELECT <campo> …)

SELECT ...WHERE <campo> NOT IN

(SELECT <campo> ...)

Page 66: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

EXISTS e NOT EXISTS SELECT ...

WHERE EXISTS(SELECT <campo> …)

SELECT ...WHERE NOT EXISTS

(SELECT <campo> ...)

Page 67: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

SELECT

Comparação SELECT ...

WHERE <campo> <comparação>(SELECT <campo> …)

Page 68: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Outer Join

Page 69: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Outer Join

SELECT … FROM <tabela> <join> <tabela> ON <condição> …

<join>

JOIN

NATURAL JOIN

LEFT JOIN

RIGT JOIN

FULL JOIN

Page 70: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

União, Interseção e Diferença

SELECT …<operador>SELECT ...

<operador>

UNION

INTERSECT

EXCEPT

Page 72: Aplicações – SQL · Aplicações – SQL Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Agosto 2011 Estes slides são concedidos sob

Licença Estes slides são concedidos sob uma Licença Creative

Commons. Sob as seguintes condições: Atribuição, Uso Não-Comercial e Compartilhamento pela mesma Licença, com restrições adicionais:

Se você é estudante, você não está autorizado a utilizar estes slides (total ou parcialmente) em uma apresentação na qual você esteja sendo avaliado, a não ser que o professor que está lhe avaliando:

lhe peça explicitamente para utilizar estes slides;

ou seja informado explicitamente da origem destes slides e concorde com o seu uso.

Mais detalhes sobre a referida licença Creative Commons veja no link:http://creativecommons.org/licenses/by-nc-sa/2.5/br/