Professional Documents
Culture Documents
Aula 12 - Banco de Dados I
Aula 12 - Banco de Dados I
SQL ZOO
● From world:
Examples:
5. SELECT name, population FROM world WHERE name IN ('France', 'Germany', 'Italy');
6. SELECT name FROM world WHERE name LIKE '%United%';
7. SELECT name, population, area FROM world WHERE area > 3000000 OR population > 250000000;
8. SELECT name, population, area FROM world WHERE (area > 3000000 AND population <=
250000000) OR (area <= 3000000 AND population > 250000000)
10. SELECT name, ROUND(gdp/population, -3) AS per_capita_gdp FROM world WHERE gdp >=
1000000000000;
12. SELECT name, capital FROM world WHERE LEFT(name,1) = LEFT(capital,1) AND name <> capital;
● From Nobel:
Examples:
6. SELECT * FROM nobel WHERE winner IN ('Theodore Roosevelt', 'Woodrow Wilson', 'Jimmy Carter',
'Barack Obama');
9. SELECT yr, subject, winner FROM nobel WHERE yr = 1980 AND subject NOT IN ('Chemistry',
'Medicine');
10. SELECT yr, subject, winner FROM nobel WHERE (subject = 'Medicine' AND yr < 1910) OR (subject =
'Literature' AND yr >= 2004) ORDER BY yr ASC;
● Join:
3. SELECT goal.player, goal.teamid, game.stadium, game.mdate FROM game JOIN goal ON game.id =
goal.matchid WHERE goal.teamid = 'GER';
4. SELECT g.team1, g.team2, g.player FROM game g JOIN goal go ON g.id = go.matchid JOIN eteam et ON
go.teamid = et.id WHERE go.player LIKE 'Mario%'
5. SELECT g.player, g.teamid, e.coach, g.gtime FROM goal AS g JOIN eteam AS e ON g.teamid = e.id WHERE
g.gtime <= 10;
6. SELECT game.mdate, eteam.teamname FROM game JOIN eteam ON game.team1 = eteam.id WHERE
eteam.coach = 'Fernando Santos';
7. SELECT g.player FROM game AS gm JOIN goal AS g ON gm.id = g.matchid WHERE gm.stadium = 'National
Stadium, Warsaw';
UNIVERSIDADE DO VALE DO RIO DOS SINOS
Disciplina: Banco de Dados I Aluna: Jennifer Diehl e Patricia Nagel
8. SELECT g.player FROM game AS gm JOIN goal AS g ON gm.id = g.matchid JOIN eteam AS t1 ON gm.team1
= t1.id JOIN eteam AS t2 ON gm.team2 = t2.id WHERE (t1.teamname = 'Germany' OR t2.teamname =
'Germany') AND g.teamid <> 'GER';
10. SELECT g.stadium, COUNT(*) AS goals_scored FROM game g JOIN goal gl ON g.id = gl.matchid GROUP BY
g.stadium;
11. SELECT g.matchid, g.mdate, COUNT(*) AS goals_scored FROM game AS g JOIN goal AS gl ON g.id =
gl.matchid WHERE (g.team1 = 'POL' OR g.team2 = 'POL') GROUP BY g.matchid, g.mdate;
12. SELECT g.id AS matchid, g.mdate AS match_date, COUNT(*) AS goals_scored FROM game g JOIN goal
go ON g.id = go.matchid WHERE go.teamid = 'GER' GROUP BY g.id, g.mdate;
13. SELECT g.mdate, g.team1, SUM(CASE WHEN g.team1 = go.teamid THEN 1 ELSE 0 END) AS score1, g.team2,
SUM(CASE WHEN g.team2 = go.teamid THEN 1 ELSE 0 END) AS score2 FROM game g JOIN goal go ON g.id
= go.matchid GROUP BY g.id, g.mdate, g.team1, g.team2 ORDER BY g.mdate, g.id, g.team1, g.team2;