Spring 2005

ITEC 340  Homework 2 - Solution

 

Use the DESCRIBE and SELECT commands to examine the following tables:

 

Nascar.Drivers

Nascar.Races

Nascar.Results

Nascar.Teams

Nascar.Cars

 

Construct a separate script for each of the following.  Please use the script name indicated. 

 

H2a.sql            The driver name, team name, and finish place of Brickyard 400 finishes, ordered by finish place from best finish to worst finish.     

 

                        SELECT drivers.driver, team, finish

                        FROM nascar.drivers INNER JOIN nascar.results

                        ON nascar.drivers.driver = nascar.results.driver

                        WHERE race=’Brickyard 400’

                        ORDER BY finish ASC;

 

H2b.sql            The driver name, and team name of all drivers who drive for a team that runs Chevrolets.

 

                        SELECT driver, team

                        FROM nascar.drivers INNER JOIN nascar.teams

                        ON nascar.drivers.team = nascar.teams.team

                        WHERE make=’Chevrolet’;

 

                        Or the following nested query will work:

 

                        SELECT driver, team

                        FROM nascar.drivers

WHERE team IN (SELECT team

                                 FROM nascar.teams

                                                         WHERE make=’Chevrolet’);

 

H2c.sql            The driver name, race name, and finish place of all results for races that were run at the Pocono Raceway,

                        in order by race and within race by finish place.

 

                        SELECT driver, races.race, finish

                        FROM nascar.races INNER JOIN nascar.results

                        ON nascar.races.race = nascar.results.race

                        WHERE venue=‘Pocono Raceway’

                        ORDER BY races.race ASC, finish ASC;

 

                        Or the following nested query will work:

 

                        SELECT driver, race, finish

                        FROM nascar.results

WHERE race IN (SELECT race

                                 FROM nascar.races

                                                         WHERE venue=’Pocono Raceway’);

 

H2d.sql           A list of venues (Tracks) and the number or races planned at each venue.

 

                        SELECT venue, count(race) as NumRaces

                        FROM nascar.races

GROUP BY venue;

 

H2e.sql            The driver name, team name, race name, and venue for all first place finishes.

 

                        SELECT drivers.driver, team, races.race, venue

                        FROM nascar.drivers INNER JOIN nascar.results

                        ON drivers.driver = results.driver

                        INNER JOIN nascar.races

                        ON results.race = races.race

                        WHERE finish = 1;

 

H2f.sql                        The name of any driver that raced at both the Brickyard 400 and the Coca-Cola 600.

 

                        SELECT driver

                        FROM nascar.drivers

                        WHERE race=’Brickyard 400’

                           INTERSECT

                        SELECT driver

                        FROM nascar.drivers

                        WHERE race=’Coca-Cola 600’;

 

H2g.sql            The name of any driver that raced at the Brickyard 400 but not the Coca-Cola 600.

 

                        SELECT driver

                        FROM nascar.drivers

                        WHERE race=’Brickyard 400’

                           MINUS

                        SELECT driver

                        FROM nascar.drivers

                        WHERE race=’Coca-Cola 600’;

 

H2h.sql            The name of any driver (with no names repeated) who ran a race at the Pocono Raceway.

 

                        SELECT DISTINCT driver

                        FROM nacar.results INNER JOIN nascar.races

                        ON results.race = races.race

                        WHERE venue = ‘Pocono Raceway’

 

                        Or the following nested query will work:

 

                        SELECT DISTINCT driver

                        FROM nascar.results

WHERE race IN (    SELECT race

                                 FROM nascar.races

                                                         WHERE venue=’Pocono Raceway’);

 

H2i.sql             The names of any drivers that have not run in any race.

 

                        SELECT driver

                        FROM nascar.drivers

                           MINUS

                        SELECT driver

                        FROM nascar.results

 

                        Or the following nested query will work:

 

                        SELECT driver

FROM nascar.drivers

WHERE driver NOT IN (SELECT driver

    FROM  nascar.drivers NATURAL INNER JOIN  nascar.results);

 

                        Or the following outer join will work:

 

SELECT drivers.driver

FROM nascar.drivers LEFT OUTER JOIN nascar.results

ON drivers.driver = results.driver

WHERE race IS NULL        

 

 

H2j.sql             The name of every driver (including those that have not raced at all) and the number of races they ran in,

                        ordered from the driver who ran in the most races to the drivers that ran in no races.

 

                        SELECT driver, count(race) as NumRaces

                        FROM  nascar.drivers LEFT OUTER JOIN nascar.results

                        ON drivers.driver = results.driver

                        GROUP BY driver

                        ORDER BY NumRaces DESC;

 

                        Or the following query will work:

 

                        SELECT driver, count(race)

                        FROM  nascar.results

                        GROUP BY driver

                           UNION

                        (SELECT driver, 0

                         FROM nascar.drivers

                            MINUS

                         SELECT driver,0

                         FROM nascar.results)

 

 

 

Place your ten scripts in a folder named RU02 in your ITEC 340 submissions folder by 5:00 on Wednesday February 2nd.