[Powered by Google Translate] [SQL] [CHRISTOPHER BARTHOLOMEW] [Harvard University] [THIS IS CS50] [CS50 TV] Takže, programátoři používají databáze jako nástroj pro ukládání a organizování naše přetrvávající údaje v tabulkách. To znamená, že vaše data jsou uložena na non-volatile mediánů jako je například pevný disk, a dokonce i když je počítač vypnutý, data se stále neporušené. A, jako programátoři, naše programy využívají databáze pro scénáře, jako je ukládání Informace o uživateli z webových formulářů, vzhlédl zásob, nebo aktualizaci informací o tom, co stránky zobrazují. Ale jak vlastně pracovat s naší databází, nebo co používáme ke čtení, ukládání, mazání, a aktualizovat své údaje v rámci těchto databázových tabulek? No, odpověď je, že používáme speciální typ databázového jazyka která spolupracuje přímo s našimi databázových tabulek. Je to jméno je Structured Query Language, [Structured Query Language] nebo co Mám na mysli, jak SQL. Nyní, [Se-Quel], nebo SQL, není programovací jazyk, ale místo toho, je to jazyk, který poskytuje standardní sadu příkazů načíst a manipulovat s daty z různých systémů pro správu databází. Pro účely CS50, půjdeme přes čtyři základní příkazy: vyberte, vložit, aktualizovat a mazat. Dále budeme používat databázi webové rozhraní phpMyAdmin, které instalován na zařízení psát naše příkazy SQL. Tak, aby vám pomůže si tyto příkazy, Přinesl jsem nějaké koláčky ve skříni, aby vám pomohl s našimi scénářů. Řekněme, že máte košíček na databázi, kam uložit všechny informace o vašem cupcakes. Nyní, může databáze obsahovat mnoho tabulek a tabulky sami mohou obsahovat mnoho sloupců. Uvnitř naší košíček databázi, máme tabulku s názvem cupcake_cupboard. Tato tabulka bude použita k ukládání všech informací o cupcakes které jsou, dobře, ve své skříni. Sloupce, které jsou uvnitř tabulky představují atributy košíček. Například, je cupcake_cupboard sloupy jsou Cake ID, CakeType, CakeColor, a CakeIsNice. Tento boolean-napsaný sloupec se používá k určení, zda je koláč pěkný nebo ne hezké. Budeme začít s psaním příkazu SELECT. Vyberte příkazy se používají k načtení dat z určitého databázové tabulky. V tomto scénáři, chceme vědět všechno o všech cupcakes, které existují v naší skříni. Syntaxe k tomu je "Select" space star, nebo *, prostor od prostoru našeho stolu, který je cupcake_cupboard. Pojďme dál a vykonat,. Jak můžeme vidět, to všechno jsou cupcakes v naší skříni. Je důležité si uvědomit, že *, nebo hvězdičku, je divoká karta znak , který označuje shromažďování všech sloupců nějaké tabulce. Normálně, můžeme k určitému sloupec nebo sloupce nahrazením * se skutečným název sloupce. Chceme-li více sloupců, ale ne všechny, můžeme dosáhnout psaním názvy sloupců se vymezují jednotlivé sloupce čárkou. Například, pojďme Nezískáváme CakeId a CakeType v cupcake_cupboard tabulce. Syntaxe k tomu je: SELECT prostor CakeID čárkou CakeType prostor od našeho stolu, cupcake_cupboard. Pojďme dál a spustit to. A tady, nyní jen dva sloupce se uvedené pro každý druh cukroví v naší skříňce. Můžeme také zpřesnit naše výsledky dotazu zadáním "Kde" klauzule těsně po název tabulky. Například, zdá se, že cupcake v naší skříni že je dobře, ne tak pěkně vypadající. Pojďme zjistit všechny koláčky v naší skříni, které jsou, no, ne tak pěkně vypadající pomocí "Kde" klauzule. Syntaxe k tomu je: SELECT * space space z vesmíru cupcake_cupboard prostor, kde se prostor naší podmíněné sloupec, v tomto případě CakeIsNice =, a boolean hodnotu False. Je důležité si uvědomit, že pokud používáte řetězce, je nutné uzavřít do jednoduchých uvozovek. To platí pro všechny řetězce v SQL, nebo, v databázových hlediska SQL, varianta znaků známý jako varchar datový typ. V tomto případě se používá pravdivé či, což je logická hodnota, a ne řetězec. Pojďme dál a spusťte tento příkaz. A ejhle, je to pravda, že máme 1 čokoládu ne tak pěkný košíček v našem skříně. Dále budeme psát INSERT. INSERT se používá k vložení nebo přidání další řádky dat do databázové tabulky. Přehodnocení náš scénář, předpokládejme, že jsme právě udělal zbrusu nový košíček. Vzhledem k tomu, jsme velmi organizovaná cupcake jedlíci, budeme muset vložit tento nový košíček v našem cupcake_cupboard tabulce. Syntaxe to je to: Vložit mezeru do prostoru našeho stolu, cupcake_cupboard, prostor (, a tady zadat sloupce názvy, oddělují čárkou, CakeType čárka CakeColor čárka CakeIsNice) prostor. Následovat toto, my píšeme slovo VALUES prostor (a zde zadáme hodnotu pro každý sloupec, respektive, i oddělují čárkou. Apostrof, protože jsou všechny Varchar hodnoty budeme obklopují v jednoduchých uvozovkách, Arašídové máslo "čárku" světle hnědá "čárka True. Nyní je důležité, aby každý řádek jedinečné číslo k identifikaci sebe. Autoincrementing sloupec obsahuje toto jako  "Žádné dva stejné ID může někdy existovat v této tabulce." Pojďme dál a spustit. Tam jdeme, všechny organizované. Další SQL, který budeme psát, je aktualizace prohlášení. Aktualizace prohlášení může být použita k úpravě dat v sloupci pro všechny existující řádek v databázové tabulce. Dříve v našem scénáři, pomocí příkazu SELECT, jsme identifikovali cupcake v rámci naší cupcake_cupboard stolu, jehož CakeIsNice hodnota byla False. Předpokládejme, že zatímco naše arašídové máslo cupcake je v troubě, jsme naše ne-tak-hezký cupcake velmi pěkné. Být tak výjimečně organizuje, chceme, aby naše cupcake, aby odrážel tuto hodnotu v našem cupcake_cupboard tabulce. Proto, pojďme aktualizovat náš čokoládový košíček v databázi, aby odrážela toto. Syntaxe je: UPDATE space náš stůl, cupcake_cupboard, prostor SET space sloupec, který chceme změnit, CakeIsNice =. Pak zde máme místo naši novou hodnotu Pravda prostor. Nyní, protože nechceme, aby aktualizovat všechny řádky s touto hodnotou, Chceme poskytnout ", kde" doložku, která bude přesně určit nás k přesnému řádku, který chceme upravit. V tomto případě, víme, že existuje jen jeden košíček která má CakeIsNice hodnotu False. Kromě toho bude také zajistit, že se aktualizace správný řádek pomocí "A" klauzule. Používáme "A" klauzule pro upřesnění náš dotaz dále. V tomto případě, protože je známo, že je košíček čokoláda, budeme používat tento CakeType sloupec. Kde je prostor naší podmíněno sloupec space CakeIsNice space = False, a prostor CakeType = 'CHOCOLATE. " Takže, dávat to všechno dohromady, tato aktualizace prohlášení se uvádí, najít všechny koláčky v našem cupcake skříň, a v případě, že je košíček jehož sloupec CakeIsNice obsahuje hodnotu False a CakeType obsahuje hodnotu CHOCOLATE, chceme aktualizovat konkrétní řádky CakeIsNice hodnotu True. Takže, pojďme dál a spustit příkaz. A teď, že organizovaný jsme. Všechny ty řeči o cupcakes učinil mě trochu hlad. Myslím, že bych měl pomoct k jednomu. Ale když jsem vlastně jíst tento košíček, měl jsem alespoň odstranit také její existenci  z naší cupcake_cupboard tabulky. Chcete-li to provést, budeme používat "Delete" prohlášení. "Delete" prohlášení může být použit k odstranění všech nebo některých řádky z tabulky. Pokud chcete odstranit některé specifické řádek z tabulky, pak musíte zadat "kde" klauzule, tak určení sloupec které by měly být jedinečné řádku, který si přejete odstranit. To je syntaxe: DELETE FROM prostor vesmíru náš stůl, cupcake_cupboard, prostor. Nyní, v tomto okamžiku, pokud jste tak daleko ve svém DELETE Chcete-li být velmi opatrní. Například, když chci spustit tento dotaz, jak je bez poskytování určité "kde" klauzule Já bych ztratit všechna data v této tabulce cupcake_cupboard, ale proto, že už vím, že moje dorty ID jsou jedinečné, budu používat Red Velvet dort ID pro můj ", kde" klauzule. Kde je prostor naší sloupec, CakeID = 1. Vzhledem k tomu, to je celé číslo, které není třeba, aby ho obklopují v apostrofech. Takže, pojďme spustit příkaz. No, teď, když jsme si otřel existenci tohoto košíček z naší cupcake_cupboard stolu, máme jen jednu věc levé: Ať je to zmizí. Jsem Christopher Bartoloměje. To je CS50.