![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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/30.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/31.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/32.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/33.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/34.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/36.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/37.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/38.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/39.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/40.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/41.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/42.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/43.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/44.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/45.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/46.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/47.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/48.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/49.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/50.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/51.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/52.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/53.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/54.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/55.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/56.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/57.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/58.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/59.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/60.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/61.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/62.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/63.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/64.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/65.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/66.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/67.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/68.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/69.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/70.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022108/5c03765c09d3f2156d8ca8c5/html5/thumbnails/72.jpg)
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/