Escolar Documentos
Profissional Documentos
Cultura Documentos
• Introdução
• Conceitos básicos, características da abordagem de banco
de dados, modelos de dados, esquemas e instâncias,
arquitetura de um sistema de banco de dados,
componentes de um sistema de gerência de banco de
dados.
• Modelos de dados e linguagens
• Modelo entidade-relacionamento (ER), modelo relacional,
álgebra relacional, SQL.
• Projeto de bancos de dados
• Fases do projeto de bancos de dados, projeto lógico de
bancos de dados relacionais, normalização.
• Novas Tecnologias e Aplicações de Banco de Dados
DCC011 - profa. Mirella M. Moro 2
SQL: Consultas
Exemplos
1. Consultas Básicas
2. Facilidades Adicionais
3. Consultas Complexas
ALUNOS
Problema Matr Nome Sexo Cr
1 A F CC
• Dado um conjunto de
tabelas e seus dados 2 B M CC
• Como recuperar os 3 C M CC
dados? 4 D F MC
• Como realizar consultas a 5 E M MC
esses dados? 6 F M SI
• “Me diz aí os nomes das
7 G F SI
alunas do curso de
Ciência da Computação 8 H F SI
ordenados 9 I M SI
alfabeticamente”
10 J M ECA
1. SELECT Matr
FROM ALUNOS
WHERE Sexo = ‘F’;
2. SELECT Nome
FROM ALUNOS
WHERE Sexo = ‘F’
AND Cr = ‘SI’;
3. SELECT Matr
FROM ALUNOS
WHERE Sexo = ‘F’
AND Cr <> “CC”;
DCC011 - profa. Mirella M. Moro 6
Solução: SQL select-from-where
SELECT Nome
FROM ALUNOS
WHERE Sexo = ‘F’
AND Cr = ‘CC’
ORDER BY Nome;
2 B M CC MC DCC TN
Matemática
Computacional
3 C M CC SI DCC CDJ
Sistemas de
Informação
5 E M MC MATRICULAS
6 F M SI Matr Disc T Sem
7 G F SI 1 DCC011 Z 20162
8 H F SI 1 DCC851 A 20162
9 I M SI 1 DCC834 A 20161
10 J M ECA 2 DCC011 Z 20161
... ...
DCC011 - profa. Mirella M. Moro
... ... 9
Em formato texto
ALUNOS (Matr, Nome, Sexo, Cr)
Cr referencia CURSOS
CURSOS (Cr, Nome, Depto, Coord)
Depto referencia DEPARTAMENTOS
Coord referencia PROFESSORES
MATRICULAS (Matr, Disc, T, Sem)
Matr referencia ALUNOS
Disc referencia DISCIPLINAS
DEPARTAMENTOS (...)
PROFESSORES (...)
DISCIPLINAS (...)
DCC011 - profa. Mirella M. Moro 10
Mais Problemas
EM INGLÊS
EMPLOYEE(ssn, fname, lname, address,bdate, superssn, dno)
superssn REFERENCIA EMPLOYEE
dno REFERENCIA DEPARTMENT
DEPARTAMENT (dnum, dname, mgrssn, mgrinitialdate)
mgrssn REFERENCIA EMPLOYEE.ssn
PROJECT (pnumber, pname, plocation, dnum)
dnum REFERENCIA DEPARTAMENT
DEPT_LOCATIONS (dnumber,dlocation)
dnumber REFERENCIA DEPARTAMENT
DCC011 - profa. Mirella M. Moro 17
Consultas Básicas em SQL
B. Atributos Ambíguos e Pseudônimos (alias)
(Q2) • SELECT pnumber, dnum, lname, address, bdate
FROM PROJECT P, DEPARTMENT D, EMPLOYEE E
WHERE plocation=‘Stafford’ AND
condição de seleção
D.dnum=P.dnum AND D.mgrssn=E.ssn;
condição de junção
π pnumber,dnum,lname,address,bdate σplocation=‘Stafford’
(EMPLOYEE ⋈ ssn=mgrssn (DEPARTMENT ⋈ PROJECT))
SELECT *
(Q1D)
FROM EMPLOYEE, DEPARTMENT
WHERE Dname=‘Research’ AND Dno=Dnumber;
• Operações
• SELECT DISTINCT, SELECT ALL
• ∪: UNION, : EXCEPT, ∩: INTERSECT
NATURAL JOIN
NATURAL LEFT OUTER JOIN
NATURAL RIGHT OUTER JOIN
?
select * from Item I JOIN Item_Pedido IP
ON I.Cod_Item=IP.Cod_Item
6 18
select * from (Item I LEFT OUTER JOIN Item_Pedido IP
ON I.Cod_Item=IP.Cod_Item)
6 19
select * from (Item NATURAL LEFT OUTER JOIN Item_Pedido) 5 19
DCC011 - profa. Mirella M. Moro 29
A B A B
SQL JOINS
SELECT … SELECT …
FROM A LEFT JOIN B FROM A RIGHT JOIN B
ON A.key = B.key A B ON A.key = B.key
SELECT …
A B A B
FROM A INNER JOIN B
ON A.key = B.key
SELECT … SELECT …
FROM A LEFT JOIN B FROM A RIGHT JOIN B
ON A.key = B.key ON A.key = B.key
WHERE B.key IS NULL WHERE A.key IS NULL
A B A B
SELECT … SELECT …
FROM A FULL OUTER JOIN B FROM A FULL OUTER JOIN B
ON A.key = B.key ON A.key = B.key
WHERE A.key IS NULL
OR B.key IS NULL
DCC011 - profa. Mirella M. Moro 30
Facilidades Adicionais
B. FUNÇÕES DE AGREGAÇÃO
• SELECT COUNT(*)
FROM EMPLOYEE, DEPARTMENT
WHERE DNO=DNUMBER AND DNAME=‘Research’;
Exercícios
podem ser executados no site www.lbd.dcc.ufmg.br/praticandosql
selecionar o banco de dados COMPANY
1. Retorne o SSN dos empregados:
a. que trabalham no departamento 4;
b. que trabalham no departamento 4 ou 5;
c. que trabalham no departamento gerenciado pelo empregado 987654321;
d. que trabalham mais de 9 horas no projeto 10;
2. Retorne o total de horas que o empregado 333445555 trabalha em projetos;
3. Retorne o máximo, mínimo e média de horas que os empregados trabalham no projeto 30;
4. Retorne todos os projetos (incluindo os sem empregados) seguidos do ssn dos seus
empregados;
b. que trabalham no
departamento 4 ou 5;
3. Retorne o máximo,
mínimo e média de
horas que os
empregados
trabalham no projeto
30;
4. Retorne todos os
projetos (incluindo os
sem empregados)
seguidos do ssn dos
seus empregados;