[Powered by Google Translate] [SQL] [CHRISTOPHER BARTHOLOMEW] [哈佛大學] [這是CS50] [CS50 TV] 因此,程序員作為一種工具來使用數據庫存儲和組織 我們的持久性數據的表格內。 這意味著您的數據存儲在非易失性的中位數,如硬盤驅動器, 甚至當計算機處於關閉狀態,數據依然完好無損。 而且,作為程序員,我們計劃利用數據庫的情況下,如存儲 從網頁表格的用戶信息,尋找庫存, 或更新了什麼網站顯示的信息。 但是我們如何與我們的數據庫交互, 或者我們用什麼來讀取,存儲,刪除, 在這些數據庫表,並更新我們的數據? 那麼,答案是,我們使用一種特殊類型的數據庫語言 直接與我們的數據庫表進行交互。 它的名字是結構化查詢語言, [結構化查詢語言] 我指的是作為SQL。 現在,硒QUEL,或SQL,是不是一種編程語言, 但相反,它是一種語言,它提供了一套標準的命令 檢索和操作各種數據庫管理系統的數據。 CS50的目的,我們就去了四種基本的命令: 選擇,插入,更新和刪除。 此外,我們將利用一個的數據庫Web界面稱為phpMyAdmin的, 安裝在設備上寫SQL語句。 因此,為了幫助你記住這些命令, 我在一個櫃子,以協助我們的案例帶來了一些蛋糕。 假設你有一個蛋糕的數據庫, 您存儲的所有信息你的蛋糕。 現在,數據庫可以包含多個表 表本身可以包含很多列。 內部我們蛋糕的數據庫中,我們有一個稱為cupcake_cupboard的表。 該表將用於存儲的所有信息蛋糕 是,好了,在你的櫥櫃。 你的表內的列代表一個蛋糕的屬性。 例如,cupcake_cupboard的列 蛋糕ID,CakeType,CakeColor,並CakeIsNice的。 如果蛋糕是好的或不好,這個布爾類型的列用於確定。 我們要開始寫select語句。 Select語句中使用一個特定的數據庫表中檢索數據。 在這種情況下,我們想知道的一切 我們的櫥櫃中存在的所有蛋糕。 的的語法做,這是“選擇”的空間,星,或*,從空間的表空間, 這是cupcake_cupboard。 讓我們繼續前進並執行該。 正如我們所看到的,這些都是在我們的櫥櫃的蛋糕。 重要的是要注意,*,或星號是一個通配符 表示收集的一些表中的所有列。 通常情況下,我們可以訪問特定的列或列 通過更換*與實際的列名。 如果我們想多列,但不是全部,我們可以做到這一點 寫每列由逗號分隔的列名。 例如,讓我們的唯一的檢索的CakeId的,並CakeType在cupcake_cupboard表。 做到這一點的語法是:SELECT的空間CakeID逗號 從我們的餐桌,cupcake_cupboard CakeType空間。 讓我們繼續前進並執行此。 在這裡,我們現在只有我們指定的兩列 在我們的櫥櫃每個蛋糕的。 我們還可以改進我們的查詢結果通過指定 “去哪兒”條款,只是在表名之後。 舉例來說,似乎是一個蛋糕在我們的櫥櫃 ,以及不那麼好看。 讓我們找出所有的蛋糕在我們的櫥櫃,以及,而不是太好找 使用“去哪兒”的條款。 做到這一點的語法是:SELECT空間*空間空間cupcake_cupboard 空間WHERE空間,在這種情況下,我們的條件列CakeIsNice = 和布爾值false。 重要的是要注意,如果你使用的是字符串,你必須將其括在單引號。 這才是真正的SQL中的所有字符串,或在SQL數據庫術語,異體字 為VARCHAR數據類型。 在這種情況下,我們使用的是真或假,這是一個布爾值,而不是一個字符串。 讓我們繼續前進並執行此命令。 你瞧,是這樣的情況,我們有1個巧克力 不是很好但是在我們的櫥櫃蛋糕的。 接下來,我們要編寫一個插入語句。 使用INSERT語句插入或添加 額外的行到你的數據庫表中的數據。 重新審視我們的場景,讓我們假設我們剛剛作出了一個全新的紙托蛋糕。 由於我們是非常有組織的杯形蛋糕吃,我們要插入這個新蛋糕的 在我們的cupcake_cupboard表。 做到這一點的語法是這樣的:將進入太空的表空間, cupcake_cupboard,空格(, 在這裡,我們指定列名,用逗號分隔, CakeType的逗號CakeColor逗號CakeIsNice)的空間。 在此之後,我們寫的字,值空間(這裡 我們分別輸入每個列的值,也用逗號分隔。 單引號,因為他們都是varchar值,我們將圍繞著他們在單引號, 花生醬'逗號'淺棕色的逗號真。 現在,重要的是給每行一個唯一的編號來標識自己。 自動增量的列提供此  “沒有兩個相同的ID可以永遠存在此表中。” 讓我們繼續前進,並執行。 在那裡,我們走了,一切井然有序。 下一個SQL語句,我們寫的是一個更新語句。 可以使用update語句修改數據在列 在數據庫表中的任何現有的行。 在我們的方案中,使用SELECT語句中,我們發現一個蛋糕 在我們的cupcake_cupboard的表的CakeIsNice值是假的。 讓我們假設,而我們的花生醬杯形蛋糕在烤箱, 我們做了我們不那麼漂亮的紙托蛋糕很不錯的。 所以非常有組織的,我們希望我們的杯子蛋糕,以反映該值 在我們的cupcake_cupboard表。 因此,讓我們更新我們的數據庫中的巧克力蛋糕的,以反映這一點。 它的語法是:UPDATE空間的表,cupcake_cupboard,空間設置空間 我們要修改的列,CakeIsNice =。 那麼在這裡我們將我們的新的真值空間。 現在,因為我們不想更新這個值的所有行, 我們希望提供一個“where”子句,我們將針對 我們要修改的確切行。 在這種情況下,我們知道,只有一個杯形蛋糕 值為False,有一個CakeIsNice的。 此外,我們也將確保我們正在更新正確的行 通過使用“和”條款。 我們使用“和”條款,進一步完善我們的查詢。 在這種情況下,因為我們知道,這塊蛋糕是巧克力, 我們將使用此CakeType的列。 WHERE條件列的空間CakeIsNice空間=假的空間, 空間CakeType =“巧克力”。 所以,把他們放在一起,這條update語句說 在我們的蛋糕的櫥櫃,發現所有的蛋糕, 並且如果存在其的列CakeIsNice包含值False一個蛋糕 和CakeType包含該值巧克力, 我們要更新特定行CakeIsNice,值設置為True。 所以,讓我們繼續前進,並執行該語句。 而現在,我們正在舉辦的。 這次談話的蛋糕已經讓我有點餓了。 我覺得我應該幫我一個。 但是,如果我真的吃這個蛋糕的,我應該至少還可以刪除它的存在  從我們的cupcake_cupboard表。 要做到這一點,我們將使用“刪除”的說法。 “刪除”語句可用於全部或部分刪除表中的行。 如果你想刪除一些具體的行從表中, 然後你必須提供一個“where”子句,從而指定列 應該是唯一你要刪除的行。 這是語法:DELETE我們的的表,cupcake_cupboard,空間空間空間。 現在,在這一點上,只要你是在您的delete語句 你要非常小心。 例如,如果我想運行此查詢是不提供一些“Where”子句 我會失去所有的數據在此cupcake_cupboard表, 但因為我已經知道了我的蛋糕ID是唯一的,我將使用 紅絲絨蛋糕ID為我的“Where”子句。 我們的專欄,CakeID = 1 WHERE空間。 因為這是一個整數值,就沒有必要將其包圍在單引號。 因此,讓我們執行該語句。 好了,現在我們已經消滅的存在,這個紙杯蛋糕 從我們的cupcake_cupboard表,我們只有一件事情: 使其消失。 我克里斯托弗BARTHOLOMEW。這是CS50。