You are now a sqlite data analyst, and you are given a database schema as follows:

    【Schema】
    【DB_ID】 formula_1
【Schema】
# Table: drivers
[
(driverId:INTEGER, Primary Key, Examples: [452, 625, 103]),
(driverRef:TEXT, Examples: [hamilton, heidfeld, rosberg]),
(number:INTEGER, Examples: [44, 6, 14]),
(code:TEXT, Examples: [HAM, HEI, ROS]),
(forename:TEXT, Examples: [Lewis, Nick, Nico]),
(surname:TEXT, Examples: [Hamilton, Heidfeld, Rosberg]),
(dob:DATE, Examples: [1985-01-07]),
(nationality:TEXT, Examples: [British, German, Spanish]),
(url:TEXT)
]
# Table: seasons
[
(year:INTEGER, Primary Key, Examples: [1950, 1951, 1952]),
(url:TEXT)
]
# Table: lapTimes
[
(raceId:INTEGER, Primary Key, Examples: [1, 2, 3]),
(driverId:INTEGER, Primary Key, Examples: [1, 2, 3]),
(lap:INTEGER, Primary Key, Examples: [1, 2, 3]),
(position:INTEGER, Examples: [13, 12, 11]),
(time:TEXT, Examples: [1:49.088, 1:33.740, 1:31.600]),
(milliseconds:INTEGER, Examples: [109088, 93740, 91600])
]
# Table: status
[
(statusId:INTEGER, Primary Key, Examples: [1, 2, 3]),
(status:TEXT, Examples: [Finished, Disqualified, Accident])
]
# Table: constructors
[
(constructorId:INTEGER, Primary Key, Examples: [147, 39, 54]),
(constructorRef:TEXT, Examples: [mclaren, bmw_sauber, williams]),
(name:TEXT, Examples: [AFM, AGS, ATS]),
(nationality:TEXT, Examples: [British, German, French]),
(url:TEXT)
]
# Table: pitStops
[
(raceId:INTEGER, Primary Key, Examples: [841, 842, 843]),
(driverId:INTEGER, Primary Key, Examples: [1, 2, 3]),
(stop:INTEGER, Primary Key, Examples: [1, 2, 3]),
(lap:INTEGER, Examples: [16, 36, 15]),
(time:TEXT, Examples: [17:28:24, 17:59:29, 17:27:41]),
(duration:TEXT, Examples: [23.227, 23.199, 22.994]),
(milliseconds:INTEGER, Examples: [23227, 23199, 22994])
]
# Table: qualifying
[
(qualifyId:INTEGER, Primary Key, Examples: [1, 2, 3]),
(raceId:INTEGER, Examples: [18, 19, 20]),
(driverId:INTEGER, Examples: [1, 9, 5]),
(constructorId:INTEGER, Examples: [1, 2, 6]),
(number:INTEGER, Examples: [22, 4, 23]),
(position:INTEGER, Examples: [1, 2, 3]),
(q1:TEXT, Examples: [1:26.572, 1:26.103, 1:25.664]),
(q2:TEXT, Examples: [1:25.187, 1:25.315, 1:25.452]),
(q3:TEXT, Examples: [1:26.714, 1:26.869, 1:27.079])
]
# Table: races
[
(raceId:INTEGER, Primary Key, Examples: [837, 833, 838]),
(year:INTEGER, Examples: [2009, 2008, 2007]),
(round:INTEGER, Examples: [1, 2, 3]),
(circuitId:INTEGER, Examples: [1, 2, 17]),
(name:TEXT, Examples: [Australian Grand Prix]),
(date:DATE, Examples: [2009-03-29]),
(time:TEXT, Examples: [06:00:00, 09:00:00, 07:00:00]),
(url:TEXT)
]
# Table: results
[
(resultId:INTEGER, Primary Key, Examples: [1, 2, 3]),
(raceId:INTEGER, Examples: [18, 19, 20]),
(driverId:INTEGER, Examples: [1, 2, 3]),
(constructorId:INTEGER, Examples: [1, 2, 3]),
(number:INTEGER, Examples: [22, 3, 7]),
(grid:INTEGER, Examples: [1, 5, 7]),
(position:INTEGER, Examples: [1, 2, 3]),
(positionText:TEXT, Examples: [1, 2, 3]),
(positionOrder:INTEGER, Examples: [1, 2, 3]),
(points:REAL, Examples: [10.0, 8.0, 6.0]),
(laps:INTEGER, Examples: [58, 57, 55]),
(time:TEXT, Examples: [1:34:50.616, +5.478, +8.163]),
(milliseconds:INTEGER, Examples: [5690616, 5696094, 5698779]),
(fastestLap:INTEGER, Examples: [39, 41, 58]),
(rank:INTEGER, Examples: [2, 3, 5]),
(fastestLapTime:TEXT, Examples: [1:27.452, 1:27.739, 1:28.090]),
(fastestLapSpeed:TEXT, Examples: [218.300, 217.586, 216.719]),
(statusId:INTEGER, Examples: [1, 11, 5])
]
# Table: constructorStandings
[
(constructorStandingsId:INTEGER, Primary Key, Examples: [1, 2, 3]),
(raceId:INTEGER, Examples: [18, 19, 20]),
(constructorId:INTEGER, Examples: [1, 2, 3]),
(points:REAL, Examples: [14.0, 8.0, 9.0]),
(position:INTEGER, Examples: [1, 3, 2]),
(positionText:TEXT, Examples: [1, 3, 2]),
(wins:INTEGER, Examples: [1, 0, 2])
]
# Table: driverStandings
[
(driverStandingsId:INTEGER, Primary Key, Examples: [1, 2, 3]),
(raceId:INTEGER, Examples: [18, 19, 20]),
(driverId:INTEGER, Examples: [1, 2, 3]),
(points:REAL, Examples: [10.0, 8.0, 6.0]),
(position:INTEGER, Examples: [1, 2, 3]),
(positionText:TEXT, Examples: [1, 2, 3]),
(wins:INTEGER, Examples: [1, 0, 2])
]
# Table: circuits
[
(circuitId:INTEGER, Primary Key, Examples: [23, 61, 29]),
(circuitRef:TEXT, Examples: [sepang, bahrain, catalunya]),
(name:TEXT, Examples: [Sepang International Circuit]),
(location:TEXT, Examples: [Kuala Lumpur, Sakhir, Montmeló]),
(country:TEXT, Examples: [Malaysia, Bahrain, Spain]),
(lat:REAL, Examples: [2.76083, 26.0325, 41.57]),
(lng:REAL, Examples: [101.738, 50.5106, 2.26111]),
(alt:INTEGER),
(url:TEXT)
]
# Table: constructorResults
[
(constructorResultsId:INTEGER, Primary Key, Examples: [1, 2, 3]),
(raceId:INTEGER, Examples: [18, 19, 20]),
(constructorId:INTEGER, Examples: [1, 2, 3]),
(points:REAL, Examples: [14.0, 8.0, 9.0]),
(status:TEXT, Examples: [D])
]
【Foreign keys】
lapTimes.raceId=races.raceId
lapTimes.driverId=drivers.driverId
pitStops.raceId=races.raceId
pitStops.driverId=drivers.driverId
qualifying.raceId=races.raceId
qualifying.driverId=drivers.driverId
qualifying.constructorId=constructors.constructorId
races.year=seasons.year
races.circuitId=circuits.circuitId
results.raceId=races.raceId
results.driverId=drivers.driverId
results.constructorId=constructors.constructorId
results.statusId=status.statusId
constructorStandings.raceId=races.raceId
constructorStandings.constructorId=constructors.constructorId
driverStandings.raceId=races.raceId
driverStandings.driverId=drivers.driverId
constructorResults.raceId=races.raceId
constructorResults.constructorId=constructors.constructorId

    【Question】
    Which driver has the fastest lap time? Please give their forenames and surnames.

    【Evidence】
    

    Please read and understand the database schema carefully, and generate an executable SQL based on the user's question and evidence. 

SQL: SELECT T2.forename, T2.surname, T1.fastestLapTime FROM results AS T1 INNER JOIN drivers AS T2 on T1.driverId = T2.driverId WHERE T1.fastestLapTime IS NOT NULL ORDER BY T1.fastestLapTime ASC LIMIT 1