1 00:00:00,000 --> 00:00:03,493 >> [MIZIK jwe] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 Doug Lloyd: Nan videyo nou an sou sijè devlopman sou sit wèb ★ 4 00:00:07,100 --> 00:00:10,560 nou te mansyone konsèp nan yon baz done yon fwa kèk, dwa? 5 00:00:10,560 --> 00:00:12,700 Se konsa, yon baz done ou se pwobableman abitye avèk soti nan 6 00:00:12,700 --> 00:00:15,780 di lè l sèvi avèk Microsoft Excel oswa Google tableur. 7 00:00:15,780 --> 00:00:20,650 Li nan reyèlman jis yon òganize mete nan tab, ranje, ak kolòn. 8 00:00:20,650 --> 00:00:23,140 >> Apre sa, yon baz done se kote magazen sit entènèt nou an 9 00:00:23,140 --> 00:00:26,760 enfòmasyon ki enpòtan pou sit entènèt nou an yo travay byen. 10 00:00:26,760 --> 00:00:30,150 Yon fwa ankò, yon egzanp vrèman komen isit la se estoke usernames ak modpas 11 00:00:30,150 --> 00:00:32,824 nan yon baz done, ki Se konsa, lè yon itilizatè journaux nan sit entènèt nou an, 12 00:00:32,824 --> 00:00:36,690 ka baz done a dwe kontexte yo wè si ki itilizatè ki egziste nan baz done a. 13 00:00:36,690 --> 00:00:39,260 Men, si yo ye a, tcheke ki modpas yo kòrèk. 14 00:00:39,260 --> 00:00:43,420 Men, si modpas yo ki kòrèk, lè sa a nou ka ba yo tou sa paj 15 00:00:43,420 --> 00:00:45,370 yo ap mande. 16 00:00:45,370 --> 00:00:48,590 >> Se konsa, ou ap pwobableman, ankò, yo konnen yo ak lide sa a soti nan Excel oswa Google 17 00:00:48,590 --> 00:00:49,430 Tableur. 18 00:00:49,430 --> 00:00:52,980 Nou gen baz done, tab, ranje, ak kolòn. 19 00:00:52,980 --> 00:00:56,450 Epi sa a, reyèlman sòt nan seri a fondamantal 20 00:00:56,450 --> 00:00:58,470 a pann yerarchize isit la. 21 00:00:58,470 --> 00:00:59,800 Se konsa, isit la nan yon calcul Excel. 22 00:00:59,800 --> 00:01:02,640 Men, si ou te janm louvri sa a oswa yon lòt pwogram menm jan an 23 00:01:02,640 --> 00:01:06,780 ou konnen ke sa yo isit la yo se rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Sa yo se kolòn. 25 00:01:08,760 --> 00:01:11,790 >> Petèt desann isit la, menm si ou ka pa sèvi ak karakteristik sa a fò anpil much-- 26 00:01:11,790 --> 00:01:15,370 Mwen pral rale in-- nou gen ide sa a nan yon fèy. 27 00:01:15,370 --> 00:01:17,930 Se konsa, petèt fèy papye sa yo, si Mwen altène retounen ak lide, 28 00:01:17,930 --> 00:01:21,600 se tab diferan ki egziste nan baz done m 'yo. 29 00:01:21,600 --> 00:01:25,210 Men, si nou kontinye egzanp nan tout wout la, non an nan sa a baz done 30 00:01:25,210 --> 00:01:26,940 se Liv 1. 31 00:01:26,940 --> 00:01:28,710 Petèt mwen gen Liv 2 ak liv 3. 32 00:01:28,710 --> 00:01:33,270 Se konsa, chak dosye Excel se yon baz done, chak fèy se yon tab, 33 00:01:33,270 --> 00:01:39,530 ak andedan nan chak tab mwen gen ide sa a nan ranje ak kolòn. 34 00:01:39,530 --> 00:01:41,900 >> Se konsa, ki jan mwen travay ak baz done sa a? 35 00:01:41,900 --> 00:01:43,630 Kouman pou mwen jwenn enfòmasyon ki soti nan li? 36 00:01:43,630 --> 00:01:47,540 Oke gen nan yon lang yo rele SQL ki mwen anjeneral jis rele Sequel-- 37 00:01:47,540 --> 00:01:50,010 epi li vle di pou la Estriktire rekèt Lang. 38 00:01:50,010 --> 00:01:52,981 Epi li se yon lang programmation, men li la yon pwogram san patipri limite 39 00:01:52,981 --> 00:01:53,480 lang. 40 00:01:53,480 --> 00:01:56,407 Li pa byen tankou lòt moun ke nou te travay avèk yo. 41 00:01:56,407 --> 00:01:58,240 Men, bi pou yo sa a lang programmation 42 00:01:58,240 --> 00:02:01,570 se sijè rechèch yon baz done, nan mande enfòmasyon nan yon baz done, 43 00:02:01,570 --> 00:02:04,480 jwenn enfòmasyon nan yon baz done, ak sou sa. 44 00:02:04,480 --> 00:02:08,449 >> Nou menm tou nou, nan CS50-- ak li nan yon trè platfòm ki komen yo, sa yo rele miskl. 45 00:02:08,449 --> 00:02:10,600 Sa a ki sa nou itilize nan kou a. 46 00:02:10,600 --> 00:02:12,880 Se yon sous louvri platfòm ki etabli 47 00:02:12,880 --> 00:02:16,732 yon sa yo rele relasyon database-- yon baz done, efektivman. 48 00:02:16,732 --> 00:02:18,440 Nou pa bezwen jwenn an twòp detay 49 00:02:18,440 --> 00:02:20,930 sou sa ki yon baz done relasyon se. 50 00:02:20,930 --> 00:02:24,650 Men, lang nan SQL se trè abil nan travay 51 00:02:24,650 --> 00:02:29,760 ak miskl ak lòt menm jan an diferan estil pou baz done relasyon. 52 00:02:29,760 --> 00:02:34,010 >> Ak enstalasyon anpil nan Miskl vini ak yon bagay 53 00:02:34,010 --> 00:02:37,760 rele fpmyadmen, ki se yon itilizatè grafik 54 00:02:37,760 --> 00:02:40,970 interface-- yon GUI-- ki fè li yon ti kras pi plis 55 00:02:40,970 --> 00:02:44,410 itilizatè zanmitay al touye queries baz done, 56 00:02:44,410 --> 00:02:48,980 paske baz done yo pa jis itilize pa pwogramasyon avanse, dwa? 57 00:02:48,980 --> 00:02:51,510 Pafwa gen sa yo ti biznis yo, 58 00:02:51,510 --> 00:02:53,900 epi yo pa kapab peye anboche yon ekip nan pwogramasyon, 59 00:02:53,900 --> 00:02:56,700 men yo toujou bezwen nan magazen enfòmasyon ki nan yon baz done. 60 00:02:56,700 --> 00:02:59,300 >> Yon bagay tankou fpmyadmen fè li trè fasil pou yon moun 61 00:02:59,300 --> 00:03:03,630 ki moun ki nan pa janm pwograme anvan yo ranmase ak vin abitye ak ki jan 62 00:03:03,630 --> 00:03:07,710 yo travay avèk yon baz done. 63 00:03:07,710 --> 00:03:11,800 Pwoblèm lan se, fpmyadmen, pandan y ap li nan yon zouti kokenn pou aprantisaj 64 00:03:11,800 --> 00:03:14,850 sou baz done, li se manyèl. 65 00:03:14,850 --> 00:03:18,050 W ap ale nan gen yo ale nan li epi li egzekite kòmandman ak kalite 66 00:03:18,050 --> 00:03:19,910 bagay sa yo nan manyèlman. 67 00:03:19,910 --> 00:03:23,160 >> E kòm nou konnen soti nan nou an egzanp sou pwogram entènèt PHP, 68 00:03:23,160 --> 00:03:26,550 gen a manuelman fè bagay sa yo sou sit entènèt nou an, 69 00:03:26,550 --> 00:03:30,970 si nou vle yon dinamik, aktif reponn sit entènèt, petèt pa apwòch la pi byen. 70 00:03:30,970 --> 00:03:33,980 Nou ta renmen jwenn yon fason yo petèt otomatize sa a yon jan kanmenm. 71 00:03:33,980 --> 00:03:37,864 Apre sa, SQL ap pèmèt nou fè sa. 72 00:03:37,864 --> 00:03:39,780 Se konsa, lè nou ap ale nan kòmanse travay ak SQL, 73 00:03:39,780 --> 00:03:41,220 nou premye bezwen gen yon baz done yo travay avèk. 74 00:03:41,220 --> 00:03:42,510 Kreye yon baz done se yon bagay ou pwobableman 75 00:03:42,510 --> 00:03:45,350 pral fè nan fpmyadmen, paske ou pral sèlman bezwen fè l 'yon fwa, 76 00:03:45,350 --> 00:03:49,690 ak sentaks la pou fè sa se yon anpil plis senp. 77 00:03:49,690 --> 00:03:51,940 Li se yon anpil pi fasil fè li nan yon koòdone itilizatè grafik 78 00:03:51,940 --> 00:03:53,520 pase sezisman li soti kòm yon lòd. 79 00:03:53,520 --> 00:03:55,186 Yo lòd, ki ka jwenn yon ti kras ankonbran. 80 00:03:55,186 --> 00:03:58,889 Menm jan an tou, kreye yon tab kapab jwenn byen yon ti jan ankonbran kòm byen. 81 00:03:58,889 --> 00:04:01,930 Se konsa, bagay sa yo tankou kreye yon baz done ak kreye yon tab, ki w ap 82 00:04:01,930 --> 00:04:06,270 pwobableman sèlman pral fè once-- yon fwa pou chak tab, yon fwa pou chak database-- 83 00:04:06,270 --> 00:04:09,040 li a OK yo fè sa nan yon koòdone grafik. 84 00:04:09,040 --> 00:04:11,570 Nan pwosesis la nan kreye yon tab, ou pral 85 00:04:11,570 --> 00:04:14,840 yo te genyen tou ou presize tout nan la kolòn ki pral nan ki tab. 86 00:04:14,840 --> 00:04:18,149 Ki sa ki sòt de enfòmasyon fè ou vle nan magazen nan tablo a? 87 00:04:18,149 --> 00:04:24,520 Petèt non yon itilizatè a ak dat nesans, modpas, nimewo ID itilizatè, e petèt 88 00:04:24,520 --> 00:04:26,170 vil la ak eta a, dwa? 89 00:04:26,170 --> 00:04:30,080 >> Se pou chak fwa nou vle ajoute yon itilizatè nan baz done a, nou vle jwenn tout sis 90 00:04:30,080 --> 00:04:31,890 nan tout sa yo moso nan enfòmasyon. 91 00:04:31,890 --> 00:04:34,840 Apre sa, nou fè sa lè yo ajoute ranje sou tab la. 92 00:04:34,840 --> 00:04:37,800 Se konsa, nou premye kreye yon baz done, lè sa a nou kreye yon tab. 93 00:04:37,800 --> 00:04:40,100 Kòm yon pati nan kreye pi yon tab, nou yo mande 94 00:04:40,100 --> 00:04:44,280 ou presize chak kolòn ki nou ta renmen nan tablo sa a. 95 00:04:44,280 --> 00:04:47,247 Lè sa a, jan nou kòmanse ajoute enfòmasyon nan baz done a 96 00:04:47,247 --> 00:04:49,580 ak sijè rechèch baz done a pi generally-- pa sèlman pandan l ajoute, 97 00:04:49,580 --> 00:04:51,610 men tout lòt bagay nou do-- nou pral fè fas 98 00:04:51,610 --> 00:04:58,870 ak ranje nan tablo a, ki se youn enfòmasyon itilizatè a soti nan seri a tout antye. 99 00:04:58,870 --> 00:05:03,210 >> Se konsa, chak kolòn SQL se kapab nan kenbe done nan yon kalite done an patikilye. 100 00:05:03,210 --> 00:05:06,560 Se konsa, nou sòt de elimine sa a lide sou kalite done nan PHP, 101 00:05:06,560 --> 00:05:08,747 men yo ap tounen isit la nan SQL. 102 00:05:08,747 --> 00:05:10,080 Apre sa, gen nan yon anpil nan kalite done. 103 00:05:10,080 --> 00:05:13,420 Isit la nan jis 20 nan yo, men li nan pa menm tout nan yo. 104 00:05:13,420 --> 00:05:16,240 Se konsa, nou gen lide tankou INTs-- Integers-- nou pwobableman konnen 105 00:05:16,240 --> 00:05:17,760 ki kolòn sa a ka kenbe nonm antye relatif. 106 00:05:17,760 --> 00:05:21,077 E genyen anpil varyasyon thereon-- SMALLINT, TINYINT, MEDIUMINT, bigen. 107 00:05:21,077 --> 00:05:22,660 Petèt nou pa toujou bezwen kat mòde. 108 00:05:22,660 --> 00:05:26,800 Petèt nou bezwen uit bytes, epi pou nou ka itilize sa yo sou nonm antye relatif varyasyon 109 00:05:26,800 --> 00:05:28,510 yo dwe yon ti jan pi plis espas efikas. 110 00:05:28,510 --> 00:05:31,899 Nou ka fè nimewo desimal, nou kapab fè nimewo pwen k ap flote. 111 00:05:31,899 --> 00:05:32,940 Sa yo se bèl menm jan an. 112 00:05:32,940 --> 00:05:34,773 Gen kèk diferans ki genyen, epi si ou ta 113 00:05:34,773 --> 00:05:37,330 renmen gade moute nan SQL sòt de gid, ou 114 00:05:37,330 --> 00:05:40,670 ka wè sa ki ti tay nan diferans yo ant yo. 115 00:05:40,670 --> 00:05:43,250 >> Petèt nou vle nan magazen enfòmasyon sou dat ak lè. 116 00:05:43,250 --> 00:05:47,047 Petèt nou ap kenbe tras nan lè itilizatè a ansanm sit entènèt nou an, 117 00:05:47,047 --> 00:05:48,880 e konsa petèt nou vle gen yon kolòn sa a, se 118 00:05:48,880 --> 00:05:52,820 yon tan dat oswa yon timestamp ki endike lè itilizatè a aktyèlman 119 00:05:52,820 --> 00:05:54,130 siyen li. 120 00:05:54,130 --> 00:05:56,132 Nou ka fè jeyometri ak linestrings. 121 00:05:56,132 --> 00:05:57,340 Sa a se aktyèlman trè fre. 122 00:05:57,340 --> 00:06:01,410 Nou te kapab kat jeyografik soti yon géographique zòn lè l sèvi avèk 123 00:06:01,410 --> 00:06:05,110 GIS kowòdone trase soti yon zòn nan. 124 00:06:05,110 --> 00:06:08,580 Se konsa, ka aktyèlman magazen ki sòt nan enfòmasyon nan yon kolòn SQL. 125 00:06:08,580 --> 00:06:11,390 >> Tèks se jis tach jeyan nan tèks, petèt. 126 00:06:11,390 --> 00:06:12,840 ENUMs yo se kalite ki enteresan. 127 00:06:12,840 --> 00:06:16,080 Yo aktyèlman egziste nan C. Nou pa fè sa pale de yo paske yo pa ap 128 00:06:16,080 --> 00:06:19,110 fò anpil souvan itilize, omwen CS50. 129 00:06:19,110 --> 00:06:22,680 Men, li la yon done enimere kalite, ki se kapab nan kenbe valè limite. 130 00:06:22,680 --> 00:06:25,940 >> Yon reyèlman bon egzanp isit la ta dwe yo kreye yon anom kote sèt nan 131 00:06:25,940 --> 00:06:29,394 valè posib yo Dimanch, Lendi, Madi, Mèkredi, Jedi, Vandredi, 132 00:06:29,394 --> 00:06:30,060 Samdi, dwa? 133 00:06:30,060 --> 00:06:33,311 Sa Jou kalite done nan Semèn pa egziste, 134 00:06:33,311 --> 00:06:35,310 men nou te kapab kreye yon enimere kalite done sa yo 135 00:06:35,310 --> 00:06:39,400 ke ki kolòn ka sèlman janm kenbe yonn nan sèt valè moun posib. 136 00:06:39,400 --> 00:06:44,300 Nou te enimere tout nan valè yo posib. 137 00:06:44,300 --> 00:06:47,630 >> Lè sa a, nou gen CHAR ak Varchar, ak mwen te koulè sa yo vèt 138 00:06:47,630 --> 00:06:49,505 paske nou ap aktyèlman pral pran yon dezyèm 139 00:06:49,505 --> 00:06:51,950 pale sou diferans ki genyen ant de bagay sa yo. 140 00:06:51,950 --> 00:06:55,780 Se konsa, CHAR, kontrèman ak C kote CHAR te yon karaktè sèl, 141 00:06:55,780 --> 00:07:00,730 nan SQL yon CHAR refere a yon longè fiks fisèl. 142 00:07:00,730 --> 00:07:02,620 Lè nou kreye sa a kolòn, nou aktyèlman 143 00:07:02,620 --> 00:07:05,070 ka presize longè a nan fisèl la. 144 00:07:05,070 --> 00:07:08,080 >> Se konsa, nan egzanp sa a, nou ta ka di CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Sa vle di ke chak eleman nan ki kolòn 146 00:07:11,190 --> 00:07:13,910 pral konpoze de 10 bytes nan enfòmasyon. 147 00:07:13,910 --> 00:07:15,770 Pa plis, pa mwens. 148 00:07:15,770 --> 00:07:21,780 Se konsa, si nou eseye, li mete nan yon 15 ti jan oswa yon eleman 15 pèsonaj 149 00:07:21,780 --> 00:07:25,340 oswa valè nan kolòn sa a, nou ap sèlman jwenn 10 a an premye. 150 00:07:25,340 --> 00:07:27,290 Si nou mete nan de a pèsonaj valè lontan, 151 00:07:27,290 --> 00:07:30,700 nou ap ale nan gen de nan karaktè, ak Lè sa a uit mòde nil. 152 00:07:30,700 --> 00:07:34,990 Nou pa janm pral pi efikas pase sa. 153 00:07:34,990 --> 00:07:37,727 >> Yon varchar se kalite tankou nosyon nou an nan yon fisèl 154 00:07:37,727 --> 00:07:39,560 ke nou ap abitye ak soti nan C oswa soti nan PHP. 155 00:07:39,560 --> 00:07:40,830 Li se yon longè varyab fisèl. 156 00:07:40,830 --> 00:07:42,560 Men, lè ou kreye kolòn sa a, ou jis 157 00:07:42,560 --> 00:07:44,860 presize maksimòm longè yo posib. 158 00:07:44,860 --> 00:07:49,065 Se konsa, petèt 99, oswa souvan 255. 159 00:07:49,065 --> 00:07:50,440 Ki ta ka longè a maksimòm. 160 00:07:50,440 --> 00:07:52,890 Se konsa, si nou te estoke 15 fisèl karaktè, 161 00:07:52,890 --> 00:07:56,157 nou ta sèvi ak 15 bytes, petèt 16 bytes pou Terminator a nil. 162 00:07:56,157 --> 00:07:57,990 Si nou te estoke yon twa fisèl karaktè, 163 00:07:57,990 --> 00:08:01,120 nou ta sèvi ak twa oswa kat bytes. 164 00:08:01,120 --> 00:08:03,050 Men, nou pa ta sèvi ak 99 an plen. 165 00:08:03,050 --> 00:08:05,190 >> Se konsa, poukisa nou ta gen tou de? 166 00:08:05,190 --> 00:08:08,210 Bon, si nou bezwen konnen ki jan lontan yon bagay ki ak yon varchar, 167 00:08:08,210 --> 00:08:10,680 nou dwe kalite repekte atravè li jis renmen nou te fè nan C 168 00:08:10,680 --> 00:08:12,230 ak figi konnen ki kote li sispann. 169 00:08:12,230 --> 00:08:15,920 Lè nou konsidere ke si nou konnen ke tout bagay nan kolòn sa a se 10 bytes, petèt 170 00:08:15,920 --> 00:08:19,220 nou konnen enfòmasyon sa a, nou ka sote 10 bytes, 10 bytes, 10 bytes, 10 bytes, 171 00:08:19,220 --> 00:08:21,790 ak toujou jwenn nan kòmanse nan fisèl la. 172 00:08:21,790 --> 00:08:25,210 >> Se konsa, nou ka gen kèk gaspiye espas ki gen yon CHAR, 173 00:08:25,210 --> 00:08:28,510 men petèt gen nan yon komès koupe nan li te gen pi bon vitès 174 00:08:28,510 --> 00:08:30,160 nan navige baz done a. 175 00:08:30,160 --> 00:08:32,330 Men, petèt nou vle a fleksibilite nan yon varchar 176 00:08:32,330 --> 00:08:36,710 olye pou yo having-- Si CHAR nou an te 255, men pi fò nan itilizatè nou an 177 00:08:36,710 --> 00:08:40,537 te sèlman Anthrax twa oswa kat bytes yon valè de enfòmasyon oswa twa oswa kat 178 00:08:40,537 --> 00:08:41,870 karaktè yon valè de enfòmasyon. 179 00:08:41,870 --> 00:08:44,324 >> Men, gen kèk itilizatè yo te lè l sèvi avèk 255 nan tout antye, petèt 180 00:08:44,324 --> 00:08:45,990 Varchar ta gen plis ki apwopriye a. 181 00:08:45,990 --> 00:08:49,840 Li nan sòt de yon komès koupe, epi jeneralman pou rezon nan CS50, 182 00:08:49,840 --> 00:08:54,107 ou pa bezwen enkyete twòp sou si ou sèvi ak yon CHAR oswa yon varchar. 183 00:08:54,107 --> 00:08:57,190 Men, nan mond reyèl la, bagay sa yo gen pwoblèm paske tout nan kolòn sa yo 184 00:08:57,190 --> 00:08:59,300 Leve kanpe, pran espas aktyèl fizik. 185 00:08:59,300 --> 00:09:04,150 Ak espas fizik, nan la mond reyèl, vini nan yon prim. 186 00:09:04,150 --> 00:09:06,800 >> Se konsa, yon lòt konsiderasyon lè w ap bati yon tab 187 00:09:06,800 --> 00:09:09,840 se ranmase yon kolòn yo dwe sa ki rele yon kle prensipal. 188 00:09:09,840 --> 00:09:14,350 Apre sa, yon kle prensipal se yon kolòn kote chak valè sèl se inik. 189 00:09:14,350 --> 00:09:19,980 Lè sa vle di ke ou ka byen fasil chwazi soti yon sèl ranje jis pa gade 190 00:09:19,980 --> 00:09:22,450 a kle nan prensipal nan ki ranje. 191 00:09:22,450 --> 00:09:24,580 Se konsa, pou egzanp, ou jeneralman, ak itilizatè yo, 192 00:09:24,580 --> 00:09:27,210 pa vle de itilizatè ki gen nimewo a ID itilizatè menm. 193 00:09:27,210 --> 00:09:28,960 Se konsa, petèt ou gen anpil nan enfòmasyon, 194 00:09:28,960 --> 00:09:30,793 e petèt de itilizatè kapab gen menm name-- nan 195 00:09:30,793 --> 00:09:32,650 ou gen John Smith ak Jan Smith. 196 00:09:32,650 --> 00:09:34,520 Sa a pa nesesèman yon pwoblèm, paske gen plizyè moun ki 197 00:09:34,520 --> 00:09:35,830 nan mond lan yo te rele John Smith. 198 00:09:35,830 --> 00:09:40,766 Men, nou sèlman gen yon sèl nimewo ID itilizatè 10, yon sèl itilizatè ID Nimewo 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Nou pa gen de itilizatè ak menm nimewo a, 200 00:09:42,640 --> 00:09:46,010 e konsa petèt nimewo ID itilizatè ta dwe yon bon kle prensipal. 201 00:09:46,010 --> 00:09:48,610 >> Nou pa gen okenn repetisyon, epi nou kapab kounye a inikman 202 00:09:48,610 --> 00:09:52,619 idantifye chak yon sèl ranje jis pa gade nan ki kolòn. 203 00:09:52,619 --> 00:09:55,410 Chwazi kle prensipal ka aktyèlman fè operasyon tab ki vin apre 204 00:09:55,410 --> 00:09:59,710 yon anpil pi fasil paske ou ka ogmante lefèt ke sèten ranje pral 205 00:09:59,710 --> 00:10:02,720 dwe inik, oswa yon sèten kolòn nan baz done ou a oswa tab 206 00:10:02,720 --> 00:10:06,030 yo pral inik yo chwazi soti ranje patikilye. 207 00:10:06,030 --> 00:10:08,790 >> Ou ka gen tou yon prensipal jwenti kle, ki ou ka jwenn okazyon 208 00:10:08,790 --> 00:10:11,720 yo sèvi ak, ki se jis yon konbinezon de de kolòn ki 209 00:10:11,720 --> 00:10:13,280 se garanti yo dwe inik. 210 00:10:13,280 --> 00:10:16,410 Se konsa, petèt ou gen youn kolòn sa a, se tankou e B, 211 00:10:16,410 --> 00:10:19,290 yon kolòn sa a, se yon sèl, de, ak twa, men ou pral sèlman janm 212 00:10:19,290 --> 00:10:23,660 gen yon sèl A1, se yon sèl A2, ak sou sa ak sou sa. 213 00:10:23,660 --> 00:10:28,980 Men, ou ta ka gen yon B2, se yon C2, oswa yon A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Se konsa, ou ta ka gen plizyè Kòm, plizyè B, yo menm miltip, miltip Dezan, 215 00:10:32,840 --> 00:10:38,567 men ou ka sèlman janm gen yon sèl A1, B2, C3, ak sou sa. 216 00:10:38,567 --> 00:10:40,400 Se konsa, jan mwen te di, SQL se yon lang programmation, 217 00:10:40,400 --> 00:10:42,024 men li gen yon vokabilè san patipri limite. 218 00:10:42,024 --> 00:10:44,880 Li pa byen kòm awogan kòm C ak PHP ak lòt lang 219 00:10:44,880 --> 00:10:46,350 ke nou pale nan kou a. 220 00:10:46,350 --> 00:10:49,960 Li se pi plis sil yon lang pase sa nou ap 221 00:10:49,960 --> 00:10:52,789 pwal pale osijè nan sa a videyo, paske se nan videyo sa a 222 00:10:52,789 --> 00:10:54,830 nou ap ale nan pale sou kat operasyon ke nou 223 00:10:54,830 --> 00:10:55,720 ka fè sou yon tab. 224 00:10:55,720 --> 00:10:56,761 >> Gen plis pase sa a. 225 00:10:56,761 --> 00:10:58,730 Nou ka fè plis pase sa a, men pou rezon nou an, 226 00:10:58,730 --> 00:11:02,250 nou ap jeneralman ale nan lè l sèvi avèk jis kat insert operations--, 227 00:11:02,250 --> 00:11:05,360 chwazi, aktyalizasyon, ak efase. 228 00:11:05,360 --> 00:11:08,750 Epi ou ka pwobableman devine entwitif sa ki tout kat nan bagay sa yo fè. 229 00:11:08,750 --> 00:11:12,520 Men, nou pral ale nan yon ti jan nan detay pou chak kesyon. 230 00:11:12,520 --> 00:11:15,780 >> Se konsa, pou rezon sa a videyo, se pou yo asime 231 00:11:15,780 --> 00:11:18,870 nou te de bagay sa yo tab nan yon baz done sèl. 232 00:11:18,870 --> 00:11:23,460 Nou gen yon tab rele Itilizatè yo ki gen kat columns-- nimewo ID, non itilizatè, 233 00:11:23,460 --> 00:11:25,350 modpas, ak tout non. 234 00:11:25,350 --> 00:11:27,430 Epi nou gen yon dezyèm tab nan baz done a menm 235 00:11:27,430 --> 00:11:32,129 rele manman ki jis estoke enfòmasyon sou yon non itilizatè ak yon manman. 236 00:11:32,129 --> 00:11:33,920 Se konsa, pou tout moun nan egzanp nan videyo sa a, nou pral 237 00:11:33,920 --> 00:11:37,945 lè l sèvi avèk baz done sa a epi dènye ki vin apre a li. 238 00:11:37,945 --> 00:11:40,070 Se konsa nou di nou vle ajoute enfòmasyon nan yon tab. 239 00:11:40,070 --> 00:11:44,460 Sa a ki sa insert operasyon an fè. 240 00:11:44,460 --> 00:11:46,550 Nan eksplike tout nan kòmandman sa yo, mwen pral 241 00:11:46,550 --> 00:11:48,860 l 'ban nou yon skelèt jeneral yo sèvi ak. 242 00:11:48,860 --> 00:11:51,661 Paske fondamantalman, demann yo yo ale gade bèl menm jan an, 243 00:11:51,661 --> 00:11:54,660 nou ap jis pral yo dwe chanje moso ti kras diferan nan enfòmasyon 244 00:11:54,660 --> 00:11:56,750 fè bagay sa yo diferan ak tab la. 245 00:11:56,750 --> 00:11:59,200 >> Se konsa, pou INSERT, kilè eskèlèt la sanble kalite tankou sa a. 246 00:11:59,200 --> 00:12:02,230 Nou vle insert nan yon tab an patikilye. 247 00:12:02,230 --> 00:12:05,290 Lè sa a, nou gen yon parantèz louvri ak yon lis nan kolòn 248 00:12:05,290 --> 00:12:08,070 ke nou vle mete valè nan. 249 00:12:08,070 --> 00:12:10,974 Parantèz fèmen, nan yo valè, ak Lè sa a 250 00:12:10,974 --> 00:12:13,390 ankò, nou lis soti valè yo nou vle mete nan tab la. 251 00:12:13,390 --> 00:12:15,950 >> Se konsa, yon egzanp sou sa a ta dwe sa ki annapre yo. 252 00:12:15,950 --> 00:12:19,170 Mwen vle insert nan tab la itilizatè columns-- ki anba la a 253 00:12:19,170 --> 00:12:21,010 non itilizatè, modpas, ak fullname. 254 00:12:21,010 --> 00:12:25,282 Se konsa, yon nouvo ranje kote mwen mete nan sa yo twa kolòn ak nou ap 255 00:12:25,282 --> 00:12:30,030 ale nan mete nan valè yo Newman, USMAIL, ak Newman. 256 00:12:30,030 --> 00:12:32,730 Se konsa, nan ka sa a, mwen se mete NEWMAN nan miniskil 257 00:12:32,730 --> 00:12:38,710 nan kolòn nan non itilizatè, modpas la USMAIL, ak tout N Non kapital la 258 00:12:38,710 --> 00:12:41,940 Newman nan kolòn nan fullname. 259 00:12:41,940 --> 00:12:44,240 >> Se konsa, isit la nan sa baz done a te sanble ak anvan. 260 00:12:44,240 --> 00:12:48,250 Men sa tab la itilizatè sou la tèt te sanble ak anvan nou te fè sa. 261 00:12:48,250 --> 00:12:50,760 Apre nou egzekite sa a query, nou jwenn sa a. 262 00:12:50,760 --> 00:12:54,790 Nou te ajoute yon nouvo ranje sou tab la. 263 00:12:54,790 --> 00:12:56,810 Men, remake bagay sa a yon sèl ke mwen pa te spesifye, 264 00:12:56,810 --> 00:12:59,880 men yon jan kanmenm mwen te gen yon valè pou, ki se sa a 12 isit la menm. 265 00:12:59,880 --> 00:13:02,820 Mwen pa t 'di mwen te vle mete nimewo ID nan la. 266 00:13:02,820 --> 00:13:04,900 Mwen te vle mete non itilizatè, modpas, fullname. 267 00:13:04,900 --> 00:13:06,440 Apre sa, mwen te fè sa, sa se amann. 268 00:13:06,440 --> 00:13:07,760 >> Men, mwen menm mwen te te resevwa sa a 12. 269 00:13:07,760 --> 00:13:09,490 Poukisa mwen jwenn sa a 12? 270 00:13:09,490 --> 00:13:12,904 Oke, li sanble ke lè w ap defini 271 00:13:12,904 --> 00:13:15,570 yon kolòn ki a pwal ou prensipal kle, ki se nòmalman, 272 00:13:15,570 --> 00:13:16,510 tankou mwen te di, yon nimewo ID. 273 00:13:16,510 --> 00:13:18,718 Li pa toujou nesesèman pral fè yon nimewo ID, 274 00:13:18,718 --> 00:13:22,380 men li la anjeneral yon bon lide yo gen kèk sòt de valè nonb antye relatif. 275 00:13:22,380 --> 00:13:25,950 Ou gen yon opsyon nan fpmyadmen lè w ap kreye baz done ou 276 00:13:25,950 --> 00:13:31,130 oswa tab ou yo mete ki kolòn kòm incrementing oto. 277 00:13:31,130 --> 00:13:34,520 >> Ki se yon vrèman bon lide lè w ap travay ak yon kle prensipal, 278 00:13:34,520 --> 00:13:39,330 paske ou vle chak valè nan ki kolòn yo dwe inik. 279 00:13:39,330 --> 00:13:43,310 Men, si ou ta bliye ou presize li pou plis pase yon sèl moun, 280 00:13:43,310 --> 00:13:46,240 ou kounye a gen yon sitiyasyon kote ki kolòn nan pa gen pi long inik. 281 00:13:46,240 --> 00:13:50,200 Ou gen de espas vid, kidonk, ou ka pa gen okenn ankò inikman idantifye yon column-- 282 00:13:50,200 --> 00:13:54,150 oswa ou kapab pa gen okenn ankò inikman idantifye yon ranje ki baze sou ki kolòn. 283 00:13:54,150 --> 00:13:57,010 Li nan pèdi tout nan li yo valè kòm yon kle prensipal. 284 00:13:57,010 --> 00:14:02,010 >> Se konsa, aparamman sa mwen te fè isit la se configuré ID nan itilizatè 285 00:14:02,010 --> 00:14:07,790 kolòn enkreman oto pou ke chak fwa mwen ajoute enfòmasyon sou tab la, 286 00:14:07,790 --> 00:14:12,220 li pral otomatikman ban m ' se yon valè pou kle a prensipal. 287 00:14:12,220 --> 00:14:15,570 Se konsa, mwen ka pa janm bliye fè li paske baz done a pral fè li pou mwen. 288 00:14:15,570 --> 00:14:16,587 Se konsa, sa a, se kalite bèl. 289 00:14:16,587 --> 00:14:18,670 Se konsa, Se poutèt sa nou jwenn 12 nan la, paske mwen te 290 00:14:18,670 --> 00:14:21,772 mete ki kolòn jiska enkreman oto. 291 00:14:21,772 --> 00:14:23,730 Si m 'te ajoute yon lòt moun li ta dwe 13, si mwen te ajoute 292 00:14:23,730 --> 00:14:27,890 yon moun lòt bagay li ta dwe 14, ak sou sa. 293 00:14:27,890 --> 00:14:30,190 >> Se konsa an n jis fè yon sèl plis ensèsyon. 294 00:14:30,190 --> 00:14:34,530 Nou pral insert nan tab la manman, nan patikilye, non itilizatè a ak manman 295 00:14:34,530 --> 00:14:37,390 kolòn, valè yo Kramer ak Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 Se konsa, nou te gen sa a anvan. 297 00:14:39,140 --> 00:14:41,800 Apre nou egzekite ki Rechèch SQL, nou gen sa a. 298 00:14:41,800 --> 00:14:47,290 Nou te ajoute Kramer ak Babs Kramer sou tab la manman. 299 00:14:47,290 --> 00:14:48,350 >> Se konsa, ki nan mete. 300 00:14:48,350 --> 00:14:51,850 Chwazi a se sa nou itilize yo ekstrè enfòmasyon ki soti nan tab la. 301 00:14:51,850 --> 00:14:54,390 Se konsa, sa a se ki jan nou jwenn enfòmasyon soti nan baz done a. 302 00:14:54,390 --> 00:14:59,589 Ak kòmandman pou chwazi yo pral yo dwe itilize trè souvan nan pwogram. 303 00:14:59,589 --> 00:15:02,130 Jeneral la framework-- nan kilè eskèlèt jeneral sanble tankou sa a. 304 00:15:02,130 --> 00:15:06,550 Chwazi yon seri kolòn soti nan yon tab, ak Lè sa a opsyonèlman 305 00:15:06,550 --> 00:15:11,090 ou ka presize yon condition-- oswa sa nou tipikman rele yon suppose, 306 00:15:11,090 --> 00:15:13,010 se nòmalman tèm nan nou itilize nan SQL. 307 00:15:13,010 --> 00:15:16,490 >> Men, li la fondamantalman sa ranje patikilye ou vle jwenn. 308 00:15:16,490 --> 00:15:19,100 Si ou vle, olye pou yo ap resevwa tout bagay, etwat li desann, 309 00:15:19,100 --> 00:15:20,060 sa a se kote ou ta fè sa. 310 00:15:20,060 --> 00:15:22,777 Lè sa a, opsyonèlman, ou kapab tou lòd pa yon kolòn patikilye. 311 00:15:22,777 --> 00:15:25,860 Se konsa, petèt ou vle gen bagay Ranje par ki baze sou yon kolòn 312 00:15:25,860 --> 00:15:27,540 oswa par ki baze sou yon lòt. 313 00:15:27,540 --> 00:15:30,610 >> Yon fwa ankò, KI KOTE ak LÒD BY yo se si ou vle. 314 00:15:30,610 --> 00:15:32,681 Men, yo ap pwobableman gen useful-- patikilyèman 315 00:15:32,681 --> 00:15:34,680 KI KOTE yo pral itil nan etwat desann konsa ou pa fè sa 316 00:15:34,680 --> 00:15:37,460 jwenn tout baz done ou retounen lakay yo epi gen nan pwosesis li, ou jis jwenn 317 00:15:37,460 --> 00:15:39,300 moso yo nan li ke ou pran swen sou. 318 00:15:39,300 --> 00:15:44,932 Se konsa, pou egzanp, mwen ta ka vle chwazi Nimewo ID ak fullname soti nan itilizatè. 319 00:15:44,932 --> 00:15:46,140 Se konsa, sa sa a ta ka sanble? 320 00:15:46,140 --> 00:15:48,270 Se konsa, isit la nan tab itilizatè m 'yo. 321 00:15:48,270 --> 00:15:51,080 Mwen vle chwazi idnum ak fullname soti nan itilizatè. 322 00:15:51,080 --> 00:15:52,300 Kisa mwen pral jwenn? 323 00:15:52,300 --> 00:15:53,580 Mwen pral jwenn sa a. 324 00:15:53,580 --> 00:15:56,930 Mwen pa t 'ti kras li desann, se konsa mwen ap resevwa nimewo a pou chak ranje ID 325 00:15:56,930 --> 00:16:00,850 ak mwen ap resevwa plen nan non soti nan tout ranje. 326 00:16:00,850 --> 00:16:02,210 >> OK. 327 00:16:02,210 --> 00:16:05,640 E si mwen vle chwazi modpas soti nan itilizatè WHERE-- se konsa kounye a 328 00:16:05,640 --> 00:16:10,370 Mwen ajoute yon kondisyon, yon predicate-- kote idnum se mwens pase 12. 329 00:16:10,370 --> 00:16:13,660 Se konsa, isit la nan baz done m 'ankò, mwen tab itilizatè tèt la. 330 00:16:13,660 --> 00:16:17,030 Kisa mwen pral jwenn si mwen vle chwazi enfòmasyon sa a, modpas la, 331 00:16:17,030 --> 00:16:21,550 kote ID itilizatè oswa idnum se mwens pase 12? 332 00:16:21,550 --> 00:16:24,910 Mwen pral jwenn sa a enfòmasyon tounen, dwa? 333 00:16:24,910 --> 00:16:29,170 Sa rive ke idnum se 10, mwens pase 12, nimewo ID 11 mwens pase 12. 334 00:16:29,170 --> 00:16:32,160 Mwen ap resevwa modpas la pou moun ranje. 335 00:16:32,160 --> 00:16:33,914 Sa a ki sa mwen te mande pou. 336 00:16:33,914 --> 00:16:34,580 Ki sa ki sou sa a? 337 00:16:34,580 --> 00:16:39,170 E si mwen vle chwazi zetwal soti nan la manman tab kote non itilizatè egal Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, chwazi zetwal se espesyal nan sòt de kat nan bwa sa yo rele 339 00:16:43,780 --> 00:16:45,670 ke nou itilize yo ka resevwa tout bagay. 340 00:16:45,670 --> 00:16:48,620 Se konsa, yo ap di chwazi non itilizatè manman vigil, ki 341 00:16:48,620 --> 00:16:51,060 te rive yo dwe sèlman nan de kolòn nan tablo sa a, 342 00:16:51,060 --> 00:16:53,260 Mwen kapab jis chwazi zetwal epi pou yo jwenn tout bagay 343 00:16:53,260 --> 00:16:55,030 kote non itilizatè a egal Jerry. 344 00:16:55,030 --> 00:16:59,380 Se konsa, se sa ki mwen ta jwenn si mwen te fè ki query patikilye. 345 00:16:59,380 --> 00:17:01,810 >> Koulye a, baz done yo gwo paske yo pèmèt 346 00:17:01,810 --> 00:17:06,074 nou òganize enfòmasyon petèt yon ti jan pi plis efikasite pase nou 347 00:17:06,074 --> 00:17:06,740 ta ka otreman. 348 00:17:06,740 --> 00:17:10,240 Nou pa nesesèman nan magazen chak moso enpòtan nan enfòmasyon 349 00:17:10,240 --> 00:17:12,230 sou yon itilizatè nan tablo a menm. 350 00:17:12,230 --> 00:17:13,730 Nou te gen de tab la. 351 00:17:13,730 --> 00:17:15,734 >> Nou bezwen nan magazen Manman tout moun nan la, 352 00:17:15,734 --> 00:17:18,900 e petèt nou pa gen sekirite sosyal nimewo, nou gen dat yo nan nesans. 353 00:17:18,900 --> 00:17:21,819 Sa pa toujou bezwen yo dwe nan tablo a menm. 354 00:17:21,819 --> 00:17:25,339 Osi lontan ke nou ka defini relasyon ant tables-- nan 355 00:17:25,339 --> 00:17:28,440 e ke sa a kote ki relasyon tèm baz done kalite vini 356 00:17:28,440 --> 00:17:32,130 nan play-- osi lontan ke nou ka defini relasyon ant tab yo, 357 00:17:32,130 --> 00:17:35,545 nou ka sòt de konpartimante oswa bagay sa yo abstrè yon fason, 358 00:17:35,545 --> 00:17:37,670 kote nou gen nan sèlman enfòmasyon vrèman enpòtan 359 00:17:37,670 --> 00:17:39,270 nou pran swen sou nan tablo itilizatè a la. 360 00:17:39,270 --> 00:17:43,220 Lè sa a, nou gen enfòmasyon Segondè oswa enfòmasyon siplemantè nan lòt tab 361 00:17:43,220 --> 00:17:48,260 ke nou ka konekte tounen nan prensipal la itilizatè tab nan yon fason patikilye. 362 00:17:48,260 --> 00:17:52,200 >> Se konsa, isit la nou gen de moso wòch plat sa yo, men gen nan yon relasyon ant yo, 363 00:17:52,200 --> 00:17:53,010 dwa? 364 00:17:53,010 --> 00:17:55,070 Li sanble tankou non itilizatè ta kapab yon bagay 365 00:17:55,070 --> 00:17:59,909 ki egziste nan komen ant de tab sa yo diferan. 366 00:17:59,909 --> 00:18:01,700 Se konsa, sa si nou genyen kounye a yon sitiyasyon kote nou 367 00:18:01,700 --> 00:18:06,046 vle jwenn tout non yon itilizatè a soti nan tab itilizatè a, ak manman yo nan 368 00:18:06,046 --> 00:18:07,170 non nan tablo a manman? 369 00:18:07,170 --> 00:18:10,960 Nou pa gen yon fason jwenn ki kòm li vle di, dwa? 370 00:18:10,960 --> 00:18:17,790 Gen nan pa gen tab sèl ki gen tou de tout non ak non manman an. 371 00:18:17,790 --> 00:18:20,400 Nou pa gen opsyon sa a soti nan sa ki nou te wè byen lwen tèlman. 372 00:18:20,400 --> 00:18:22,950 >> Se konsa, nou gen prezante lide a nan yon rantre nan. 373 00:18:22,950 --> 00:18:24,857 Apre sa, kontre ak yo se pwobableman complex-- ki pi 374 00:18:24,857 --> 00:18:27,940 li vrèman pi operasyon konplèks nou ap ale nan pale sou nan videyo a. 375 00:18:27,940 --> 00:18:30,040 Yo ap yon ti kras konplike, men yon fwa ou jwenn pann an nan li, 376 00:18:30,040 --> 00:18:31,248 yo ap aktyèlman pa twò move. 377 00:18:31,248 --> 00:18:32,820 Se jis nan yon ka espesyal nan yon chwazi. 378 00:18:32,820 --> 00:18:37,120 Nou pral chwazi yon seri kolòn ki sòti nan yon tab rantre nan 379 00:18:37,120 --> 00:18:40,650 nan yon dezyèm tab sou kèk suppose. 380 00:18:40,650 --> 00:18:45,340 >> Nan ka sa a, panse sou li renmen sa a men tab se yon sèl yon sèl ti sèk sou isit la, 381 00:18:45,340 --> 00:18:47,530 tab de se yon lòt sèk sou isit la. 382 00:18:47,530 --> 00:18:49,410 Apre sa, pati sa a suppose nan mitan an, li nan 383 00:18:49,410 --> 00:18:51,701 sòt de tankou si ou panse sou kòm yon dyagram Venn, ki sa 384 00:18:51,701 --> 00:18:52,670 yo gen an komen? 385 00:18:52,670 --> 00:18:55,960 Nou vle fè rapò ant de tab sa yo ki baze sou sa yo genyen an komen 386 00:18:55,960 --> 00:19:01,230 ak kreye tab ipotetik sa a ki se fizyon an nan de a ansanm. 387 00:19:01,230 --> 00:19:03,480 Se konsa, nou pral wè sa a nan yon egzanp e petèt ki pral ede 388 00:19:03,480 --> 00:19:04,521 klè l 'kanpe yon ti kras. 389 00:19:04,521 --> 00:19:09,260 Se konsa, petèt ou vle chwazi user.fullname ak moms.mother 390 00:19:09,260 --> 00:19:13,220 soti nan itilizatè rantre nan nan nan manman tab nan chak sitiyasyon 391 00:19:13,220 --> 00:19:16,790 kote non itilizatè kolòn nan se menm bagay la ant yo. 392 00:19:16,790 --> 00:19:19,240 Lè sa a se yon nouvo Sentaks isit la, itilizatè sa a. 393 00:19:19,240 --> 00:19:20,460 ak manman .. 394 00:19:20,460 --> 00:19:26,697 Si m ap fè plizyè tab ansanm, mwen kapab presize yon tab. 395 00:19:26,697 --> 00:19:29,530 Mwen kapab fè distenksyon ant nan sou patikilye ke sou nan pati anba a anpil la. 396 00:19:29,530 --> 00:19:33,220 Mwen kapab fè distenksyon ant non itilizatè a kolòn nan tablo a itilizatè 397 00:19:33,220 --> 00:19:36,010 soti nan kolòn nan non itilizatè a nan manman tab yo, ki se otherwise-- 398 00:19:36,010 --> 00:19:38,070 si nou jis di non itilizatè egal non itilizatè, ki fè pa reyèlman 399 00:19:38,070 --> 00:19:38,970 vle di anyen. 400 00:19:38,970 --> 00:19:41,440 Nou vle fè l 'kote yo matche. 401 00:19:41,440 --> 00:19:46,080 >> Se konsa, mwen ka presize tab la ak nan Non kolòn nan ka ta gen yon sitiyasyon 402 00:19:46,080 --> 00:19:48,370 kote li ta klè sa m ap pale de. 403 00:19:48,370 --> 00:19:51,880 Se konsa, ki nan tout m ap fè gen mwen se li di sa a kolòn nan tablo sa a, 404 00:19:51,880 --> 00:19:54,020 epi yo te trè eksplisit. 405 00:19:54,020 --> 00:19:56,810 Se konsa, ankò, mwen chwazi a tout non ak non manman an 406 00:19:56,810 --> 00:20:00,950 soti bò tab la itilizatè lye ansanm ak tab la manman nan tout sitiyasyon 407 00:20:00,950 --> 00:20:05,960 kote yo pataje ke column-- yo pataje ki nosyon non itilizatè. 408 00:20:05,960 --> 00:20:08,580 >> Se konsa, isit la yo se tab yo nou te gen anvan. 409 00:20:08,580 --> 00:20:12,210 Sa a se eta a nan nou an baz done kòm li egziste kounye a. 410 00:20:12,210 --> 00:20:16,390 Enfòmasyon ki nou ap èkstraksyon se sa a yo kòmanse avèk yo. 411 00:20:16,390 --> 00:20:19,820 Sa a se tab la nouvo nou ap ale yo kreye konbine sa yo ansanm. 412 00:20:19,820 --> 00:20:23,585 Apre sa, remake nou pa ap en Ranje Newman nan nan tablo itilizatè a la, 413 00:20:23,585 --> 00:20:25,960 epi nou pa ap en Ranje Kramer nan nan tablo a manman 414 00:20:25,960 --> 00:20:31,250 paske ni youn egziste nan tou de sets-- nan tou de tab. 415 00:20:31,250 --> 00:20:36,260 >> Enfòmasyon an sèlman se sa ki an komen ant yo se Jerry se nan tou de tab 416 00:20:36,260 --> 00:20:39,100 ak gcostanza se nan tou de tab. 417 00:20:39,100 --> 00:20:42,620 Se konsa, lè nou fè SQL an rantre nan, ki sa nou get-- epi nou fè aktyèlman jwenn sa a. 418 00:20:42,620 --> 00:20:44,830 Li nan sòt de yon varyab tanporè. 419 00:20:44,830 --> 00:20:47,330 Se tankou yon ipotetik fizyon nan de ròch yo. 420 00:20:47,330 --> 00:20:49,930 Nou aktyèlman jwenn yon bagay tankou sa a, kote 421 00:20:49,930 --> 00:20:54,730 nou te fizyone ansanm tab yo sou mòn lan enfòmasyon ke yo gen an komen. 422 00:20:54,730 --> 00:20:58,334 >> Se konsa, remake ke users.username ak kolòn moms.username, 423 00:20:58,334 --> 00:20:59,250 li nan ekzakteman menm bagay la. 424 00:20:59,250 --> 00:21:01,820 Sa ki te enfòmasyon an ki te konsistan soti nan itilizatè yo 425 00:21:01,820 --> 00:21:02,890 tab ak tab la manman. 426 00:21:02,890 --> 00:21:04,270 Se konsa, nou fizyone yo ansanm. 427 00:21:04,270 --> 00:21:06,919 Nou abandone Kramer paske li pa t egziste nan tablo a itilizatè yo, 428 00:21:06,919 --> 00:21:09,710 epi nou abandone Newman, paske li pa t 'egziste nan tab la manman. 429 00:21:09,710 --> 00:21:16,450 Se konsa, sa a se fizyon an ipotetik lè l sèvi avèk operasyon an nan rantre nan chwazi. 430 00:21:16,450 --> 00:21:21,250 >> Lè sa a, nou te kap chèche nan tout non itilizatè a ak manman kap itilize li an a, 431 00:21:21,250 --> 00:21:24,999 ak kidonk sa a se enfòmasyon an ki nou ta jwenn nan rechèch la an jeneral 432 00:21:24,999 --> 00:21:26,040 ke nou te fè ak chwazi. 433 00:21:26,040 --> 00:21:28,873 Se konsa, nou mete tab yo ansanm epi nou extrait sa yo de kolòn, 434 00:21:28,873 --> 00:21:31,610 e konsa se sa ki nou ta jwenn. 435 00:21:31,610 --> 00:21:33,370 Men, SQL kontre ak yon kalite konplike. 436 00:21:33,370 --> 00:21:36,770 Ou pwobableman pa pral fè yo twòp, men jis gen kèk lide sou kilè eskèlèt la 437 00:21:36,770 --> 00:21:41,992 ke ou ta ka itilize yo rantre de tab ansanm si ou bezwen. 438 00:21:41,992 --> 00:21:43,700 De dènye a se yon ti jan ki pi senp mwen te pwomèt. 439 00:21:43,700 --> 00:21:48,040 Se konsa, à, nou ka sèvi ak MIZAJOU chanje enfòmasyon ki nan yon tab. 440 00:21:48,040 --> 00:21:53,880 Fòma a jeneral se MIZAJOU kèk tab, mete kèk kolòn nan kèk valè 441 00:21:53,880 --> 00:21:55,540 Kote kèk suppose se satisfè. 442 00:21:55,540 --> 00:21:57,850 Se konsa, pou egzanp, nou ta ka vle mete ajou tab la itilizatè 443 00:21:57,850 --> 00:22:04,400 , li mete modpas la Yada Yada, kote nimewo a ID se 10. 444 00:22:04,400 --> 00:22:06,400 >> Se konsa, nan ka sa a, nou ap à tab la itilizatè. 445 00:22:06,400 --> 00:22:08,275 Nimewo a se 10 pou ID ki premye ranje a, 446 00:22:08,275 --> 00:22:10,690 epi nou vle mete ajou nan modpas yo Yada Yada. 447 00:22:10,690 --> 00:22:12,170 Se konsa, sa a, se sa ki ta rive. 448 00:22:12,170 --> 00:22:13,628 Li trè senp, dwa? 449 00:22:13,628 --> 00:22:17,990 Se jis nan yon trè senp modifikasyon sou tab la. 450 00:22:17,990 --> 00:22:22,250 >> Efase se operasyon an nou itilize yo retire enfòmasyon ki soti nan yon tab. 451 00:22:22,250 --> 00:22:24,817 Efase nan tablo KI KOTE kèk suppose se satisfè. 452 00:22:24,817 --> 00:22:26,900 Nou vle efase ki soti nan itilizatè tab pou egzanp 453 00:22:26,900 --> 00:22:28,254 kote non itilizatè a se Newman. 454 00:22:28,254 --> 00:22:31,420 Ou ka pwobableman devine kisa k ap pase yo rive isit la apre nou egzekite ki SQL 455 00:22:31,420 --> 00:22:35,790 rechèch, Newman se ale nan tab la. 456 00:22:35,790 --> 00:22:40,460 >> Se konsa, tout operasyon sa yo, jan mwen te di, yo trè fasil fè nan fpmyadmen. 457 00:22:40,460 --> 00:22:43,020 Li se yon trè itilizatè zanmitay koòdone. 458 00:22:43,020 --> 00:22:45,930 Men, li mande pou efò manyèl. 459 00:22:45,930 --> 00:22:47,840 Nou pa vle anplwaye efò manyèl. 460 00:22:47,840 --> 00:22:51,280 Nou vle pwogram nou yo fè sa pou nou, dwa? 461 00:22:51,280 --> 00:22:53,190 Se konsa, nou ta ka vle fè sa a pwogramasyon. 462 00:22:53,190 --> 00:22:56,410 Nou vle enkòpore SQL epi yo gen yon lòt bagay yo fè sa pou nou. 463 00:22:56,410 --> 00:23:02,710 >> Men, sa ki te nou wè ki pèmèt nou pwogramasyon fè yon bagay? 464 00:23:02,710 --> 00:23:03,690 Nou te wè PHP, dwa? 465 00:23:03,690 --> 00:23:05,760 Li entwodui kèk dynamism nan pwogram nou yo. 466 00:23:05,760 --> 00:23:10,430 Se konsa, erezman, SQL ak PHP jwe trè joliman ansanm. 467 00:23:10,430 --> 00:23:13,230 Genyen yon fonksyon nan PHP rele query, sa ki ka dwe itilize. 468 00:23:13,230 --> 00:23:15,870 Epi ou ka pase kòm nan paramèt oswa agiman an 469 00:23:15,870 --> 00:23:19,210 sijè rechèch yon sijè rechèch SQL ki ou ta renmen egzekite. 470 00:23:19,210 --> 00:23:23,250 Apre sa, PHP pral fè li sou non ou. 471 00:23:23,250 --> 00:23:25,564 >> Se konsa, apre ou te konekte nan baz done ou a ak PHP, 472 00:23:25,564 --> 00:23:26,980 gen nan de eleksyon primè ou fè sa. 473 00:23:26,980 --> 00:23:29,230 Genyen yon bagay yo rele miskli ak yon bagay yo rele apelasyon. 474 00:23:29,230 --> 00:23:31,063 Nou pa pral antre nan yon gwo kantite lajan detay la. 475 00:23:31,063 --> 00:23:32,957 Nan CS50 nou itilize apelasyon. 476 00:23:32,957 --> 00:23:34,790 Apre ou te konekte nan baz done ou a, ou 477 00:23:34,790 --> 00:23:40,980 ka Lè sa a fè demann baz done ou pa pase yo kòm agiman queries 478 00:23:40,980 --> 00:23:42,730 nan fonksyon PHP. 479 00:23:42,730 --> 00:23:46,460 Men, lè ou fè sa, ou sere nan rezilta mete nan yon etalaj asosyatif. 480 00:23:46,460 --> 00:23:50,290 >> E nou konnen ki jan yo travay avèk ranje asosyatif nan PHP. 481 00:23:50,290 --> 00:23:52,630 Se konsa, mwen ta ka di yon bagay tankou sa a men $ results-- 482 00:23:52,630 --> 00:23:55,470 sa a se nan PHP-- egal query. 483 00:23:55,470 --> 00:23:57,660 Lè sa a, andedan nan la fonksyon query ke agiman 484 00:23:57,660 --> 00:24:00,130 ke mwen pase sijè rechèch ki sanble ak SQL. 485 00:24:00,130 --> 00:24:01,160 Lè an reyalite se sa ki SQL. 486 00:24:01,160 --> 00:24:05,700 Sa a fisèl la ke mwen ta query renmen al touye sou baz done m 'yo. 487 00:24:05,700 --> 00:24:09,250 >> Se konsa, nan wouj, sa a se PHP. 488 00:24:09,250 --> 00:24:11,890 Sa a se ke mwen se SQL entegre nan PHP pa fè 489 00:24:11,890 --> 00:24:15,020 li agiman an nan fonksyon an sijè rechèch. 490 00:24:15,020 --> 00:24:19,640 Mwen vle chwazi soti nan fullname itilizatè ki kote nimewo ID egal 10. 491 00:24:19,640 --> 00:24:22,560 Lè sa a, petèt apre mwen te fè sa, Mwen ta ka di yon bagay tankou sa a. 492 00:24:22,560 --> 00:24:25,550 Mwen vle enprime soti nan mesaj Mèsi pou ouvri sesyon an. 493 00:24:25,550 --> 00:24:32,530 >> Apre sa, mwen vle li interpolate-- mwen vle entèpole $ rezilta fullname. 494 00:24:32,530 --> 00:24:36,280 Se konsa, sa a, se ki jan mwen travay ak sa asosyatif etalaj ke mwen te resevwa tounen. 495 00:24:36,280 --> 00:24:39,730 $ rezilta fullname ta fondamantalman fini enprime soti, 496 00:24:39,730 --> 00:24:42,870 mèsi pou antre nan, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Non an plen Sa ki te kote idnum egal 10. 498 00:24:46,570 --> 00:24:48,850 >> Se konsa, tout m ap fè se mwen now-- mwen ki estoke 499 00:24:48,850 --> 00:24:52,780 query mwen, rezilta yo nan rechèch mwen an ak rezilta nan yon etalaj asosyatif, 500 00:24:52,780 --> 00:24:56,330 ak fullname se non an nan kolòn nan mwen te resevwa pou. 501 00:24:56,330 --> 00:25:01,010 Se konsa, sa a, se kle m 'nan rezilta yo asosyatif etalaj ke mwen vle. 502 00:25:01,010 --> 00:25:05,930 Se konsa, mèsi pou antre nan, $ rezilta, fullname pral enprime soti, pral bwa 503 00:25:05,930 --> 00:25:08,654 dwa nan ant moun Curly aparèy òtopedik, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 Apre sa, mwen pral renmen enprime soti mesaj la Mèsi pou antre nan Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Koulye a, nou pwobableman pa vle di bagay Kòd tankou sa nan, dwa? 506 00:25:16,652 --> 00:25:19,860 Nou ta ka vle fè yon bagay tankou ekri an lèt detache f, kote nou ka ranplase e petèt 507 00:25:19,860 --> 00:25:22,443 kolekte diferan enfòmasyon, oswa petèt gen pwosesis la query 508 00:25:22,443 --> 00:25:23,370 enfòmasyon diferan. 509 00:25:23,370 --> 00:25:27,920 Se konsa, sijè rechèch, fonksyon an sijè rechèch gen sa a nosyon nan sòt de sibstitisyon 510 00:25:27,920 --> 00:25:32,310 trè menm jan ak enprime f pousan nan ak pousan c, se mak kesyon. 511 00:25:32,310 --> 00:25:34,290 >> Apre sa, nou ka sèvi ak kesyon mak trè Analoji 512 00:25:34,290 --> 00:25:38,400 ekri ak lèt ​​detache f varyab ranplasan. 513 00:25:38,400 --> 00:25:44,120 Se konsa, petèt itilizatè ou louvri sesyon an pi bonè, epi ou sove nimewo ID itilizatè yo 514 00:25:44,120 --> 00:25:51,710 nan $ _SESSION nan PHP super mondyal nan ID a kle. 515 00:25:51,710 --> 00:25:55,947 Se konsa, petèt apre yo louvri sesyon an, ou mete $ _SESSION ID egal 10, 516 00:25:55,947 --> 00:25:58,280 èkstrapolan soti nan egzanp lan nou jis te wè yon dezyèm de sa. 517 00:25:58,280 --> 00:26:01,960 >> Se konsa, lè nou aktyèlman egzekite sa a sijè rechèch rezilta yo kounye a, 518 00:26:01,960 --> 00:26:08,440 li ta ploge nan 10, oswa kèlkeswa sa valè nan ID $ _SESSION se. 519 00:26:08,440 --> 00:26:10,790 Se konsa, ki pèmèt nou gen yon ti jan pi plis dinamik. 520 00:26:10,790 --> 00:26:12,699 Nou ap pa difisil kodaj bagay sa yo nan ankò. 521 00:26:12,699 --> 00:26:14,490 Nou ap ekonomize enfòmasyon yon kote ak Lè sa a 522 00:26:14,490 --> 00:26:18,924 nou ka sèvi ak enfòmasyon ki ankò nan sòt de jeneralizasyon sa nou vle fè a, 523 00:26:18,924 --> 00:26:21,090 ak jis ploge nan ak chanjman konpòtman an nan paj nou an 524 00:26:21,090 --> 00:26:26,489 ki baze sou sa nimewo ID itilizatè a aktyèlman se apre yo te louvri sesyon an. 525 00:26:26,489 --> 00:26:28,530 Li la tou posib, menm si, ki rezilta ou mete 526 00:26:28,530 --> 00:26:30,840 ta ka konpoze de ranje miltip. 527 00:26:30,840 --> 00:26:33,990 Nan ka sa a, ou gen yon etalaj de arrays-- 528 00:26:33,990 --> 00:26:35,334 yon etalaj de ranje asosyatif. 529 00:26:35,334 --> 00:26:37,000 Apre sa, ou jis bezwen repekte atravè li. 530 00:26:37,000 --> 00:26:41,950 E nou konnen ki jan yo repekte nan yon etalaj nan PHP, dwa? 531 00:26:41,950 --> 00:26:45,600 Se konsa, isit se pwobableman pi plis nan konplèks bagay nou te wè byen lwen tèlman. 532 00:26:45,600 --> 00:26:49,640 Li aktyèlman entegre twa lang yo ansanm. 533 00:26:49,640 --> 00:26:52,920 >> Isit la nan wouj, sa a se kèk HTML. 534 00:26:52,920 --> 00:26:56,872 Mwen aparamman starting-- sa a se yon brib nan kèk HTML ke mwen gen. 535 00:26:56,872 --> 00:26:59,580 M 'ap kòmanse yon nouvo paragraf ki di manman yo nan Seinfeld televizyon an. 536 00:26:59,580 --> 00:27:02,350 Lè sa a, imedyatman apre sa M 'ap kòmanse yon tab. 537 00:27:02,350 --> 00:27:06,060 Lè sa a, apre sa, mwen gen kèk PHP, dwa? 538 00:27:06,060 --> 00:27:08,229 Mwen gen tout bagay sa yo Kòd PHP nan la. 539 00:27:08,229 --> 00:27:09,645 Mwen aparamman pral fè yon rechèch. 540 00:27:09,645 --> 00:27:14,180 Men, fè rechèch la, mwen pral lè l sèvi avèk manman chwazi nan manman. 541 00:27:14,180 --> 00:27:15,970 >> Se konsa, sa a se comment- sa a se SQL. 542 00:27:15,970 --> 00:27:17,300 Se konsa, nan ble a se SQL. 543 00:27:17,300 --> 00:27:19,680 Wouj la nou te wè yon dezyèm de sa te HTML. 544 00:27:19,680 --> 00:27:21,360 Ak vèt la isit la se PHP. 545 00:27:21,360 --> 00:27:23,400 Se konsa, mwen fè yon demann nan baz done m 'yo, mwen se 546 00:27:23,400 --> 00:27:26,040 chwazi tout nan la manman nan tablo a manman. 547 00:27:26,040 --> 00:27:30,710 Pa sèlman konble li desann nan patikilye ranje, mwen mande pou tout nan yo. 548 00:27:30,710 --> 00:27:33,290 >> Apre sa, mwen tcheke si rezilta a se pa egal egal fo. 549 00:27:33,290 --> 00:27:37,410 Sa a se jis fason mwen an tcheke sòt a si rezilta a se pa egal a nil, 550 00:27:37,410 --> 00:27:40,260 ke nou ta renmen wè c pou egzanp. 551 00:27:40,260 --> 00:27:44,000 Fondamantalman sa a se jis tcheke yo fè asire w ke li aktyèlman te resevwa done tounen. 552 00:27:44,000 --> 00:27:47,041 Paske mwen pa vle kòmanse enprime soti done si mwen pa t 'jwenn nenpòt ki done. 553 00:27:47,041 --> 00:27:50,690 Lè sa a, pou chak rezilta kòm yon rezilta nan fortch sentaks soti nan PHP, tout m ap fè 554 00:27:50,690 --> 00:27:53,399 se enprime soti manman $ rezilta. 555 00:27:53,399 --> 00:27:55,940 Se konsa, mwen pral yo ka resevwa yon seri nan tout nan manman yo nan each-- 556 00:27:55,940 --> 00:27:59,980 li nan yon etalaj de asosyatif arrays-- ak mwen enprime soti 557 00:27:59,980 --> 00:28:03,649 chak moun kòm pwòp li yo nan ranje yon tab. 558 00:28:03,649 --> 00:28:05,690 Epi sa a, reyèlman bèl anpil tout gen nan li. 559 00:28:05,690 --> 00:28:07,750 Mwen konnen gen nan yon ti kras ti jan ale sou isit la 560 00:28:07,750 --> 00:28:13,210 nan sa a egzanp pase a ak ranje nan arrays-- ranje nan ranje asosyatif. 561 00:28:13,210 --> 00:28:17,340 Men, li vrèman jis bouyi desann nan SQL nan fè yon demann, 562 00:28:17,340 --> 00:28:21,102 anjeneral chwazi apre nou te deja mete enfòmasyon an tab la, 563 00:28:21,102 --> 00:28:22,310 ak Lè sa a jis rale li soti. 564 00:28:22,310 --> 00:28:25,710 >> Lè sa a se nou ta rale li soti nan ka sa a an patikilye. 565 00:28:25,710 --> 00:28:31,120 Nou ta ekstrè tout nan moun nan manman nan tablo a manman. 566 00:28:31,120 --> 00:28:35,970 Nou gen yon seri antye nan yo, epi nou vle repekte nan ak enprime soti 567 00:28:35,970 --> 00:28:37,630 chak kesyon. 568 00:28:37,630 --> 00:28:40,510 Se konsa, ankò, sa a se pwobableman egzanp lan pi konplike 569 00:28:40,510 --> 00:28:44,510 nou te wè paske nou ap melanje twa lang diferan ansanm, dwa? 570 00:28:44,510 --> 00:28:50,100 >> Yon fwa ankò, nou gen HTML isit la nan wouj, melanje ak kèk SQL isit la nan ble, 571 00:28:50,100 --> 00:28:52,049 melanje ak kèk PHP nan vèt. 572 00:28:52,049 --> 00:28:53,840 Men, tout moun sa yo jwe joliman ansanm, li nan 573 00:28:53,840 --> 00:28:57,060 jis yon kesyon de devlope bon abitid pou ke ou ka jwenn 574 00:28:57,060 --> 00:28:58,780 yo travay ansanm nan fason ou vle. 575 00:28:58,780 --> 00:29:03,790 Apre sa, wout la sèlman nan vrèman fè sa se avèk pratik, pratik, pratik. 576 00:29:03,790 --> 00:29:06,740 Mwen se Doug Lloyd, sa a se CS50. 577 00:29:06,740 --> 00:29:08,647