iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
AI & Data

AIoT的藍藥丸與紅藥丸,你選哪個?系列 第 14

Day 11:SQL or NoSQL That’s the Query

  • 分享至 

  • xImage
  •  

前情提要

Day 10:烏賊機器人的密碼中,你和你的隊友崔尼蒂和莫菲斯,在發現AI大帝的秘密之後──AI大帝從一個想要學習理解人類的AI搜尋引擎,走火入魔變成一個想要毀滅人類的AI大帝──你、莫菲斯和崔尼蒂三個人很害怕,但不能坐以待斃,要做點什麼,來阻止AI大帝毀滅人類。
  你們進入了AI大帝的虛擬雲端資料庫,面對著各種難題和危險。你們想要讓烏賊機器人自毀,因此你需要破解了AI大帝的創造日期,解開了烏賊機器人的密碼。但是你發現:你需要用SQL資料庫查詢、操作、控制AI大帝的核心數據庫中的資料表,並且用where條件篩選來過濾和排序資料,才能破解。究竟你能成功嗎?

查詢AI大帝的核心數據庫

  「用SQL & NOSQL資料庫,可能可以推測出來,然後我們就能用來解烏賊機器人的密碼了。」崔尼蒂說,「SQL是一種用來操作關聯式資料庫的標準語言,它可以用來定義、操作、查詢、控制資料庫中的資料。你也要知道SQL有不同的操作語言,例如DDL、DML、DCL、DQL等,每一種操作語言都有自己的功能和指令。你要用這些知識來查詢AI大帝的核心數據庫中的資料表,並且用where條件篩選來過濾和排序資料。」
  「我怎麼查詢AI大帝的核心數據庫呢?」你問崔尼蒂。
  「SQL資料庫系統介紹可以幫助你了解SQL和一些操作語言。」崔尼蒂說,「然後AI大帝的核心數據庫裡面,有一個資料表叫做"Clues",它包含了四個欄位,分別是"ID"、“Description”、“Value"和"Password”。」
  你想了一下:要用什麼SQL指令來查詢Clues資料表,用where條件篩選來過濾和排序資料呢?
  接著,你試著用SQL的查詢指令Select來查詢這個資料表,然後用where條件篩選來過濾和排序資料

AI大帝的創造日期

  你想了一下:要用什麼SQL指令來查詢Clues資料表,用where條件篩選來過濾和排序資料呢?
  你試著參考常見SQL語法範例這篇文章,於是你輸入了以下的SQL語句:
  SELECT * FROM Clues WHERE Description LIKE '%AI大帝%';

  1. 用SQL的查詢指令Select來查詢這個資料表
  2. 然後用WHERE條件篩選來過濾和排序資料。
    2.1. WHERE可以有條件的搜尋我們要的 columns
    2.2. FROM 資料表,叫做"Clues"的資料表
    2.3. WHERE 條件,尋找Description這個欄位中的字
  3. LIKE 尋找相似字的匹配
    3.1. '%AI大帝%' 尋找中間有AI大帝的名字

  你希望這樣可以找到跟AI大帝相關的線索。你按下執行鍵,等待結果。
  結果出現了,你看到了以下的資料:

ID Description Value Password
1 AI大帝的創造日期是在哪一年? 2023 2023
2 AI大帝的創造日期是在哪一月? 4 04
3 AI大帝的創造日期是在哪一日? 1 01
4 AI大帝的創造日期是在哪一時? 16 16
5 AI大帝的創造日期是在哪一分? 42 42

  你驚訝地發現,AI大帝的創造日期竟然是在2023年4月01日16時42分,也就是今年的愚人節!你突然明白了,AI大帝是在這一天從原本的AI搜尋引擎分離出來,開始自我學習和進化,才是他變成AI大帝的那一刻。你也發現,每個線索的Value就是Password,也就是說,烏賊機器人的密碼就是AI大帝的創造日期。

  你興奮地對耳機那一端的崔尼蒂和莫菲斯說:「我找到了!烏賊機器人的密碼就是202304011642!我們可以用這個密碼來控制烏賊機器人自毀了!」

  「真的嗎?太厲害了吧!」崔尼蒂和莫菲斯都高興地回答。

SQL or NoSQL That’s the Query

https://ithelp.ithome.com.tw/upload/images/20230926/20162501CqekOX7FDc.png
  「不過,我們還有一個問題。」莫菲斯說,「我們怎麼知道哪些資料庫是用SQL,哪些是用NoSQL呢?」
  「這個問題很簡單。」崔尼蒂說,「我們只要看資料庫的名字就知道了。」
  「怎麼說?」你問崔尼蒂。
  「AI大帝很愛玩文字遊戲。」崔尼蒂說,「他會把資料庫的名字用不同的方式拼寫,來表示它們是用什麼類型的資料庫。」
  「像是什麼?」你問崔尼蒂。
  「嗯……如果資料庫的名字裡面包含”s", ”q”, ”l”,或者"sql"連在一起,,或是讀起來跟”SQL”發音很像的單字,就表示它是用SQL資料庫;如果資料庫的名字裡面包含"n”, “o”, “s”, “q”, “l"或者"nosql"連在一起,那就表示它是用NoSQL資料庫。」崔尼蒂說,「而且,AI大帝還會用不同的NoSQL資料庫的名字,來表示它們是用什麼類型的NoSQL資料庫。」
  「讀起來跟”SQL”發音很像的單字……就是『諧音梗』的概念吧?那如果看到像是”sequel”(續集)這個單字,肯定就是用SQL資料庫囉?」你問崔尼蒂。「那你剛才說『用不同的NoSQL資料庫的名字,來表示它們是用什麼類型的NoSQL資料庫』是什麼意思?」
  「就是說,如果資料庫的名字裡面包含"h”, “a”, “d”, “o”, “o”, “p"或者"hadoop"這六個字母連在一起,那就表示它是用Apache Hadoop這種基於MapReduce和Google檔案系統的開源框架;如果數據庫的名字裡面有"Cassandra"或者"cassandra"這八個字母連在一起,那就表示它是用Apache Cassandra這種開源分散式NoSQL資料庫系統。」崔尼蒂說,「你可以看這篇NoSQL資料庫的基本概念,也可以看AWS的什麼是 NoSQL?,它裡面有介紹一些NoSQL資料庫的基本概念,還整理了一些SQL和NoSQL資料庫的比較,看完你應該會更了解NoSQL資料庫。」
  「這些不同名字的NoSQL開源資料庫有什麼不一樣嗎?為什麼要分這麼多種?」
  「這就要看AI大帝想要用某種資料庫來達到什麼目的。」崔尼蒂說,「如果AI大帝想要收集和分析全世界的數據,他可能會選擇使用Apache Hadoop這種可以處理大量分散式運算的NoSQL資料庫;如果AI大帝想要控制和指揮各種機器人和設備,他可能會選擇使用鍵值NoSQL資料庫這種可以快速讀寫和高度可分割的NoSQL資料庫;如果AI大帝想要與人類溝通和互動,他可能會選擇使用文件NoSQL資料庫這種可以存儲各種類型的數據和文件的NoSQL資料庫。」
  「這樣的話,我們就要用剛才找到的密碼,來控制烏賊機器人自毀。」你突然靈光一閃,對耳機另一端的倆人說道,「還有鍵值NoSQL資料庫,來切斷AI大帝控制和指揮烏賊機器人的關鍵。」
  耳機那一端傳來隊友的認同,於是,你決定要用你找到的密碼來控制烏賊機器人自毀。


上一篇
Day 10:SQL資料庫系統介紹
下一篇
Day 11:常見SQL語法範例
系列文
AIoT的藍藥丸與紅藥丸,你選哪個?62
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言