[Powered by Google Translate] [SQL] [Кристофър ВАРТОЛОМЕЙ] [Харвардския университет] [Това е CS50] [CS50 TV] Така че, програмисти използват бази данни като инструмент, за да съхранявате и организирате нашите постоянни данни в таблици. Това означава, че данните ви се съхранява на нелетливи медианите като твърд диск, и дори когато компютърът е изключен, данните са все още непокътнати. И като програмисти, нашите програми използват бази данни за сценарии, като съхраняване на информация за потребителя от уеб формуляри, гледайки нагоре инвентаризация, или актуализиране на информация за това какви сайтове да показват. Но как всъщност взаимодействат с нашата база данни, или какво ще използвате, за да се чете, съхраняване, изтриване, и актуализиране на нашите данни в рамките на тези таблиците в базата данни? Ами, отговорът е, че ние използваме специален вид на база данни език който взаимодейства директно с нашите таблиците в базата данни. Това е името Structured Query Language, [Structured Query Language] или това, което се отнасят до като SQL. Сега, Se-Quel], или SQL, не е език за програмиране, но вместо това, той е език, който предоставя стандартен набор от команди за извличане и манипулиране на данните от различни системи за управление на бази данни. За целите на CS50, ние ще отидем в продължение на четири основни команди: SELECT, INSERT, актуализира и изтриете. Освен това, ние ще използват интерфейс за уеб база данни, наречена PhpMyAdmin, които са инсталирани на уреда, за да напишете нашите SQL отчети. Така че, за да ви помогне да запомните тези команди, Донесъл съм някои тарталети в шкаф за подпомагане на нашите сценарии. Да речем, че базата данни на Cupcake, , където се съхранява цялата информация за вашата тарталети. Сега, бази данни може да съдържа много таблици и самите таблици могат да съдържат много колони. Вътре в нашата база данни Cupcake, ние имаме таблица, наречена cupcake_cupboard. Тази таблица ще се използва за съхраняване на цялата информация за тарталети които са във вашия шкаф. Колоните, които са вътре в таблицата представляват атрибутите на Cupcake. Например, колони на cupcake_cupboard Торта ID, CakeType, CakeColor и CakeIsNice. Това булев въвели колона се използва, за да се определи дали тортата е хубаво или не е хубаво. Ние ще започнем с писането изберете изявление. Изберете отчети са използвани за извличане на данни на конкретна таблица на база данни. В този сценарий, ние искаме да знаем всичко за всички тарталети, които съществуват в нашата шкаф. Синтаксисът да направите това е Space Star "Select", или *, пространство от пространството на нашата маса, което е cupcake_cupboard. Нека вървим напред и да изпълнява тази. Както можем да видим, те са тарталети в нашия шкаф. Важно е да се отбележи, че *, или звездичка, е див характер карта това означава събирането на всички колони на някоя маса. Обикновено, ние може да има достъп до определена колона или колони чрез замяна * с действителното име на колона. Ако искаме няколко колони, но не всички можем да постигнем това писането на имената на колоните, премахващ ограниченията всяка колона със запетая. Например, нека да изтегляте само CakeId и CakeType в cupcake_cupboard маса. Синтаксисът да направите това е: SELECT пространство CakeID запетая CakeType пространство от нашата маса, cupcake_cupboard. Да вървим напред и изпълнение. И ето, сега има само две колони, посочени за всеки Cupcake в нашия шкаф. Също така можем да усъвършенстваме резултатите от заявките, като се посочва "Къде" клауза точно след името на таблицата. Така например, изглежда, че Cupcake в нашия шкаф , че е добре, не така добре изглеждащ. Да разбера всички тарталети в нашия шкаф, които са добре, не толкова хубаво търси "Където" клауза. Синтаксисът да направите това е: SELECT пространство пространство * от космоса cupcake_cupboard пространство, където пространството ни условно колона, в този случай CakeIsNice = булева стойност False. Важно е да се отбележи, че ако използвате низове, трябва да се загради с апострофи. Това е вярно за всички низове в SQL, или, в условията SQL бази данни, вариант герои известен като VARCHAR тип данни. В този случай, ние сме с вярно или невярно, което е булева стойност, а не низ. Да вървим напред и да изпълните тази команда. Ето и ето, това е случай, че имаме едно шоколад не толкова хубаво Cupcake в нашата шкаф. На следващо място, ние ще да напише декларация вложка. Вмъкване на отчети са използвани за да поставите или добавите допълнителни редове от данни в базата данни таблица. Преразглеждане нашия сценарий, нека предположим, че току-що направи чисто нов Cupcake. Тъй като ние сме много организирани Cupcake ядат, ние ще трябва да поставите този нов Cupcake в таблицата ни cupcake_cupboard. Синтаксисът да направите това е: Поставете пространство в пространството на нашата маса, cupcake_cupboard пространство ( и тук ние определяме имената на колони, разделени със запетая, CakeType запетая CakeColor запетая CakeIsNice) пространство. След това, пишем думата стойности пространство (и тук въведете стойността за всяка колона, разделени със запетая. Апостроф, защото всички те са VARCHAR стойности ще ги заобикалят в единични кавички, Фъстъчено масло "запетая" светло кафяв запетая True. Сега е важно да се даде на всеки ред уникален номер, да се идентифицира. Autoincrementing колона предоставя тази  "Няма две едни и същи документи за самоличност могат да съществуват в тази таблица." Да вървим напред и изпълнение. Там отиваме, всички организирани. Следващия отчет на SQL, че ние ще напиша е актуализация изявление. Актуализацията на информацията може да се използва, за да променя данните в колона за всеки съществуващ ред във вашата база данни таблица. Рано в нашия сценарий, изберете изявление, ние идентифицирахме Cupcake в таблицата ни cupcake_cupboard, чиято CakeIsNice стойност е False. Нека предположим, че докато нашият кексчета с фъстъчено масло е във фурната, ние направихме нашата не толкова хубаво Cupcake много хубаво. Е толкова изключително организиран, ние искаме нашата Cupcake да се отрази тази стойност в таблицата ни cupcake_cupboard. Затова, нека да актуализираме нашата шоколадови кексчета в базата данни, за да се отрази това. Синтаксисът е: UPDATE пространство на нашата маса, cupcake_cupboard, пространство пространство SET колоната, която искате да промените, CakeIsNice. Тогава ние поставяме нашата нова стойност True пространство. Сега, тъй като ние не искаме да се актуализират всички редове с тази стойност, ние искаме да предоставим ", където" клауза, която ще ни определят точно за точния ред, който искате да промените. В този случай, ние знаем, че има само един Cupcake ,, че има CakeIsNice стойност на фалшиви. Освен това, ние също ще сме сигурни, че са в процес на осъвременяване на правилния ред с помощта на "А" клауза. Ние използваме "А" клауза, за да се усъвършенства нашата заявка. В този случай, защото знаем, че Cupcake е шоколад, ние ще използваме тази CakeType колона. Където пространството условно пространство колона CakeIsNice пространство = False, и пространството CakeType = "шоколад". Така че, поставяйки я на всички заедно, тази актуализация изявление се казва, намерите всички тарталети Cupcake нашия шкаф, и ако има Cupcake, чиято колона CakeIsNice съдържа стойност False и CakeType съдържа стойността ШОКОЛАД, искаме да се актуализира конкретна стойност редове CakeIsNice да е истина. Така че, да вървим напред и да изпълни изявление. И сега, ние сме организирани. Всички тези приказки за тарталети ме направи малко гладни. Мисля, че трябва да се спра на един. Но ако аз ям тази Cupcake, трябва най-малкото също да премахнете своето съществуване  от нашия cupcake_cupboard маса. За да направите това, ние ще използваме изявление "Delete". "Delete" изявление може да се използва за премахване на всички или някои редове от таблицата. Ако желаете да премахнете някои специфични ред от таблицата, след това трябва да се осигури "Където" клауза, като по този начин се посочва колона която трябва да бъде уникален за реда, който желаете да премахнете. Това е синтаксис: DELETE пространство от космоса нашата маса, cupcake_cupboard, пространство. Сега, в този момент, когато сте далеч в изтривате собствените си изявление искате да бъдете много внимателни. Например, ако Искам да изпълня тази заявка както е, без да предоставят някои "Където" клауза Щях да загубя всички данни в тази cupcake_cupboard маса, но тъй като вече знам, че ми торта идентификатори са уникални, ще използвам Red Velvet ID торта за моя "Къде" клауза. , Където пространството колона, CakeID = 1. Защото това е цяло число стойност, няма нужда да го обграждат в единични кавички. Така че, нека да изпълни изявление. Е, сега, че сме избърса съществуването на този Cupcake от нашия cupcake_cupboard маса, имаме само едно нещо на ляво: Уверете се, че изчезват. Съм Кристофър Вартоломей. Това е CS50.