[Powered by Google Translate] [SQL] [Christopher Bartholomew] [Harvard University] [Tas ir CS50] [CS50 TV] Tātad, programmētāji izmantot datubāzes kā līdzekli, lai saglabātu un organizēt Mūsu pastāvīgie dati, kas tabulās. Tas nozīmē, ka jūsu dati tiek glabāti ārpus gaistošo mediānas, piemēram, cieto disku, un pat tad, kad dators ir izslēgts, dati joprojām ir neskarts. Un, kā programmētāji, mūsu programmas izmantot datubāzes scenārijiem, piemēram, uzglabājot lietotāja informācija no tīmekļa formām, meklē up sarakstu, vai atjauninot informāciju par to, ko vietnes parādīt. Bet kā mēs patiesībā mijiedarbojas ar mūsu datu bāzē, vai ko mēs izmantojam, lai lasītu, uzglabāt, dzēst, un atjaunināt mūsu datu šajās bāzes tabulām? Nu, atbilde ir, ka mēs izmantojam īpaša veida datubāzes valodas kas mijiedarbojas tieši ar mūsu datu bāzes tabulām. Tā nosaukums ir strukturēta vaicājumu valoda, [Strukturēts Query Language] vai ko es atsaucos uz kā SQL. Tagad, [Se-quel], vai SQL, nav programmēšanas valoda, bet tā vietā, tas ir valoda, kas nodrošina standarta komandu kopu lai nolasītu un manipulēt datus no dažādiem datu bāzu vadības sistēmu. Lai CS50, mēs iet pār četrām pamata komandas: izvēlieties, ievietot, atjaunināt un dzēst. Turklāt, mēs izmantot datubāzes web interfeisu sauc phpMyAdmin, kas uzstādīta uz ierīces rakstīt mūsu SQL paziņojumus. Tātad, lai palīdzētu jums atcerēties šīs komandas, Esmu ko daži cupcakes skapī, lai palīdzētu ar mūsu scenārijiem. Say jums ir cupcake datubāzē, kur glabāt visu informāciju par jūsu cupcakes. Tagad, datubāzes var saturēt daudzas tabulas un tabulas paši var saturēt daudz kolonnu. Iekšā mūsu Cupcake datubāzē, mums ir tabula sauc cupcake_cupboard. Šī tabula tiks izmantota, lai uzglabātu visu informāciju par cupcakes kas ir, labi, savā skapī. Kolonnas, kas ir iekšā jūsu galda pārstāvēt atribūtus cupcake. Piemēram, cupcake_cupboard s slejas ir Kūka ID, CakeType, CakeColor, un CakeIsNice. Šī logisku rakstāmmašīnu kolonna tiek izmantota, lai noteiktu, vai kūka ir jauki, vai nav jauki. Mēs esam gatavojas sākt ar rakstīt SELECT. Izvēlieties pārskatus, tiek izmantoti, lai iegūtu datus par konkrētu datu bāzes tabulā. Šajā scenārijā, mēs vēlamies zināt visu par visu cupcakes, kas pastāv mūsu skapī. Sintakse to izdarīt ir "Select" Space Star, vai *, telpa no kosmosa mūsu galda, kas ir cupcake_cupboard. Iesim uz priekšu un izpildīt to. Kā mēs varam redzēt, tie visi cupcakes mūsu skapī. Tas ir svarīgi atzīmēt, ka *, vai zvaigznīte, ir savvaļas karti raksturs kas apzīmē apkopošanu visu kādu tabulas kolonnām. Parasti, mēs varam piekļūt konkrētu kolonnu vai kolonnas aizstājot * ar faktisko kolonnas nosaukuma. Ja mēs gribam vairākas kolonnas, bet ne visi, mēs varam sasniegt rakstot kolonnu nosaukumus norobežojošu katru kolonnu ar komatu. Piemēram, pieņemsim tikai paņemt CakeId un CakeType kas cupcake_cupboard tabulā. Sintakse, lai to paveiktu, ir: SELECT telpa CakeID komats CakeType telpu no mūsu galda, cupcake_cupboard. Iesim uz priekšu un izpildīt to. Un šeit, mums tagad ir tikai divas kolonnas mēs noteikti katram cupcake mūsu skapī. Mēs varam arī uzlabot mūsu vaicājuma rezultātus, norādot "Ja" klauzula tieši pēc tabulas nosaukuma. Piemēram, šķiet, ka cupcake mūsu skapī tas ir, labi, ne tik jauka meklē. Pieņemsim izrēķināt visus cupcakes mūsu skapī, kas ir, labi, ne tik jauki meklē izmantojot "Ja" klauzulu. Sintakse, lai to paveiktu, ir: SELECT telpa * telpu no kosmosa cupcake_cupboard telpa, kur telpa mūsu nosacītu kolonnu, kas šajā gadījumā CakeIsNice =, un Būla vērtību False. Tas ir svarīgi atzīmēt, ka, ja jūs izmantojat virknes, Jums ir jāpievieno to vienu pēdiņām. Tas attiecas uz visiem SQL stīgas, vai, SQL datu bāzes ziņā, variants rakstzīmes pazīstams kā varchar datatype. Šajā gadījumā, mēs izmantojam patiess vai nepatiess, kas ir Būla vērtība un nevis virkne. Iesim uz priekšu un izpildīt šo komandu. Lo un redzi, tas ir gadījums, ka mums ir 1 šokolāde ne tik jauki cupcake mūsu skapī. Tālāk, mēs ejam, lai rakstītu ievietot paziņojumu. Ievietot pārskati tiek izmantoti, lai ievietotu vai pievienot papildu rindas datus savā datu bāzē tabulā. Apmeklējot mūsu scenārija, pieņemsim, ka mēs esam tikko veikts pavisam jaunu cupcake. Tā kā mēs esam ļoti organizēti cupcake ēdāji, mēs ejam, lai ir ievietot šo jauno cupcake mūsu cupcake_cupboard tabulā. Sintakse, lai to paveiktu, ir šāds: Ievietojiet atstarpi kosmosā mūsu galda, cupcake_cupboard, telpa (, un šeit mēs norādīt kolonnas nosaukumi, norobežojusi ar komatu, CakeType komats CakeColor komatiem CakeIsNice) telpā. Pēc tam mēs rakstīt vārdu Vērtības telpu (un šeit mēs ievadiet vērtību katrai kolonnai attiecīgi, arī jānorobežo ar komatu. Viena citēju, jo tie visi ir VARCHAR vērtības mēs surround tiem vienā pēdiņām, Zemesriekstu sviests "Comma" gaiši brūnā "komats True. Tagad, tas ir svarīgi dot katrā rindā unikālu numuru, lai identificētu sevi. Autoincrementing kolonnu piedāvā šo kā  "Nav divu paši ID nekad nevar pastāvēt šajā tabulā." Iesim uz priekšu un izpildīt. Tur mums iet, visu organizētas. Nākamais SQL ka mēs rakstīsim, ir atjauninājums paziņojums. Atjauninājums pārskatu var izmantot, lai mainītu datus laikā kolonnā par jebkuru esošo rindu savā datu bāzē tabulā. Agrāk mūsu scenārijā, izmantojot SELECT, mēs noteikti Cupcake ietvaros mūsu cupcake_cupboard galda kura CakeIsNice vērtība ir nepatiesa. Pieņemsim, ka, kamēr mūsu zemesriekstu sviests cupcake bija krāsnī, mēs, mūsu ne-tik-jauks cupcake ļoti jauki. Būt tik ārkārtīgi organizēts, mēs vēlamies, lai mūsu cupcake lai atspoguļotu šo vērtību mūsu cupcake_cupboard tabulā. Tāpēc, pieņemsim atjaunināt mūsu šokolādes cupcake datu bāzē, lai atspoguļotu šo. Sintakse ir: UPDATE telpa mūsu galda, cupcake_cupboard, atstarpe SET telpa kolonna, ka mēs vēlamies mainīt, CakeIsNice =. Tad šeit mēs vieta mūsu jauno vērtību True telpu. Tagad, jo mēs nevēlamies, lai atjauninātu visas rindas ar šo vērtību, Mēs vēlamies, lai nodrošinātu "Kur" klauzulu, kas precīzi noteikt mūs uz precīzu rindu ka mēs gribam mainīt. Šajā gadījumā, mēs zinām, ka ir tikai viens Cupcake kas ir CakeIsNice vērtība False. Turklāt mēs arī nodrošināt, ka mēs atjaunināt pareizo rindu izmantojot "un" klauzulu. Mēs izmantojam "un" klauzulu, lai precizētu mūsu vaicājumu tālāk. Šajā gadījumā, jo mēs zinām, ka cupcake ir šokolādes, mēs izmantosim šo CakeType kolonnu. Ja vietas mūsu nosacīta kolonna telpa CakeIsNice telpa = False un kosmosa CakeType = 'šokolāde. " Tātad, liekot to visu kopā, šis atjauninājums paziņojumā teikts atrast visu cupcakes mūsu cupcake skapī, un ja ir cupcake, kura kolonna CakeIsNice satur vērtību False un CakeType satur vērtību šokolāde, Mēs vēlamies aktualizēt īpašās rindas CakeIsNice vērtību True. Tātad, pieņemsim iet uz priekšu un izpildīt paziņojumu. Un tagad mēs esam organizēti. Tas viss no cupcakes runāt lika man mazliet izsalcis. Es domāju, ka man vajadzētu palīdzēt sevi ar vienu. Bet, ja es tiešām ēst šo cupcake, es būtu vismaz arī noņemt tās pastāvēšanu  no mūsu cupcake_cupboard galda. Lai to izdarītu, mēs izmantosim "Delete" paziņojumu. "Dzēst" paziņojums var tikt izmantoti, lai novērstu visus vai dažus rindas no tabulas. Ja vēlaties, lai novērstu kādu konkrētu rindu no tabulas, tad jums ir jānodrošina "Kur" klauzulu, tādējādi norādot kolonnu kas būtu unikāli rindu, kuru vēlaties noņemt. Tas ir sintakse: Pārsvītrot no kosmosa mūsu galda, cupcake_cupboard, telpa. Tagad, šajā brīdī, kad jums ir tik tālu savā dzēst paziņojumā Jūs vēlaties būt ļoti uzmanīgiem. Piemēram, ja es vēlos, lai palaistu šo vaicājumu kā nesniedzot kādu "Kur" klauzulu Es zaudētu visus datus šajā cupcake_cupboard tabulā, bet tāpēc, ka es jau zinu, ka mana kūka ID ir unikāls, es ņemšu izmantot Red Velvet kūka ID mana ", kur" klauzulu. Ja vietas mūsu kolonna, CakeID = 1. Jo tas ir veselais skaitlis nav nepieciešams, lai surround to vienu pēdiņām. Tātad, pieņemsim izpildīt paziņojumu. Nu, tagad, ka mēs esam noslaucīja pastāv šis cupcake no mūsu cupcake_cupboard galda, mums ir tikai viena lieta kreiso: Padarītu to izzūd. Es esmu Kristofers Bērtuli. Tas ir CS50.