<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 練習 38:SQL 簡介 > 原文:[Exercise 38: Introduction To SQL](https://learncodethehardway.org/more-python-book/ex38.html) > 譯者:[飛龍](https://github.com/wizardforcel) > 協議:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) > 自豪地采用[谷歌翻譯](https://translate.google.cn/) 學習如何建模和設計實體數據的最佳方法,是從非常基本的搭積木開始。數據庫的 SQL(“SeQueL”)風格數十年來已成為數據建模和存儲的標準。一旦你知道基本的 SQL,你可以輕松地使用任何 NoSQL 或對象關系映射(ORM)系統。SQL 是一種非常形式化的存儲,操作和訪問數據的方式,向你提供了一種思考它的形式化方式。這也不是很困難,因為這個語言并不像完整的編程語言那樣圖靈完備。 SQL 無處不在,我不是因為我想讓你使用它而這么說。這只是一個事實。我敢打賭,現在你的口袋里有一些 SQL。所有 Android 手機和 iPhone 都可以輕松訪問名為 SQLite 的 SQL 數據庫,手機上的許多應用程序都可以直接使用它。它撐起了銀行,醫院,大學,政府,小企業和大型企業;這個星球上的每個計算機,和每一個人最終都會接觸一些運行 SQL 的東西。SQL 是一個非常成功和健壯的技術。 SQL 的問題是,每個人似乎都討厭它的本質。大多數程序員不能忍受,這是一種奇怪的笨拙的“非語言”。在任何現代問題很久之前,比如“網絡規模”或面向對象編程,他就被設計了出來。盡管基于堅實的數學構建的操作理論之上,但是它有令人討厭的足夠的錯誤。樹?嵌套對象和父子關系?SQL只是嘲笑你,給你一個大型的扁平的表,說“你弄清楚它吧,兄弟”。 如果每個人都如此討厭它,為什么要學習 SQL?因為這個假設的仇恨背后,是缺乏對 SQL 的理解以及如何使用它。部分 NoSQL 運動是對過時數據庫服務器的反應,也是對 SQL 的恐懼的反應,它來源于對其工作原理的忽視。通過學習 SQL,你實際上將學習一些重要理論概念,它們適用于過去和現在幾乎所有數據存儲系統。 無論 SQL 仇恨者聲稱什么,你應該學習 SQL,因為它是無處不在的,實際上并不足夠難以學習。成為博學的 SQL 用戶,將幫助你為要使用的數據庫做出明智的決定,無論是否使用 SQL,并且作為程序員,更深入地了解你使用的許多系統。 ## SQL 是什么? 我將 SQL 讀作“Sequal”,但如果你愿意也可以讀作“S-Q-L”。SQL 也代表結構化查詢語言,但現在還沒有人甚至關心,因為那只是一個營銷手段。SQL 所做的事情,只是為你提供了一種語言,用于與數據庫中的數據交互。然而,它的優勢在于,它匹配了許多年前建立的理論,定義了良好結構化數據的屬性。這不完全相同(一些詆毀者感嘆它),但它足夠有用。 > 譯者注:不要理會那些讓你讀成“S-Q-L”的人,就算標準是這樣,你可以把“Sequal”當做別名。 SQL 的工作原理是,它了解表中的字段,以及如何根據字段的內容在表中查找數據。所有 SQL 操作都是你對表執行的四個常規操作之一: | 名稱 | 中文縮寫 | 首字母 | 意義 | | --- | --- | --- | --- | | 創建 | 增 | C | 將數據放入表中 | | 讀取 | 查 | R | 從表中查詢數據 | | 更新 | 改 | U | 修改已經在表中的數據 | | 刪除 | 刪 | D | 從表中移除數據 | 這縮寫為“CRUD”,被認為是每個數據存儲系統必須具備的基本功能。事實上,如果你不能以某種方式來執行這四種之一,那么最好有一個很好的理由。 > 譯者注:一些人把它們簡寫為 CURD 或者 CRUD,其實都是一樣的。 我喜歡通過將其與 Excel 等電子表格軟件進行比較,來解釋 SQL 的工作原理: + 數據庫是整個電子表格文件。 + 表格是電子表格中的標簽/表格,每個表格都有一個名稱。 + 列就是列。 + 行就是行。 + 然后,SQL為你提供了一種語言,用于對其進行 CRUD 操作,來生成新表或更改現有表。 最后一條是重要的,不了解這個會使人們產生問題。SQL 只知道表,每個操作都生成表。它通過修改現有表來“生成”表,或者返回一個新的臨時表作為數據集。 在閱讀本書時,你將開始了解此設計的意義。例如,面向對象語言與 SQL 數據庫不匹配的原因之一是,OOP 語言圍繞圖來組織,但 SQL 只希望返回表。雖然可以將幾乎任何圖形映射到表格,反之亦然,但它為 OOP 語言增加了翻譯負擔。如果 SQL 返回一個嵌套數據結構,那么這不會是一個問題。 ## 起步 我們將使用 SQLite3 作為本節的練習工具。SQLite3 是一個完整的數據庫系統,具有幾乎無需設置的優點。你只需下載一個二進制文件,就像大多數其他腳本語言一樣使用它。有了它,你將能夠學習 SQL,而不會卡在數據庫服務器的管理。 安裝 SQLite3 很簡單: + 請訪問 [SQLite3](http://www.sqlite.org/download.html) 下載頁面,并為你的平臺獲取二進制文件。尋找“Precompiled Binaries for X”,X 是你的操作系統的首選項。 + 或使用你的操作系統的軟件包管理器進行安裝。如果你使用 Linux ,那么你知道這是什么意思。如果你使用 macOS ,那么首先得到一個包管理器,然后使用它來安裝 SQLite3。 安裝完成后,請確保你可以啟動命令行并運行它。這是一個快速測試,你可以嘗試: ``` $ sqlite3 test.db SQLite version 3.7.8 2011-09-19 14:49:19 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> create table test (id); sqlite> .quit ``` 然后看到`test.db`文件在那里。如果它可以工作,那么你就完成了。你應該確保你的 SQLite3 版本與我在這里的版本相同:3.7.8。有時,舊版本的東西不能正常工作。 ## 學習 SQL 詞匯 要開始學習SQL,你需要為這些 SQL 術語創建速記卡(或使用 Anki)。在這之后的練習中,你將學習這些 SQL 語句,并將其應用于不同的問題。思考 SQL 語言的最佳方法是,將所有東西看做`CREATE`,`READ`,`UPDATE`和`DELETE`操作。即使一個單詞是`INSERT`,你仍然會將其視為`CREATE`操作,因為它將創建數據。首先,只要花一些時間記住這些單詞,并繼續研究,就像本節的練習一樣。 > `CREATE` > 創建數據庫的表格,可以儲存數據的列。 > `INSERT` > 向數據庫表格添加行,并填充在數據的列中。 > `UPDATE` > 修改表中的一列或者多列。 > `DELETE` > 從表中刪除一行。 > `SELECT` > 查詢一個表或一系列表,返回帶有結果的臨時表。 > `DROP` > 銷毀一個表。 > `FROM` > SQL 語句的常見部分,用于指定要使用表的那些列。 > `IN` > 用于表示元素集合。 > `WHERE` > 用在查詢中,來表示一些東西應該來自哪里。 > `SET` > 用在更新中,來表示哪一列修改成什么。 ## SQL 語法 接下來,你將為 SQL 的另一組重要語法結構創建速記卡。他們不會太多,但是寫下它們(或使用 Anki),并開始研究他們,以便你更快地學習語言。你正在學習的語法用于 SQLite3,我們將在本書中使用它。這是一個相當普遍的 SQL 語法,但每個數據庫都有不同的奇怪的偏好,你必須學習它。一旦了解它,很容易弄清楚另外一個數據庫的用法。 你將需要訪問 [SQLite 3 定義頁面](https://sqlite.org/lang.html)來創建所需的卡。該頁面列出了 SQLite 了解的所有內容,但僅關注上面列出的主要語句。添加你不明白的其他任何單詞。他們的圖表有點復雜,但它們只是 SQL BNF 的圖形視圖,你在第五部分中了解了它們。如果你不記得 ABNF,返回第五部分并重新學習。 ## 深入學習 + 訪問 SQLite3 語法列表并瀏覽所有可用的命令。他們中的大多數都不會有意義,但是如果你有任何興趣,那么你也可以為他們做速記卡。 + 在完成剩余練習的整個時間里,研究這些速記卡。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看