1 00:00:00,000 --> 00:00:03,493 >> [TÓNLIST spila] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD: In vídeó okkar á vefur þróun málefni, 4 00:00:07,100 --> 00:00:10,560 við höfum getið hugtakið gagnagrunnur nokkrum sinnum, ekki satt? 5 00:00:10,560 --> 00:00:12,700 Svo gagnagrunn þú ert líklega kannast við frá 6 00:00:12,700 --> 00:00:15,780 segja að nota Microsoft Excel eða Google töflureikni. 7 00:00:15,780 --> 00:00:20,650 Það er í raun bara skipulögð setja af borðum, raðir og dálka. 8 00:00:20,650 --> 00:00:23,140 >> Og gagnagrunnur þar website verslanir okkar 9 00:00:23,140 --> 00:00:26,760 upplýsingar sem er mikilvægt fyrir okkar website til að vinna almennilega. 10 00:00:26,760 --> 00:00:30,150 Aftur, mjög algengt dæmi hér er að geyma notendanöfn og lykilorð 11 00:00:30,150 --> 00:00:32,824 í gagnagrunni, þannig að þegar sem notandi skráir sig inn á heimasíðu okkar, 12 00:00:32,824 --> 00:00:36,690 gagnagrunninum má fletta til að sjá ef notandinn er í dag. 13 00:00:36,690 --> 00:00:39,260 Og ef þeir eru, athuga hvort Aðgangsorðið er rétt. 14 00:00:39,260 --> 00:00:43,420 Og ef lykilorð þeirra er rétt, þá getum við gefið þeim hvað síðu 15 00:00:43,420 --> 00:00:45,370 þeir eru að biðja. 16 00:00:45,370 --> 00:00:48,590 >> Svo þú ert líklega aftur, ég þekki með þessa hugmynd frá Excel eða Google 17 00:00:48,590 --> 00:00:49,430 Tafla. 18 00:00:49,430 --> 00:00:52,980 Við höfum gagnagrunna, töflur, línur og dálka. 19 00:00:52,980 --> 00:00:56,450 Og það er í raun eins konar af grundvallar sett 20 00:00:56,450 --> 00:00:58,470 hierarchic sundurliðun hér. 21 00:00:58,470 --> 00:00:59,800 Svo hér er Excel töflureikni. 22 00:00:59,800 --> 00:01:02,640 Og ef þú hefur einhvern tíma opnað þetta eða annað slíkt forrit 23 00:01:02,640 --> 00:01:06,780 þú veist að þetta eru hér rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Þetta eru dálkar. 25 00:01:08,760 --> 00:01:11,790 >> Kannski niður hér, þótt þú getur ekki nota þennan eiginleika hræðilega much-- 26 00:01:11,790 --> 00:01:15,370 Ég stækka in-- við höfum þessi hugmynd um blaði. 27 00:01:15,370 --> 00:01:17,930 Svo vill þessi blöð, ef Ég varamaður og til baka, 28 00:01:17,930 --> 00:01:21,600 eru mismunandi töflur sem eru hjá mér. 29 00:01:21,600 --> 00:01:25,210 Og ef við höldum áfram Example allt vegurinn, nafn af þessum gagnagrunni 30 00:01:25,210 --> 00:01:26,940 er Book 1. 31 00:01:26,940 --> 00:01:28,710 Kannski hef ég Book 2 og 3. bók. 32 00:01:28,710 --> 00:01:33,270 Svo er hver Excel skrá a gagnagrunnur, hver lak er borð, 33 00:01:33,270 --> 00:01:39,530 og inni hverri töflu sem ég hef þessi hugmynd af línum og dálkum. 34 00:01:39,530 --> 00:01:41,900 >> Svo hvernig get ég unnið með þessum gagnagrunni? 35 00:01:41,900 --> 00:01:43,630 Hvernig fæ ég upplýsingar frá henni? 36 00:01:43,630 --> 00:01:47,540 Jæja það er tungumál kallast SQL-- sem ég yfirleitt bara kalla Sequel-- 37 00:01:47,540 --> 00:01:50,010 og það stendur fyrir Structured Query Language. 38 00:01:50,010 --> 00:01:52,981 Og það er forritunarmál, en það er nokkuð takmörkuð forritun 39 00:01:52,981 --> 00:01:53,480 tungumál. 40 00:01:53,480 --> 00:01:56,407 Það er ekki alveg eins og aðrir sem við höfum unnið með. 41 00:01:56,407 --> 00:01:58,240 En tilgangur þessarar forritunarmál 42 00:01:58,240 --> 00:02:01,570 er að fyrirspurn í gagnagrunn, til spyrja upplýsingar gagnagrunns, 43 00:02:01,570 --> 00:02:04,480 finna upplýsingar á a gagnagrunnur, og svo framvegis. 44 00:02:04,480 --> 00:02:08,449 >> Við höfum einnig í CS50-- og það er mjög sameiginlegur vettvangur, það er kallað MySQL. 45 00:02:08,449 --> 00:02:10,600 Það er það sem við notum á námskeiðinu. 46 00:02:10,600 --> 00:02:12,880 Það er opinn hugbúnaður vettvangur sem stofnar 47 00:02:12,880 --> 00:02:16,732 svonefndan Vensla database-- gagnagrunni, á áhrifaríkan hátt. 48 00:02:16,732 --> 00:02:18,440 Við þurfum ekki að fá í of mikið smáatriði 49 00:02:18,440 --> 00:02:20,930 á hvaða Venslagagnagrunnur er. 50 00:02:20,930 --> 00:02:24,650 En SQL tungumál er mjög Adept á að vinna 51 00:02:24,650 --> 00:02:29,760 með MySQL og annað svipað stíll Vensla gagnagrunna. 52 00:02:29,760 --> 00:02:34,010 >> Og margir innsetningar MySQL koma með eitthvað 53 00:02:34,010 --> 00:02:37,760 heitir phpMyAdmin, sem er myndrænt notandi 54 00:02:37,760 --> 00:02:40,970 interface-- á GUI-- sem gerir það svolítið meira 55 00:02:40,970 --> 00:02:44,410 notendavænt að framkvæma gagnasafn fyrirspurnir, 56 00:02:44,410 --> 00:02:48,980 vegna gagnagrunnar eru ekki bara notuð af háþróaður forritari, ekki satt? 57 00:02:48,980 --> 00:02:51,510 Stundum eru þessir litlu fyrirtæki, 58 00:02:51,510 --> 00:02:53,900 og þeir geta ekki efni á að ráða teymi af forriturum, 59 00:02:53,900 --> 00:02:56,700 en þeir þurfa samt að geyma upplýsingar í gagnagrunninum. 60 00:02:56,700 --> 00:02:59,300 >> Eitthvað eins og phpMyAdmin gerir það mjög auðvelt fyrir einhvern 61 00:02:59,300 --> 00:03:03,630 sem hefur aldrei forritað áður að taka upp og kynnast því hvernig 62 00:03:03,630 --> 00:03:07,710 að vinna með gagnagrunni. 63 00:03:07,710 --> 00:03:11,800 Vandamálið er, phpMyAdmin, en það er frábært tól til að læra 64 00:03:11,800 --> 00:03:14,850 um gagnagrunna, það er handbók. 65 00:03:14,850 --> 00:03:18,050 Þú ert að fara að þurfa að skrá þig inn það og framkvæma skipanir og tegund 66 00:03:18,050 --> 00:03:19,910 hlutir í höndunum. 67 00:03:19,910 --> 00:03:23,160 >> Og eins og við þekkjum úr okkar dæmi um PHP forritun vefur, 68 00:03:23,160 --> 00:03:26,550 þurfa að höndunum gera það á heimasíðu okkar, 69 00:03:26,550 --> 00:03:30,970 ef við viljum a dynamic, virk móttækilegur website, kannski ekki besta nálgun. 70 00:03:30,970 --> 00:03:33,980 Okkur langar til að finna leið til að kannski sjálfvirkan þetta einhvern veginn. 71 00:03:33,980 --> 00:03:37,864 Og SQL mun gera okkur kleift að gera þetta. 72 00:03:37,864 --> 00:03:39,780 Svo þegar við erum að fara að byrja að vinna með SQL, 73 00:03:39,780 --> 00:03:41,220 Við þurfum fyrst að hafa gagnasafn til að vinna með. 74 00:03:41,220 --> 00:03:42,510 Búa til gagnagrunn er eitthvað sem þú sennilega 75 00:03:42,510 --> 00:03:45,350 gert í phpMyAdmin, því þú þarft aðeins að gera það einu sinni, 76 00:03:45,350 --> 00:03:49,690 og setningafræði fyrir að gera svo er mikið meira einfalt. 77 00:03:49,690 --> 00:03:51,940 Það er mun auðveldara að gera það í grafískri notendaviðmót 78 00:03:51,940 --> 00:03:53,520 en að slá það út sem skipun. 79 00:03:53,520 --> 00:03:55,186 Skipunin getur fengið smá fyrirferðarmikill. 80 00:03:55,186 --> 00:03:58,889 Á sama hátt, búa til töflu getur fá töluvert fyrirferðarmikill eins og heilbrigður. 81 00:03:58,889 --> 00:04:01,930 Og svo hlutir eins og að búa til gagnagrunn og skapa borð, sem þú ert 82 00:04:01,930 --> 00:04:06,270 sennilega bara að fara að gera once-- einu sinni á borð, einu sinni á database-- 83 00:04:06,270 --> 00:04:09,040 það er í lagi að gera það í myndrænt viðmót. 84 00:04:09,040 --> 00:04:11,570 Í því ferli að búa til borð, þú munt 85 00:04:11,570 --> 00:04:14,840 einnig að tilgreina allt í dálka sem verður í þeirri töflu. 86 00:04:14,840 --> 00:04:18,149 Hvers konar upplýsingar gera þú vilt geyma í töflunni? 87 00:04:18,149 --> 00:04:24,520 Kannski nafn notanda og fæðingardag, lykilorð, notandi ID númer og kannski 88 00:04:24,520 --> 00:04:26,170 borg og ríki, ekki satt? 89 00:04:26,170 --> 00:04:30,080 >> Og í hvert sinn sem við viljum bæta notanda að gagnagrunninum, við viljum fá öll sex 90 00:04:30,080 --> 00:04:31,890 af þeim stykki af upplýsingar. 91 00:04:31,890 --> 00:04:34,840 Og við gerum það með því að bæta raðir á borðið. 92 00:04:34,840 --> 00:04:37,800 Svo við að búa fyrst til gagnagrunn, þá erum við að búa til töflu. 93 00:04:37,800 --> 00:04:40,100 Sem hluti af að búa borð, við erum beðin 94 00:04:40,100 --> 00:04:44,280 að tilgreina hvert dálk sem við viljum í þessari töflu. 95 00:04:44,280 --> 00:04:47,247 Og þá eins og við byrjum að bæta upplýsingar í gagnagrunn 96 00:04:47,247 --> 00:04:49,580 og fyrirspurn í gagnagrunninn meira generally-- ekki bara bæta við, 97 00:04:49,580 --> 00:04:51,610 en allt annað sem við do-- við munum vera að fást 98 00:04:51,610 --> 00:04:58,870 með raðir af borðinu, sem er eitt upplýsingar um notanda frá allt sett. 99 00:04:58,870 --> 00:05:03,210 >> Svo er hver SQL dálki fær um halda gögnum um tiltekna tegund gagna. 100 00:05:03,210 --> 00:05:06,560 Þannig að við útrýma svoleiðis þetta Hugmyndin um gagnatög í PHP, 101 00:05:06,560 --> 00:05:08,747 en þeir eru aftur hér í SQL. 102 00:05:08,747 --> 00:05:10,080 Og það er mikið af gagnatög. 103 00:05:10,080 --> 00:05:13,420 Hér er bara 20 af þeim, en það er ekki einu sinni þeim öllum. 104 00:05:13,420 --> 00:05:16,240 Þannig að við höfum hugmyndir eins INTs-- Integers-- við vitum líklega 105 00:05:16,240 --> 00:05:17,760 að þessi dálkur getur haldið heiltölur. 106 00:05:17,760 --> 00:05:21,077 Og það eru afbrigði thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Kannski eigum við ekki alltaf þörf fjögur bit. 108 00:05:22,660 --> 00:05:26,800 Kannski þurfum við átta bæti, og svo við getur notað þessi afbrigði á heiltölur 109 00:05:26,800 --> 00:05:28,510 að vera svolítið meira pláss duglegur. 110 00:05:28,510 --> 00:05:31,899 Við getum gert aukastaf númer, við getur gert fleytitölu númer. 111 00:05:31,899 --> 00:05:32,940 Þetta eru mjög svipuð. 112 00:05:32,940 --> 00:05:34,773 Það eru nokkrar mismunandi, og ef þú vilt 113 00:05:34,773 --> 00:05:37,330 eins og að horfa upp SQL konar handbók, þú 114 00:05:37,330 --> 00:05:40,670 hægt að sjá hvað lítilsháttar munur er á milli þeirra. 115 00:05:40,670 --> 00:05:43,250 >> Kannski viljum við geyma upplýsingar um dagsetningu og tíma. 116 00:05:43,250 --> 00:05:47,047 Kannski erum við að halda utan um þegar notandi gekk heimasíðu okkar, 117 00:05:47,047 --> 00:05:48,880 og svo kannski við viljum að hafa dálk sem er 118 00:05:48,880 --> 00:05:52,820 dagsetning tími eða timestamp sem gefur til kynna þegar notandinn í raun 119 00:05:52,820 --> 00:05:54,130 skráði sig. 120 00:05:54,130 --> 00:05:56,132 Við getum gert geometries og linestrings. 121 00:05:56,132 --> 00:05:57,340 Þetta er reyndar mjög flott. 122 00:05:57,340 --> 00:06:01,410 Við gætum kortleggja a landsvæði með 123 00:06:01,410 --> 00:06:05,110 GIS hnit að samsæri út svæði. 124 00:06:05,110 --> 00:06:08,580 Svo getur raunverulega geyma þessi tegund upplýsinga í SQL dálki. 125 00:06:08,580 --> 00:06:11,390 >> Textinn er bara risastór dropar af texta, kannski. 126 00:06:11,390 --> 00:06:12,840 ENUMs eru eins konar áhugavert. 127 00:06:12,840 --> 00:06:16,080 Þeir eru í raun í C. Við gerum ekki tala um þá vegna þess að þeir eru ekki 128 00:06:16,080 --> 00:06:19,110 hræðilega algengt, að minnsta kosti CS50. 129 00:06:19,110 --> 00:06:22,680 En það er ertölusettur gögn tegund, sem er fær um að halda takmörkuð gildi. 130 00:06:22,680 --> 00:06:25,940 >> Virkilega gott dæmi hér væri til að búa til enum þar sem sjö 131 00:06:25,940 --> 00:06:29,394 Möguleg gildi eru sunnudagur, mánudagur, Þriðjudagur, Miðvikudagur, Fimmtudagur, Föstudagur, 132 00:06:29,394 --> 00:06:30,060 Laugardagur, ekki satt? 133 00:06:30,060 --> 00:06:33,311 Þessi gögn tegund Dagur Viku er ekki til, 134 00:06:33,311 --> 00:06:35,310 en við gætum búið til að talin gögn tegund, svo 135 00:06:35,310 --> 00:06:39,400 að það dálki getur bara alltaf haldið einn af þeim sjö gildunum. 136 00:06:39,400 --> 00:06:44,300 Við höfum talin öll af gildunum. 137 00:06:44,300 --> 00:06:47,630 >> Þá höfum við CHAR og VARCHAR, og ég hef lita þessar grænu 138 00:06:47,630 --> 00:06:49,505 vegna þess að við erum í raun og veru fara að taka annað 139 00:06:49,505 --> 00:06:51,950 að tala um muninn á milli þessara tveggja hluta. 140 00:06:51,950 --> 00:06:55,780 Svo CHAR, ólíkt C þar CHAR var einn staf, 141 00:06:55,780 --> 00:07:00,730 í SQL a CHAR átt við fast band lengd. 142 00:07:00,730 --> 00:07:02,620 Og þegar við að búa til þessa dálki, reyndar við 143 00:07:02,620 --> 00:07:05,070 Hægt er að tilgreina lengd strengsins. 144 00:07:05,070 --> 00:07:08,080 >> Þannig að í þessu dæmi, við gætum sagt bleikju (10). 145 00:07:08,080 --> 00:07:11,190 Það þýðir að hver þáttur þeim dálki 146 00:07:11,190 --> 00:07:13,910 mun samanstanda af 10 bæti af upplýsingum. 147 00:07:13,910 --> 00:07:15,770 Ekkert meira, ekkert minna. 148 00:07:15,770 --> 00:07:21,780 Þannig að ef við reynum og setja í 15 bita eða 15 stafir þáttur 149 00:07:21,780 --> 00:07:25,340 eða gildi í þessum dálki, við erum bara á fyrstu 10. 150 00:07:25,340 --> 00:07:27,290 Ef við setjum í tveimur eðli lengi gildi, 151 00:07:27,290 --> 00:07:30,700 við erum að fara að hafa tvær stafi, og þá átta null bit. 152 00:07:30,700 --> 00:07:34,990 Við munum aldrei vera skilvirkari en það. 153 00:07:34,990 --> 00:07:37,727 >> A VARCHAR er góður af eins og hugmynd okkar um streng 154 00:07:37,727 --> 00:07:39,560 sem við erum kunnugir með úr C eða PHP. 155 00:07:39,560 --> 00:07:40,830 Það er breyta lengd strengur. 156 00:07:40,830 --> 00:07:42,560 Og þegar þú býrð þessi dálkur, þú bara 157 00:07:42,560 --> 00:07:44,860 tilgreina hæsta mögulega lengd. 158 00:07:44,860 --> 00:07:49,065 Svo kannski 99 eða almennt 255. 159 00:07:49,065 --> 00:07:50,440 Það væri hámarkslengd. 160 00:07:50,440 --> 00:07:52,890 Og svo ef við vorum að geyma 15 stafir band, 161 00:07:52,890 --> 00:07:56,157 við myndum nota 15 bæti, kannski 16 bæti fyrir null Terminator. 162 00:07:56,157 --> 00:07:57,990 Ef við vorum að geyma a þrír eðli band, 163 00:07:57,990 --> 00:08:01,120 við myndum nota þrjú eða fjögur bæti. 164 00:08:01,120 --> 00:08:03,050 En við myndum ekki nota fullt 99. 165 00:08:03,050 --> 00:08:05,190 >> Svo hvers vegna ættum við að hafa bæði? 166 00:08:05,190 --> 00:08:08,210 Jæja, ef við þurfum að reikna út hvernig lengi eitthvað er með VARCHAR, 167 00:08:08,210 --> 00:08:10,680 við höfum að eins konar árétta yfir það eins og bara að við gerðum í C 168 00:08:10,680 --> 00:08:12,230 og reikna út hvar það hættir. 169 00:08:12,230 --> 00:08:15,920 En ef við vitum að allt í þessum dálki er 10 bytes, kannski 170 00:08:15,920 --> 00:08:19,220 við vitum að upplýsingar, við getum hoppað 10 bæti 10 bæti 10 bæti 10 bæti, 171 00:08:19,220 --> 00:08:21,790 og alltaf finna byrjun af the band. 172 00:08:21,790 --> 00:08:25,210 >> Þannig að við kann að hafa nokkrar sóun pláss með bleikju, 173 00:08:25,210 --> 00:08:28,510 en kannski er það verslun burt af hafa betri hraða 174 00:08:28,510 --> 00:08:30,160 í siglingar í gagnagrunninn. 175 00:08:30,160 --> 00:08:32,330 En kannski viljum við sveigjanleika á VARCHAR 176 00:08:32,330 --> 00:08:36,710 í stað þess að having-- Ef CHAR okkar var 255, en mest af notendum okkar 177 00:08:36,710 --> 00:08:40,537 voru aðeins inputting þrjú eða fjögur bæti virði á upplýsingum eða þremur eða fjórum 178 00:08:40,537 --> 00:08:41,870 stafir virði af upplýsingum. 179 00:08:41,870 --> 00:08:44,324 >> En sumir notendur voru að nota allt 255, kannski 180 00:08:44,324 --> 00:08:45,990 VARCHAR væri meira viðeigandi þar. 181 00:08:45,990 --> 00:08:49,840 Það er tegund af viðskiptum burt, og almennt í þeim tilgangi að CS50, 182 00:08:49,840 --> 00:08:54,107 þú þarft ekki að hafa áhyggjur of mikill óður hvort sem þú notar bleikju eða varchar. 183 00:08:54,107 --> 00:08:57,190 En í hinum raunverulega heimi, þetta ekki máli vegna þess að allir af þessum dálkum 184 00:08:57,190 --> 00:08:59,300 taka upp raunverulegt líkamlegt pláss. 185 00:08:59,300 --> 00:09:04,150 Og líkamlegt pláss, í raunverulegur veröld, kemur á reikningi. 186 00:09:04,150 --> 00:09:06,800 >> Svo eitt annað endurgjald þegar þú ert að byggja upp töflu 187 00:09:06,800 --> 00:09:09,840 er að velja einn dálk til að vera hvað er kallað aðal lykill. 188 00:09:09,840 --> 00:09:14,350 Og aðal lykill er dálkur þar sem hvert einasta gildi er einstakt. 189 00:09:14,350 --> 00:09:19,980 Og það þýðir að þú getur auðveldlega velja út eina röð með því að horfa 190 00:09:19,980 --> 00:09:22,450 á aðal lykill röðinni. 191 00:09:22,450 --> 00:09:24,580 Svo til dæmis, þú almennt, við notendur, 192 00:09:24,580 --> 00:09:27,210 vil ekki tveimur notendum sem hafa sama notanda kennitölu. 193 00:09:27,210 --> 00:09:28,960 Og svo kannski þú hafa hellingur af upplýsingum, 194 00:09:28,960 --> 00:09:30,793 og kannski tveir notendur geta hafa sömu name-- 195 00:09:30,793 --> 00:09:32,650 þú þarft John Smith og John Smith. 196 00:09:32,650 --> 00:09:34,520 Það er ekki endilega vandamál, vegna þess að það eru margar fólk 197 00:09:34,520 --> 00:09:35,830 í heiminum sem heitir John Smith. 198 00:09:35,830 --> 00:09:40,766 En við höfum aðeins einn notandi kennitölu 10, einn notandi ID númer 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Við höfum ekki tveimur notendum með sama fjölda, 200 00:09:42,640 --> 00:09:46,010 og svo kannski tölur notandanafn væri gott aðal lykill. 201 00:09:46,010 --> 00:09:48,610 >> Við höfum ekki neina tvíverknað, og við getum nú einstaklega 202 00:09:48,610 --> 00:09:52,619 þekkja hvert einasta róður bara með því að horfa á þeim dálki. 203 00:09:52,619 --> 00:09:55,410 Velja aðallykla getur raunverulega gera síðari borð rekstur 204 00:09:55,410 --> 00:09:59,710 mun auðveldara vegna þess að þú getur skiptimynt Sú staðreynd að tiltekin raðir muni 205 00:09:59,710 --> 00:10:02,720 vera einstakt, eða ákveðin dálk af gagnagrunni eða borð 206 00:10:02,720 --> 00:10:06,030 mun vera einstakt að velja ákveðinna raðir. 207 00:10:06,030 --> 00:10:08,790 >> Þú getur einnig hafa sameiginlega aðal lykill, sem þú getur fundið tilefni 208 00:10:08,790 --> 00:10:11,720 að nota, sem er bara blanda af tveimur dálkum sem 209 00:10:11,720 --> 00:10:13,280 er tryggt að vera einstakt. 210 00:10:13,280 --> 00:10:16,410 Svo kannski þú hafa einn dálk sem er Sem og Bs, 211 00:10:16,410 --> 00:10:19,290 einn dálk sem er einn, tveir, og þrír, en þú munt bara alltaf 212 00:10:19,290 --> 00:10:23,660 hafa einn A1, skal eitt A2, og svo framvegis og svo framvegis. 213 00:10:23,660 --> 00:10:28,980 En þú might hafa a B2, a C2, eða A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Svo þú gætir þurft margar As, margar Bs, margar sjálfur, margar twos, 215 00:10:32,840 --> 00:10:38,567 en þú getur bara alltaf hafa Single A1, B2, C3, og svo framvegis. 216 00:10:38,567 --> 00:10:40,400 Svo eins og ég sagði, SQL er forritunarmál, 217 00:10:40,400 --> 00:10:42,024 en það hefur nokkuð takmarkað orðaforða. 218 00:10:42,024 --> 00:10:44,880 Það er ekki alveg eins þenjanlegur og C og PHP og öðrum tungumálum 219 00:10:44,880 --> 00:10:46,350 að við tölum í námskeiðinu. 220 00:10:46,350 --> 00:10:49,960 Það er meira fjölorður a tungumál en það sem við erum 221 00:10:49,960 --> 00:10:52,789 að fara að tala um í þessu video, vegna þess að í þessu myndbandi 222 00:10:52,789 --> 00:10:54,830 við erum að fara að tala um fjórum aðgerðum sem vér 223 00:10:54,830 --> 00:10:55,720 getur framkvæmt á borði. 224 00:10:55,720 --> 00:10:56,761 >> Það eru fleiri en þetta. 225 00:10:56,761 --> 00:10:58,730 Við getum gert meira en þetta, en með tilliti til okkar, 226 00:10:58,730 --> 00:11:02,250 við erum almennt að fara að vera með bara fjórar operations-- settu, 227 00:11:02,250 --> 00:11:05,360 velja, uppfæra og eyða. 228 00:11:05,360 --> 00:11:08,750 Og þú geta sennilega innsæi giska hvað allir fjórir af þessum hlutum að gera. 229 00:11:08,750 --> 00:11:12,520 En við munum fara í smá nákvæmni á hverjum og einum. 230 00:11:12,520 --> 00:11:15,780 >> Svo í þeim tilgangi að þetta video, við skulum gera ráð fyrir 231 00:11:15,780 --> 00:11:18,870 Við höfum eftirfarandi tveimur töflur í einum gagnagrunni. 232 00:11:18,870 --> 00:11:23,460 Við höfum töflu sem kallast Notendur sem hefur fjögur columns-- kennitala, notandanafn, 233 00:11:23,460 --> 00:11:25,350 lykilorð, og fullt nafn. 234 00:11:25,350 --> 00:11:27,430 Og við höfum annað borð í sama gagnagrunni 235 00:11:27,430 --> 00:11:32,129 kallað mömmum sem bara geymir upplýsingar um notandanafn og móður. 236 00:11:32,129 --> 00:11:33,920 Svo fyrir alla dæmum í þessu myndbandi, munum við 237 00:11:33,920 --> 00:11:37,945 að nota þennan gagnagrunn og síðari uppfærslur á henni. 238 00:11:37,945 --> 00:11:40,070 Svo skulum segja að við viljum að bæta upplýsingum við borðið. 239 00:11:40,070 --> 00:11:44,460 Það er það sem innskotið rekstur gerir. 240 00:11:44,460 --> 00:11:46,550 Í að útskýra allt Þessar skipanir, sem ég ætla 241 00:11:46,550 --> 00:11:48,860 að gefa þér almenna beinagrind til að nota. 242 00:11:48,860 --> 00:11:51,661 Því í grundvallaratriðum, fyrirspurnir eru að fara að líta nokkuð svipað, 243 00:11:51,661 --> 00:11:54,660 við erum bara að fara að vera að breytast örlítið mismunandi stykki af upplýsingar 244 00:11:54,660 --> 00:11:56,750 að gera mismunandi hluti við borðið. 245 00:11:56,750 --> 00:11:59,200 >> Svo fyrir INSERT, beinagrind lítur svona eins og þetta. 246 00:11:59,200 --> 00:12:02,230 Við viljum að setja inn sérstaklega borð. 247 00:12:02,230 --> 00:12:05,290 Þá höfum við opið sviga og lista yfir dálka 248 00:12:05,290 --> 00:12:08,070 að við viljum setja gildin inn. 249 00:12:08,070 --> 00:12:10,974 Loka sviga er Eftirfarandi gildi, og þá 250 00:12:10,974 --> 00:12:13,390 aftur, listi við út gildi við viljum að setja í töflunni. 251 00:12:13,390 --> 00:12:15,950 >> Svo dæmi um þetta myndi vera eftirfarandi. 252 00:12:15,950 --> 00:12:19,170 Ég vil setja inn töflu notendur eftirfarandi columns-- 253 00:12:19,170 --> 00:12:21,010 notandanafn, lykilorð og fullname. 254 00:12:21,010 --> 00:12:25,282 Svo nýja röð þar sem ég er að setja í þeim þremur dálkum og við erum 255 00:12:25,282 --> 00:12:30,030 að fara að setja í gildi Newman, USMAIL og Newman. 256 00:12:30,030 --> 00:12:32,730 Þannig að í þessu tilfelli, ég er setja lágstafir Newman 257 00:12:32,730 --> 00:12:38,710 í notendanafni dálki, lykilorð USMAIL, og fullt nafn höfuðborg N 258 00:12:38,710 --> 00:12:41,940 Newman í fullname dálki. 259 00:12:41,940 --> 00:12:44,240 >> Svo er hér það sem gagnagrunnurinn leit út eins og áður. 260 00:12:44,240 --> 00:12:48,250 Hér er það sem notendur borð á toppur leit út áður en við gerðum þetta. 261 00:12:48,250 --> 00:12:50,760 Eftir að við framkvæma þetta fyrirspurn, fáum við þetta. 262 00:12:50,760 --> 00:12:54,790 Við höfum bætt við nýrri línu í töflunni. 263 00:12:54,790 --> 00:12:56,810 En taka þetta eitt sem ég gerði ekki tilgreina, 264 00:12:56,810 --> 00:12:59,880 en einhvern veginn ég hef fengið gildi fyrir, sem er þessi 12 hérna. 265 00:12:59,880 --> 00:13:02,820 Ég sagði ekki að ég vildi setja kennitölu í það. 266 00:13:02,820 --> 00:13:04,900 Mig langaði til að setja notendanafn, lykilorð, fullname. 267 00:13:04,900 --> 00:13:06,440 Og ég gerði það, það er allt í lagi. 268 00:13:06,440 --> 00:13:07,760 >> En ég fékk líka þessa 12. 269 00:13:07,760 --> 00:13:09,490 Af hverju gerði ég það 12? 270 00:13:09,490 --> 00:13:12,904 Jæja, það kemur í ljós að þegar þú ert að skilgreina 271 00:13:12,904 --> 00:13:15,570 dálk sem er að fara að vera þinn aðal lykill, sem er yfirleitt, 272 00:13:15,570 --> 00:13:16,510 eins og ég sagði, kennitölu. 273 00:13:16,510 --> 00:13:18,718 Það er ekki alltaf endilega að fara að vera kennitala, 274 00:13:18,718 --> 00:13:22,380 en það er yfirleitt góð hugmynd að vera einhvers konar heiltölu gildi. 275 00:13:22,380 --> 00:13:25,950 Þú hefur möguleika á phpMyAdmin þegar þú ert að búa gagnagrunninn 276 00:13:25,950 --> 00:13:31,130 eða borð til að setja sem dálki sem farartæki incrementing. 277 00:13:31,130 --> 00:13:34,520 >> Sem er mjög góð hugmynd þegar þú ert að vinna með aðal lykill, 278 00:13:34,520 --> 00:13:39,330 vegna þess að þú vilt hvert gildi í þeim dálki til að vera einstakt. 279 00:13:39,330 --> 00:13:43,310 Og ef þú gleymir að tilgreina það meira en einn mann, 280 00:13:43,310 --> 00:13:46,240 þú hefur nú ástandið þar sem dálkur er ekki lengur einstakt. 281 00:13:46,240 --> 00:13:50,200 Þú hefur tvo eyðurnar, svo þú getur ekki lengur einstaklega þekkja column-- 282 00:13:50,200 --> 00:13:54,150 eða þú getur ekki lengur einstaklega þekkja röð byggt á þeim dálki. 283 00:13:54,150 --> 00:13:57,010 Það er glatað öllum sínum gildi sem aðal lykill. 284 00:13:57,010 --> 00:14:02,010 >> Og svo virðist sem ég hef gert hér er stillt kenni 285 00:14:02,010 --> 00:14:07,790 Súlan farartæki vöxtur þannig að hver þegar ég bæta upplýsingum við borðið, 286 00:14:07,790 --> 00:14:12,220 það vilja á sjálfvirkan hátt gefa mér gildi fyrir aðal lykill. 287 00:14:12,220 --> 00:14:15,570 Þannig að ég get aldrei gleyma að gera það vegna þess að gagnagrunnur mun gera það fyrir mig. 288 00:14:15,570 --> 00:14:16,587 Svo er það góður af gaman. 289 00:14:16,587 --> 00:14:18,670 Og svo er það þess vegna sem við fáum 12 í það, vegna þess að ég hef 290 00:14:18,670 --> 00:14:21,772 setja þessi dálk upp til sjálfvirkt farartæki vöxtur. 291 00:14:21,772 --> 00:14:23,730 Ef ég bætti einhver annar það væri 13, ef ég bætti 292 00:14:23,730 --> 00:14:27,890 einhver annar að það væri 14, og svo framvegis. 293 00:14:27,890 --> 00:14:30,190 >> Svo skulum gera bara eitt innsetningu. 294 00:14:30,190 --> 00:14:34,530 Við munum setja inn moms borð, í Einkum notandanafn og móðir 295 00:14:34,530 --> 00:14:37,390 súla, gildi kramer og Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 Og svo við höfðum áður. 297 00:14:39,140 --> 00:14:41,800 Eftir að við framkvæma það SQL fyrirspurn, höfum við á þessu. 298 00:14:41,800 --> 00:14:47,290 Við höfum bætt við Kramer og Babs Kramer að mamma borðinu. 299 00:14:47,290 --> 00:14:48,350 >> Svo það er að setja. 300 00:14:48,350 --> 00:14:51,850 SELECT er það sem við notum til að draga Upplýsingar frá borðinu. 301 00:14:51,850 --> 00:14:54,390 Svo er þetta hvernig við komumst upplýsingar út úr gagnagrunninum. 302 00:14:54,390 --> 00:14:59,589 Og svo að velja skipanir eru að fara að vera mjög oft notað í forritun. 303 00:14:59,589 --> 00:15:02,130 Almenna framework-- sem Almennt beinagrind lítur svona út. 304 00:15:02,130 --> 00:15:06,550 Veldu safn dálka frá borð, og síðan mögulega 305 00:15:06,550 --> 00:15:11,090 þú getur tilgreint condition-- eða það sem við köllum yfirleitt umsögnina, 306 00:15:11,090 --> 00:15:13,010 er yfirleitt hugtakið sem við notum í SQL. 307 00:15:13,010 --> 00:15:16,490 >> En það er í rauninni það sérstaklega raðir þú vilt fá. 308 00:15:16,490 --> 00:15:19,100 Ef þú vilt, í stað þess að fá allt, minnka það niður, 309 00:15:19,100 --> 00:15:20,060 þetta er þar sem þú myndir gera það. 310 00:15:20,060 --> 00:15:22,777 Og þá mögulega, getur þú einnig til einhvers af tiltekinni dálki. 311 00:15:22,777 --> 00:15:25,860 Svo kannski þú vilt hafa það raðast í stafrófsröð miðað einn dálk 312 00:15:25,860 --> 00:15:27,540 eða stafrófsröð byggt á annan. 313 00:15:27,540 --> 00:15:30,610 >> Aftur, hvar og ORDER BY eru valfrjáls. 314 00:15:30,610 --> 00:15:32,681 En þeir líklega vera useful-- sérstaklega 315 00:15:32,681 --> 00:15:34,680 HVAR verður gagnlegt að þrengja niður svo þú ert ekki 316 00:15:34,680 --> 00:15:37,460 fá allt gagnasafn aftur og að vinna það, þú færð bara 317 00:15:37,460 --> 00:15:39,300 stykki af því sem þér þykir vænt um. 318 00:15:39,300 --> 00:15:44,932 Svo til dæmis, ég gæti langað til að velja Kennitölu og fullname frá notendum. 319 00:15:44,932 --> 00:15:46,140 Svo hvað gæti þetta líta út? 320 00:15:46,140 --> 00:15:48,270 Svo er hér notandi mitt borð. 321 00:15:48,270 --> 00:15:51,080 Ég vil velja idnum og fullname frá notendum. 322 00:15:51,080 --> 00:15:52,300 Hvað er ég að fara að fá? 323 00:15:52,300 --> 00:15:53,580 Ég ætla að fá þetta. 324 00:15:53,580 --> 00:15:56,930 Ég vissi ekki að þrengja það niður, svo ég er fá kennitölu fyrir hverri umf 325 00:15:56,930 --> 00:16:00,850 og ég er að fá fullt nafn frá hverri umf. 326 00:16:00,850 --> 00:16:02,210 >> OK. 327 00:16:02,210 --> 00:16:05,640 Hvað ef ég vil velja lykilorð frá notendum WHERE-- svo nú 328 00:16:05,640 --> 00:16:10,370 Ég ætla að bæta ástandi, a predicate-- þar idnum er minna en 12. 329 00:16:10,370 --> 00:16:13,660 Svo hér gagnasafn minn aftur, notendur mitt borð efst. 330 00:16:13,660 --> 00:16:17,030 Hvað er ég að fara að fá ef ég vil velja þær upplýsingar, lykilorð, 331 00:16:17,030 --> 00:16:21,550 þar ID notandi eða idnum er minna en 12? 332 00:16:21,550 --> 00:16:24,910 Ég ætla að fá þetta upplýsingar til baka, ekki satt? 333 00:16:24,910 --> 00:16:29,170 Það gerist að idnum er 10 minna, en 12, kennitölu 11 minna en 12. 334 00:16:29,170 --> 00:16:32,160 Ég fæ lykilorðið fyrir þá raðir. 335 00:16:32,160 --> 00:16:33,914 Það er það sem ég bað um. 336 00:16:33,914 --> 00:16:34,580 Hvað um þetta? 337 00:16:34,580 --> 00:16:39,170 Hvað ef ég vil velja stjörnuna á mamma borð þar notendanafn jafngildir Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, veldu stjarna er sérstakt konar villtur nafnspjald svokallaða 339 00:16:43,780 --> 00:16:45,670 sem við notum til að fá allt. 340 00:16:45,670 --> 00:16:48,620 Svo þeir eru að segja valið username kommum móður, sem 341 00:16:48,620 --> 00:16:51,060 varð að vera eina tveir dálkar í töflunni, 342 00:16:51,060 --> 00:16:53,260 Ég get bara valið stjörnuna og fá allt 343 00:16:53,260 --> 00:16:55,030 þar sem notandanafn jafngildir Jerry. 344 00:16:55,030 --> 00:16:59,380 Og svo er það það sem ég vildi fá ef ég gerði þessa tilteknu fyrirspurn. 345 00:16:59,380 --> 00:17:01,810 >> Nú, eru gagnagrunnar af því að þeir leyfa 346 00:17:01,810 --> 00:17:06,074 okkur að skipuleggja upplýsingar kannski svolítið betur en vér 347 00:17:06,074 --> 00:17:06,740 gæti annars. 348 00:17:06,740 --> 00:17:10,240 Við gerum ekki endilega að geyma öll mikilvæg stykki af upplýsingar 349 00:17:10,240 --> 00:17:12,230 um notanda í sömu töflu. 350 00:17:12,230 --> 00:17:13,730 Við höfðum tvær töflur þar. 351 00:17:13,730 --> 00:17:15,734 >> Við þurfum að geyma Nafnið allir er móður, 352 00:17:15,734 --> 00:17:18,900 og kannski við höfum ekki almannatryggingar númer höfum við dagsetningu þeirra fæðingu. 353 00:17:18,900 --> 00:17:21,819 Það þýðir ekki alltaf að þurfa að vera í sömu töflu. 354 00:17:21,819 --> 00:17:25,339 Svo lengi sem við getum skilgreint tengsl milli tables-- 355 00:17:25,339 --> 00:17:28,440 og það er þar sem það Vensla Gagnagrunnur tíma konar kemur 356 00:17:28,440 --> 00:17:32,130 í play-- svo lengi sem við getum skilgreint tengsl milli borðum, 357 00:17:32,130 --> 00:17:35,545 við getum konar compartmentalize eða óhlutbundin hlutir vegi, 358 00:17:35,545 --> 00:17:37,670 þar sem við höfum aðeins mjög mikilvægar upplýsingar 359 00:17:37,670 --> 00:17:39,270 okkur er annt um í töflunni notandans. 360 00:17:39,270 --> 00:17:43,220 Og þá höfum við viðbótarþjónustu upplýsingar eða auka upplýsingar í öðrum töflum 361 00:17:43,220 --> 00:17:48,260 að við getum tengst aftur á notendur borð á ákveðinn hátt. 362 00:17:48,260 --> 00:17:52,200 >> Svo hér höfum við þessar tvær töflur, en það er sambandið milli þeirra, 363 00:17:52,200 --> 00:17:53,010 ekki satt? 364 00:17:53,010 --> 00:17:55,070 Það virðist eins og notandanafn gæti verið eitthvað 365 00:17:55,070 --> 00:17:59,909 sem er til í sameiginlegt milli Þessar tvær mismunandi töflur. 366 00:17:59,909 --> 00:18:01,700 Svo hvað ef við höfum nú aðstæður þar sem við 367 00:18:01,700 --> 00:18:06,046 vilt fá fullt nafn notanda frá Borð notanda, og móðir þeirra er 368 00:18:06,046 --> 00:18:07,170 nafn frá móður borðinu? 369 00:18:07,170 --> 00:18:10,960 Við höfum ekki leið til að fá það sem það stendur, ekki satt? 370 00:18:10,960 --> 00:18:17,790 Það er engin ein tafla sem inniheldur bæði fullt nafn og nafn móður. 371 00:18:17,790 --> 00:18:20,400 Við höfum ekki þessi valkostur frá því sem við höfum séð hingað til. 372 00:18:20,400 --> 00:18:22,950 >> Og svo við verðum að kynna hugmyndin um a JOIN. 373 00:18:22,950 --> 00:18:24,857 Og tengir eru sennilega mest complex-- 374 00:18:24,857 --> 00:18:27,940 það er í raun mest flókin aðgerð við erum að fara að tala um í myndbandinu. 375 00:18:27,940 --> 00:18:30,040 Þeir eru svolítið flókið, en þegar þú fá the hanga af það, 376 00:18:30,040 --> 00:18:31,248 þeir eru í raun ekki svo slæmt. 377 00:18:31,248 --> 00:18:32,820 Það er bara sérstakt tilfelli af a velja. 378 00:18:32,820 --> 00:18:37,120 Við erum að fara að velja safn af dálkum úr töflu þátttakendurnir 379 00:18:37,120 --> 00:18:40,650 í öðru borði á einhverjum umsögnina. 380 00:18:40,650 --> 00:18:45,340 >> Í þessu tilviki, að hugsa um það eins og this-- Taflan einn er einn hring hérna, 381 00:18:45,340 --> 00:18:47,530 borð tveimur er annar hringurinn hérna. 382 00:18:47,530 --> 00:18:49,410 Og sú umsögn hluti í miðju, það er 383 00:18:49,410 --> 00:18:51,701 tegund af eins og ef þú heldur að um sem Vennmynd, hvað 384 00:18:51,701 --> 00:18:52,670 þeir hafa sameiginlegt? 385 00:18:52,670 --> 00:18:55,960 Við viljum tengja þessar tvær töflur miðað við það sem þeir hafa sameiginlegt 386 00:18:55,960 --> 00:19:01,230 og búa til þessa tilgátu töflu sem er samruni tveggja saman. 387 00:19:01,230 --> 00:19:03,480 Þannig að við munum sjá þetta í dæmi og kannski sem mun hjálpa 388 00:19:03,480 --> 00:19:04,521 hreinsa það upp smá. 389 00:19:04,521 --> 00:19:09,260 Svo kannski þú vilt velja user.fullname og moms.mother 390 00:19:09,260 --> 00:19:13,220 frá notendum liðs í mamma borð í hverri stöðu 391 00:19:13,220 --> 00:19:16,790 þar sem notandanafn dálk er sú sama á milli þeirra. 392 00:19:16,790 --> 00:19:19,240 Og þetta er ný Setningafræði hér, þennan notanda. 393 00:19:19,240 --> 00:19:20,460 og mamma .. 394 00:19:20,460 --> 00:19:26,697 Ef ég er að gera margar töflur saman, get ég tilgreint borð. 395 00:19:26,697 --> 00:19:29,530 Ég get greina, einkum um sem á á mjög botn þar. 396 00:19:29,530 --> 00:19:33,220 Ég get greina notandanafn dálki á notenda töflu 397 00:19:33,220 --> 00:19:36,010 frá notendanafni dálki mamma borð, sem eru otherwise-- 398 00:19:36,010 --> 00:19:38,070 ef við sögðum bara notandanafn jafngildir notandanafn, sem gerir í raun ekki 399 00:19:38,070 --> 00:19:38,970 meina neitt. 400 00:19:38,970 --> 00:19:41,440 Við viljum gera það þar sem þeir passa. 401 00:19:41,440 --> 00:19:46,080 >> Þannig að ég get tilgreina borðið og dálk nafn í tilfelli af aðstæðum 402 00:19:46,080 --> 00:19:48,370 þar sem það væri óljóst hvað ég er að tala um. 403 00:19:48,370 --> 00:19:51,880 Svo það er allt sem ég er að gera það er að ég er segja þennan dálk frá þessari töflu, 404 00:19:51,880 --> 00:19:54,020 og að vera mjög skýr. 405 00:19:54,020 --> 00:19:56,810 Svo aftur, ég er að velja fullt nafn og nafn móður 406 00:19:56,810 --> 00:20:00,950 frá notenda töflu tengd saman með moms borð í hverri stöðu 407 00:20:00,950 --> 00:20:05,960 þar sem þeir deila því column-- þeir deila því notandanafn hugmynd. 408 00:20:05,960 --> 00:20:08,580 >> Svo hér eru töflur sem við höfðum áður. 409 00:20:08,580 --> 00:20:12,210 Þetta er ástand okkar gagnagrunnur eins og hún er núna. 410 00:20:12,210 --> 00:20:16,390 Upplýsingarnar sem við erum útdráttur er þetta til að byrja með. 411 00:20:16,390 --> 00:20:19,820 Þetta er ný borð við erum að fara til að búa til að sameina þessar saman. 412 00:20:19,820 --> 00:20:23,585 Og eftir að við erum ekki að leggja áherslu Róður Newman í töflunni notandans, 413 00:20:23,585 --> 00:20:25,960 og við erum ekki að leggja áherslu Róður Kramer í mömmum töflunni 414 00:20:25,960 --> 00:20:31,250 vegna þess að hvorki er til staðar í bæði sets-- í báðum borðum. 415 00:20:31,250 --> 00:20:36,260 >> Einu upplýsingarnar sem er sameiginlegt milli þeirra er Jerry er í báðum töflum 416 00:20:36,260 --> 00:20:39,100 og gcostanza er í báðum borðum. 417 00:20:39,100 --> 00:20:42,620 Og svo þegar við gerum SQL JOIN, hvað við get-- og við að gera í raun fá þetta. 418 00:20:42,620 --> 00:20:44,830 Það er tegund af tímabundið breytu. 419 00:20:44,830 --> 00:20:47,330 Það er eins og ímyndaður Samruni tveimur borðum. 420 00:20:47,330 --> 00:20:49,930 Við fáum í raun eitthvað eins og þetta, þar sem 421 00:20:49,930 --> 00:20:54,730 við höfum sameinað saman borðum á upplýsingar sem þeir hafa sameiginlegt. 422 00:20:54,730 --> 00:20:58,334 >> Svo eftir að users.username og moms.username dálki, 423 00:20:58,334 --> 00:20:59,250 það er nákvæmlega sú sama. 424 00:20:59,250 --> 00:21:01,820 Það var upplýsingar sem var í samræmi frá notendum 425 00:21:01,820 --> 00:21:02,890 borð og mamma borð. 426 00:21:02,890 --> 00:21:04,270 Og svo við sameinaði saman. 427 00:21:04,270 --> 00:21:06,919 Við hent Kramer því að hann var ekki til í notenda töflu, 428 00:21:06,919 --> 00:21:09,710 og við hent Newman, því Hann var ekki til í moms töflunni. 429 00:21:09,710 --> 00:21:16,450 Þannig að þetta er ímyndaður samruna nota Join rekstur SELECT. 430 00:21:16,450 --> 00:21:21,250 >> Og þá vorum við að leita að því fullt nafn notanda og móðir notandans, 431 00:21:21,250 --> 00:21:24,999 og svo er þetta upplýsingar sem við myndum fá frá heildar fyrirspurn 432 00:21:24,999 --> 00:21:26,040 að við gert með því að velja. 433 00:21:26,040 --> 00:21:28,873 Þannig að við byrjuðu borðum saman og við dregin þá tvo dálka, 434 00:21:28,873 --> 00:21:31,610 og svo er það sem við myndum fá. 435 00:21:31,610 --> 00:21:33,370 En SQL tengir konar flókið. 436 00:21:33,370 --> 00:21:36,770 Þú verður að öllum líkindum ekki gera þeim of mikið, en bara að hafa einhverja hugmynd af beinagrind 437 00:21:36,770 --> 00:21:41,992 sem þú getur notað til að sameina tvö töflur saman ef þú þarf að. 438 00:21:41,992 --> 00:21:43,700 Síðustu tveir eru aðeins einfaldara ég lofa. 439 00:21:43,700 --> 00:21:48,040 Svo uppfæra, getum við notað UPDATE til að breyta upplýsingum í töflunni. 440 00:21:48,040 --> 00:21:53,880 Almenna snið er UPDATE sumir borð, setja nokkrar dálk til nokkur gildi 441 00:21:53,880 --> 00:21:55,540 Þar sem sumir eiginleikann er fullnægt. 442 00:21:55,540 --> 00:21:57,850 Svo til dæmis gætum við viljum að uppfæra notendur borð 443 00:21:57,850 --> 00:22:04,400 og stilla lykilorð til Yada BLA, þar sem kennitala er 10. 444 00:22:04,400 --> 00:22:06,400 >> Þannig að í þessu tilfelli, við erum uppfæra notendur borð. 445 00:22:06,400 --> 00:22:08,275 The kennitala er 10 fyrir sem fyrst röð þar, 446 00:22:08,275 --> 00:22:10,690 og við viljum að uppfæra lykilorð til blaðrið. 447 00:22:10,690 --> 00:22:12,170 Og svo er það hvað myndi gerast. 448 00:22:12,170 --> 00:22:13,628 Það er nokkuð augljóst, ekki satt? 449 00:22:13,628 --> 00:22:17,990 Það er bara mjög einfalt breyting að borðinu. 450 00:22:17,990 --> 00:22:22,250 >> DELETE er rekstur sem við notuðum til að fjarlægja upplýsingar úr töflunni. 451 00:22:22,250 --> 00:22:24,817 DELETE FROM borð þar sumir eiginleikann er fullnægt. 452 00:22:24,817 --> 00:22:26,900 Við viljum eyða frá notendur borð til dæmis 453 00:22:26,900 --> 00:22:28,254 þar sem notendanafn er Newman. 454 00:22:28,254 --> 00:22:31,420 Þú getur sennilega giska á hvað er að fara að gerast hér eftir að við framkvæma að SQL 455 00:22:31,420 --> 00:22:35,790 fyrirspurn, Newman er farinn frá borðinu. 456 00:22:35,790 --> 00:22:40,460 >> Svo öll þessi starfsemi, eins og ég hef sagt, eru mjög auðvelt að gera í phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Það er mjög notendavænt viðmót. 458 00:22:43,020 --> 00:22:45,930 En það hjartarskinn þurfa handafl. 459 00:22:45,930 --> 00:22:47,840 Við viljum ekki að ráða handafl. 460 00:22:47,840 --> 00:22:51,280 Við viljum áætlanir okkar til gera þetta fyrir okkur, ekki satt? 461 00:22:51,280 --> 00:22:53,190 Þannig að við might vilja til að gera þetta kerfisbundið. 462 00:22:53,190 --> 00:22:56,410 Við viljum að fella SQL og hafa eitthvað annað til að gera þetta fyrir okkur. 463 00:22:56,410 --> 00:23:02,710 >> En hvað höfum við séð að leyfa okkur að kerfisbundið gera eitthvað? 464 00:23:02,710 --> 00:23:03,690 Við höfum séð PHP, ekki satt? 465 00:23:03,690 --> 00:23:05,760 Það kynnir sumir kraftur í áætlunum okkar. 466 00:23:05,760 --> 00:23:10,430 Og svo sem betur fer, SQL og PHP spila mjög vel saman. 467 00:23:10,430 --> 00:23:13,230 Það er aðgerð í PHP kallast fyrirspurn, sem hægt er að nota. 468 00:23:13,230 --> 00:23:15,870 Og þú getur framhjá sem breytu eða rök 469 00:23:15,870 --> 00:23:19,210 fyrirspurn SQL fyrirspurn sem þú vildi eins og til að framkvæma. 470 00:23:19,210 --> 00:23:23,250 Og PHP mun gera það fyrir þína hönd. 471 00:23:23,250 --> 00:23:25,564 >> Svo eftir að þú hefur tengt við gagnagrunninn með PHP, 472 00:23:25,564 --> 00:23:26,980 það er tvær prófkjörum þú gerir þetta. 473 00:23:26,980 --> 00:23:29,230 Það er eitthvað sem kallast MySQLi og eitthvað sem kallast PDO. 474 00:23:29,230 --> 00:23:31,063 Við munum ekki fara inn a gríðarstór upphæð smáatriði þar. 475 00:23:31,063 --> 00:23:32,957 Í CS50 við notum PDO. 476 00:23:32,957 --> 00:23:34,790 Eftir að þú hefur tengt við gagnagrunninn, þú 477 00:23:34,790 --> 00:23:40,980 getur þá gera fyrirspurnir gagnagrunninn við brottför fyrirspurnir sem rök 478 00:23:40,980 --> 00:23:42,730 að PHP virka. 479 00:23:42,730 --> 00:23:46,460 Og þegar þú gerir það, geyma þú að niðurstaða sett í tengin array. 480 00:23:46,460 --> 00:23:50,290 >> Og við vitum hvernig á að vinna með tengin fylki í PHP. 481 00:23:50,290 --> 00:23:52,630 Svo ég gæti sagt eitthvað eins this-- $ results-- 482 00:23:52,630 --> 00:23:55,470 þetta er í PHP-- jafngildir fyrirspurn. 483 00:23:55,470 --> 00:23:57,660 Og þá innan í fyrirspurn virka sem rök 484 00:23:57,660 --> 00:24:00,130 að ég er liggur við fyrirspurn sem lítur út eins SQL. 485 00:24:00,130 --> 00:24:01,160 Og í raun það er SQL. 486 00:24:01,160 --> 00:24:05,700 Það er fyrirspurn band sem ég myndi eins og til að framkvæma á gagnagrunninum mínum. 487 00:24:05,700 --> 00:24:09,250 >> Og svo í rauðu, þetta er PHP. 488 00:24:09,250 --> 00:24:11,890 Þetta er SQL sem ég samþætta inn í PHP með því að gera 489 00:24:11,890 --> 00:24:15,020 það rök við fyrirspurn virka. 490 00:24:15,020 --> 00:24:19,640 Ég vil velja fullname frá notendur þar kennitala jafngildir 10. 491 00:24:19,640 --> 00:24:22,560 Og þá kannski eftir að ég hef gert það, Ég gæti sagt eitthvað eins og þetta. 492 00:24:22,560 --> 00:24:25,550 Ég vil að prenta út skilaboð Takk fyrir að skrá þig inn. 493 00:24:25,550 --> 00:24:32,530 >> Og ég vil það interpolate-- Ég vil að interpolate $ niðurstöður fullname. 494 00:24:32,530 --> 00:24:36,280 Og svo er það hvernig ég vinn með sem tengin array sem ég fékk til baka. 495 00:24:36,280 --> 00:24:39,730 $ Niðurstöður fullname myndi grundvallaratriðum endað prenta út, 496 00:24:39,730 --> 00:24:42,870 takk fyrir að skrá þig inn, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Það var fullt nafn þar idnum jafngildir 10. 498 00:24:46,570 --> 00:24:48,850 >> Og svo allt sem ég er að gera er ég now-- ég geymt 499 00:24:48,850 --> 00:24:52,780 fyrirspurn mín, niðurstöður fyrirspurn minni og úrslit í tengin array, 500 00:24:52,780 --> 00:24:56,330 og fullname er nafn dálkurinn ég var að fá fyrir. 501 00:24:56,330 --> 00:25:01,010 Svo er það lykillinn minn í niðurstöðum tengin array sem ég vil. 502 00:25:01,010 --> 00:25:05,930 Svo Takk fyrir að skrá þig inn, $ niðurstöður, fullname mun prenta út, mun standa 503 00:25:05,930 --> 00:25:08,654 rétt á milli þessara hrokkið axlabönd, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 Og ég eins og að prenta út skilaboð Takk fyrir að skrá þig inn Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Nú, sennilega við viljum ekki að erfitt kóða hlutir eins að í, ekki satt? 506 00:25:16,652 --> 00:25:19,860 Við might vilja til að gera eitthvað eins og prenta F, þar sem við getum komið í stað og kannski 507 00:25:19,860 --> 00:25:22,443 safna mismunandi upplýsingar, eða kannski hafa fyrirspurn ferli 508 00:25:22,443 --> 00:25:23,370 mismunandi upplýsingar. 509 00:25:23,370 --> 00:25:27,920 Og svo fyrirspurn, fyrirspurn virka hefur Þessi hugmynd um tegund af punktbreytingar 510 00:25:27,920 --> 00:25:32,310 mjög svipuð að prenta F prósent s og prósent c, er spurningarmerki. 511 00:25:32,310 --> 00:25:34,290 >> Og við getum notað spurningu markar mjög hliðstæðri 512 00:25:34,290 --> 00:25:38,400 að prenta f að skipta breytum. 513 00:25:38,400 --> 00:25:44,120 Svo kannski notandi skráður inn fyrr, og þú vistaðir notandi kennitölu 514 00:25:44,120 --> 00:25:51,710 í $ _session PHP frábær alþjóðlegt helstu ID. 515 00:25:51,710 --> 00:25:55,947 Svo kannski eftir að þeir innskráður, þú stillir _session $ ID jafngildir 10, 516 00:25:55,947 --> 00:25:58,280 framreikna frá dæminu við sáum bara annað síðan. 517 00:25:58,280 --> 00:26:01,960 >> Og svo þegar við afgreiðum í raun þetta fyrirspurn niðurstöður núna, 518 00:26:01,960 --> 00:26:08,440 það myndi stinga í 10, eða hvað the $ _session ID gildi. 519 00:26:08,440 --> 00:26:10,790 Og svo að leyfa okkur að vera aðeins meira dynamic. 520 00:26:10,790 --> 00:26:12,699 Við erum ekki erfitt erfðaskrá hluti í lengur. 521 00:26:12,699 --> 00:26:14,490 Við erum að vista upplýsingar einhvers staðar og þá 522 00:26:14,490 --> 00:26:18,924 við getum notað þær upplýsingar aftur til konar alhæfa hvað við viljum gera, 523 00:26:18,924 --> 00:26:21,090 og bara stinga í og ​​breyta hegðun síðunni okkar 524 00:26:21,090 --> 00:26:26,489 miðað við það sem kennitölu notandans reyndar er eftir að þeir hafa innskráður. 525 00:26:26,489 --> 00:26:28,530 Það er líka hægt, þó, að niðurstöðurnar sett 526 00:26:28,530 --> 00:26:30,840 gæti samanstanda af mörgum röðum. 527 00:26:30,840 --> 00:26:33,990 Í því tilviki, þú þarft fjölbreytta arrays-- 528 00:26:33,990 --> 00:26:35,334 fjölbreytta tengin fylki. 529 00:26:35,334 --> 00:26:37,000 Og þú þarft bara að árétta í gegnum það. 530 00:26:37,000 --> 00:26:41,950 Og við vitum hvernig á að árétta gegnum array í PHP, ekki satt? 531 00:26:41,950 --> 00:26:45,600 Svo hér er líklega flókið hlutur sem við höfum séð hingað til. 532 00:26:45,600 --> 00:26:49,640 Það samlaga raun Þrjú tungumál saman. 533 00:26:49,640 --> 00:26:52,920 >> Hér í rauðu, þetta er einhver HTML. 534 00:26:52,920 --> 00:26:56,872 Ég er greinilega starting-- þetta er bút af einhverju HTML sem ég hef. 535 00:26:56,872 --> 00:26:59,580 Ég er að byrja nýja málsgrein sem segir mömmum af Seinfeld TV. 536 00:26:59,580 --> 00:27:02,350 Og þá strax í kjölfarið Ég er farin borð. 537 00:27:02,350 --> 00:27:06,060 Og þá eftir að ég hafa sumir PHP, ekki satt? 538 00:27:06,060 --> 00:27:08,229 Ég hef allan PHP kóða í það. 539 00:27:08,229 --> 00:27:09,645 Ég greinilega að fara að gera fyrirspurn. 540 00:27:09,645 --> 00:27:14,180 Og til að gera fyrirspurn, ég ætla að vera með SELECT mæður FROM mömmum. 541 00:27:14,180 --> 00:27:15,970 >> Þannig að þetta er getting-- þetta er SQL. 542 00:27:15,970 --> 00:27:17,300 Svo bláa er SQL. 543 00:27:17,300 --> 00:27:19,680 Rauði við sáum annað síðan var HTML. 544 00:27:19,680 --> 00:27:21,360 Og græna hér er PHP. 545 00:27:21,360 --> 00:27:23,400 Þannig að ég ætla að gera fyrirspurn að gagnagrunninum mínum, ég er 546 00:27:23,400 --> 00:27:26,040 að velja allt í mæður í moms töflunni. 547 00:27:26,040 --> 00:27:30,710 Ekki bara minnka það niður í lagi róður, ég ætla að biðja fyrir þeim öllum. 548 00:27:30,710 --> 00:27:33,290 >> Þá er ég að athuga hvort niðurstaðan er ekki jafngildir jafngildir rangar. 549 00:27:33,290 --> 00:27:37,410 Þetta er bara mín leið til að stöðva svona af ef niðurstöður eru ekki jafn null, 550 00:27:37,410 --> 00:27:40,260 að við myndum sjá c td. 551 00:27:40,260 --> 00:27:44,000 Í grundvallaratriðum er þetta bara að skoða að gera viss um að það fékk reyndar gögn aftur. 552 00:27:44,000 --> 00:27:47,041 Vegna þess að ég vil ekki að hefja prentun út gögn ef ég gerði ekki fá nein gögn. 553 00:27:47,041 --> 00:27:50,690 Þá fyrir hverja niðurstöður sem leiðir til þess að framhandleggur setningafræði úr PHP, allt sem ég er að gera 554 00:27:50,690 --> 00:27:53,399 er að prenta út $ útkoma mæður. 555 00:27:53,399 --> 00:27:55,940 Og svo ég ætla að fá að setja af öllum mæðrum each-- 556 00:27:55,940 --> 00:27:59,980 það er fylki af tengin arrays-- og ég prenta út 557 00:27:59,980 --> 00:28:03,649 hver sem eigin röð þess á borð. 558 00:28:03,649 --> 00:28:05,690 Og það er í raun frekar mikill allur there er til það. 559 00:28:05,690 --> 00:28:07,750 Ég veit að það er lítið bita gerast hér 560 00:28:07,750 --> 00:28:13,210 í þessu síðasta dæmi með fylki af arrays-- fylki af tengin fylki. 561 00:28:13,210 --> 00:28:17,340 En það raunverulega hjartarskinn bara sjóða niður í SQL til að gera fyrirspurn, 562 00:28:17,340 --> 00:28:21,102 yfirleitt velja eftir að við höfum nú þegar setja upplýsingar í töflunni, 563 00:28:21,102 --> 00:28:22,310 og þá bara draga það út. 564 00:28:22,310 --> 00:28:25,710 >> Og þetta er að við myndi draga það út í þessu tiltekna tilfelli. 565 00:28:25,710 --> 00:28:31,120 Við viljum vinna alla einstaklinga mæður frá moms borðið. 566 00:28:31,120 --> 00:28:35,970 Við fengum allt sett af þeim, og við langar að iterate gegnum og prenta út 567 00:28:35,970 --> 00:28:37,630 hver og einn. 568 00:28:37,630 --> 00:28:40,510 Svo aftur, þetta er sennilega flókinn dæmi 569 00:28:40,510 --> 00:28:44,510 við höfum séð af því að við erum að blanda þrjú mismunandi tungumál saman, ekki satt? 570 00:28:44,510 --> 00:28:50,100 >> Aftur höfum við HTML hér í rauðu, blandað með nokkrum SQL hér í bláum, 571 00:28:50,100 --> 00:28:52,049 blandað með nokkrum PHP í grænu. 572 00:28:52,049 --> 00:28:53,840 En allir þessir spila vel saman, það er 573 00:28:53,840 --> 00:28:57,060 bara spurning um að þróa góða siði svo að þú getur fengið 574 00:28:57,060 --> 00:28:58,780 þeim að vinna saman eins og þú vilt. 575 00:28:58,780 --> 00:29:03,790 Og eina leiðin til að virkilega gera það er að æfa, æfa, æfa. 576 00:29:03,790 --> 00:29:06,740 Ég er Doug Lloyd, þetta er CS50. 577 00:29:06,740 --> 00:29:08,647