1 00:00:00,000 --> 00:00:03,493 >> [CHWARAE CERDDORIAETH] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD: Yn ein fideos ar bynciau datblygu ar y we, 4 00:00:07,100 --> 00:00:10,560 rydym wedi crybwyll y cysyniad o cronfa ddata ychydig o weithiau, dde? 5 00:00:10,560 --> 00:00:12,700 Felly, cronfa ddata rydych yn yn ôl pob tebyg yn gyfarwydd â oddi 6 00:00:12,700 --> 00:00:15,780 dweud gan ddefnyddio Microsoft Excel neu Taenlenni Google. 7 00:00:15,780 --> 00:00:20,650 Mae'n wir yn unig drefnus set o dablau, rhesi, a cholofnau. 8 00:00:20,650 --> 00:00:23,140 >> A chronfa ddata yw lle ein gwefan siopau 9 00:00:23,140 --> 00:00:26,760 gwybodaeth sy'n bwysig ar gyfer ein gwefan i weithio'n iawn. 10 00:00:26,760 --> 00:00:30,150 Unwaith eto, yn enghraifft wirioneddol gyffredin yma yn storio enwau defnyddwyr a chyfrineiriau 11 00:00:30,150 --> 00:00:32,824 mewn cronfa ddata, felly pan defnyddiwr yn mewngofnodi i mewn i'n gwefan, 12 00:00:32,824 --> 00:00:36,690 Gall y gronfa ddata yn cael ei holi i weld os yw'r defnyddiwr yn bodoli yn y gronfa ddata. 13 00:00:36,690 --> 00:00:39,260 Ac os ydynt, gwirio bod eu cyfrinair yn gywir. 14 00:00:39,260 --> 00:00:43,420 Ac os yw eu cyfrinair yn gywir, Yna gallwn ei roi iddynt beth bynnag dudalen 15 00:00:43,420 --> 00:00:45,370 maent yn gofyn. 16 00:00:45,370 --> 00:00:48,590 >> Felly, mae'n debyg eich bod, unwaith eto, cyfarwydd gyda'r syniad hwn o Excel neu Google 17 00:00:48,590 --> 00:00:49,430 Taenlenni. 18 00:00:49,430 --> 00:00:52,980 Mae gennym gronfeydd data, tablau, rhesi, a cholofnau. 19 00:00:52,980 --> 00:00:56,450 A dyna wir yn fath o'r set sylfaenol 20 00:00:56,450 --> 00:00:58,470 o chwalu hierarchaidd yma. 21 00:00:58,470 --> 00:00:59,800 Felly dyma taenlen Excel. 22 00:00:59,800 --> 00:01:02,640 Ac os ydych chi wedi agor hyn erioed neu raglen debyg arall 23 00:01:02,640 --> 00:01:06,780 eich bod yn gwybod bod y rhain yma rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Mae'r rhain yn colofnau. 25 00:01:08,760 --> 00:01:11,790 >> Efallai i lawr yma, er bod efallai y byddwch Nid yw defnyddio'r nodwedd hon ofnadwy much-- 26 00:01:11,790 --> 00:01:15,370 'N annhymerus' chwyddo in-- gennym syniad hwn o daflen. 27 00:01:15,370 --> 00:01:17,930 Felly efallai y taflenni hyn, os Rwyf yn ail yn ôl ac ymlaen, 28 00:01:17,930 --> 00:01:21,600 yn wahanol dablau sy'n yn bodoli yn fy gronfa ddata. 29 00:01:21,600 --> 00:01:25,210 Ac os byddwn yn parhau yr enghraifft i gyd y ffordd, enw'r gronfa ddata hon 30 00:01:25,210 --> 00:01:26,940 yw Llyfr 1. 31 00:01:26,940 --> 00:01:28,710 Efallai gennyf Llyfr 2 a 3 Llyfr. 32 00:01:28,710 --> 00:01:33,270 Felly pob ffeil Excel yn cronfa ddata, pob dalen yn dabl, 33 00:01:33,270 --> 00:01:39,530 ac y tu mewn o bob bwrdd gen i syniad hwn o rhesi a cholofnau. 34 00:01:39,530 --> 00:01:41,900 >> Felly, sut ydw i'n gweithio gyda gronfa ddata hon? 35 00:01:41,900 --> 00:01:43,630 Sut mae cael gwybodaeth ohoni? 36 00:01:43,630 --> 00:01:47,540 Wel mae 'na iaith o'r enw SQL-- yr wyf fel arfer dim ond galw Sequel-- 37 00:01:47,540 --> 00:01:50,010 ac mae'n sefyll ar gyfer y Iaith Ymholiad Strwythuredig. 38 00:01:50,010 --> 00:01:52,981 Ac mae'n iaith raglennu, ond mae'n raglennu cyfyngedig yn deg 39 00:01:52,981 --> 00:01:53,480 iaith. 40 00:01:53,480 --> 00:01:56,407 Dyw hi ddim yn hollol fel eraill ein bod wedi gweithio gyda. 41 00:01:56,407 --> 00:01:58,240 Ond diben hwn iaith rhaglennu 42 00:01:58,240 --> 00:02:01,570 yw holi cronfa ddata, i gofyn gwybodaeth o gronfa ddata, 43 00:02:01,570 --> 00:02:04,480 ddod o hyd i wybodaeth mewn cronfa ddata, ac yn y blaen. 44 00:02:04,480 --> 00:02:08,449 >> Rydym hefyd, yn CS50-- ac mae'n iawn llwyfan cyffredin, fe'i gelwir MySQL. 45 00:02:08,449 --> 00:02:10,600 Dyna beth rydym yn ei ddefnyddio yn y cwrs. 46 00:02:10,600 --> 00:02:12,880 Mae'n ffynhonnell agored llwyfan sy'n sefydlu 47 00:02:12,880 --> 00:02:16,732 yn database-- berthynol hyn a elwir yn cronfa ddata, yn effeithiol. 48 00:02:16,732 --> 00:02:18,440 Nid oes angen i ni gael i ormod o fanylder 49 00:02:18,440 --> 00:02:20,930 ar yr hyn cronfa ddata berthynol yn. 50 00:02:20,930 --> 00:02:24,650 Ond mae'r iaith SQL yw fedrus iawn wrth weithio 51 00:02:24,650 --> 00:02:29,760 gyda MySQL ac eraill tebyg arddulliau o gronfeydd data perthynol. 52 00:02:29,760 --> 00:02:34,010 >> Ac mae llawer o osodiadau MySQL yn dod â rhywbeth 53 00:02:34,010 --> 00:02:37,760 Gelwir phpMyAdmin, a oedd yn yn defnyddiwr graffigol 54 00:02:37,760 --> 00:02:40,970 interface-- yn GUI-- sy'n yn ei gwneud yn ychydig yn fwy 55 00:02:40,970 --> 00:02:44,410 gyfeillgar i weithredu defnyddiwr ymholiadau cronfa ddata, 56 00:02:44,410 --> 00:02:48,980 oherwydd nad yw cronfeydd data yn cael eu defnyddio yn unig gan rhaglenwyr uwch, dde? 57 00:02:48,980 --> 00:02:51,510 Weithiau mae yna busnesau bach hyn, 58 00:02:51,510 --> 00:02:53,900 ac ni allant fforddio llogi tîm o raglenwyr, 59 00:02:53,900 --> 00:02:56,700 ond mae angen iddynt i storio gwybodaeth mewn cronfa ddata. 60 00:02:56,700 --> 00:02:59,300 >> Rhywbeth fel phpMyAdmin ei gwneud yn hawdd iawn i rywun 61 00:02:59,300 --> 00:03:03,630 sydd byth wedi rhaglennu o'r blaen i codi a dod yn gyfarwydd â sut 62 00:03:03,630 --> 00:03:07,710 i weithio gyda chronfa ddata. 63 00:03:07,710 --> 00:03:11,800 Y broblem yw, phpMyAdmin, tra mae'n arf gwych ar gyfer dysgu 64 00:03:11,800 --> 00:03:14,850 am y cronfeydd data, mae'n llaw. 65 00:03:14,850 --> 00:03:18,050 Rydych yn mynd i gael i logio i mewn ac redeg gorchmynion a math 66 00:03:18,050 --> 00:03:19,910 pethau mewn llaw. 67 00:03:19,910 --> 00:03:23,160 >> Ac fel y gwyddom oddi wrth ein enghraifft ar raglenni gwe PHP, 68 00:03:23,160 --> 00:03:26,550 gorfod gwneud â llaw pethau ar ein gwefan, 69 00:03:26,550 --> 00:03:30,970 os ydym am gael ddeinamig, ymatebol gweithredol gwefan, efallai nad yw'r dull gorau. 70 00:03:30,970 --> 00:03:33,980 Hoffem i ddod o hyd i ffordd i efallai awtomeiddio'r hyn rywsut. 71 00:03:33,980 --> 00:03:37,864 A bydd SQL yn ein galluogi i wneud hyn. 72 00:03:37,864 --> 00:03:39,780 Felly, pan fyddwn ni'n mynd i dechrau gweithio gyda SQL, 73 00:03:39,780 --> 00:03:41,220 angen i ni gael yn gyntaf cronfa ddata i weithio gyda nhw. 74 00:03:41,220 --> 00:03:42,510 Creu cronfa ddata yn cael ei rhywbeth yr ydych yn ôl pob tebyg 75 00:03:42,510 --> 00:03:45,350 bydd yn gwneud yn phpMyAdmin, oherwydd bydd dim ond angen i chi ei wneud hynny unwaith, 76 00:03:45,350 --> 00:03:49,690 a'r cystrawen ar gyfer gwneud hynny yn llawer symlach. 77 00:03:49,690 --> 00:03:51,940 Mae'n llawer haws i wneud hynny mewn rhyngwyneb defnyddiwr graffig 78 00:03:51,940 --> 00:03:53,520 na deipio allan fel gorchymyn. 79 00:03:53,520 --> 00:03:55,186 Gall y gorchymyn yn cael ychydig o feichus. 80 00:03:55,186 --> 00:03:58,889 Yn yr un modd, gan greu tabl gall cael cryn dipyn feichus hefyd. 81 00:03:58,889 --> 00:04:01,930 Ac felly pethau fel creu cronfa ddata a chreu bwrdd, yr ydych chi'n 82 00:04:01,930 --> 00:04:06,270 yn ôl pob tebyg dim ond yn mynd i wneud once-- unwaith y bwrdd, unwaith y database-- 83 00:04:06,270 --> 00:04:09,040 mae'n iawn i wneud hynny mewn rhyngwyneb graffigol. 84 00:04:09,040 --> 00:04:11,570 Yn y broses o creu tabl, byddwch yn 85 00:04:11,570 --> 00:04:14,840 rhaid hefyd i bennu pob un o'r colofnau a fydd yn y tabl hwnnw. 86 00:04:14,840 --> 00:04:18,149 Pa fath o wybodaeth yn ei wneud ydych am i storio yn y tabl? 87 00:04:18,149 --> 00:04:24,520 Efallai enw a dyddiad geni y defnyddiwr, cyfrinair, rhif adnabod defnyddiwr, ac efallai 88 00:04:24,520 --> 00:04:26,170 ddinas a'r wladwriaeth, dde? 89 00:04:26,170 --> 00:04:30,080 >> Ac am bob tro y byddwn eisiau ychwanegu defnyddiwr at y gronfa ddata, rydym yn awyddus i gael pob un o'r chwe 90 00:04:30,080 --> 00:04:31,890 o ddarnau hynny o wybodaeth. 91 00:04:31,890 --> 00:04:34,840 Ac rydym yn gwneud hynny drwy ychwanegu rhesi at y bwrdd. 92 00:04:34,840 --> 00:04:37,800 Felly rydym yn gyntaf creu cronfa ddata, Yna, rydym yn creu tabl. 93 00:04:37,800 --> 00:04:40,100 Fel rhan o greu tabl, gofynnir i ni 94 00:04:40,100 --> 00:04:44,280 i nodi pob colofn sy'n byddem yn hoffi yn y tabl hwn. 95 00:04:44,280 --> 00:04:47,247 Ac yna wrth i ni ddechrau i ychwanegu gwybodaeth i'r gronfa ddata 96 00:04:47,247 --> 00:04:49,580 ac yn holi cronfa ddata mwy generally-- nid dim ond ychwanegu, 97 00:04:49,580 --> 00:04:51,610 ond popeth arall yr ydym yn do-- byddwn yn delio 98 00:04:51,610 --> 00:04:58,870 gyda rhesi o'r tabl, sy'n un Gwybodaeth defnyddiwr o'r set gyfan. 99 00:04:58,870 --> 00:05:03,210 >> Felly pob colofn SQL yn gallu gadw data o fath data penodol. 100 00:05:03,210 --> 00:05:06,560 Felly, rydym yn fath o dileu hwn syniad o fathau o ddata yn PHP, 101 00:05:06,560 --> 00:05:08,747 ond maent yn ôl yma yn SQL. 102 00:05:08,747 --> 00:05:10,080 Ac mae llawer o fathau o ddata. 103 00:05:10,080 --> 00:05:13,420 Dyma dim ond 20 ohonyn nhw, ond Nid yw hyd yn oed pob un ohonynt. 104 00:05:13,420 --> 00:05:16,240 Felly mae gennym syniadau fel INTs-- Integers-- mae'n debyg yn gwybod 105 00:05:16,240 --> 00:05:17,760 y gall y golofn hon ddal cyfanrifau. 106 00:05:17,760 --> 00:05:21,077 Ac mae yna amrywiadau thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Efallai nad ydym bob amser yn angen pedair brathiadau. 108 00:05:22,660 --> 00:05:26,800 Efallai mae angen wyth bytes, ac felly rydym yn yn gallu defnyddio amrywiadau hyn ar gyfanrifau 109 00:05:26,800 --> 00:05:28,510 i fod ychydig yn fwy o le effeithlon. 110 00:05:28,510 --> 00:05:31,899 Gallwn wneud rhifau degol, rydym yn yn gallu ei wneud rhifau pwynt arnawf. 111 00:05:31,899 --> 00:05:32,940 Mae'r rhain yn eithaf tebyg. 112 00:05:32,940 --> 00:05:34,773 Mae rhai gwahaniaethau, ac os byddech 113 00:05:34,773 --> 00:05:37,330 yn hoffi edrych ar y Math SQL o'r canllaw, yr ydych 114 00:05:37,330 --> 00:05:40,670 gallu gweld yr hyn y mae'r bychan gwahaniaethau rhyngddynt. 115 00:05:40,670 --> 00:05:43,250 >> Efallai rydym am i storio gwybodaeth am ddyddiad ac amser. 116 00:05:43,250 --> 00:05:47,047 Efallai ein bod yn cadw golwg ar pan ymunodd y defnyddiwr ein gwefan, 117 00:05:47,047 --> 00:05:48,880 ac felly efallai yr ydym am i gael colofn sy'n 118 00:05:48,880 --> 00:05:52,820 amser ddyddiad neu stamp amser sy'n yn dangos pan fydd y defnyddiwr mewn gwirionedd 119 00:05:52,820 --> 00:05:54,130 ymuno. 120 00:05:54,130 --> 00:05:56,132 Gallwn wneud geometries a linestrings. 121 00:05:56,132 --> 00:05:57,340 Mae hyn mewn gwirionedd 'n bert oera. 122 00:05:57,340 --> 00:06:01,410 Gallem mapio ardal ddaearyddol gan ddefnyddio 123 00:06:01,410 --> 00:06:05,110 GIS cyfesurynnau i blotio allan ardal. 124 00:06:05,110 --> 00:06:08,580 Gall Felly mewn gwirionedd yn storio fath gwybodaeth mewn colofn SQL. 125 00:06:08,580 --> 00:06:11,390 >> TEXT yn unig yw smotiau mawr o destun, efallai. 126 00:06:11,390 --> 00:06:12,840 ENUMs yn fath o ddiddorol. 127 00:06:12,840 --> 00:06:16,080 Maent mewn gwirionedd yn bodoli yn C. Nid ydym yn ei wneud siarad am nhw oherwydd dydyn nhw ddim 128 00:06:16,080 --> 00:06:19,110 ofnadwy a ddefnyddir yn gyffredin, o leiaf CS50. 129 00:06:19,110 --> 00:06:22,680 Ond ei fod yn fath o ddata wedi'u rhifo, a oedd yn yn gallu cynnal gwerthoedd cyfyngedig. 130 00:06:22,680 --> 00:06:25,940 >> Ceir enghraifft dda iawn fyddai yma yn i greu enum lle mae'r saith 131 00:06:25,940 --> 00:06:29,394 Gwerthoedd posib yw Dydd Sul, Dydd Llun, Dydd Mawrth, Dydd Mercher, Dydd Iau, Dydd Gwener, 132 00:06:29,394 --> 00:06:30,060 Dydd Sadwrn, dde? 133 00:06:30,060 --> 00:06:33,311 Bod Diwrnod math data o Nid yw wythnos yn bodoli, 134 00:06:33,311 --> 00:06:35,310 ond gallem greu Math data wedi'u rhifo o'r fath 135 00:06:35,310 --> 00:06:39,400 y gall y golofn dim ond byth yn dal un o'r rhai a saith o werthoedd posibl. 136 00:06:39,400 --> 00:06:44,300 Rydym wedi rhifo pob o'r gwerthoedd posib. 137 00:06:44,300 --> 00:06:47,630 >> Yna, mae gennym CHAR a VARCHAR, ac rwyf wedi lliwio rhain gwyrdd 138 00:06:47,630 --> 00:06:49,505 oherwydd ein bod yn mewn gwirionedd mynd i gymryd eiliad 139 00:06:49,505 --> 00:06:51,950 i siarad am y gwahaniaeth rhwng y ddau beth. 140 00:06:51,950 --> 00:06:55,780 Felly CHAR, yn wahanol C lle CHAR yn gymeriad unigol, 141 00:06:55,780 --> 00:07:00,730 mewn SQL a CHAR yn cyfeirio at llinyn hyd penodol. 142 00:07:00,730 --> 00:07:02,620 A phan fyddwn yn creu hyn colofn, yr ydym mewn gwirionedd 143 00:07:02,620 --> 00:07:05,070 Gall pennu hyd y llinyn. 144 00:07:05,070 --> 00:07:08,080 >> Felly, yn yr enghraifft hon, efallai y byddwn yn dweud CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Mae hynny'n golygu bod pob elfen yn y golofn honno 146 00:07:11,190 --> 00:07:13,910 bydd yn cynnwys 10 o bytes o wybodaeth. 147 00:07:13,910 --> 00:07:15,770 Dim mwy, dim llai. 148 00:07:15,770 --> 00:07:21,780 Felly, os ydym yn ceisio rhoi mewn 15 bit neu elfen 15 cymeriad 149 00:07:21,780 --> 00:07:25,340 neu werth mewn i golofn hon, rydym yn unig yn cael y 10 cyntaf. 150 00:07:25,340 --> 00:07:27,290 Os byddwn yn ei roi yn y ddau gwerth hir gymeriad, 151 00:07:27,290 --> 00:07:30,700 rydym yn mynd i gael y ddau cymeriadau, ac yna wyth o brathiadau null. 152 00:07:30,700 --> 00:07:34,990 Byth Byddwn yn fwy effeithlon na hynny. 153 00:07:34,990 --> 00:07:37,727 >> Mae VARCHAR yn fath o fel ein syniad o gyfres 154 00:07:37,727 --> 00:07:39,560 ein bod yn gyfarwydd gyda o C neu gan PHP. 155 00:07:39,560 --> 00:07:40,830 Mae'n llinyn hyd amrywiol. 156 00:07:40,830 --> 00:07:42,560 A phan fyddwch yn creu golofn hon, 'ch jyst 157 00:07:42,560 --> 00:07:44,860 pennu uchafswm y darnau posibl. 158 00:07:44,860 --> 00:07:49,065 Felly efallai 99, neu yn gyffredin 255. 159 00:07:49,065 --> 00:07:50,440 Byddai hynny'n uchafswm hyd. 160 00:07:50,440 --> 00:07:52,890 Ac felly os ydym yn cadw 15 llinyn cymeriad, 161 00:07:52,890 --> 00:07:56,157 byddem yn defnyddio 15 o bytes, efallai 16 bytes gyfer y terminator null. 162 00:07:56,157 --> 00:07:57,990 Os byddwn yn storio tri llinyn cymeriad, 163 00:07:57,990 --> 00:08:01,120 byddem yn defnyddio tair neu bedair bytes. 164 00:08:01,120 --> 00:08:03,050 Ond ni fyddem yn defnyddio'r 99 llawn. 165 00:08:03,050 --> 00:08:05,190 >> Felly pam y byddai'n rhaid ddau? 166 00:08:05,190 --> 00:08:08,210 Wel, os bydd angen i chyfrif i maes sut rhywbeth hir yw gyda VARCHAR, 167 00:08:08,210 --> 00:08:10,680 mae'n rhaid i ni fath o ailadrodd ar ei draws yn union fel y gwnaethom yn C 168 00:08:10,680 --> 00:08:12,230 a chyfrif i maes lle mae'n dod i ben. 169 00:08:12,230 --> 00:08:15,920 Tra os ydym yn gwybod bod popeth yn y golofn hon yw 10 bytes, efallai 170 00:08:15,920 --> 00:08:19,220 rydym yn gwybod y wybodaeth, gallwn neidio 10 bytes, 10 bytes, 10 bytes, 10 bytes, 171 00:08:19,220 --> 00:08:21,790 a bob amser yn dod o hyd i'r gan ddechrau y llinyn. 172 00:08:21,790 --> 00:08:25,210 >> Felly efallai y byddwn yn cael rhywfaint o lle gwastraffu gyda CHAR, 173 00:08:25,210 --> 00:08:28,510 ond efallai mae 'na masnach off o gael cyflymder yn well 174 00:08:28,510 --> 00:08:30,160 wrth lywio y gronfa ddata. 175 00:08:30,160 --> 00:08:32,330 Ond efallai rydym am i'r hyblygrwydd o VARCHAR 176 00:08:32,330 --> 00:08:36,710 yn hytrach na having-- Os yw ein CHAR Roedd 255, ond mae'r rhan fwyaf o'n defnyddwyr 177 00:08:36,710 --> 00:08:40,537 mai dim ond mewnbynnu tri neu bedwar bytes gwerth o wybodaeth neu dair neu bedair 178 00:08:40,537 --> 00:08:41,870 cymeriadau gwerth o wybodaeth. 179 00:08:41,870 --> 00:08:44,324 >> Ond mae rhai defnyddwyr yn defnyddio y cyfan 255, efallai 180 00:08:44,324 --> 00:08:45,990 Byddai VARCHAR yn fwy priodol yno. 181 00:08:45,990 --> 00:08:49,840 Mae'n fath o fasnach i ffwrdd, ac Yn gyffredinol, at ddibenion CS50, 182 00:08:49,840 --> 00:08:54,107 Nid oes angen i chi boeni gormod am p'un a ydych yn defnyddio CHAR neu VARCHAR. 183 00:08:54,107 --> 00:08:57,190 Ond yn y byd go iawn, y pethau hyn yn bwysig gan fod yr holl o'r colofnau hyn 184 00:08:57,190 --> 00:08:59,300 cymryd lle corfforol fel y cyfryw. 185 00:08:59,300 --> 00:09:04,150 A gofod ffisegol, yn y byd go iawn, yn dod ar bremiwm. 186 00:09:04,150 --> 00:09:06,800 >> Felly un ystyriaeth arall pan fyddwch yn adeiladu tabl 187 00:09:06,800 --> 00:09:09,840 yw i ddewis un golofn i fod yn hyn a elwir yn allwedd gynradd. 188 00:09:09,840 --> 00:09:14,350 Ac allwedd gynradd yn colofn lle mae pob gwerth unigol yn unigryw. 189 00:09:14,350 --> 00:09:19,980 Ac mae hynny'n golygu eich bod yn gallu hawdd ddewis un rhes yn unig drwy edrych 190 00:09:19,980 --> 00:09:22,450 ar yr allwedd gynradd y rhes. 191 00:09:22,450 --> 00:09:24,580 Felly, er enghraifft, eich bod yn gyffredinol, gyda defnyddwyr, 192 00:09:24,580 --> 00:09:27,210 nad ydych am ddau ddefnyddiwr sy'n yr un rhif adnabod defnyddiwr. 193 00:09:27,210 --> 00:09:28,960 Ac felly efallai bod gennych llawer o wybodaeth, 194 00:09:28,960 --> 00:09:30,793 ac efallai y gall dau ddefnyddiwr yn cael yr un name-- 195 00:09:30,793 --> 00:09:32,650 mae gennych John Smith a John Smith. 196 00:09:32,650 --> 00:09:34,520 Nid yw hynny'n reidrwydd yn broblem, oherwydd bod pobl yn lluosog 197 00:09:34,520 --> 00:09:35,830 yn y byd a enwir John Smith. 198 00:09:35,830 --> 00:09:40,766 Ond dim ond un rhif adnabod defnyddiwr gennym 10, un defnyddiwr rhif 11, 12, 13 adnabod. 199 00:09:40,766 --> 00:09:42,640 Nid oes gennym ddau ddefnyddiwr gyda'r un nifer, 200 00:09:42,640 --> 00:09:46,010 ac felly efallai rhifau enw defnyddiwr fyddai allwedd gynradd da. 201 00:09:46,010 --> 00:09:48,610 >> Nid oes gennym unrhyw ddyblygu, ac y gallwn yn awr yn unigryw 202 00:09:48,610 --> 00:09:52,619 nodi pob un rhes yn unig drwy edrych ar y golofn honno. 203 00:09:52,619 --> 00:09:55,410 Dewis allweddi cynradd yn gallu mewn gwirionedd gwneud gweithrediadau tabl dilynol 204 00:09:55,410 --> 00:09:59,710 yn llawer haws oherwydd gallwch trosoledd y ffaith bod rhai rhesi bydd 205 00:09:59,710 --> 00:10:02,720 yn unigryw, neu golofn penodol eich cronfa ddata neu dabl 206 00:10:02,720 --> 00:10:06,030 Bydd yn unigryw i godi rhesi penodol allan. 207 00:10:06,030 --> 00:10:08,790 >> Gallwch hefyd gael cynradd ar y cyd allweddol, y gallwch ddod o hyd i achlysur 208 00:10:08,790 --> 00:10:11,720 i'w defnyddio, sydd ychydig yn cyfuniad o ddwy golofn sy'n 209 00:10:11,720 --> 00:10:13,280 yn sicr o fod yn unigryw. 210 00:10:13,280 --> 00:10:16,410 Felly efallai gennych un colofn dyna Fel a brecwast, 211 00:10:16,410 --> 00:10:19,290 un golofn dyna un, dau, a thri, ond wnewch chi helpu dim ond erioed 212 00:10:19,290 --> 00:10:23,660 cael A1 sengl, un A2, ac yn y blaen ac yn y blaen. 213 00:10:23,660 --> 00:10:28,980 Ond efallai y bydd gennych B2, a C2, neu A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Felly, efallai y byddwch yn cael Fel lluosog, lluosog Brecwast, rhai lluosog, fesul dau lluosog, 215 00:10:32,840 --> 00:10:38,567 ond gallwch ond byth yn cael sengl A1, B2, C3, ac yn y blaen. 216 00:10:38,567 --> 00:10:40,400 Felly, fel y dywedais, SQL yn iaith raglennu, 217 00:10:40,400 --> 00:10:42,024 ond mae ganddo eirfa gyfyngedig deg. 218 00:10:42,024 --> 00:10:44,880 Dyw hi ddim yn hollol mor eang â C a PHP a ieithoedd eraill 219 00:10:44,880 --> 00:10:46,350 ein bod yn siarad yn y cwrs. 220 00:10:46,350 --> 00:10:49,960 Mae'n fwy verbose iaith na'r hyn rydym yn 221 00:10:49,960 --> 00:10:52,789 mynd i siarad am yn hyn fideo, gan fod yn y fideo hwn 222 00:10:52,789 --> 00:10:54,830 rydym yn mynd i siarad am pedwar gweithrediad ein bod yn 223 00:10:54,830 --> 00:10:55,720 Gall perfformio ar fwrdd. 224 00:10:55,720 --> 00:10:56,761 >> Mae mwy na hyn. 225 00:10:56,761 --> 00:10:58,730 Gallwn wneud mwy na hyn, ond ar gyfer ein dibenion, 226 00:10:58,730 --> 00:11:02,250 rydym yn gyffredinol yn mynd i gael ei ddefnyddio dim ond pedwar mewnosoder operations--, 227 00:11:02,250 --> 00:11:05,360 dewis, diweddaru, ac yn dileu. 228 00:11:05,360 --> 00:11:08,750 Ac mae'n debyg y gallwch ddyfalu reddfol beth pob un o'r pedwar o'r pethau hyn yn ei wneud. 229 00:11:08,750 --> 00:11:12,520 Ond byddwn yn mynd i mewn i ychydig o fanylion am bob un. 230 00:11:12,520 --> 00:11:15,780 >> Felly, ar gyfer ddibenion yr fideo, gadewch i ni dybio 231 00:11:15,780 --> 00:11:18,870 rydym wedi y canlynol dau tablau yn un gronfa ddata. 232 00:11:18,870 --> 00:11:23,460 Mae gennym fwrdd o'r enw Defnyddwyr sydd wedi pedwar columns-- rhif adnabod, enw defnyddiwr, 233 00:11:23,460 --> 00:11:25,350 cyfrinair, a enw llawn. 234 00:11:25,350 --> 00:11:27,430 Ac mae gennym ail tabl yn yr un gronfa ddata 235 00:11:27,430 --> 00:11:32,129 Gelwir Moms mai dim ond yn storio gwybodaeth am enw defnyddiwr a mam. 236 00:11:32,129 --> 00:11:33,920 Felly, ar gyfer pob un o'r enghreifftiau yn y fideo hwn, rydym yn chi helpu 237 00:11:33,920 --> 00:11:37,945 yn defnyddio'r gronfa ddata hon ac diweddariadau dilynol iddo. 238 00:11:37,945 --> 00:11:40,070 Felly, gadewch i ni ddweud ein bod am ychwanegu gwybodaeth at dabl. 239 00:11:40,070 --> 00:11:44,460 Dyna beth y mewnosodiad weithredu yn ei wneud. 240 00:11:44,460 --> 00:11:46,550 Wrth egluro pob un gorchmynion hyn, dw i'n mynd 241 00:11:46,550 --> 00:11:48,860 rhoi sgerbwd cyffredinol i chi ei ddefnyddio. 242 00:11:48,860 --> 00:11:51,661 Gan fod y bôn, mae'r ymholiadau yn mynd yn edrych 'n bert debyg, 243 00:11:51,661 --> 00:11:54,660 rydym yn jyst yn mynd i fod yn newid ychydig yn wahanol ddarnau o wybodaeth 244 00:11:54,660 --> 00:11:56,750 i wneud pethau gwahanol gyda'r bwrdd. 245 00:11:56,750 --> 00:11:59,200 >> Felly, ar gyfer RHOWCH, y sgerbwd yn edrych yn fath o fel hyn. 246 00:11:59,200 --> 00:12:02,230 Rydym am i fewnosod i mewn i tabl penodol. 247 00:12:02,230 --> 00:12:05,290 Yna, mae gennym parenthesis agor a rhestr o golofnau 248 00:12:05,290 --> 00:12:08,070 ein bod am roi gwerthoedd ar. 249 00:12:08,070 --> 00:12:10,974 Cromfachau Close, mae'r yn dilyn gwerthoedd, ac yna 250 00:12:10,974 --> 00:12:13,390 unwaith eto, rydym yn rhestru'r gwerthoedd rydym am roi yn y tabl. 251 00:12:13,390 --> 00:12:15,950 >> Felly yn enghraifft o hyn fyddai'r canlynol. 252 00:12:15,950 --> 00:12:19,170 Rwyf am i fewnosod yn y tabl defnyddwyr y columns-- canlynol 253 00:12:19,170 --> 00:12:21,010 enw defnyddiwr, cyfrinair, a fullname. 254 00:12:21,010 --> 00:12:25,282 Felly rhes newydd lle rydw i'n rhoi yn y rhai tair colofn ac rydym yn 255 00:12:25,282 --> 00:12:30,030 mynd i roi yn y gwerthoedd Newman, USMAIL, a Newman. 256 00:12:30,030 --> 00:12:32,730 Felly, yn yr achos hwn, rwy'n rhoi'r Newman llythrennau bach 257 00:12:32,730 --> 00:12:38,710 i mewn i'r golofn enw defnyddiwr, cyfrinair USMAIL, ac mae'r brifddinas enw llawn N 258 00:12:38,710 --> 00:12:41,940 Newman i mewn i'r golofn fullname. 259 00:12:41,940 --> 00:12:44,240 >> Felly, dyma beth y gronfa ddata yn edrych fel o'r blaen. 260 00:12:44,240 --> 00:12:48,250 Dyma beth y tabl ddefnyddwyr ar y top edrych fel cyn i ni yn gwneud hyn. 261 00:12:48,250 --> 00:12:50,760 Ar ôl i ni gyflawni'r hyn cwestiwn, rydym yn cael hyn. 262 00:12:50,760 --> 00:12:54,790 Rydym wedi ychwanegu rhes newydd at y bwrdd. 263 00:12:54,790 --> 00:12:56,810 Ond sylwi ar un peth hwn nad oeddwn yn pennu, 264 00:12:56,810 --> 00:12:59,880 ond rhywsut mae gen i werth amdano, sef hyn yn 12 iawn yma. 265 00:12:59,880 --> 00:13:02,820 Doeddwn i ddim yn dweud fy mod i eisiau rhoi rhif adnabod i mewn 'na. 266 00:13:02,820 --> 00:13:04,900 Roeddwn i eisiau rhoi enw defnyddiwr, cyfrinair, fullname. 267 00:13:04,900 --> 00:13:06,440 Ac yr wyf yn gwneud hynny, mae hynny'n iawn. 268 00:13:06,440 --> 00:13:07,760 >> Ond rwyf hefyd yn cael hyn yn 12. 269 00:13:07,760 --> 00:13:09,490 Pam wnes i gael hyn 12? 270 00:13:09,490 --> 00:13:12,904 Wel, mae'n ymddangos fod pan fyddwch yn diffinio 271 00:13:12,904 --> 00:13:15,570 colofn sydd yn mynd i fod yn eich allwedd gynradd, sydd fel arfer yn, 272 00:13:15,570 --> 00:13:16,510 fel y dywedais, mae nifer adnabod. 273 00:13:16,510 --> 00:13:18,718 Nid yw bob amser o reidrwydd mynd i fod yn rhif adnabod, 274 00:13:18,718 --> 00:13:22,380 ond fel arfer mae'n syniad da i cael rhyw fath o werth gyfanrif. 275 00:13:22,380 --> 00:13:25,950 Mae gennych opsiwn yn phpMyAdmin pan fyddwch yn creu eich cronfa ddata 276 00:13:25,950 --> 00:13:31,130 neu eich bwrdd i osod y colofn fel auto incrementing. 277 00:13:31,130 --> 00:13:34,520 >> Pa yn syniad da iawn pan eich bod yn gweithio gydag allwedd gynradd, 278 00:13:34,520 --> 00:13:39,330 oherwydd eich bod am i bob gwerth yn y golofn honno fod yn unigryw. 279 00:13:39,330 --> 00:13:43,310 Ac os byddwch yn anghofio i bennu am fwy nag un person, 280 00:13:43,310 --> 00:13:46,240 ydych yn awr mewn sefyllfa lle bellach yn y golofn honno yn unigryw. 281 00:13:46,240 --> 00:13:50,200 Mae gennych ddau bylchau, felly dim y gallwch hirach unigryw nodi column-- 282 00:13:50,200 --> 00:13:54,150 neu os ydych mwyach unigryw y gall nodi rhes yn seiliedig ar y golofn honno. 283 00:13:54,150 --> 00:13:57,010 Mae'n colli ei holl Gwerth fel allwedd gynradd. 284 00:13:57,010 --> 00:14:02,010 >> Ac felly yn ôl pob golwg yr hyn yr wyf wedi ei wneud yma wedi ei ffurfweddu y ID defnyddiwr 285 00:14:02,010 --> 00:14:07,790 golofn i auto gynyddiad fel bod pob tro rwy'n ychwanegu gwybodaeth at y bwrdd, 286 00:14:07,790 --> 00:14:12,220 bydd yn rhoi i mi yn awtomatig gwerth am yr allwedd gynradd. 287 00:14:12,220 --> 00:14:15,570 Felly, gallaf byth yn anghofio gwneud hynny oherwydd Bydd y gronfa ddata yn ei wneud i mi. 288 00:14:15,570 --> 00:14:16,587 Felly dyna fath o 'n glws. 289 00:14:16,587 --> 00:14:18,670 Ac felly dyna pam rydym yn cael 12 i mewn 'na, am fy mod i wedi 290 00:14:18,670 --> 00:14:21,772 gosod y golofn hyd at auto gynyddiad. 291 00:14:21,772 --> 00:14:23,730 Os byddaf yn ychwanegu rhywun arall byddai'n fod 13, os wyf yn ei llwytho 292 00:14:23,730 --> 00:14:27,890 rhywun arall byddai'n fod 14, ac yn y blaen. 293 00:14:27,890 --> 00:14:30,190 >> Felly gadewch i ni dim ond gwneud un gosod mwy. 294 00:14:30,190 --> 00:14:34,530 Byddwn yn mewnosod i mewn i'r tabl moms, yn arbennig, yr enw defnyddiwr a mam 295 00:14:34,530 --> 00:14:37,390 colofn, gwerthoedd Kramer a Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 Ac felly rydym wedi cael hyn o'r blaen. 297 00:14:39,140 --> 00:14:41,800 Ar ôl i ni fod yn gweithredu SQL query, rydym wedi hyn. 298 00:14:41,800 --> 00:14:47,290 Rydym wedi ychwanegu Kramer a Babs Kramer at y tabl moms. 299 00:14:47,290 --> 00:14:48,350 >> Felly mae hynny'n fewnosod. 300 00:14:48,350 --> 00:14:51,850 SELECT yw'r hyn rydym yn ei ddefnyddio i echdynnu gwybodaeth o'r tabl. 301 00:14:51,850 --> 00:14:54,390 Felly dyma sut cawn gwybodaeth allan o'r gronfa ddata. 302 00:14:54,390 --> 00:14:59,589 A gorchmynion felly SELECT yn mynd i fod a ddefnyddir yn aml iawn mewn rhaglennu. 303 00:14:59,589 --> 00:15:02,130 Mae'r cyffredinol framework-- y sgerbwd cyffredinol yn edrych fel hyn. 304 00:15:02,130 --> 00:15:06,550 Dewiswch set o golofnau o tabl, ac yna optionally 305 00:15:06,550 --> 00:15:11,090 gallwch bennu condition-- neu yr hyn yr ydym fel arfer yn ei alw'n predicate, 306 00:15:11,090 --> 00:15:13,010 yw'r term a ddefnyddiwn yn SQL fel arfer. 307 00:15:13,010 --> 00:15:16,490 >> Ond yn y bôn yr hyn rhesi penodol yr ydych am gael. 308 00:15:16,490 --> 00:15:19,100 Os ydych eisiau, yn hytrach na chael popeth, cul i lawr, 309 00:15:19,100 --> 00:15:20,060 dyma lle y byddech yn gwneud hynny. 310 00:15:20,060 --> 00:15:22,777 Ac yna yn ddewisol, gallwch hefyd archebu dros y golofn penodol. 311 00:15:22,777 --> 00:15:25,860 Felly efallai y byddwch am gael pethau didoli yn nhrefn yr wyddor yn seiliedig ar un golofn 312 00:15:25,860 --> 00:15:27,540 neu yn seiliedig yn nhrefn yr wyddor ar un arall. 313 00:15:27,540 --> 00:15:30,610 >> Unwaith eto, BLE a GORCHYMYN GAN yn ddewisol. 314 00:15:30,610 --> 00:15:32,681 Ond byddant yn debygol o fod yn useful-- arbennig 315 00:15:32,681 --> 00:15:34,680 BLE bydd yn ddefnyddiol cul i lawr fel nad ydych yn ei wneud 316 00:15:34,680 --> 00:15:37,460 cael eich gronfa ddata gyfan yn ôl ac rhaid ei phrosesu, 'ch jyst cael 317 00:15:37,460 --> 00:15:39,300 y darnau ohono eich bod yn poeni am. 318 00:15:39,300 --> 00:15:44,932 Felly, er enghraifft, efallai y byddwn am i ddewis Rhif adnabod a fullname gan ddefnyddwyr. 319 00:15:44,932 --> 00:15:46,140 Felly beth allai hyn yn edrych? 320 00:15:46,140 --> 00:15:48,270 Felly dyma fy mwrdd ddefnyddwyr. 321 00:15:48,270 --> 00:15:51,080 Rwyf am i ddewis idnum a fullname gan ddefnyddwyr. 322 00:15:51,080 --> 00:15:52,300 Beth ydw i'n mynd i gael? 323 00:15:52,300 --> 00:15:53,580 Rydw i'n mynd i gael hyn. 324 00:15:53,580 --> 00:15:56,930 Doeddwn i ddim yn culhau i lawr, felly rwy'n cael y rhif adnabod ar gyfer pob rhes 325 00:15:56,930 --> 00:16:00,850 a dwi'n cael y llawn enw o bob rhes. 326 00:16:00,850 --> 00:16:02,210 >> IAWN. 327 00:16:02,210 --> 00:16:05,640 Beth os wyf am i ddewis cyfrinair gan ddefnyddwyr WHERE-- felly nawr 328 00:16:05,640 --> 00:16:10,370 Im 'yn ychwanegu amod, a predicate-- lle idnum yn llai na 12. 329 00:16:10,370 --> 00:16:13,660 Felly dyma fy cronfa ddata eto, fy mwrdd defnyddwyr y brig. 330 00:16:13,660 --> 00:16:17,030 Beth ydw i'n mynd i gael os wyf eisiau dewiswch y wybodaeth honno, y cyfrinair, 331 00:16:17,030 --> 00:16:21,550 lle ID defnyddiwr neu idnum yn llai na 12? 332 00:16:21,550 --> 00:16:24,910 Rydw i'n mynd i gael hyn gwybodaeth yn ôl, dde? 333 00:16:24,910 --> 00:16:29,170 Mae'n digwydd bod idnum yw 10, llai na 12, rhif ID 11 yn llai na 12. 334 00:16:29,170 --> 00:16:32,160 Im 'yn cael y cyfrinair ar gyfer rhesi hynny. 335 00:16:32,160 --> 00:16:33,914 Dyna beth yr wyf yn gofyn amdano. 336 00:16:33,914 --> 00:16:34,580 Beth am hyn? 337 00:16:34,580 --> 00:16:39,170 Beth os wyf am i ddewis seren gan tabl moms lle enw defnyddiwr hafal Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, dewiswch seren yw'r arbennig math o gerdyn gwyllt hyn a elwir yn 339 00:16:43,780 --> 00:16:45,670 a ddefnyddiwn i gael popeth. 340 00:16:45,670 --> 00:16:48,620 Felly, maent yn ei ddweud dethol enw defnyddiwr mam coma, a oedd yn 341 00:16:48,620 --> 00:16:51,060 digwydd bod yr unig dwy golofn o'r tabl hwn, 342 00:16:51,060 --> 00:16:53,260 Gallaf dewiswch seren a chael popeth 343 00:16:53,260 --> 00:16:55,030 lle mae'r enw defnyddiwr hafal Jerry. 344 00:16:55,030 --> 00:16:59,380 Ac felly dyna beth fyddwn i'n ei gael os wyf yn gwneud hynny ymholiad penodol. 345 00:16:59,380 --> 00:17:01,810 >> Yn awr, cronfeydd data yn cael eu wych oherwydd eu bod yn caniatáu 346 00:17:01,810 --> 00:17:06,074 ni i drefnu gwybodaeth o bosibl ychydig yn fwy effeithlon nag yr ydym 347 00:17:06,074 --> 00:17:06,740 efallai fel arall. 348 00:17:06,740 --> 00:17:10,240 Nid ydym o reidrwydd i storio pob darn perthnasol o wybodaeth 349 00:17:10,240 --> 00:17:12,230 am ddefnyddiwr yn yr un tabl. 350 00:17:12,230 --> 00:17:13,730 Cawsom ddwy tablau yno. 351 00:17:13,730 --> 00:17:15,734 >> Mae angen i storio enw mam pawb yn, 352 00:17:15,734 --> 00:17:18,900 ac efallai nad oes gennym nawdd cymdeithasol Rhif, yr ydym wedi eu dyddiad geni. 353 00:17:18,900 --> 00:17:21,819 Nid yw bob amser angen hynny i fod yn yr un tabl. 354 00:17:21,819 --> 00:17:25,339 Cyn belled ag y gallwn ddiffinio berthynas rhwng y tables-- 355 00:17:25,339 --> 00:17:28,440 a dyna lle y perthynol tymor cronfa ddata fath o yn dod 356 00:17:28,440 --> 00:17:32,130 i mewn i play-- cyn belled ag y gallwn ddiffinio berthynas rhwng y byrddau, 357 00:17:32,130 --> 00:17:35,545 gallwn fath o yn adrannau neu bethau haniaethol ffordd, 358 00:17:35,545 --> 00:17:37,670 lle rydym yn unig yn cael y Gwybodaeth bwysig iawn 359 00:17:37,670 --> 00:17:39,270 yr ydym yn gofalu amdanynt yn nhabl y defnyddiwr. 360 00:17:39,270 --> 00:17:43,220 Ac yna mae gennym wybodaeth ategol neu wybodaeth ychwanegol mewn tablau eraill 361 00:17:43,220 --> 00:17:48,260 ein bod yn gallu cysylltu yn ôl at y prif tabl defnyddwyr mewn ffordd arbennig. 362 00:17:48,260 --> 00:17:52,200 >> Felly dyma ni gael y rhain ddau dabl, ond mae 'na berthynas rhyngddynt, 363 00:17:52,200 --> 00:17:53,010 iawn? 364 00:17:53,010 --> 00:17:55,070 Mae'n ymddangos fel enw defnyddiwr Efallai fod yn rhywbeth 365 00:17:55,070 --> 00:17:59,909 sy'n bodoli yn gyffredin rhwng y ddau tablau gwahanol. 366 00:17:59,909 --> 00:18:01,700 Felly beth os ydym yn awr wedi sefyllfa lle rydym 367 00:18:01,700 --> 00:18:06,046 am gael enw llawn y defnyddiwr o tabl y defnyddiwr, ac mae eu mam 368 00:18:06,046 --> 00:18:07,170 enwi o'r tabl fam? 369 00:18:07,170 --> 00:18:10,960 Nid oes gennym ffordd i gael hynny fel y mae, dde? 370 00:18:10,960 --> 00:18:17,790 Does dim tabl sengl sy'n cynnwys y ddau enw llawn ac enw'r fam. 371 00:18:17,790 --> 00:18:20,400 Nid oes gennym yr opsiwn hwnnw o'r hyn yr ydym wedi ei weld hyd yn hyn. 372 00:18:20,400 --> 00:18:22,950 >> Ac felly mae'n rhaid i ni gyflwyno y syniad o YMUNWCH. 373 00:18:22,950 --> 00:18:24,857 Ac yn ymuno yn ôl pob tebyg y complex-- fwyaf 374 00:18:24,857 --> 00:18:27,940 'i' 'n sylweddol gweithrediad mwyaf cymhleth rydym yn mynd i siarad am yn y fideo. 375 00:18:27,940 --> 00:18:30,040 Maent yn ychydig yn gymhleth, ond ar ôl i chi gael y hongian ohono, 376 00:18:30,040 --> 00:18:31,248 eu bod mewn gwirionedd yn ddim yn rhy ddrwg. 377 00:18:31,248 --> 00:18:32,820 'I' jyst yn achos arbennig o SELECT. 378 00:18:32,820 --> 00:18:37,120 Rydym yn mynd i ddewis set o colofnau o dabl ymuno 379 00:18:37,120 --> 00:18:40,650 mewn ail dabl ar rai predicate. 380 00:18:40,650 --> 00:18:45,340 >> Yn yr achos hwn, yn meddwl am y peth yn hoffi this-- tabl un yn un cylch dros yma, 381 00:18:45,340 --> 00:18:47,530 tabl dau yw cylch arall dros yma. 382 00:18:47,530 --> 00:18:49,410 A bod predicate rhan yn y canol, mae'n 383 00:18:49,410 --> 00:18:51,701 fath o fel os ydych yn meddwl am fel diagram Venn, beth 384 00:18:51,701 --> 00:18:52,670 oes ganddynt yn gyffredin? 385 00:18:52,670 --> 00:18:55,960 Rydym yn awyddus i gysylltu'r rhain ddau dabl seiliedig ar yr hyn sydd ganddynt yn gyffredin 386 00:18:55,960 --> 00:19:01,230 ac yn creu y tabl hwn ddamcaniaethol hynny yw uno'r ddau gyda'i gilydd. 387 00:19:01,230 --> 00:19:03,480 Felly byddwn yn gweld hyn mewn esiampl ac efallai y byddant yn helpu 388 00:19:03,480 --> 00:19:04,521 clirio i fyny ychydig bach. 389 00:19:04,521 --> 00:19:09,260 Felly efallai y byddwch am ddewis user.fullname a moms.mother 390 00:19:09,260 --> 00:19:13,220 gan ddefnyddwyr yn ymuno yn y tabl moms ym mhob sefyllfa 391 00:19:13,220 --> 00:19:16,790 lle y golofn enw defnyddiwr yr un fath rhyngddynt. 392 00:19:16,790 --> 00:19:19,240 Ac mae hyn yn newydd Syntax yma, defnyddiwr hwn. 393 00:19:19,240 --> 00:19:20,460 a moms .. 394 00:19:20,460 --> 00:19:26,697 Os ydw i'n gwneud tablau lluosog gyda'i gilydd, gallaf nodi tabl. 395 00:19:26,697 --> 00:19:29,530 Gallaf wahaniaethu mewn ar neilltuol hynny ymlaen yn y gwaelod iawn yno. 396 00:19:29,530 --> 00:19:33,220 Gallaf gwahaniaethu rhwng y enw defnyddiwr golofn y tabl defnyddiwr 397 00:19:33,220 --> 00:19:36,010 o'r golofn enw defnyddiwr y tabl moms, sy'n otherwise-- 398 00:19:36,010 --> 00:19:38,070 os ydym newydd ei ddweud enw defnyddiwr hafal enw defnyddiwr, nad yw'n wir 399 00:19:38,070 --> 00:19:38,970 golygu unrhyw beth. 400 00:19:38,970 --> 00:19:41,440 Rydym am wneud hynny lle maent yn cyd-fynd. 401 00:19:41,440 --> 00:19:46,080 >> Felly, yr wyf yn gallu nodi y tabl a'r enw colofn mewn achos o sefyllfa 402 00:19:46,080 --> 00:19:48,370 lle y byddai'n aneglur beth rwy'n siarad amdano. 403 00:19:48,370 --> 00:19:51,880 Felly dyna i gyd rwy'n ei wneud yna rwy'n gan ddweud y golofn hon o'r tabl hwn, 404 00:19:51,880 --> 00:19:54,020 a bod yn eglur iawn. 405 00:19:54,020 --> 00:19:56,810 Felly unwaith eto, rwy'n ddewis y enw llawn ac enw'r y fam 406 00:19:56,810 --> 00:20:00,950 o'r tabl ddefnyddwyr cysylltu â'i gilydd â'r tabl moms ym mhob sefyllfa 407 00:20:00,950 --> 00:20:05,960 lle maent yn rhannu y column-- maent yn rhannu y syniad enw defnyddiwr. 408 00:20:05,960 --> 00:20:08,580 >> Felly dyma y tablau oedd gennym o'r blaen. 409 00:20:08,580 --> 00:20:12,210 Mae hyn yn y cyflwr ein cronfa ddata fel y mae ar hyn o bryd. 410 00:20:12,210 --> 00:20:16,390 Mae'r wybodaeth rydym yn echdynnu yw hyn i ddechrau. 411 00:20:16,390 --> 00:20:19,820 Mae hyn yn y tabl newydd yr ydym yn mynd i greu cyfuno'r rhain at ei gilydd. 412 00:20:19,820 --> 00:20:23,585 Ac yn sylwi nid ydym yn tynnu sylw at Rhes Newman yn nhabl y defnyddiwr, 413 00:20:23,585 --> 00:20:25,960 ac nid ydym yn tynnu sylw at Rhes Kramer yn y tabl moms 414 00:20:25,960 --> 00:20:31,250 oherwydd nid un yn bodoli mewn y ddau sets-- yn y ddau tablau. 415 00:20:31,250 --> 00:20:36,260 >> Yr unig wybodaeth sydd yn gyffredin rhyngddynt yn Jerry yn y ddau tablau 416 00:20:36,260 --> 00:20:39,100 ac gcostanza yn y ddau tablau. 417 00:20:39,100 --> 00:20:42,620 Ac felly pan fyddwn yn gwneud y SQL YMUNO, yr hyn yr ydym get-- ac rydym yn ei wneud mewn gwirionedd yn cael hyn. 418 00:20:42,620 --> 00:20:44,830 Mae'n fath o newidyn dros dro. 419 00:20:44,830 --> 00:20:47,330 Mae'n debyg i damcaniaethol uno'r ddau dabl. 420 00:20:47,330 --> 00:20:49,930 Rydym mewn gwirionedd yn cael rhywbeth fel hyn, lle 421 00:20:49,930 --> 00:20:54,730 rydym wedi uno ynghyd y tablau ar y wybodaeth sydd ganddynt yn gyffredin. 422 00:20:54,730 --> 00:20:58,334 >> Felly sylwi bod users.username a colofn moms.username, 423 00:20:58,334 --> 00:20:59,250 'i' yn union yr un fath. 424 00:20:59,250 --> 00:21:01,820 Dyna oedd y wybodaeth a yn gyson gan y defnyddwyr 425 00:21:01,820 --> 00:21:02,890 bwrdd ac mae'r tabl moms. 426 00:21:02,890 --> 00:21:04,270 Ac felly rydym yn cyfuno gyda'i gilydd. 427 00:21:04,270 --> 00:21:06,919 Rydym yn taflu Kramer am ei fod Nid oedd yn bodoli yn y tabl defnyddiwr, 428 00:21:06,919 --> 00:21:09,710 ac rydym yn taflu Newman, oherwydd nad oedd yn bodoli yn y tabl moms. 429 00:21:09,710 --> 00:21:16,450 Felly, mae hyn yn yr uno damcaniaethol gan ddefnyddio'r YMUNWCH gweithrediad SELECT. 430 00:21:16,450 --> 00:21:21,250 >> Ac yna roeddem yn chwilio am y enw llawn defnyddiwr a mam y defnyddiwr, 431 00:21:21,250 --> 00:21:24,999 ac felly mae hwn yn y wybodaeth y byddem yn ei gael gan yr ymholiad cyffredinol 432 00:21:24,999 --> 00:21:26,040 ein bod yn ei wneud gyda SELECT. 433 00:21:26,040 --> 00:21:28,873 Felly, rydym yn ymuno â'r tablau at ei gilydd ac rydym dynnu rhai ddwy golofn, 434 00:21:28,873 --> 00:21:31,610 ac felly dyna beth y byddem yn ei gael. 435 00:21:31,610 --> 00:21:33,370 Ond SQL yn ymuno â rhyw fath o gymhleth. 436 00:21:33,370 --> 00:21:36,770 Mae'n debyg na fydd yn gwneud gormod iddyn nhw, ond dim ond gael rhyw syniad o'r sgerbwd 437 00:21:36,770 --> 00:21:41,992 y gallech ei ddefnyddio i uno dau tablau gyda'i gilydd os ydych angen. 438 00:21:41,992 --> 00:21:43,700 Mae'r ddau olaf yn bit symlach wyf yn addo. 439 00:21:43,700 --> 00:21:48,040 Felly diweddaru, gallwn ddefnyddio DIWEDDARIAD i newid gwybodaeth mewn tabl. 440 00:21:48,040 --> 00:21:53,880 Mae'r fformat cyffredinol yw DIWEDDARIAD rhai bwrdd, SET rhywfaint colofn i ryw werth 441 00:21:53,880 --> 00:21:55,540 LLE mae rhai predicate yn fodlon. 442 00:21:55,540 --> 00:21:57,850 Felly, er enghraifft, efallai y byddwn eisiau i ddiweddaru'r tabl defnyddwyr 443 00:21:57,850 --> 00:22:04,400 ac yn gosod y cyfrinair i yada yada, lle mae nifer adnabod yw 10. 444 00:22:04,400 --> 00:22:06,400 >> Felly, yn yr achos hwn, rydym yn diweddaru'r tabl defnyddwyr. 445 00:22:06,400 --> 00:22:08,275 Mae'r rhif adnabod yn 10 am y rhes gyntaf yno, 446 00:22:08,275 --> 00:22:10,690 ac rydym am i ddiweddaru'r cyfrinair i yada yada. 447 00:22:10,690 --> 00:22:12,170 Ac felly dyna beth fyddai'n digwydd. 448 00:22:12,170 --> 00:22:13,628 Mae'n eithaf syml, dde? 449 00:22:13,628 --> 00:22:17,990 Mae'n dim ond syml iawn addasu at y bwrdd. 450 00:22:17,990 --> 00:22:22,250 >> DILEU yn y llawdriniaeth roeddem yn arfer tynnu gwybodaeth o dabl. 451 00:22:22,250 --> 00:22:24,817 DILEU O dabl BLE rhywfaint o predicate yn fodlon. 452 00:22:24,817 --> 00:22:26,900 Rydym eisiau dileu o'r tabl defnyddwyr er enghraifft 453 00:22:26,900 --> 00:22:28,254 lle bo'r enw defnyddiwr yw Newman. 454 00:22:28,254 --> 00:22:31,420 Mae'n debyg y gallwch ddyfalu beth sy'n mynd i ddigwydd yma ar ôl i ni yn gweithredu y SQL 455 00:22:31,420 --> 00:22:35,790 ymholiad, Newman wedi mynd o'r tabl. 456 00:22:35,790 --> 00:22:40,460 >> Felly yr holl weithrediadau hyn, fel yr wyf wedi dweud, yn hawdd iawn i'w wneud yn phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Mae'n rhyngwyneb defnyddiwr gyfeillgar iawn. 458 00:22:43,020 --> 00:22:45,930 Ond mae'n gofyn am ymdrech llaw. 459 00:22:45,930 --> 00:22:47,840 Nid ydym am i gyflogi ymdrech llaw. 460 00:22:47,840 --> 00:22:51,280 Rydym am ein rhaglenni i gwneud hyn i ni, dde? 461 00:22:51,280 --> 00:22:53,190 Felly efallai y byddwn am ei wneud mae hyn programmatically. 462 00:22:53,190 --> 00:22:56,410 Rydym am i ymgorffori SQL a chael rhywbeth arall i wneud hyn ar ein rhan. 463 00:22:56,410 --> 00:23:02,710 >> Ond beth yr ydym wedi gweld sy'n caniatáu ni wneud rhywbeth programmatically? 464 00:23:02,710 --> 00:23:03,690 Rydym wedi gweld PHP, dde? 465 00:23:03,690 --> 00:23:05,760 Mae'n cyflwyno rhai egni yn ein rhaglenni. 466 00:23:05,760 --> 00:23:10,430 Ac felly yn ffodus, SQL a PHP yn chwarae 'n glws iawn gyda'i gilydd. 467 00:23:10,430 --> 00:23:13,230 Mae 'na swyddogaeth yn PHP Gelwir ymholiad, y gellir eu defnyddio. 468 00:23:13,230 --> 00:23:15,870 A gallwch basio fel y paramedr neu'r ddadl 469 00:23:15,870 --> 00:23:19,210 holi ymholiad SQL sy'n hoffech i weithredu. 470 00:23:19,210 --> 00:23:23,250 A bydd PHP yn gwneud hynny ar eich rhan. 471 00:23:23,250 --> 00:23:25,564 >> Felly, ar ôl i chi gysylltu at eich cronfa ddata gyda PHP, 472 00:23:25,564 --> 00:23:26,980 mae dwy ysgol gynradd i wneud hyn. 473 00:23:26,980 --> 00:23:29,230 Mae mysqli rhywbeth o'r enw a rhywbeth o'r enw PDO. 474 00:23:29,230 --> 00:23:31,063 Ni fyddwn yn mynd i mewn i enfawr swm fanwl yno. 475 00:23:31,063 --> 00:23:32,957 Yn CS50 rydym yn defnyddio PDO. 476 00:23:32,957 --> 00:23:34,790 Ar ôl i chi cysylltu at eich cronfa ddata, chi 477 00:23:34,790 --> 00:23:40,980 Yna gall wneud ymholiadau eich cronfa ddata drwy basio y cwestiynau fel dadleuon 478 00:23:40,980 --> 00:23:42,730 â swyddogaethau PHP. 479 00:23:42,730 --> 00:23:46,460 A phan fyddwch yn gwneud hynny, byddwch yn storio'r cyfres canlyniadau mewn amrywiaeth cysylltiadol. 480 00:23:46,460 --> 00:23:50,290 >> Ac rydym yn gwybod sut i weithio gyda araeau cysylltiadol yn PHP. 481 00:23:50,290 --> 00:23:52,630 Felly, gallwn ddweud rhywbeth fel this-- $ results-- 482 00:23:52,630 --> 00:23:55,470 mae hyn yn PHP-- hafal ymholiad. 483 00:23:55,470 --> 00:23:57,660 Ac yna tu mewn i'r swyddogaeth ymholiad ddadl honno 484 00:23:57,660 --> 00:24:00,130 fy mod i'n pasio i ymholiad sy'n edrych fel SQL. 485 00:24:00,130 --> 00:24:01,160 Ac yn wir sydd yn SQL. 486 00:24:01,160 --> 00:24:05,700 Dyna y llinyn ymholiad fy mod byddai yn hoffi i weithredu ar fy gronfa ddata. 487 00:24:05,700 --> 00:24:09,250 >> Ac felly mewn coch, mae hyn yn PHP. 488 00:24:09,250 --> 00:24:11,890 Mae hyn yn SQL fy mod integreiddio i mewn i PHP drwy wneud 489 00:24:11,890 --> 00:24:15,020 mae'n y ddadl i'r swyddogaeth ymholiad. 490 00:24:15,020 --> 00:24:19,640 Rwyf am i ddewis fullname o defnyddwyr lle mae rhif adnabod hafal 10. 491 00:24:19,640 --> 00:24:22,560 Ac yna efallai ar ôl fy mod wedi gwneud hynny, Efallai fy mod yn dweud rhywbeth fel hyn. 492 00:24:22,560 --> 00:24:25,550 Rwyf am argraffu'r Neges Diolch am logio i mewn. 493 00:24:25,550 --> 00:24:32,530 >> Ac yr wyf am iddo interpolate-- Rwyf am i interpolate $ canlyniadau fullname. 494 00:24:32,530 --> 00:24:36,280 Ac felly dyna sut yr wyf yn gweithio gyda hynny arae cysylltiadol fy mod yn mynd yn ôl. 495 00:24:36,280 --> 00:24:39,730 Byddai $ fullname canlyniadau yn y bôn yn y pen draw argraffu, 496 00:24:39,730 --> 00:24:42,870 diolch am logio i mewn, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Dyna oedd yr enw llawn lle idnum hafal i 10. 498 00:24:46,570 --> 00:24:48,850 >> Ac felly i gyd fy mod yn gwneud yw fy mod yn now-- wyf storio 499 00:24:48,850 --> 00:24:52,780 fy ymholiad, canlyniadau fy ymholiad ac yn arwain at amrywiaeth cysylltiadol, 500 00:24:52,780 --> 00:24:56,330 ac fullname yw enw'r y golofn oeddwn yn ei gael am. 501 00:24:56,330 --> 00:25:01,010 Felly dyna fy allwedd yn y canlyniadau arae cysylltiadol yr wyf am. 502 00:25:01,010 --> 00:25:05,930 Felly Diolch am logio i mewn, $ canlyniadau, Bydd fullname argraffu, bydd yn ffon 503 00:25:05,930 --> 00:25:08,654 iawn yn rhwng y rhai cyrliog bresys, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 A byddaf yn hoffi argraffu'r neges Diolch am logio i mewn Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Nawr, nid ydym yn ôl pob tebyg yn dymuno caled cod pethau fel 'na i mewn, dde? 506 00:25:16,652 --> 00:25:19,860 Efallai y byddwn am wneud rhywbeth fel print f, lle y gallwn gymryd lle ac efallai 507 00:25:19,860 --> 00:25:22,443 casglu gwybodaeth wahanol, neu efallai yn cael y broses ymholiad 508 00:25:22,443 --> 00:25:23,370 gwybodaeth wahanol. 509 00:25:23,370 --> 00:25:27,920 Ac felly ymholiad, y swyddogaeth ymholiad wedi syniad hwn o fath o dirprwyon 510 00:25:27,920 --> 00:25:32,310 debyg iawn i argraffu f cant s ac y cant c, yn farciau cwestiwn. 511 00:25:32,310 --> 00:25:34,290 >> A gallwn ddefnyddio cwestiwn marciau analogously iawn 512 00:25:34,290 --> 00:25:38,400 i argraffu f at newidynnau eilydd. 513 00:25:38,400 --> 00:25:44,120 Felly efallai eich defnyddiwr wedi mewngofnodi gynharach, ac rydych yn arbed eu rhif adnabod defnyddiwr 514 00:25:44,120 --> 00:25:51,710 yn $ _session o PHP super byd-eang yn y ID allweddol. 515 00:25:51,710 --> 00:25:55,947 Felly, efallai ar ôl iddynt wedi logio i mewn, chi osod $ _session ID hafal 10, 516 00:25:55,947 --> 00:25:58,280 allosod o yr enghraifft rydym yn unig yn gweld eiliad yn ôl. 517 00:25:58,280 --> 00:26:01,960 >> Ac felly pan fyddwn mewn gwirionedd yn gweithredu Bydd yr ymholiad hwn mae'r canlyniadau yn awr, 518 00:26:01,960 --> 00:26:08,440 byddai'n plwg yn 10, neu beth bynnag y $ _session gwerth ID yw. 519 00:26:08,440 --> 00:26:10,790 Ac felly sy'n ein galluogi i fod ychydig yn fwy deinamig. 520 00:26:10,790 --> 00:26:12,699 Nid ydym yn codio pethau caled yn anymore. 521 00:26:12,699 --> 00:26:14,490 Rydym yn arbed gwybodaeth rhywle ac yna 522 00:26:14,490 --> 00:26:18,924 y gallwn ddefnyddio'r wybodaeth honno eto i math o cyffredinoli hyn yr ydym am ei wneud, 523 00:26:18,924 --> 00:26:21,090 a dim ond plug-in a newid ymddygiad ein dudalen 524 00:26:21,090 --> 00:26:26,489 seiliedig ar yr hyn rhif adnabod y defnyddiwr mewn gwirionedd ar ôl eu bod wedi mewngofnodi. 525 00:26:26,489 --> 00:26:28,530 Mae hefyd yn bosibl, fodd bynnag, bod eich canlyniadau a osodwyd 526 00:26:28,530 --> 00:26:30,840 Gallai gynnwys rhesi lluosog. 527 00:26:30,840 --> 00:26:33,990 Os felly, mae gennych amrywiaeth o arrays-- 528 00:26:33,990 --> 00:26:35,334 amrywiaeth o araeau cysylltiadol. 529 00:26:35,334 --> 00:26:37,000 A dim ond angen i chi ei ailadrodd drwyddo. 530 00:26:37,000 --> 00:26:41,950 Ac rydym yn gwybod sut i ailadrodd drwy amrywiaeth yn PHP, dde? 531 00:26:41,950 --> 00:26:45,600 Felly dyma yn ôl pob tebyg y mwyaf beth cymhleth yr ydym wedi ei weld hyd yn hyn. 532 00:26:45,600 --> 00:26:49,640 Mae'n mewn gwirionedd yn integreiddio tair iaith gyda'i gilydd. 533 00:26:49,640 --> 00:26:52,920 >> Yma yn goch, mae hyn yn rhywfaint o HTML. 534 00:26:52,920 --> 00:26:56,872 Im 'yn ôl pob golwg starting-- mae hyn yn snippet o ryw HTML sydd gennyf. 535 00:26:56,872 --> 00:26:59,580 Dwi'n dechrau paragraff newydd sy'n Dywed y moms o deledu Seinfeld. 536 00:26:59,580 --> 00:27:02,350 Ac yna yn syth ar ôl hynny Dwi'n dechrau tabl. 537 00:27:02,350 --> 00:27:06,060 Ac yna ar ôl hynny, yr wyf yn cael rhywfaint o PHP, dde? 538 00:27:06,060 --> 00:27:08,229 Mae gen i hyn i gyd cod PHP mewn 'na. 539 00:27:08,229 --> 00:27:09,645 Im 'yn ôl pob golwg yn mynd yn gwneud ymholiad. 540 00:27:09,645 --> 00:27:14,180 Ac i wneud yr ymholiad, dw i'n mynd i yn defnyddio famau SELECT O moms. 541 00:27:14,180 --> 00:27:15,970 >> Felly, mae hyn yn getting-- mae hyn yn SQL. 542 00:27:15,970 --> 00:27:17,300 Felly y mae'r glas yn SQL. 543 00:27:17,300 --> 00:27:19,680 Mae'r coch gwelsom eiliad yn ôl yn HTML. 544 00:27:19,680 --> 00:27:21,360 Ac mae'r gwyrdd yma yw PHP. 545 00:27:21,360 --> 00:27:23,400 Felly, fy mod yn gwneud ymholiad at fy cronfa ddata, rwy'n 546 00:27:23,400 --> 00:27:26,040 dewis pob un o'r mamau yn y tabl moms. 547 00:27:26,040 --> 00:27:30,710 Nid dim ond culhau i lawr i neilltuol rhes, rwy'n gofyn i bob un ohonynt. 548 00:27:30,710 --> 00:27:33,290 >> Yna mi gadarnhau a oes canlyniad yn Nid yw hafal hafal ffug. 549 00:27:33,290 --> 00:27:37,410 Mae hyn yn unig fy ffordd o wirio math o os nad yw canlyniadau yn hafal i null, 550 00:27:37,410 --> 00:27:40,260 y byddem yn gweld c er enghraifft. 551 00:27:40,260 --> 00:27:44,000 Yn y bôn mae hyn yn unig yw gwirio i wneud yn siŵr ei fod mewn gwirionedd yn cael y data yn ôl. 552 00:27:44,000 --> 00:27:47,041 Oherwydd nad wyf am ddechrau argraffu allan data os nad oeddwn yn cael unrhyw ddata. 553 00:27:47,041 --> 00:27:50,690 Yna, ar gyfer pob un canlyniadau o ganlyniad i'r cystrawen foreach o PHP, pob rydw i'n ei wneud 554 00:27:50,690 --> 00:27:53,399 yn argraffu $ canlyniad mamau. 555 00:27:53,399 --> 00:27:55,940 Ac felly yr wyf i'n mynd i gael set o bob un o'r mamau o each-- 556 00:27:55,940 --> 00:27:59,980 ei fod yn amrywiaeth o cysylltiadol arrays-- ac rwy'n argraffu 557 00:27:59,980 --> 00:28:03,649 pob un fel ei rhes hun o dabl. 558 00:28:03,649 --> 00:28:05,690 A dyna '' n sylweddol 'n bert llawer pawb mae iddo. 559 00:28:05,690 --> 00:28:07,750 Rwy'n gwybod bod yna ychydig bit digwydd yma 560 00:28:07,750 --> 00:28:13,210 yn yr enghraifft olaf gyda rhesi o arrays-- araeau o araeau cysylltiadol. 561 00:28:13,210 --> 00:28:17,340 Ond mae'n wir yn unig berwi i lawr yn y SQL i wneud ymholiad, 562 00:28:17,340 --> 00:28:21,102 fel arfer yn dewis ar ôl i ni i wedi eisoes rhoi gwybodaeth i mewn i'r bwrdd, 563 00:28:21,102 --> 00:28:22,310 ac yna dim ond tynnu allan. 564 00:28:22,310 --> 00:28:25,710 >> Ac mae hyn yn byddem yn tynnu ei allan yn yr achos penodol hwn. 565 00:28:25,710 --> 00:28:31,120 Byddem yn tynnu pob unigolyn mamau o'r tabl moms. 566 00:28:31,120 --> 00:28:35,970 Rydym yn cael set gyfan ohonynt, ac yr ydym yn eisiau ailadrodd drwy ac argraffu 567 00:28:35,970 --> 00:28:37,630 pob un. 568 00:28:37,630 --> 00:28:40,510 Felly unwaith eto, mae hyn yn ôl pob tebyg yr enghraifft fwyaf cymhleth 569 00:28:40,510 --> 00:28:44,510 rydym wedi gweld oherwydd ein bod yn cymysgu tri ieithoedd gwahanol at ei gilydd, dde? 570 00:28:44,510 --> 00:28:50,100 >> Unwaith eto, mae gennym HTML yma mewn coch, gymysg gyda rhai SQL yma mewn glas, 571 00:28:50,100 --> 00:28:52,049 gymysg gyda rhai PHP mewn gwyrdd. 572 00:28:52,049 --> 00:28:53,840 Ond mae pob un o'r rhain yn chwarae 'n glws at ei gilydd,' i ' 573 00:28:53,840 --> 00:28:57,060 dim ond mater o ddatblygu arferion da fel y gallwch ei gael 574 00:28:57,060 --> 00:28:58,780 iddynt weithio gyda'i gilydd y ffordd yr ydych ei eisiau. 575 00:28:58,780 --> 00:29:03,790 A'r unig ffordd i wneud iawn bod yw i ymarfer, ymarfer, ymarfer. 576 00:29:03,790 --> 00:29:06,740 Rwy'n Doug Lloyd, mae hyn yn CS50. 577 00:29:06,740 --> 00:29:08,647