[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。