龍紋身女孩與她的SQL查詢代碼 |
發(fā)布時(shí)間: 2012/8/4 17:06:19 |
我喜歡大衛(wèi)·芬奇(David Fincher)拍的電影《龍紋身女孩》,他成功的把小說《龍紋身女孩》搬上了熒幕,超出了我的預(yù)期。我本以為這又是一部膚淺的、憤世嫉俗的用來斂錢的好萊塢電影,事實(shí)情況卻是,這是一部情節(jié)緊張,能引起共鳴的電影,只是里面的淫殺犯罪讓人毛骨悚然。我最喜歡的一個(gè)情節(jié)是龍紋身女孩用SQL來查找40年前的兇殺案的過程。 我們從電影里可以看到她使用筆記本電腦,輕而易舉的進(jìn)入瑞典警察局?jǐn)?shù)據(jù)庫,當(dāng)她敲入像‘unsolved(未破案)’和‘decapitation(斬首)’等關(guān)鍵詞時(shí),屏幕上翻滾著綠色的檢索出的信息,雖然我們看不清她使用的完整的查詢語句: 處于一種天生的好奇,我忍不住截取了這些鏡頭畫面,用Photoshop拼接了一下,下面是我得到的結(jié)果: 你馬上能發(fā)現(xiàn),這不是Oracle SQL——很顯然 AS 關(guān)鍵字在Oracle里不能用在表假名上。事實(shí)上,如果我們回去看看她那個(gè)令人興奮的查詢結(jié)果輸出時(shí),你會(huì)看到 mysql 的提示符,而且還有 use [dbname] 連接數(shù)據(jù)庫的語法,下面是一個(gè)更詳細(xì)的畫面: 我們實(shí)際上可以把她用的left join關(guān)鍵詞表的SQL語句整理出來。 最終我們獲得了一個(gè)全屏的輸出結(jié)果信息: 下面就是我們Oracle“WTF研究會(huì)”部門重新構(gòu)造出的她使用的SQL:
你也許會(huì)很驚訝,很奇怪,這樣一個(gè)頂級(jí)的黑客為什么要outer-join的方式連接Victims(被害人)表和Keywords(關(guān)鍵詞)表呢,還使用這樣的文字過濾方式,豈不知MySQL里是有 like語法的,更奇怪的是輸出結(jié)果里根本沒有姓和名分別以’R L’打頭的受害人。 本文出自:億恩科技【m.1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |