[Powered by Google Translate] [SQL] [CHRISTOPHER Bartholomew] [Harvard University] [THIS IS CS50] [CS50 TV] Takže, programátori používajú databázy ako nástroj pre ukladanie a organizovanie naše pretrvávajúce údaje v tabuľkách. To znamená, že vaše dáta sú uložené na non-volatile mediánov ako je napríklad pevný disk, a dokonca aj keď je počítač vypnutý, dáta sa stále neporušené. A, ako programátori, naše programy využívajú databázy pre scenáre, ako je ukladanie Informácie o užívateľovi z webových formulárov, vzhliadol zásob, alebo aktualizáciu informácií o tom, čo stránky zobrazujú. Ale ako vlastne pracovať s našou databázou, alebo čo používame na čítanie, ukladanie, mazanie, a aktualizovať svoje údaje v rámci týchto databázových tabuliek? No, odpoveď je, že používame špeciálny typ databázového jazyka ktorá spolupracuje priamo s našimi databázových tabuliek. Je to meno je Structured Query Language, [Structured Query Language] alebo čo Mám na mysli, ako SQL. Teraz, [Se-Quel], alebo SQL, nie je programovací jazyk, ale namiesto toho, je to jazyk, ktorý poskytuje štandardnú sadu príkazov načítať a manipulovať s dátami z rôznych systémov pre správu databáz. Na účely CS50, pôjdeme cez štyri základné príkazy: vyberte, vložiť, aktualizovať a mazať. Ďalej budeme používať databázu webové rozhranie phpMyAdmin, ktoré inštalovaný na zariadení písať naše príkazy SQL. Tak, aby vám pomôže si tieto príkazy, Priniesol som nejaké koláčiky v skrini, aby vám pomohol s našimi scenárov. Povedzme, že máte košíček na databázu, kam uložiť všetky informácie o vašom cupcakes. Teraz, môže databáza obsahovať veľa tabuliek a tabuľky sami môžu obsahovať veľa stĺpcov. Vnútri našej košíček databáze, máme tabuľku s názvom cupcake_cupboard. Táto tabuľka bude použitá na ukladanie všetkých informácií o cupcakes ktoré sú, dobre, vo svojej skrini. Stĺpce, ktoré sú vo vnútri tabuľky predstavujú atribúty košíček. Napríklad, je cupcake_cupboard stĺpy sú Cake ID, CakeType, CakeColor, a CakeIsNice. Tento boolean-napísaný stĺpec sa používa na určenie, či je koláč pekný alebo nie pekné. Budeme začať s písaním príkazu SELECT. Vyberte príkazy sa používajú na načítanie dát z určitého databázovej tabuľky. V tomto scenári, chceme vedieť všetko o všetkých cupcakes, ktoré existujú v našej skrini. Syntax k tomu je "Select" space star, alebo *, priestor od priestoru nášho stola, ktorý je cupcake_cupboard. Poďme ďalej a vykonať,. Ako môžeme vidieť, to všetko sú cupcakes v našej skrini. Je dôležité si uvedomiť, že *, alebo hviezdičku, je divoká karta znak , Ktorý označuje zhromažďovanie všetkých stĺpcov nejaké tabuľke. Normálne, môžeme k určitému stĺpec alebo stĺpce nahradením * so skutočným názov stĺpca. Ak chceme viac stĺpcov, ale nie všetky, môžeme dosiahnuť písaním názvy stĺpcov sa vymedzujú jednotlivé stĺpce čiarkou. Napríklad, poďme nezískavajú CakeId a CakeType v cupcake_cupboard tabuľke. Syntax k tomu je: SELECT priestor CakeID čiarkou CakeType priestor od nášho stola, cupcake_cupboard. Poďme ďalej a spustiť to. A tu, teraz len dva stĺpce sa uvedené pre každý druh cukroví v našej skrinke. Môžeme tiež spresniť naše výsledky dotazu zadaním "Tam, kde" klauzula tesne po názov tabuľky. Napríklad, zdá sa, že cupcake v našej skrini že je dobre, nie tak pekne vyzerajúce. Poďme zistiť všetky koláčiky v našej skrini, ktoré sú, no, nie tak pekne vyzerajúce pomocou "Kde" klauzula. Syntax k tomu je: SELECT * space space z vesmíru cupcake_cupboard priestor, kde sa priestor našej podmienené stĺpec, v tomto prípade CakeIsNice =, a boolean hodnotu False. Je dôležité si uvedomiť, že ak používate reťazca, je nutné uzavrieť do jednoduchých úvodzoviek. To platí pre všetky reťazce v SQL, alebo, v databázových hľadiska SQL, variant znakov známy ako varchar dátový typ. V tomto prípade sa používa pravdivé alebo, čo je logická hodnota, a nie reťazec. Poďme ďalej a spustite tento príkaz. A hľa, je to pravda, že máme 1 čokoládu nie tak pekný košíček v našom skrine. Ďalej budeme písať INSERT. INSERT sa používa na vloženie alebo pridanie ďalšie riadky dát do databázovej tabuľky. Prehodnotenie náš scenár, predpokladajme, že sme práve urobil zbrusu nový košíček. Vzhľadom k tomu, sme veľmi organizovaná cupcake jedáci, budeme musieť vložiť tento nový košíček v našom cupcake_cupboard tabuľke. Syntax to je to: Vložiť medzeru do priestoru nášho stola, cupcake_cupboard, priestor (, a tu zadať stĺpca názvy, oddeľujú čiarkou, CakeType čiarka CakeColor čiarka CakeIsNice) priestor. Nasledovať toto, my píšeme slovo VALUES priestor (a tu zadáme hodnotu pre každý stĺpec, respektíve, aj oddeľujú čiarkou. Apostrof, pretože sú všetky VARCHAR hodnoty budeme obklopujú v jednoduchých úvodzovkách, Arašidové maslo "čiarku" svetlo hnedá "čiarka True. Teraz je dôležité, aby každý riadok jedinečné číslo na identifikáciu seba. Autoincrementing stĺpec obsahuje toto ako  "Žiadne dva rovnaké ID môže niekedy existovať v tejto tabuľke." Poďme ďalej a spustiť. Tam ideme, všetky organizované. Ďalšie SQL, ktorý budeme písať, je aktualizácia vyhlásenie. Aktualizácia vyhlásenie môže byť použitý k úprave dát v rámci stĺpca pre všetky existujúce riadok v databázovej tabuľke. Predtým v našom scenári, pomocou príkazu SELECT, sme identifikovali cupcake v rámci našej cupcake_cupboard stola, ktorého CakeIsNice hodnota bola False. Predpokladajme, že zatiaľ čo naše arašidové maslo cupcake je v rúre, sme naše nie-tak-pekný cupcake veľmi pekné. Byť tak výnimočne organizuje, chceme, aby naše cupcake, aby odrážal túto hodnotu v našom cupcake_cupboard tabuľke. Preto, poďme aktualizovať náš čokoládový košíček v databáze, aby odrážala toto. Syntax je: UPDATE space náš stôl, cupcake_cupboard, priestor SET space stĺpec, ktorý chceme zmeniť, CakeIsNice =. Potom tu máme miesto našu novú hodnotu Pravda priestor. Teraz, pretože nechceme, aby aktualizovať všetky riadky s touto hodnotou, Chceme poskytnúť ", kde" doložku, ktorá bude presne určiť nás k presnému riadku, ktorý chceme upraviť. V tomto prípade, vieme, že existuje len jeden košíček ktorá má CakeIsNice hodnotu False. Okrem toho bude tiež zabezpečiť, že sa aktualizácie správny riadok pomocou "A" klauzula. Používame "A" klauzula pre upresnenie náš dotaz ďalej. V tomto prípade, pretože je známe, že je košíček čokoláda, budeme používať tento CakeType stĺpec. Kde je priestor našej podmienené stĺpec space CakeIsNice space = False, a priestor CakeType = 'CHOCOLATE. " Takže, dávať to všetko dohromady, táto aktualizácia vyhlásení sa uvádza, nájsť všetky koláčiky v našom cupcake skriňa, a v prípade, že je košíček ktorého stĺpec CakeIsNice obsahuje hodnotu False a CakeType obsahuje hodnotu CHOCOLATE, chceme aktualizovať konkrétne riadky CakeIsNice hodnotu True. Takže, poďme ďalej a spustiť príkaz. A teraz, že organizovaný sme. Všetky tie reči o cupcakes urobil ma trochu hlad. Myslím, že by som mal pomôcť k jednému. Ale keď som vlastne jesť tento košíček, mal som aspoň odstrániť tiež jej existenciu  z našej cupcake_cupboard tabuľky. Ak to chcete, budeme používať "Delete" vyhlásenie. "Zmazať" vyhlásenie môže byť použitý na odstránenie všetkých alebo niektorých riadky z tabuľky. Ak chcete odstrániť niektoré špecifické riadok z tabuľky, potom musíte zadať "kde" klauzula, tak určenie stĺpec ktoré by mali byť jedinečné riadku, ktorý si prajete odstrániť. To je syntaxe: DELETE FROM priestor vesmíru náš stôl, cupcake_cupboard, priestor. Teraz, v tomto momente, ak ste tak ďaleko vo svojom DELETE Ak chcete byť veľmi opatrní. Napríklad, keď chcem spustiť tento dotaz, ako je bez poskytovania určitej "kde" klauzula Ja by som stratiť všetky dáta v tejto tabuľke cupcake_cupboard, ale preto, že už viem, že moje torty ID sú jedinečné, budem používať Red Velvet tortu ID pre môj ", kde" klauzula. Kde je priestor našej stĺpec, CakeID = 1. Vzhľadom k tomu, to je celé číslo, ktoré nie je potrebné, aby ho obklopujú v apostrofy. Takže, poďme spustiť príkaz. No, teraz, keď sme si otrel existenciu tohto košíček z našej cupcake_cupboard stola, máme len jednu vec ľavej: Či je to zmizne. Som Christopher Bartolomeja. To je CS50.