Специалисты по СУБД с сайта Oracle WTF заинтересовались, что же такое печатает в терминале юный хакер в фильме «Девушка с татуировкой дракона». По сюжету, это были запросы к базе данных полицейского отделения, с помощью которых она раскрыла убийства 40-летней давности.
Склеив несколько кадров, можно частично рассмотреть SQL-запрос.
Как могут заметить кинозрители, это не Oracle SQL, поскольку содержит некорректные ключевые операторы, вроде AS
.
Однако, с помощью такого SQL-запроса девушке всё-таки удаётся получить ответ!
Ответ ещё интереснее, чем запрос.
SELECT DISTINCT v.fname, v.lname, i.year, i.location, i.report_file
FROM Incident AS i
LEFT JOIN V(ictim?)... -- presumably v.incident_id = i.id
LEFT JOIN Keyword AS k ON k.incident_id = i.id
WHERE i.year BETWEEN 1947 AND 1966
AND i.type = 'HOMICIDE'
AND v.sex = 'F'
AND i.status = 'UNSOLVED'
AND ...
OR v.fname IN ('Mari', 'Magda')
OR SUBSTR ...
AND (k.keyword IN ('rape', 'decapitation', 'dismemberment', 'fire', 'altar', 'priest', 'prostitute')
...
AND SUBSTR(v.fname, 1, 1) = 'R' AND SUBSTR(v.lname, 1, 1) = 'L');
+--------+---------+------+-----------+----------------------------------+
| fname | lname | year | location | report_file |
+--------+---------+------+-----------+----------------------------------+
| Anna | Wedin | 1956 | Mark | FULL POLICE REPORT NOT DIGITIZED |
| Linda | Janson | 1955 | Mariestad | FULL POLICE REPORT NOT DIGITIZED |
| Simone | Grau | 1958 | Goteborg | FULL POLICE REPORT NOT DIGITIZED |
| Lea | Persson | 1962 | Uddevalla | FULL POLICE REPORT NOT DIGITIZED |
| Kajsa | Severin | 1962 | Dals-Ed | FULL POLICE REPORT NOT DIGITIZED |
+--------+---------+------+-----------+----------------------------------+
«Шокированные кинозрители будут озадачены, что один из лучших в мире хакеров ничего не знает об операторе проверки соответствия шаблона LIKE, и почему, чёрт возьми, ни одна из жертв не имеет инициалов R.L.», — пишут юмористы с Oracle WTF.
Автор: alizar