1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [CHRISTOPHER BARTHOLOMEW] [Harvard] 3 00:00:04,000 --> 00:00:06,000 [ÞETTA ER CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Svo skaltu nota forritarar gagnagrunna sem tæki til að geyma og skipuleggja 5 00:00:11,620 --> 00:00:13,620 viðvarandi gögn okkar innan borðum. 6 00:00:13,620 --> 00:00:18,960 Það þýðir að gögn eru geymd á non-rokgjarnra miðgildi svo sem a harður ökuferð, 7 00:00:18,960 --> 00:00:22,940 og jafnvel þegar tölva er slökkt, the gögn er enn ósnortinn. 8 00:00:22,940 --> 00:00:29,530 Og, sem forritari, nýta forrit okkar gagnagrunna fyrir aðstæður eins og að geyma 9 00:00:29,530 --> 00:00:32,890 upplýsingar um notandann úr formum á vefsíðum, að horfa upp birgðum, 10 00:00:32,890 --> 00:00:36,210 eða uppfæra upplýsingar um hvaða síður sýna. 11 00:00:37,150 --> 00:00:40,070 En hvernig eigum við að hafa samskipti í raun við okkur, 12 00:00:40,070 --> 00:00:43,150 eða hvað notum við til að lesa, vista, eyða, 13 00:00:43,150 --> 00:00:46,070 og uppfæra gögn okkar innan þessara gagnasafn matskeið? 14 00:00:47,280 --> 00:00:49,700 Jæja, svarið er að við nota sérstaka tegund af tungumáli gagnagrunni 15 00:00:49,700 --> 00:00:53,400 sem samskipti beint við borðum gagnagrunninum okkar. 16 00:00:53,400 --> 00:00:56,740 Nafn það er Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 eða það sem ég vísa til sem SQL. 19 00:01:00,740 --> 00:01:05,100 >> Nú [SE-QueL], eða SQL er ekki forritunarmál, 20 00:01:05,100 --> 00:01:08,580 en í staðinn er það tungumál sem veitir staðlað sett af skipunum 21 00:01:08,580 --> 00:01:13,520 til að sækja og vinna gögn úr ýmsum gagnasafn stjórnun kerfi. 22 00:01:13,520 --> 00:01:17,630 Að því er varðar CS50, munum við fara yfir fjórar helstu skipanir: 23 00:01:17,630 --> 00:01:21,210 velja, INSERT, UPDATE og eyða. 24 00:01:21,210 --> 00:01:26,230 Ennfremur munum við nýta vefur gagnasafn tengi heitir phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 sem uppsett á tækinu til að skrifa SQL yfirlýsingar okkar. 26 00:01:30,830 --> 00:01:33,050 Svo, til að hjálpa þér að muna þessar skipanir, 27 00:01:33,050 --> 00:01:37,080 Ég hef fært nokkrar Cupcakes í skáp til að aðstoða við aðstæður okkar. 28 00:01:39,650 --> 00:01:42,210 Segjum að þú ert gagnagrunni A Cupcake er, 29 00:01:42,210 --> 00:01:44,490 þar sem þú geymir allar upplýsingar um Cupcakes þínu. 30 00:01:44,490 --> 00:01:48,220 Nú, gagnasöfn geta innihaldið marga töflur 31 00:01:48,220 --> 00:01:50,950 og töflur sjálf geta innihaldið marga dálka. 32 00:01:50,950 --> 00:01:57,020 Inni gagnagrunni Cupcake okkar, höfum við töflu sem heitir cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Þessi tafla verður notaður til að geyma allar upplýsingar um Cupcakes 34 00:02:00,500 --> 00:02:02,990 sem eru, vel, í skáp þínu. 35 00:02:02,990 --> 00:02:07,770 Súlurnar sem eru inni töflunni tákna eiginleika a Cupcake. 36 00:02:07,770 --> 00:02:14,560 Til dæmis, eru dálkar í cupcake_cupboard er 37 00:02:14,560 --> 00:02:15,920 Kaka ID, CakeType, CakeColor og CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Þetta Boolean-tegund súla er notuð til að ákvarða hvort kaka er gott eða ekki gott. 39 00:02:23,040 --> 00:02:26,560 Við ætlum að byrja með að skrifa upp á að velja yfirlýsingu. 40 00:02:26,560 --> 00:02:32,160 Veldu yfirlýsingar eru notuð til að sækja gögn af tiltekinni gagnagrunni töflunni. 41 00:02:32,160 --> 00:02:34,890 Í þessari atburðarás, viljum við að vita allt 42 00:02:34,890 --> 00:02:39,080 um alla Cupcakes sem ríkir í skáp okkar. 43 00:02:39,080 --> 00:02:48,670 The setningafræði til að gera þetta er "Select" rúm stjörnu, eða *, rúm frá rúm borð okkar, 44 00:02:48,670 --> 00:02:52,050 sem er cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Við skulum fara á undan og keyra það. 46 00:02:56,670 --> 00:03:00,140 >> Eins og sjá má eru þetta allt Cupcakes í skáp okkar. 47 00:03:00,140 --> 00:03:05,110 Það er mikilvægt að hafa í huga að * eða stjörnu, er villtur nafnspjald karakter 48 00:03:05,110 --> 00:03:08,830 sem táknar safna öllum dálkum sumra borðið. 49 00:03:08,830 --> 00:03:13,650 Venjulega getum við aðgang að tilteknum dálk eða dálka 50 00:03:13,650 --> 00:03:16,950 með því að skipta * við raunverulegan dálki nafn. 51 00:03:16,950 --> 00:03:21,220 Ef við viljum marga dálka, en ekki allt, við getum ná þessu 52 00:03:21,220 --> 00:03:25,620 með því að skrifa dálkinum nöfn afmarkar hver dálkur með kommu. 53 00:03:25,620 --> 00:03:28,620 Til dæmis, við skulum aðeins sækja CakeId og CakeType í cupcake_cupboard töflunni. 54 00:03:28,620 --> 00:03:38,370 The setningafræði til að gera þetta er: SELECT pláss CakeID kommu 55 00:03:38,370 --> 00:03:44,370 CakeType pláss frá borðið okkar, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Við skulum fara á undan og framkvæma þetta. 57 00:03:49,340 --> 00:03:52,670 Og hér, nú við aðeins hafa tvo dálka sem við tilgreindar 58 00:03:52,670 --> 00:03:54,670 fyrir hvern Cupcake í skáp okkar. 59 00:03:54,670 --> 00:03:57,710 Við getum einnig betrumbæta fyrirspurn niðurstöður okkar með því að tilgreina 60 00:03:57,710 --> 00:04:00,910 "Hvar" lið bara eftir töflunni nafn. 61 00:04:02,000 --> 00:04:05,410 Til dæmis, það virðist vera Cupcake í skáp okkar 62 00:04:05,410 --> 00:04:08,660 sem er, vel, ekki svo gott að leita. 63 00:04:08,660 --> 00:04:13,950 Við skulum reikna út alla Cupcakes í skáp okkar sem eru, vel, ekki svo gott að leita 64 00:04:13,950 --> 00:04:16,110 nota "þar sem" ákvæði. 65 00:04:16,110 --> 00:04:26,390 The setningafræði til að gera þetta er: SELECT rúm * rúm frá cupcake_cupboard rúm 66 00:04:26,390 --> 00:04:34,080 rými þar sem rými skilyrt dálki okkar, í þessu tilfelli CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 og Boole gildi False. 68 00:04:36,900 --> 00:04:42,750 Það er mikilvægt að hafa í huga að ef þú ert að nota strengi, þú verður að láta hana í einn quotes. 69 00:04:42,750 --> 00:04:49,620 Þetta er satt fyrir alla strengi í SQL, eða, í SQL gagnagrunn skilmálum, afbrigði stafir 70 00:04:49,620 --> 00:04:51,620 þekktur sem VARCHAR datatype. 71 00:04:51,620 --> 00:04:57,660 Í þessu tilfelli erum við að nota True eða False, sem er Boole gildi og ekki band. 72 00:04:59,120 --> 00:05:00,660 Við skulum fara á undan og keyra þessa skipun. 73 00:05:00,660 --> 00:05:05,340 >> Lo og sjá, það er mál sem við höfum 1 súkkulaði 74 00:05:05,340 --> 00:05:07,920 ekki svo gott Cupcake í skáp okkar. 75 00:05:09,620 --> 00:05:11,460 Næst ætlum við að skrifa setja inn yfirlýsingu. 76 00:05:11,460 --> 00:05:15,560 Setja yfirlýsingar eru notuð til að setja eða bæta 77 00:05:15,560 --> 00:05:17,770 fleiri línur af gögnum í töflu gagnagrunninn. 78 00:05:17,770 --> 00:05:23,160 Endurlit atburðarás okkar, við skulum gera ráð fyrir að við höfum bara gert nýtt Cupcake. 79 00:05:25,910 --> 00:05:30,080 Þar sem við erum mjög skipulögð Cupcake eaters, við erum að fara að setja þessa nýju Cupcake 80 00:05:30,080 --> 00:05:32,330 í töflu cupcake_cupboard okkar. 81 00:05:32,330 --> 00:05:40,690 The setningafræði til að gera þetta er þetta: Settu pláss í rúm borð okkar, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, rúm (, 83 00:05:46,830 --> 00:05:51,060 og hér við að skilgreina dálka nöfn, afmarkast með kommu, 84 00:05:51,060 --> 00:05:59,790 CakeType kommu CakeColor kommu CakeIsNice) rúm. 85 00:05:59,790 --> 00:06:06,540 Eftir þetta, skrifa við orðið gildum pláss (og hér 86 00:06:06,540 --> 00:06:12,170 við inn í gildi fyrir hvern dálk um sig, einnig afmörkuð með kommu. 87 00:06:12,170 --> 00:06:17,830 Single vitna, því að þeir eru allir VARCHAR gildi munum við umlykja þá í einum vitna, 88 00:06:17,830 --> 00:06:26,780 Ljósbrúnt "Comma" hnetusmjör "komma True. 89 00:06:26,780 --> 00:06:30,480 Nú er mikilvægt að gefa hverri línu einstakt númer til að auðkenna sig. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing dálk veitir þetta sem 91 00:06:33,660 --> 00:06:37,410  "Engar tvær sömu auðkenni getur alltaf vera í þessari töflu." 92 00:06:37,410 --> 00:06:39,480 Við skulum fara á undan og keyra. 93 00:06:39,480 --> 00:06:45,380 Svona, allir skipulagt. 94 00:06:49,720 --> 00:06:52,100 >> Næsta SQL staðhæfing sem við munum skrifa er að uppfæra yfirlýsingu. 95 00:06:52,100 --> 00:06:55,650 The endurnýja yfirlýsingu má nota til að breyta gögnum innan dálki 96 00:06:55,650 --> 00:06:58,440 fyrir núverandi röð í töflunni gagnagrunninn. 97 00:06:59,670 --> 00:07:03,420 Fyrr í atburðarás okkar, með því að nota velja yfirlýsingu, auðkennd við a Cupcake 98 00:07:03,420 --> 00:07:08,300 í töflunni cupcake_cupboard okkar CakeIsNice gildi Hvers var False. 99 00:07:08,300 --> 00:07:12,050 Við skulum gera ráð fyrir að á meðan hnetusmjör Cupcake okkar var í ofninum, 100 00:07:12,050 --> 00:07:15,790 við gert ekki-svo-gott Cupcake okkar mjög gott. 101 00:07:18,020 --> 00:07:22,240 Tilvera svo einstaklega skipulagður, viljum við Cupcake okkar til að endurspegla þetta gildi 102 00:07:22,240 --> 00:07:24,240 í töflu cupcake_cupboard okkar. 103 00:07:24,240 --> 00:07:28,710 Því skulum uppfæra súkkulaði cupcake okkar í gagnagrunninum til að endurspegla þetta. 104 00:07:28,710 --> 00:07:39,720 The setningafræði er: UPDATE pláss borð okkar, cupcake_cupboard, rúm SET rúm 105 00:07:39,720 --> 00:07:44,240 dálkinum sem við viljum breyta, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Þá hér við setja nýtt gildi okkar True pláss. 107 00:07:49,210 --> 00:07:54,290 Nú, vegna þess að við viljum ekki að uppfæra allar færslur með þessu gildi, 108 00:07:54,290 --> 00:07:57,400 við viljum veita "þar sem" lið sem munu miðla okkur 109 00:07:57,400 --> 00:07:59,830 að nákvæmlega röð sem við viljum breyta. 110 00:07:59,830 --> 00:08:03,690 Í þessu tilfelli, vitum við að það er aðeins einn Cupcake 111 00:08:03,690 --> 00:08:06,670 sem hefur CakeIsNice gildi False. 112 00:08:06,670 --> 00:08:11,030 Þá munum við einnig að tryggja að við erum að uppfæra rétta röð 113 00:08:11,030 --> 00:08:13,030 með því að nota "og" ákvæði. 114 00:08:14,340 --> 00:08:17,270 Við notum "og" ákvæði að betrumbæta fyrirspurn okkar frekar. 115 00:08:17,270 --> 00:08:20,380 Í þessu tilfelli, vegna þess að við vitum að Cupcake er súkkulaði, 116 00:08:20,380 --> 00:08:23,160 við munum nota þennan CakeType dálki. 117 00:08:23,160 --> 00:08:31,500 Þar sem rými skilyrt dálki rúm CakeIsNice okkar rúm = False, 118 00:08:31,500 --> 00:08:38,330 og rúm CakeType = 'súkkulaði. " 119 00:08:38,330 --> 00:08:41,880 Svo, setja það allt saman, þessa uppfærslu yfirlýsingu segir 120 00:08:41,880 --> 00:08:44,670 finna allar Cupcakes í Cupcake skáp okkar, 121 00:08:44,670 --> 00:08:50,520 og ef það er Cupcake sem dálki CakeIsNice inniheldur gildi False 122 00:08:50,520 --> 00:08:54,130 og CakeType inniheldur gildi súkkulaði, 123 00:08:54,130 --> 00:08:58,240 við viljum að uppfæra sérstaka raðir CakeIsNice gildi True. 124 00:08:58,240 --> 00:09:01,140 Svo, við skulum fara á undan og framkvæmum. 125 00:09:03,860 --> 00:09:05,860 Og nú erum við skipulögð. 126 00:09:06,650 --> 00:09:09,220 >> Allt þetta tal um Cupcakes hefur gert mig svolítið svangur. 127 00:09:09,220 --> 00:09:11,360 Ég held að ég ætti að hjálpa mér í eitt. 128 00:09:11,360 --> 00:09:17,670 En ef ég borða reyndar þetta cupcake, ætti ég að minnsta kosti einnig fjarlægja tilvist sína 129 00:09:17,670 --> 00:09:19,670  frá töflu cupcake_cupboard okkar. 130 00:09:20,650 --> 00:09:22,590 Til að gera þetta, munum við nota "Eyða" yfirlýsingu. 131 00:09:22,590 --> 00:09:27,400 The "Eyða" yfirlýsingu er hægt að nota til að fjarlægja allt eða sumir raðir í töflunni. 132 00:09:27,400 --> 00:09:29,920 Ef þú vilt fjarlægja sumir sérstakur röð í töflunni, 133 00:09:29,920 --> 00:09:34,360 þá verður þú að gefa upp "þar sem" ákvæði, þannig að skilgreina dálk 134 00:09:34,360 --> 00:09:37,660 sem ætti að vera einstakt að röðinni sem þú vilt fjarlægja. 135 00:09:37,660 --> 00:09:47,370 Þetta er setningafræði: DELETE rúm frá rúm borð okkar, cupcake_cupboard, rúm. 136 00:09:47,370 --> 00:09:51,760 Nú, á þessum tímapunkti, þegar þú ert svona langt í eyða yfirlýsingu þína 137 00:09:51,760 --> 00:09:54,240 þú vilt vera mjög varkár. 138 00:09:54,240 --> 00:09:59,970 Til dæmis, ef ég vil keyra þessa fyrirspurn sem er án þess að veita nokkur "þar sem" ákvæði 139 00:09:59,970 --> 00:10:04,500 Ég myndi missa öll gögn í þessu cupcake_cupboard töflunni 140 00:10:04,500 --> 00:10:09,590 heldur vegna þess að ég veit nú þegar að kaka auðkenni mínir eru einstök, ég nota 141 00:10:09,590 --> 00:10:12,410 Red Velvet kaka auðkenni fyrir "þar sem" minn ákvæði. 142 00:10:14,550 --> 00:10:20,670 Þar sem rými dálki okkar, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Vegna þess að þetta er heiltala gildi það er engin þörf til að umlykja það í einn quotes. 144 00:10:25,010 --> 00:10:27,020 Svo, við skulum framkvæma yfirlýsingu. 145 00:10:33,560 --> 00:10:35,990 Jæja, nú þegar við höfum þurrka tilvist þessa Cupcake 146 00:10:35,990 --> 00:10:40,360 frá töflu cupcake_cupboard okkar, höfum við aðeins eitt eftir: 147 00:10:41,680 --> 00:10:43,680 Gerðu það hverfa. 148 00:10:43,680 --> 00:10:46,990 Ég er Christopher Bartholomew. Þetta er CS50.