1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [Christopher BARTHOLOMEW] [Inivèsite Harvard] 3 00:00:04,000 --> 00:00:06,000 [SA A SE CS50] [CS50 televizyon] 4 00:00:07,950 --> 00:00:11,620 Se konsa, pwogramasyon itilize baz done kòm yon zouti nan magazen ak òganize 5 00:00:11,620 --> 00:00:13,620 done ki pèsistan nou nan tablo yo. 6 00:00:13,620 --> 00:00:18,960 Sa vle di ke se done ou ki estoke sou ki pa temèt mitan lari tankou yon kondwi difisil, 7 00:00:18,960 --> 00:00:22,940 e menm lè òdinatè a se koupe, done yo se toujou intact. 8 00:00:22,940 --> 00:00:29,530 Epi, menm jan pwogramasyon, pwogram nou an itilize baz done pou senaryo tankou estoke 9 00:00:29,530 --> 00:00:32,890 enfòmasyon itilizatè soti nan fòm entènèt, leve je l 'envantè, 10 00:00:32,890 --> 00:00:36,210 oswa mete ajou enfòmasyon sou sa sit montre. 11 00:00:37,150 --> 00:00:40,070 Men, ki jan nou aktyèlman kominike avèk baz done nou an, 12 00:00:40,070 --> 00:00:43,150 oswa sa nou itilize li, sere, efase, 13 00:00:43,150 --> 00:00:46,070 epi mete ajou done nou an ki nan tablo sa yo baz done? 14 00:00:47,280 --> 00:00:49,700 Oke, repons lan se ke nou itilize yon kalite espesyal nan lang baz done 15 00:00:49,700 --> 00:00:53,400 ki reyaji dirèkteman ak tab baz done nou an. 16 00:00:53,400 --> 00:00:56,740 Se non li nan estriktire Lang rekèt, 17 00:00:56,740 --> 00:00:58,740 [Estriktire Lang rekèt] 18 00:00:58,740 --> 00:01:00,740 oswa ki sa mwen, al gade nan kòm SQL. 19 00:01:00,740 --> 00:01:05,100 >> Koulye a, [Se-kèl], oswa SQL, se pa yon lang pwogramasyon, 20 00:01:05,100 --> 00:01:08,580 men olye, li nan yon lang ki bay yon seri estanda nan kòmandman 21 00:01:08,580 --> 00:01:13,520 rekipere ak manipile done ki sòti nan yon varyete de sistèm jesyon baz done. 22 00:01:13,520 --> 00:01:17,630 Nan bi pou yo CS50, nou pral ale sou kat kòmandman debaz: 23 00:01:17,630 --> 00:01:21,210 chwazi, insert, mete ajou, epi efase. 24 00:01:21,210 --> 00:01:26,230 Anplis de sa, nou pral itilize yon koòdone wèb baz done yo rele fpmyadmen, 25 00:01:26,230 --> 00:01:29,890 ki enstale sou aparèy la yo ekri deklarasyon SQL nou an. 26 00:01:30,830 --> 00:01:33,050 Se konsa, ede ou sonje sa yo kòmandman, 27 00:01:33,050 --> 00:01:37,080 Mwen te mennen kèk gato nan yon kofr ede ak senaryo nou an. 28 00:01:39,650 --> 00:01:42,210 Di ou gen baz done yon kupkèyk a, 29 00:01:42,210 --> 00:01:44,490 ki kote ou mete tout enfòmasyon sou gato ou. 30 00:01:44,490 --> 00:01:48,220 Koulye a, bazdone kapab genyen tab anpil 31 00:01:48,220 --> 00:01:50,950 ak tablo yo yo tèt yo kapab genyen kolòn anpil. 32 00:01:50,950 --> 00:01:57,020 Anndan baz done kupkèyk nou an, nou gen yon tab rele cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Tablo sa a pral dwe itilize nan magazen tout enfòmasyon sou gato 34 00:02:00,500 --> 00:02:02,990 ki se, byen, nan kofr ou a. 35 00:02:02,990 --> 00:02:07,770 Kolòn yo ki andedan tab ou reprezante atribi sa yo nan yon kupkèyk. 36 00:02:07,770 --> 00:02:14,560 Pou egzanp, kolòn cupcake_cupboard la yo se 37 00:02:14,560 --> 00:02:15,920 Gato ID, CakeType, CakeColor, ak CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Sa a se kolòn Boolean-tape itilize detèmine si gato a se bèl oswa ou pa bèl. 39 00:02:23,040 --> 00:02:26,560 Nou pwal kòmanse avèk ekri yon deklarasyon ki chwazi. 40 00:02:26,560 --> 00:02:32,160 Deklarasyon Chwazi yo itilize rekipere done nan yon tablo baz done an patikilye. 41 00:02:32,160 --> 00:02:34,890 Nan scénario sa a, nou vle konnen tout bagay 42 00:02:34,890 --> 00:02:39,080 sou tout gato ki egziste nan kofr nou an. 43 00:02:39,080 --> 00:02:48,670 Sentaks la fè sa a se "Chwazi" Star espas, oswa *, espas nan lespas tab nou an, 44 00:02:48,670 --> 00:02:52,050 ki se cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Se pou nou ale pi devan epi egzekite sa. 46 00:02:56,670 --> 00:03:00,140 >> Jan nou kapab wè, sa yo se tout gato yo nan kofr nou an. 47 00:03:00,140 --> 00:03:05,110 Li enpòtan sonje ke *, oswa asterisk, se yon karaktè kat sovaj 48 00:03:05,110 --> 00:03:08,830 ki vle di rasanbleman nan tout kolòn yo nan kèk tab. 49 00:03:08,830 --> 00:03:13,650 Nòmalman, nou ka gen aksè a yon kolòn espesifik oswa kolòn 50 00:03:13,650 --> 00:03:16,950 pa ranplase * ak non an kolòn aktyèl. 51 00:03:16,950 --> 00:03:21,220 Si nou vle kolòn miltip, men se pa tout, nou ka reyalize sa a 52 00:03:21,220 --> 00:03:25,620 pa ekri non yo kolòn délimitation chak kolòn pa yon vigil. 53 00:03:25,620 --> 00:03:28,620 Pou egzanp, kite a sèlman rekipere CakeId la ak CakeType nan tablo a cupcake_cupboard. 54 00:03:28,620 --> 00:03:38,370 Sentaks la fè sa a se: espas chwazi CakeID vigil 55 00:03:38,370 --> 00:03:44,370 CakeType espas soti nan cupcake_cupboard tab nou an,. 56 00:03:44,370 --> 00:03:46,370 Se pou nou ale pi devan epi egzekite sa a. 57 00:03:49,340 --> 00:03:52,670 Ak isit la, nou kounye a sèlman gen pou chak kolòn ki de nou espesifye 58 00:03:52,670 --> 00:03:54,670 pou chak kupkèyk nan kofr nou an. 59 00:03:54,670 --> 00:03:57,710 Nou kapab tou amelyore rezilta rechèch nou yo nan di egzakteman kisa 60 00:03:57,710 --> 00:04:00,910 "Kote" kloz la jis apre non an tab. 61 00:04:02,000 --> 00:04:05,410 Pou egzanp, gen sanble se yon kupkèyk nan kofr nou 62 00:04:05,410 --> 00:04:08,660 ki se, byen, pa konsa nice kap. 63 00:04:08,660 --> 00:04:13,950 Se pou nou konnen ki tout gato yo nan kofr nou ke yo, byen, pa konsa nice kap 64 00:04:13,950 --> 00:04:16,110 lè l sèvi avèk "Ki kote nan" kloz. 65 00:04:16,110 --> 00:04:26,390 Sentaks la fè sa a se: espas Chwazi * espas KI SOTI NAN cupcake_cupboard espas 66 00:04:26,390 --> 00:04:34,080 espas KI KOTE espas kolòn kondisyonèl nou an, nan ka sa a CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 ak valè a Boolean nan Fo. 68 00:04:36,900 --> 00:04:42,750 Li se enpòtan sonje ke si w ap sèvi ak strings, ou dwe fèmen l 'nan quotes sèl. 69 00:04:42,750 --> 00:04:49,620 Sa a se vre pou tout strings nan SQL, oswa, nan SQL tèm baz done karaktè, Variant 70 00:04:49,620 --> 00:04:51,620 ke yo rekonèt kòm varchar datatip. 71 00:04:51,620 --> 00:04:57,660 Nan ka sa a, nou ap itilize vrè oswa fo, ki se yon valè Boolean epi yo pa yon kòd. 72 00:04:59,120 --> 00:05:00,660 Se pou nou ale pi devan epi egzekite lòd sa a. 73 00:05:00,660 --> 00:05:05,340 >> Lo li wè, li se ka a ke nou gen 1 chokola 74 00:05:05,340 --> 00:05:07,920 pa konsa nice kupkèyk nan kofr nou an. 75 00:05:09,620 --> 00:05:11,460 Apre sa, n ap ale nan ekri yon deklarasyon insert. 76 00:05:11,460 --> 00:05:15,560 Deklarasyon insert yo itilize insert oswa ajoute 77 00:05:15,560 --> 00:05:17,770 ranje plis done an tab baz done ou. 78 00:05:17,770 --> 00:05:23,160 Rvizite scénario nou an, kite a sipoze ke nou te jis te fè yon mak nouvo kupkèyk. 79 00:05:25,910 --> 00:05:30,080 Depi nou yo trè òganize kupkèyk Manjè, nou ap ale nan gen insert sa a kupkèyk nouvo 80 00:05:30,080 --> 00:05:32,330 nan tablo cupcake_cupboard nou an. 81 00:05:32,330 --> 00:05:40,690 Sentaks la fè sa a se sa a: Antre espas nan espas tab nou an, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, espas (, 83 00:05:46,830 --> 00:05:51,060 ak isit la nou presize non yo kolòn, séparer pa yon vigil, 84 00:05:51,060 --> 00:05:59,790 CakeType vigil CakeColor vigil CakeIsNice) espas. 85 00:05:59,790 --> 00:06:06,540 Apre sa, nou ekri mo VALÈ espas ki la (, ak isit la 86 00:06:06,540 --> 00:06:12,170 nou antre nan valè a pou chak kolòn, respektivman, tou séparer pa yon vigil. 87 00:06:12,170 --> 00:06:17,830 Single quote, yo paske yo te tout valè varchar nou pral antoure yo nan quotes sèl, 88 00:06:17,830 --> 00:06:26,780 Vigil BROWN limyè 'vigil' manba 'manti. 89 00:06:26,780 --> 00:06:30,480 Koulye a, li enpòtan bay chak ranje yon nimewo inik yo idantifye tèt li. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing yon kolòn bay sa a kòm 91 00:06:33,660 --> 00:06:37,410  "Non de idantite yo menm ka janm egziste nan tablo sa a." 92 00:06:37,410 --> 00:06:39,480 Se pou nou ale pi devan epi egzekite. 93 00:06:39,480 --> 00:06:45,380 Gen n 'al jwenn yo, tout òganize. 94 00:06:49,720 --> 00:06:52,100 >> Pwochen SQL deklarasyon sa yo ke nou ap ekri a se yon deklarasyon ki mizajou a. 95 00:06:52,100 --> 00:06:55,650 Ka deklarasyon an update dwe itilize li modifye done ki nan yon kolòn 96 00:06:55,650 --> 00:06:58,440 pou nenpòt ki ranje ki deja egziste nan tablo baz done ou. 97 00:06:59,670 --> 00:07:03,420 Byen bonè nan senaryo nou an, lè l sèvi avèk yon deklarasyon chwazi, nou idantifye yon kupkèyk 98 00:07:03,420 --> 00:07:08,300 nan tab cupcake_cupboard nou an CakeIsNice valè ki gen te Fo. 99 00:07:08,300 --> 00:07:12,050 Ann asime ke pandan ke kupkèyk manba nou an te nan dife pou chofe fou a, 100 00:07:12,050 --> 00:07:15,790 nou te fè kupkèyk pa-konsa-bèl nou an trè bèl. 101 00:07:18,020 --> 00:07:22,240 Yo te tèlman eksepsyonèlman òganize, nou vle kupkèyk nou yo reflete sa a valè 102 00:07:22,240 --> 00:07:24,240 nan tablo cupcake_cupboard nou an. 103 00:07:24,240 --> 00:07:28,710 Se poutèt sa, kite la mete ajou kupkèyk chokola nou yo nan baz done a reflete sa a. 104 00:07:28,710 --> 00:07:39,720 Sentaks la se: MIZAJOU espas tab nou an, cupcake_cupboard, espas mete espas 105 00:07:39,720 --> 00:07:44,240 kolòn nan ke nou vle chanje, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Lè sa a, isit la nou mete nouvo valè nou Vrè espas. 107 00:07:49,210 --> 00:07:54,290 Koulye a, paske nou pa vle mete ajou tout ranje ak sa a valè, 108 00:07:54,290 --> 00:07:57,400 nou vle bay yon "Kote" kloz ki pral sible nou 109 00:07:57,400 --> 00:07:59,830 ranje a egzak ke nou vle modifye. 110 00:07:59,830 --> 00:08:03,690 Nan ka sa a, nou konnen ke gen yon sèl kupkèyk 111 00:08:03,690 --> 00:08:06,670 ki gen yon valè CakeIsNice nan Fo. 112 00:08:06,670 --> 00:08:11,030 Anplis de sa, nou va asire tou ke nou ap mete ajou ranje ki kòrèk la 113 00:08:11,030 --> 00:08:13,030 lè l sèvi avèk "ak" kloz a. 114 00:08:14,340 --> 00:08:17,270 Nou itilize "ak" kloz a yo defini rechèch nou an pi lwen. 115 00:08:17,270 --> 00:08:20,380 Nan ka sa a, paske nou konnen ke kupkèyk a se chokola, 116 00:08:20,380 --> 00:08:23,160 nou pral sèvi ak sa a kolòn CakeType. 117 00:08:23,160 --> 00:08:31,500 KI KOTE espas kondisyonèl nou an espas kolòn CakeIsNice espas = Fo, 118 00:08:31,500 --> 00:08:38,330 ak espas CakeType = 'chokola. 119 00:08:38,330 --> 00:08:41,880 Se konsa, mete li tout ansanm, deklarasyon sa a update di 120 00:08:41,880 --> 00:08:44,670 jwenn tout gato yo nan kofr kupkèyk nou an, 121 00:08:44,670 --> 00:08:50,520 ak si gen yon kupkèyk ki gen kolòn CakeIsNice gen valè a Fo 122 00:08:50,520 --> 00:08:54,130 ak CakeType gen chokola a valè, 123 00:08:54,130 --> 00:08:58,240 nou vle mete ajou espesifik ranje valè a CakeIsNice Vrè. 124 00:08:58,240 --> 00:09:01,140 Se konsa, kite a ale pi devan epi egzekite deklarasyon an. 125 00:09:03,860 --> 00:09:05,860 Epi, koulye a, nou ap òganize. 126 00:09:06,650 --> 00:09:09,220 >> Te tout bagay sa a pale nan gato fè m 'yon ti jan grangou. 127 00:09:09,220 --> 00:09:11,360 Mwen panse mwen ta dwe ede tèt mwen nan yon sèl. 128 00:09:11,360 --> 00:09:17,670 Men, si mwen aktyèlman manje sa a kupkèyk, m 'ta dwe omwen tou retire egzistans li 129 00:09:17,670 --> 00:09:19,670  soti bò tab cupcake_cupboard nou an. 130 00:09:20,650 --> 00:09:22,590 Pou fè sa, nou pral sèvi ak "Delete" deklarasyon an. 131 00:09:22,590 --> 00:09:27,400 Kapab "Delete" deklarasyon an dwe itilize yo retire tout oswa kèk ranje nan tablo an. 132 00:09:27,400 --> 00:09:29,920 Si ou ta vle retire kèk ranje espesifik yo, nan tablo a, 133 00:09:29,920 --> 00:09:34,360 Lè sa a, ou dwe bay yon "Kote" kloz, konsa pou w yon kolòn 134 00:09:34,360 --> 00:09:37,660 ki ta dwe inik nan ranje a konnen ou vle yo retire. 135 00:09:37,660 --> 00:09:47,370 Sa a se sentaks la: efase espas nan lespas tab nou an, cupcake_cupboard, espas. 136 00:09:47,370 --> 00:09:51,760 Koulye a, nan pwen sa a, nenpòt lè ou se sa a byen lwen nan deklarasyon Delete ou 137 00:09:51,760 --> 00:09:54,240 ou vle dwe pran anpil prekosyon. 138 00:09:54,240 --> 00:09:59,970 Pou egzanp, si mwen vle kouri sa a sijè rechèch kòm se san bay kèk "Kote" kloz 139 00:09:59,970 --> 00:10:04,500 Mwen ta pèdi tout done ki nan tablo sa a cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 Men, paske mwen deja konnen ke idantifikasyon gato m ', se inik, mwen pral sèvi ak 141 00:10:09,590 --> 00:10:12,410 Wouj gato velours ID a pou kloz mwen "Kote". 142 00:10:14,550 --> 00:10:20,670 KI KOTE espas kolòn nou an, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Paske sa se yon valè nonb antye relatif pa gen okenn bezwen antoure l 'nan quotes sèl. 144 00:10:25,010 --> 00:10:27,020 Se konsa, kite a egzekite deklarasyon an. 145 00:10:33,560 --> 00:10:35,990 Oke, kounye a ke nou te siye egzistans la nan sa a kupkèyk 146 00:10:35,990 --> 00:10:40,360 soti bò tab cupcake_cupboard nou yo, nou gen sèlman yon sèl bagay gòch: 147 00:10:41,680 --> 00:10:43,680 Fè li disparèt. 148 00:10:43,680 --> 00:10:46,990 Mwen Christopher Batèlmi. Sa a se CS50.