1 00:00:00,000 --> 00:00:03,493 >> [Muusika mängib] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD: Meie videod veebiarendust teemasid, 4 00:00:07,100 --> 00:00:10,560 oleme mainitud mõiste andmebaasi paar korda, eks? 5 00:00:10,560 --> 00:00:12,700 Nii andmebaasi olete ilmselt tuttav alates 6 00:00:12,700 --> 00:00:15,780 st kasutades Microsoft Excel või Google'i tabeleid. 7 00:00:15,780 --> 00:00:20,650 See on tõesti lihtsalt organiseeritud tabelite ridade ja veergude. 8 00:00:20,650 --> 00:00:23,140 >> Ja andmebaas on koht, kus Meie kodulehel kauplustes 9 00:00:23,140 --> 00:00:26,760 teavet, mis on oluline meie kodulehel korralikult tööle. 10 00:00:26,760 --> 00:00:30,150 Jällegi väga levinud näiteks siin salvestab kasutajanimed ja paroolid 11 00:00:30,150 --> 00:00:32,824 Andmebaasis nii, et kui kasutaja logib meie kodulehel, 12 00:00:32,824 --> 00:00:36,690 andmebaasi saab teha päringuid näha kui see kasutaja olemas andmebaasis. 13 00:00:36,690 --> 00:00:39,260 Ja kui nad on kontrollinud, et oma parool on õige. 14 00:00:39,260 --> 00:00:43,420 Ja kui nende parool on õige, siis saame anda neile iganes lehele 15 00:00:43,420 --> 00:00:45,370 nad taotlevad. 16 00:00:45,370 --> 00:00:48,590 >> Nii et sa oled ilmselt jällegi tuttav Selle idee Excel või Google 17 00:00:48,590 --> 00:00:49,430 Tabeleid. 18 00:00:49,430 --> 00:00:52,980 Meil on andmebaasid, tabelid, ridade ja veergude. 19 00:00:52,980 --> 00:00:56,450 Ja see on tõesti omamoodi fundamentaalsetest komplekt 20 00:00:56,450 --> 00:00:58,470 hierarhiliste jaotus siin. 21 00:00:58,470 --> 00:00:59,800 Nii et siin on Exceli tabelit. 22 00:00:59,800 --> 00:01:02,640 Ja kui sa oled kunagi avada seda või muu sarnase programmi 23 00:01:02,640 --> 00:01:06,780 sa tead, et need on siin rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Need on veerud. 25 00:01:08,760 --> 00:01:11,790 >> Võib-olla siin, kuigi see võib ei kasuta seda funktsiooni kohutavalt much-- 26 00:01:11,790 --> 00:01:15,370 Ma suurendamiseks in-- meil Selle idee lehel. 27 00:01:15,370 --> 00:01:17,930 Ehk need lehed, kui Ma vaheldumisi edasi ja tagasi, 28 00:01:17,930 --> 00:01:21,600 erinevad tabelid, et olemas minu andmebaasis. 29 00:01:21,600 --> 00:01:25,210 Ja kui me jätkame näide kõiki Muide, nimi selle andmebaasi 30 00:01:25,210 --> 00:01:26,940 on Book 1. 31 00:01:26,940 --> 00:01:28,710 Võibolla mul Book 2 ja 3 raamat. 32 00:01:28,710 --> 00:01:33,270 Nii iga Excel fail on andmebaasi, igale lehele on tabel, 33 00:01:33,270 --> 00:01:39,530 ja sees iga tabeli mul Selle idee ridu ja veerge. 34 00:01:39,530 --> 00:01:41,900 >> Niisiis, kuidas ma töötan selle andmebaasi? 35 00:01:41,900 --> 00:01:43,630 Kuidas saada teavet selle? 36 00:01:43,630 --> 00:01:47,540 Noh seal on keeles nimetatakse SQL-- mida ma tavaliselt lihtsalt helistada Sequel-- 37 00:01:47,540 --> 00:01:50,010 ja see tähistab Structured Query Language. 38 00:01:50,010 --> 00:01:52,981 Ja see on programmeerimiskeel, aga see on üsna piiratud programmeerimine 39 00:01:52,981 --> 00:01:53,480 keelt. 40 00:01:53,480 --> 00:01:56,407 See ei ole päris nagu teised et oleme koos töötanud. 41 00:01:56,407 --> 00:01:58,240 Aga Käesolevas programmeerimiskeelt 42 00:01:58,240 --> 00:02:01,570 on päringu andmebaas, mille abil küsi info andmebaasi, 43 00:02:01,570 --> 00:02:04,480 leida teavet andmebaasi, ja nii edasi. 44 00:02:04,480 --> 00:02:08,449 >> Samuti, on CS50-- ja see on väga ühise platvormi, seda nimetatakse MySQL. 45 00:02:08,449 --> 00:02:10,600 See, mida me kasutame käigus. 46 00:02:10,600 --> 00:02:12,880 See on avatud lähtekoodiga platvorm, mis loob 47 00:02:12,880 --> 00:02:16,732 nn relatsiooniline database-- Andmebaasis tõhusalt. 48 00:02:16,732 --> 00:02:18,440 Meil ei ole vaja saada liiga üksikasjalikuks 49 00:02:18,440 --> 00:02:20,930 mida relatsiooniline andmebaas on. 50 00:02:20,930 --> 00:02:24,650 Aga SQL keeles on väga vilunud tööd 51 00:02:24,650 --> 00:02:29,760 MySQL ja muud sarnased stiilid relaatiotietokannat. 52 00:02:29,760 --> 00:02:34,010 >> Ja paljud rajatiste MySQL tulla midagi 53 00:02:34,010 --> 00:02:37,760 nimetatakse phpMyAdmin, mis on graafiline kasutajaliides 54 00:02:37,760 --> 00:02:40,970 interface-- GUI-- et muudab veidi rohkem 55 00:02:40,970 --> 00:02:44,410 kasutajasõbralik täita andmebaasi päringuid, 56 00:02:44,410 --> 00:02:48,980 kuna andmebaasid ei ole lihtsalt kasutada Täiustatud programmeerijad, eks? 57 00:02:48,980 --> 00:02:51,510 Mõnikord on Nende väikeettevõtted, 58 00:02:51,510 --> 00:02:53,900 ja nad ei saa endale lubada palgata meeskonna programmeerijaid, 59 00:02:53,900 --> 00:02:56,700 kuid nad on vaja säilitada andmed andmebaasi. 60 00:02:56,700 --> 00:02:59,300 >> Midagi phpMyAdmin Seetõttu on väga lihtne kedagi 61 00:02:59,300 --> 00:03:03,630 kes pole kunagi programmeeritud varem kiirenemist ja tutvuda kuidas 62 00:03:03,630 --> 00:03:07,710 töötada andmebaasis. 63 00:03:07,710 --> 00:03:11,800 Probleem on, phpMyAdmin, samas see on fantastiline vahend õppe 64 00:03:11,800 --> 00:03:14,850 umbes andmebaasid, see on käsitsi. 65 00:03:14,850 --> 00:03:18,050 Sa lähed pead sisse logima seda ja täita käske ja liik 66 00:03:18,050 --> 00:03:19,910 asjad käsitsi. 67 00:03:19,910 --> 00:03:23,160 >> Ja nagu me teame meie Näiteks PHP veebi programmeerimine, 68 00:03:23,160 --> 00:03:26,550 võttes käsitsi teha asjad meie kodulehel, 69 00:03:26,550 --> 00:03:30,970 Kui me tahame, dünaamiline, aktiivne reageerib veebilehel, ehk mitte parim lahendus. 70 00:03:30,970 --> 00:03:33,980 Soovime leida viis, kuidas ehk automatiseerida seda kuidagi. 71 00:03:33,980 --> 00:03:37,864 Ja SQL võimaldab meil seda teha. 72 00:03:37,864 --> 00:03:39,780 Nii et kui me läheme alustada tööd SQL, 73 00:03:39,780 --> 00:03:41,220 peame kõigepealt olema Andmebaasi töötada. 74 00:03:41,220 --> 00:03:42,510 Andmebaasi loomine on midagi, mida sa ilmselt 75 00:03:42,510 --> 00:03:45,350 teeme phpMyAdmin, sest Teil on vaja teha ainult üks kord, 76 00:03:45,350 --> 00:03:49,690 ja süntaks tehes on palju lihtsam. 77 00:03:49,690 --> 00:03:51,940 See on palju lihtsam seda teha graafiline kasutajaliides 78 00:03:51,940 --> 00:03:53,520 kui kirjutades seda käsuna. 79 00:03:53,520 --> 00:03:55,186 Käsk võib saada veidi tülikas. 80 00:03:55,186 --> 00:03:58,889 Samuti luua tabelit saab saada üsna veidi kohmakas ka. 81 00:03:58,889 --> 00:04:01,930 Ja nii asjad andmebaasi loomise ja luua tabel, mis sa oled 82 00:04:01,930 --> 00:04:06,270 ilmselt ainult kavatse teha once-- üks kord lauda kord database-- 83 00:04:06,270 --> 00:04:09,040 see on OK, et seda teha graafilise kasutajaliidese. 84 00:04:09,040 --> 00:04:11,570 Protsessis luua tabel, saate 85 00:04:11,570 --> 00:04:14,840 Samuti tuleks täpsustada kõiki veerud, mis on selles tabelis. 86 00:04:14,840 --> 00:04:18,149 Millist informatsiooni tegema soovite salvestada tabelis? 87 00:04:18,149 --> 00:04:24,520 Äkki kasutaja nimi ja sünniaeg, Parooli kasutaja ID number, ja võib-olla 88 00:04:24,520 --> 00:04:26,170 linn ja riik, õigus? 89 00:04:26,170 --> 00:04:30,080 >> Ja iga kord, kui me tahame, et lisada kasutaja andmebaasi, me tahame saada kõik kuus 90 00:04:30,080 --> 00:04:31,890 nende andmetel. 91 00:04:31,890 --> 00:04:34,840 Ja me teeme seda, lisades arvul ridu. 92 00:04:34,840 --> 00:04:37,800 Nii et me kõigepealt luua andmebaas, siis me luua tabelit. 93 00:04:37,800 --> 00:04:40,100 Osana luues laua, meil palutakse 94 00:04:40,100 --> 00:04:44,280 määrata iga veerg tahaksime tabelis. 95 00:04:44,280 --> 00:04:47,247 Ja siis, kui hakkame lisada teavet andmebaasi 96 00:04:47,247 --> 00:04:49,580 ja päringu andmebaasi rohkem generally-- ole lihtsalt lisades, 97 00:04:49,580 --> 00:04:51,610 aga kõik muu me do-- saadame tegelevad 98 00:04:51,610 --> 00:04:58,870 sosistavat tabelis, mis on üks kasutaja infot kogu komplekt. 99 00:04:58,870 --> 00:05:03,210 >> Nii et iga SQL veerus on võimeline hoides andmed konkreetse andmetüübi. 100 00:05:03,210 --> 00:05:06,560 Nii et me justkui kõrvaldada see Idee tüüpi andmetele PHP, 101 00:05:06,560 --> 00:05:08,747 kuid nad siia tagasi SQL. 102 00:05:08,747 --> 00:05:10,080 Ja seal on palju andmetüüpe. 103 00:05:10,080 --> 00:05:13,420 Siin on ainult 20 neist, kuid see ei ole isegi neid kõiki. 104 00:05:13,420 --> 00:05:16,240 Nii et meil on ideid nagu INTs-- Integers-- me ilmselt teame 105 00:05:16,240 --> 00:05:17,760 et selles veerus mahub täisarvud. 106 00:05:17,760 --> 00:05:21,077 Ja on olemas erinevused thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Võib-olla me ei vaja alati neli hammustab. 108 00:05:22,660 --> 00:05:26,800 Võib-olla vajame kaheksa baiti, ja nii me saab kasutada neid variante täisarvud 109 00:05:26,800 --> 00:05:28,510 olla natuke rohkem ruumi tõhus. 110 00:05:28,510 --> 00:05:31,899 Me saame seda teha koma numbrid, meil saab teha ujukoma numbrid. 111 00:05:31,899 --> 00:05:32,940 Need on üsna sarnased. 112 00:05:32,940 --> 00:05:34,773 Leidub erinevusi, ja kui sa oleks 113 00:05:34,773 --> 00:05:37,330 meeldib otsida SQL omamoodi giid, siis 114 00:05:37,330 --> 00:05:40,670 saab näha, mida kerge erinevused on nende vahel. 115 00:05:40,670 --> 00:05:43,250 >> Võib-olla me tahame hoida informatsiooni kuupäev ja kellaaeg. 116 00:05:43,250 --> 00:05:47,047 Võib-olla me jälgida kui kasutaja liitus meie kodulehel, 117 00:05:47,047 --> 00:05:48,880 ja et äkki me tahame on kolonnis, mis on 118 00:05:48,880 --> 00:05:52,820 kuupäeva aega või ajatempel, et näitab, kui kasutaja tegelikult 119 00:05:52,820 --> 00:05:54,130 registreerunud. 120 00:05:54,130 --> 00:05:56,132 Me ei saa teha geomeetriale ja linestrings. 121 00:05:56,132 --> 00:05:57,340 See on tegelikult päris lahe. 122 00:05:57,340 --> 00:06:01,410 Me võiksime kaardistada abil piirkonna 123 00:06:01,410 --> 00:06:05,110 GIS koordinaadid Palstoittaa ala. 124 00:06:05,110 --> 00:06:08,580 Nii saab tegelikult hoida seda sorti informatsiooniühikuna SQL kolonni. 125 00:06:08,580 --> 00:06:11,390 >> Tekst on lihtsalt hiiglaslik plekid teksti, võibolla. 126 00:06:11,390 --> 00:06:12,840 Väärtustikud on omamoodi huvitav. 127 00:06:12,840 --> 00:06:16,080 Nad tegelikult olemas C. Me ei neist rääkida, sest nad ei ole 128 00:06:16,080 --> 00:06:19,110 kohutavalt kasutatakse tavaliselt vähemalt CS50. 129 00:06:19,110 --> 00:06:22,680 Aga see on loetelutüübina andmete tüübi, mis mahub piiratud väärtustega. 130 00:06:22,680 --> 00:06:25,940 >> Väga hea näide oleks siin luua ENUMi kus seitsme 131 00:06:25,940 --> 00:06:29,394 Võimalikud väärtused on pühapäev, esmaspäev, Teisipäev, kolmapäev, neljapäev, reede, 132 00:06:29,394 --> 00:06:30,060 Laupäev, eks? 133 00:06:30,060 --> 00:06:33,311 See andmetüüp päev Nädal ei ole olemas, 134 00:06:33,311 --> 00:06:35,310 aga me võiksime luua loetletud andmed sellist tüüpi 135 00:06:35,310 --> 00:06:39,400 et mis kolonn saab kunagi hoidke üks neist seitsme võimalike väärtuste. 136 00:06:39,400 --> 00:06:44,300 Me oleme loetletud kõik võimalike väärtuste. 137 00:06:44,300 --> 00:06:47,630 >> Siis on meil CHAR ja varchar, Ja ma olen värvi need rohelised 138 00:06:47,630 --> 00:06:49,505 sest me oleme tegelikult kavatseme teine 139 00:06:49,505 --> 00:06:51,950 rääkida vahe Nende kahe asja. 140 00:06:51,950 --> 00:06:55,780 Nii CHAR erinevalt C, kus CHAR oli ühe märgi, 141 00:06:55,780 --> 00:07:00,730 SQL char viitab fikseeritud pikkusega string. 142 00:07:00,730 --> 00:07:02,620 Ja kui me loome selle veerus, me tegelikult 143 00:07:02,620 --> 00:07:05,070 saab määrata stringi pikkusena. 144 00:07:05,070 --> 00:07:08,080 >> Nii selles näites võib öelda, CHAR (10). 145 00:07:08,080 --> 00:07:11,190 See tähendab, et iga element, mis kolonni 146 00:07:11,190 --> 00:07:13,910 koosneb 10 baiti andmeid. 147 00:07:13,910 --> 00:07:15,770 Ei rohkem ega vähem. 148 00:07:15,770 --> 00:07:21,780 Nii et kui me püüame panna 15 natuke või 15 märgi element 149 00:07:21,780 --> 00:07:25,340 või väärtuse selles veerus, me ainult saada esimese 10. 150 00:07:25,340 --> 00:07:27,290 Kui me paneme kaks iseloomu kaua väärtus, 151 00:07:27,290 --> 00:07:30,700 me lähed on kaks märki ja siis kaheksa null hammustab. 152 00:07:30,700 --> 00:07:34,990 Me ei saa iial olla tõhusam kui. 153 00:07:34,990 --> 00:07:37,727 >> Varchar on selline nagu Meie idee string 154 00:07:37,727 --> 00:07:39,560 et me oleme tuttavad viimisega C või vahemikus PHP. 155 00:07:39,560 --> 00:07:40,830 See on eri pikkusega string. 156 00:07:40,830 --> 00:07:42,560 Ja kui loote Selles veerus sa lihtsalt 157 00:07:42,560 --> 00:07:44,860 määrata maksimaalse võimaliku pikkusega. 158 00:07:44,860 --> 00:07:49,065 Ehk 99, või sagedamini 255. 159 00:07:49,065 --> 00:07:50,440 See oleks maksimaalne pikkus. 160 00:07:50,440 --> 00:07:52,890 Ja kui me talletame 15 märgijada, 161 00:07:52,890 --> 00:07:56,157 meil oleks kasutada 15 baiti, ehk 16 baiti null terminaator. 162 00:07:56,157 --> 00:07:57,990 Kui olime ladustamiseks kolm märgijada, 163 00:07:57,990 --> 00:08:01,120 meil oleks kasutada kolme või nelja baiti. 164 00:08:01,120 --> 00:08:03,050 Aga me ei kasuta täielikult 99. 165 00:08:03,050 --> 00:08:05,190 >> Miks peaks meil nii? 166 00:08:05,190 --> 00:08:08,210 Noh, kui me peame välja mõtlema, kuidas kaua midagi koos varchar, 167 00:08:08,210 --> 00:08:10,680 meil selline Kerrata üle see lihtsalt nagu me tegime C 168 00:08:10,680 --> 00:08:12,230 ja aru saada, kus ta peatub. 169 00:08:12,230 --> 00:08:15,920 Arvestades, kui me teame, et kõik Selles veerus on 10 baiti, võibolla 170 00:08:15,920 --> 00:08:19,220 me teame, et informatsioon, saame hüpata 10 baiti, 10 baiti, 10 baiti, 10 baiti, 171 00:08:19,220 --> 00:08:21,790 ja alati leida stringi algust. 172 00:08:21,790 --> 00:08:25,210 >> Nii et me võib-olla mõned raisatud ruumi koos CHAR, 173 00:08:25,210 --> 00:08:28,510 aga äkki seal on kaubandus välja võttes parem kiirus 174 00:08:28,510 --> 00:08:30,160 navigeerimisel andmebaasis. 175 00:08:30,160 --> 00:08:32,330 Aga äkki me tahame paindlikkust varchar 176 00:08:32,330 --> 00:08:36,710 asemel having-- Kui meie CHAR oli 255, kuid enamik käyttäjillemme 177 00:08:36,710 --> 00:08:40,537 olid ainult sisestanud kolm või neli baiti väärt informatsiooni või kolm või neli 178 00:08:40,537 --> 00:08:41,870 tegelased väärt informatsiooni. 179 00:08:41,870 --> 00:08:44,324 >> Aga mõned kasutajad kasutasid Kogu 255, võibolla 180 00:08:44,324 --> 00:08:45,990 Varchar oleks sobivam on. 181 00:08:45,990 --> 00:08:49,840 See on omamoodi kompromiss, ja Üldiselt eesmärgil CS50, 182 00:08:49,840 --> 00:08:54,107 sa ei pea muretsema liiga palju kas te kasutate CHAR või varchar. 183 00:08:54,107 --> 00:08:57,190 Aga reaalses maailmas, need asjad ei loe, sest kõik need sambad 184 00:08:57,190 --> 00:08:59,300 asuda tegeliku füüsilise ruumi. 185 00:08:59,300 --> 00:09:04,150 Ja füüsilise ruumi, et reaalses maailmas, on oma preemia. 186 00:09:04,150 --> 00:09:06,800 >> Nii üks teine ​​kaalutlus kui sa oled hoone tabelis 187 00:09:06,800 --> 00:09:09,840 on valida üks veerg olema mida nimetatakse primaarvõti. 188 00:09:09,840 --> 00:09:14,350 Ja primaarvõti on veerg kus iga väärtus on unikaalne. 189 00:09:14,350 --> 00:09:19,980 Ja see tähendab, et saate hõlpsasti noppida ühe rea lihtsalt vaadates 190 00:09:19,980 --> 00:09:22,450 kell primaarvõti, et järjest. 191 00:09:22,450 --> 00:09:24,580 Nii näiteks, siis üldiselt, kasutajate, 192 00:09:24,580 --> 00:09:27,210 ei taha kaks kasutajat, kes sama kasutaja ID number. 193 00:09:27,210 --> 00:09:28,960 Ja nii on sul äkki palju informatsiooni, 194 00:09:28,960 --> 00:09:30,793 ja võibolla kaks kasutajat ei sama name-- 195 00:09:30,793 --> 00:09:32,650 sul on John Smith ja John Smith. 196 00:09:32,650 --> 00:09:34,520 See ei ole tingimata probleem, sest seal on mitu inimest 197 00:09:34,520 --> 00:09:35,830 maailma nimega John Smith. 198 00:09:35,830 --> 00:09:40,766 Aga meil on ainult üks kasutaja ID number 10, üks kasutaja ID number 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Meil ei ole kaks kasutajat sama numbriga, 200 00:09:42,640 --> 00:09:46,010 ja nii äkki kasutaja ID numbrid Oleks hea primaarvõti. 201 00:09:46,010 --> 00:09:48,610 >> Meil ei ole kattumist, Ja me saame nüüd üheselt 202 00:09:48,610 --> 00:09:52,619 kindlaks iga rida lihtsalt vaadates, et kolonni. 203 00:09:52,619 --> 00:09:55,410 Parim primaarseid võtmeid saab tegelikult teha ka edaspidi lauaoperatsioonide 204 00:09:55,410 --> 00:09:59,710 palju lihtsam, sest saate kasutada asjaolu, et teatud read 205 00:09:59,710 --> 00:10:02,720 olla ainulaadne või teatud veerus oma andmebaasi või tabeli 206 00:10:02,720 --> 00:10:06,030 on ainulaadne valida välja eriti rida. 207 00:10:06,030 --> 00:10:08,790 >> Võite ka ühise esmane võti, mida võib leida sündmus 208 00:10:08,790 --> 00:10:11,720 kasutamist, need on vaid kombinatsioon kahest veergude 209 00:10:11,720 --> 00:10:13,280 On tagatud ainulaadne. 210 00:10:13,280 --> 00:10:16,410 Nii on sul äkki üks veerus, mis on sama ja Bs, 211 00:10:16,410 --> 00:10:19,290 üks veerg see on üks, kaks, ja kolm, kuid saate alati ainult 212 00:10:19,290 --> 00:10:23,660 olema üks A1, ühe A2, ja nii edasi ja nii edasi. 213 00:10:23,660 --> 00:10:28,980 Aga sa võisid B2, et C2, või A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Nii võite olla mitu As, mitu Bs, mitu neist, mitu kahekaupa 215 00:10:32,840 --> 00:10:38,567 kuid võite ainult kunagi olla ühtse A1, B2, C3, ja nii edasi. 216 00:10:38,567 --> 00:10:40,400 Nii nagu ma ütlesin, SQL on programmeerimiskeel, 217 00:10:40,400 --> 00:10:42,024 kuid see on üsna piiratud sõnavara. 218 00:10:42,024 --> 00:10:44,880 See ei ole päris nii ulatuslik kui C ja PHP ja teised keeled 219 00:10:44,880 --> 00:10:46,350 et me räägime käigus. 220 00:10:46,350 --> 00:10:49,960 See on rohkem lobise keele kui see, mida me oleme 221 00:10:49,960 --> 00:10:52,789 räägime selles video, sest see video 222 00:10:52,789 --> 00:10:54,830 me ei kavatse rääkida neli tegevust, et me 223 00:10:54,830 --> 00:10:55,720 saab sooritada lauale. 224 00:10:55,720 --> 00:10:56,761 >> Seal on rohkem. 225 00:10:56,761 --> 00:10:58,730 Me ei saa teha rohkem kui see, kuid meie eesmärkidel, 226 00:10:58,730 --> 00:11:02,250 me tavaliselt ei kavatse kasutama vaid nelja operations-- sisestada, 227 00:11:02,250 --> 00:11:05,360 vali uuenda ning kustutada. 228 00:11:05,360 --> 00:11:08,750 Ja saab ilmselt intuitiivselt arvata Mis kõik neli neist asjadest teha. 229 00:11:08,750 --> 00:11:12,520 Aga me minema natuke detailsuse iga üks. 230 00:11:12,520 --> 00:11:15,780 >> Nii Käesolevas video Oletame 231 00:11:15,780 --> 00:11:18,870 oleme kahel järgmisel tabelid ühte andmebaasi. 232 00:11:18,870 --> 00:11:23,460 Meil on tabel nimega Kasutajad, kes on Nelja columns-- ID number, kasutajanimi, 233 00:11:23,460 --> 00:11:25,350 parool ja täisnimi. 234 00:11:25,350 --> 00:11:27,430 Ja meil on teine Tabelis samas andmebaasis 235 00:11:27,430 --> 00:11:32,129 nimetatakse Moms, et lihtsalt salvestab info umbes kasutajanimi ja ema. 236 00:11:32,129 --> 00:11:33,920 Nii on kõik näited selle video, siis me 237 00:11:33,920 --> 00:11:37,945 kasutate seda andmebaasi ja nende ajakohastatud ta. 238 00:11:37,945 --> 00:11:40,070 Ütleme, et me tahame Andmete lisamine tabelisse. 239 00:11:40,070 --> 00:11:44,460 See on see, mida sisestada operatsiooni teeb. 240 00:11:44,460 --> 00:11:46,550 Selgitades kõik need käsud, ma lähen 241 00:11:46,550 --> 00:11:48,860 anda teile üldine skelett kasutada. 242 00:11:48,860 --> 00:11:51,661 Sest põhimõtteliselt, pöördumistest lähed vaatama üsna sarnased, 243 00:11:51,661 --> 00:11:54,660 Me elame muutuvat pisut erinevad infoväljad 244 00:11:54,660 --> 00:11:56,750 teha erinevaid asju koos laua. 245 00:11:56,750 --> 00:11:59,200 >> Nii INSERT, skelett näeb selline nagu see. 246 00:11:59,200 --> 00:12:02,230 Tahame lisada Konkreetse laua. 247 00:12:02,230 --> 00:12:05,290 Siis on meil avatud sulgudes ja loetelu veergudes 248 00:12:05,290 --> 00:12:08,070 et me tahame panna väärtused. 249 00:12:08,070 --> 00:12:10,974 Sulge sulgudes Järgmised väärtused ja seejärel 250 00:12:10,974 --> 00:12:13,390 uuesti, toome välja väärtused tahame panna lauale. 251 00:12:13,390 --> 00:12:15,950 >> Nii näiteks selle oleks järgmine. 252 00:12:15,950 --> 00:12:19,170 Tahan lisada tabelisse kasutajate järgmised columns-- 253 00:12:19,170 --> 00:12:21,010 kasutajanimi, parool ja nimi. 254 00:12:21,010 --> 00:12:25,282 Nii uue rea, kus ma panen nendes kolmes tulbas ja me oleme 255 00:12:25,282 --> 00:12:30,030 läheb panna väärtused Newman, USMAIL ja Newman. 256 00:12:30,030 --> 00:12:32,730 Nii et kui ma olen pannes väiketähed Newman 257 00:12:32,730 --> 00:12:38,710 arvesse kasutajanimi veerus parooli USMAIL ja täisnimi kapitali N 258 00:12:38,710 --> 00:12:41,940 Newman sisse fullname veerus. 259 00:12:41,940 --> 00:12:44,240 >> Nii et siin on, mida andmebaasis tundus enne. 260 00:12:44,240 --> 00:12:48,250 Siin on, mida kasutajad tabelit top tundus, enne kui me tegime seda. 261 00:12:48,250 --> 00:12:50,760 Pärast me ellu seda päringu, saame seda. 262 00:12:50,760 --> 00:12:54,790 Lisasime uue rea lauale. 263 00:12:54,790 --> 00:12:56,810 Aga seda märgata üks asi et ma ei täpsustanud, 264 00:12:56,810 --> 00:12:59,880 aga millegipärast on mul väärtus eest, mis on selle 12 siin. 265 00:12:59,880 --> 00:13:02,820 Ma ei saa öelda tahtsin pane ID number seal. 266 00:13:02,820 --> 00:13:04,900 Tahtsin kasutajanime Parooli fullname. 267 00:13:04,900 --> 00:13:06,440 Ja ma tegin seda, et trahvi. 268 00:13:06,440 --> 00:13:07,760 >> Aga ma sain ka selle 12. 269 00:13:07,760 --> 00:13:09,490 Miks ma saan selle 12? 270 00:13:09,490 --> 00:13:12,904 Noh, tuleb välja, et kui sa defineerid 271 00:13:12,904 --> 00:13:15,570 veerus, et saab olema sinu primaarvõtit, mis on tavaliselt, 272 00:13:15,570 --> 00:13:16,510 nagu ma ütlesin, ID-number. 273 00:13:16,510 --> 00:13:18,718 Alati ei pruugi saab olema ID number, 274 00:13:18,718 --> 00:13:22,380 kuid see on tavaliselt hea mõte olla mingi täisarvuni. 275 00:13:22,380 --> 00:13:25,950 Sul on võimalus phpMyAdmin Kui loote oma andmebaasi 276 00:13:25,950 --> 00:13:31,130 või oma laua seada, et veerg auto incrementing. 277 00:13:31,130 --> 00:13:34,520 >> Milline on tõesti hea mõte, kui te töötate primaarvõti, 278 00:13:34,520 --> 00:13:39,330 sest sa tahad iga hinna selles veerus olema unikaalne. 279 00:13:39,330 --> 00:13:43,310 Ja kui te unustate määratleda seda rohkem kui üks inimene, 280 00:13:43,310 --> 00:13:46,240 nüüd oleme olukorras, kus et kolonn ei ole enam unikaalsed. 281 00:13:46,240 --> 00:13:50,200 Sul on kaks tühikud, et sa ei saa enam üheselt identifitseerida column-- 282 00:13:50,200 --> 00:13:54,150 või te ei saa enam üheselt kindlaks järjest põhineb sellel kolonni. 283 00:13:54,150 --> 00:13:57,010 See on kaotanud kõik oma väärtus primaarvõti. 284 00:13:57,010 --> 00:14:02,010 >> Ja nii ilmselt see, mida ma olen teinud siin on konfigureeritud kasutaja ID 285 00:14:02,010 --> 00:14:07,790 veeru auto juurdekasvu nii, et iga aeg lisan informatsiooni tabeli, 286 00:14:07,790 --> 00:14:12,220 see automaatselt mulle väärtus, mille peamine võti. 287 00:14:12,220 --> 00:14:15,570 Nii et ma ei unusta kunagi seda teha, sest Andmebaasi seda minu eest. 288 00:14:15,570 --> 00:14:16,587 Nii et selline kena. 289 00:14:16,587 --> 00:14:18,670 Ja nii see on, miks me 12 sinna, sest ma olen 290 00:14:18,670 --> 00:14:21,772 määrata, et kolonn kuni auto juurdekasvu. 291 00:14:21,772 --> 00:14:23,730 Kui lisasin keegi teine ta tahaks olla 13, kui lisasin 292 00:14:23,730 --> 00:14:27,890 keegi ta tahaks olla 14, ja nii edasi. 293 00:14:27,890 --> 00:14:30,190 >> Nii saab lihtsalt teha veel üks sisestamist. 294 00:14:30,190 --> 00:14:34,530 Me sisesta moms laud, in Eelkõige kasutajanimi ja ema 295 00:14:34,530 --> 00:14:37,390 kolonn, väärtusi Kramer ja Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 Ja nii me pidime seda enne. 297 00:14:39,140 --> 00:14:41,800 Pärast me ellu, et SQL päringu, meil on see. 298 00:14:41,800 --> 00:14:47,290 Lisasime Kramer ja Babs Kramer et moms tabelis. 299 00:14:47,290 --> 00:14:48,350 >> Seega, see sisestamist. 300 00:14:48,350 --> 00:14:51,850 VALI on see, mida me kasutame, et eraldada andmed tabelist. 301 00:14:51,850 --> 00:14:54,390 Nii see on, kuidas me saame informatsiooni välja andmebaasi. 302 00:14:54,390 --> 00:14:59,589 Ja nii valida käske saab olema väga sageli kasutatakse programmeerimine. 303 00:14:59,589 --> 00:15:02,130 Üldine framework-- üldiselt skelett näeb välja selline. 304 00:15:02,130 --> 00:15:06,550 Valige komplekt veerud laua ja seejärel vajadusel 305 00:15:06,550 --> 00:15:11,090 saate määrata condition-- või mida me tavaliselt nimetame predikaat, 306 00:15:11,090 --> 00:15:13,010 Tavaliselt on sõna, mida me kasutame SQL. 307 00:15:13,010 --> 00:15:16,490 >> Aga see on põhimõtteliselt see, mida eriti rida sa tahad saada. 308 00:15:16,490 --> 00:15:19,100 Kui soovite, selle asemel, et kõik, vähendada seda alla, 309 00:15:19,100 --> 00:15:20,060 see on koht, kus sa teeksid seda. 310 00:15:20,060 --> 00:15:22,777 Ja siis soovi korral saate ka tellida üks konkreetne kolonni. 311 00:15:22,777 --> 00:15:25,860 Ehk soovid on asjad järjestatud tähestiku põhineb ühe veeru 312 00:15:25,860 --> 00:15:27,540 või tähestikulises järjekorras, mis põhineb teisele. 313 00:15:27,540 --> 00:15:30,610 >> Jällegi, kus ja ORDER BY on vabatahtlik. 314 00:15:30,610 --> 00:15:32,681 Aga nad tõenäoliselt useful-- eriti 315 00:15:32,681 --> 00:15:34,680 Kus kasulik kitsendada, et sa seda ei tee 316 00:15:34,680 --> 00:15:37,460 saada kogu oma andmebaasi ja tagasi on protsess, sa lihtsalt saada 317 00:15:37,460 --> 00:15:39,300 tükid see, et sa hoolid. 318 00:15:39,300 --> 00:15:44,932 Nii näiteks, ma võiksite valida ID number ja nimi kasutajad. 319 00:15:44,932 --> 00:15:46,140 Mis võiks see välja näeb? 320 00:15:46,140 --> 00:15:48,270 Nii et siin on minu kasutajate tabelis. 321 00:15:48,270 --> 00:15:51,080 Ma tahan, et valida idnum ja nimi kasutajad. 322 00:15:51,080 --> 00:15:52,300 Mida ma hakka? 323 00:15:52,300 --> 00:15:53,580 Ma lähen seda. 324 00:15:53,580 --> 00:15:56,930 Ma ei vähendada seda alla, nii et ma olen saada ID number igal real 325 00:15:56,930 --> 00:16:00,850 ja ma saan kogu Nime iga rea. 326 00:16:00,850 --> 00:16:02,210 >> OKEI. 327 00:16:02,210 --> 00:16:05,640 Mis siis, kui ma tahan, et valida parool kasutajate WHERE-- nii nüüd 328 00:16:05,640 --> 00:16:10,370 Ma lisades seisundist, predicate-- kus idnum on väiksem kui 12. 329 00:16:10,370 --> 00:16:13,660 Nii et siin on minu andmebaasis uuesti, Minu kasutajate tabelis tippu. 330 00:16:13,660 --> 00:16:17,030 Mida ma hakka, kui ma tahan vali, et teave, parool 331 00:16:17,030 --> 00:16:21,550 kus kasutaja ID või idnum on vähem kui 12? 332 00:16:21,550 --> 00:16:24,910 Ma lähen seda andmed tagasi, eks? 333 00:16:24,910 --> 00:16:29,170 See juhtub, et idnum on 10 ja vähem kui 12, ID number 11 vähem kui 12. 334 00:16:29,170 --> 00:16:32,160 Saan parooli neid ridu. 335 00:16:32,160 --> 00:16:33,914 See, mida ma küsisin. 336 00:16:33,914 --> 00:16:34,580 Aga see? 337 00:16:34,580 --> 00:16:39,170 Mis siis, kui ma tahan, et valida tähe moms tabel, kus kasutajanimi on võrdne Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, valige täht on eriline omamoodi jokker nn 339 00:16:43,780 --> 00:16:45,670 mida me kasutame, et saada kõik. 340 00:16:45,670 --> 00:16:48,620 Nii nad ütlevad valige kasutajanime komaga ema, mis 341 00:16:48,620 --> 00:16:51,060 juhtus olema ainus kaks tulbad tabelis, 342 00:16:51,060 --> 00:16:53,260 Ma lihtsalt valida star ja kõike 343 00:16:53,260 --> 00:16:55,030 kus kasutajanimi võrdub Jerry. 344 00:16:55,030 --> 00:16:59,380 Ja nii see on, mida ma saaksin kui ma tegin selle konkreetse päringu. 345 00:16:59,380 --> 00:17:01,810 >> Nüüd on andmebaasid suur, sest need võimaldavad 346 00:17:01,810 --> 00:17:06,074 meil korraldada teabe ehk natuke tõhusamalt kui me 347 00:17:06,074 --> 00:17:06,740 võiks teisiti. 348 00:17:06,740 --> 00:17:10,240 Me ei pruugi säilitada kõik asjakohased tükk info 349 00:17:10,240 --> 00:17:12,230 umbes kasutajanime samas tabelis. 350 00:17:12,230 --> 00:17:13,730 Meil oli kaks lauda seal. 351 00:17:13,730 --> 00:17:15,734 >> Meil on vaja säilitada kõik ema nimi, 352 00:17:15,734 --> 00:17:18,900 ja võibolla meil ei ole sotsiaalkindlustuse number, meil on oma sünnikuupäev. 353 00:17:18,900 --> 00:17:21,819 See ei ole alati vaja olema samas tabelis. 354 00:17:21,819 --> 00:17:25,339 Niikaua kui me saame määratleda suhteid tables-- 355 00:17:25,339 --> 00:17:28,440 ja see on kui see relatsiooniline Andmebaasi mõiste liiki kaasas 356 00:17:28,440 --> 00:17:32,130 arvesse play-- nii kaua kui saame määratleda suhteid tabelid, 357 00:17:32,130 --> 00:17:35,545 saame mingi lahterdada või abstraktseid asju nii, 358 00:17:35,545 --> 00:17:37,670 kus me ainult ei tõesti oluline info 359 00:17:37,670 --> 00:17:39,270 me hoolime kasutaja lauda. 360 00:17:39,270 --> 00:17:43,220 Ja siis on meil kõrvalise teabe või täiendavat teavet teistes tabelid 361 00:17:43,220 --> 00:17:48,260 et suudame ühendada tagasi peamine kasutajate tabelis teatud viisil. 362 00:17:48,260 --> 00:17:52,200 >> Nii et siin on meil need kaks lauda, ​​kuid seal on nendevaheline suhe, 363 00:17:52,200 --> 00:17:53,010 õige? 364 00:17:53,010 --> 00:17:55,070 Tundub kasutajanimi võiks olla midagi 365 00:17:55,070 --> 00:17:59,909 mis eksisteerib ühise vahelise Nende kahe erineva tabelid. 366 00:17:59,909 --> 00:18:01,700 Mis siis, kui me nüüd Olukorras, kus me 367 00:18:01,700 --> 00:18:06,046 tahan kasutaja täisnime alates kasutaja lauda ja nende ema 368 00:18:06,046 --> 00:18:07,170 nimi ema lauale? 369 00:18:07,170 --> 00:18:10,960 Meil ei ole võimalus saada et nagu see on, eks? 370 00:18:10,960 --> 00:18:17,790 Ei ole üks tabel, mis sisaldab nii ees- ja ema nimi. 371 00:18:17,790 --> 00:18:20,400 Meil ei ole seda võimalust sellest, mida me oleme näinud siiani. 372 00:18:20,400 --> 00:18:22,950 >> Ja nii on meil tutvustada idee liituda. 373 00:18:22,950 --> 00:18:24,857 Ja liitub ilmselt Kõige complex-- 374 00:18:24,857 --> 00:18:27,940 see on tõesti kõige keerulisem operatsioon me ei kavatse rääkida video. 375 00:18:27,940 --> 00:18:30,040 Nad on veidi keerulisem, aga kui sa saad aru saama sellest, 376 00:18:30,040 --> 00:18:31,248 nad tegelikult ei ole liiga halb. 377 00:18:31,248 --> 00:18:32,820 See on lihtsalt erijuht SELECT. 378 00:18:32,820 --> 00:18:37,120 Me läheme valida komplekt tabeli veeru liitumisel 379 00:18:37,120 --> 00:18:40,650 teises tabelis mõned predikaat. 380 00:18:40,650 --> 00:18:45,340 >> Sel juhul mõtle meeldib see-- Tabelis üks on üks ring siin, 381 00:18:45,340 --> 00:18:47,530 tabelis kaks on teise ringi siin. 382 00:18:47,530 --> 00:18:49,410 Ja et predikaat osa keskel, see on 383 00:18:49,410 --> 00:18:51,701 omamoodi nagu siis, kui te arvate, umbes nagu Venn diagramm, mida 384 00:18:51,701 --> 00:18:52,670 neil on ühist? 385 00:18:52,670 --> 00:18:55,960 Me tahame, et ühendada need kaks lauda põhjal, mida neil ühist 386 00:18:55,960 --> 00:19:01,230 ja luua selle hüpoteetilise tabelis mis on ühinemise kaks kokku. 387 00:19:01,230 --> 00:19:03,480 Nii me näeme seda mõnes Näiteks võib-olla, et aitan 388 00:19:03,480 --> 00:19:04,521 selge see üles natuke. 389 00:19:04,521 --> 00:19:09,260 Ehk soovite valida user.fullname ja moms.mother 390 00:19:09,260 --> 00:19:13,220 kasutajate liitumine on moms laua igas olukorras 391 00:19:13,220 --> 00:19:16,790 kus kasutajanimi veerus on sama nende vahel. 392 00:19:16,790 --> 00:19:19,240 Ja see on uus süntaktiline siin see kasutaja. 393 00:19:19,240 --> 00:19:20,460 ja moms .. 394 00:19:20,460 --> 00:19:26,697 Kui ma teen mitmest tabelist koos, võin täpsustada tabeli. 395 00:19:26,697 --> 00:19:29,530 Võin eristada eelkõige et väga põhjas on. 396 00:19:29,530 --> 00:19:33,220 Võin eristada kasutajanimi veerus kasutajate tabelis 397 00:19:33,220 --> 00:19:36,010 alates kasutajanimi veerus moms tabelis, mis on otherwise-- 398 00:19:36,010 --> 00:19:38,070 kui me lihtsalt ütles kasutajanimi võrdub kasutajanimi, et tegelikult ei 399 00:19:38,070 --> 00:19:38,970 tähenda midagi. 400 00:19:38,970 --> 00:19:41,440 Me tahame seda teha, kui nad vastavad. 401 00:19:41,440 --> 00:19:46,080 >> Nii et ma ei täpsusta laua ja veeru nimi korral olukorras 402 00:19:46,080 --> 00:19:48,370 kus oleks ebaselge mida ma räägin. 403 00:19:48,370 --> 00:19:51,880 Nii et kõik, mida ma teen on ma olen öeldes, et see veerg sellest tabelist, 404 00:19:51,880 --> 00:19:54,020 ja on väga selgesõnaline. 405 00:19:54,020 --> 00:19:56,810 Nii jälle, ma valida täisnimi ja ema nimi 406 00:19:56,810 --> 00:20:00,950 alates kasutajaid tabelis on omavahel ühendatud koos moms laua igas olukorras 407 00:20:00,950 --> 00:20:05,960 kus nad jagavad, et column-- nad jagavad, et kasutajanimi mõiste. 408 00:20:05,960 --> 00:20:08,580 >> Nii et siin on lauad pidime enne. 409 00:20:08,580 --> 00:20:12,210 See on riik meie andmebaasi, nagu see on praegu. 410 00:20:12,210 --> 00:20:16,390 Teave me kaevandavad on käesoleva alustada. 411 00:20:16,390 --> 00:20:19,820 See on uus laud läheme luua kombineerides neid koos. 412 00:20:19,820 --> 00:20:23,585 Ja märka me ei tõsta esile Newman rida kasutaja lauda 413 00:20:23,585 --> 00:20:25,960 ja me ei tõsta esile Krameri rida moms tabelis 414 00:20:25,960 --> 00:20:31,250 sest kumbki ühe olemas nii sets-- mõlemas tabelis. 415 00:20:31,250 --> 00:20:36,260 >> Ainus informatsioon, mis on ühised nende vahel on Jerry on nii tabelid 416 00:20:36,260 --> 00:20:39,100 ja gcostanza on mõlemas tabelis. 417 00:20:39,100 --> 00:20:42,620 Ja nii, kui me teeme SQL LIITU, mida me get-- ja me teeme tegelikult saada see. 418 00:20:42,620 --> 00:20:44,830 See on omamoodi ajutise muutuja. 419 00:20:44,830 --> 00:20:47,330 See on nagu hüpoteetiline Ühinemise kaks tabelit. 420 00:20:47,330 --> 00:20:49,930 Me tegelikult midagi nagu see, kus 421 00:20:49,930 --> 00:20:54,730 oleme liideti kokku tabelid teavet, mis on neil ühist. 422 00:20:54,730 --> 00:20:58,334 >> Nii märkate, et users.username ja moms.username veerus 423 00:20:58,334 --> 00:20:59,250 see on täpselt sama. 424 00:20:59,250 --> 00:21:01,820 See oli teave, et oli kooskõlas kasutajatelt 425 00:21:01,820 --> 00:21:02,890 laua ja moms tabelis. 426 00:21:02,890 --> 00:21:04,270 Ja nii me liitis need kokku. 427 00:21:04,270 --> 00:21:06,919 Me visata Kramer, sest ta ei eksisteeri kasutajate tabelis, 428 00:21:06,919 --> 00:21:09,710 ja me visata Newman, sest ta ei eksisteeri moms tabelis. 429 00:21:09,710 --> 00:21:16,450 Nii et see on hüpoteetiline ühinemine abil LIITU toimimise SELECT. 430 00:21:16,450 --> 00:21:21,250 >> Ja siis me otsisid kasutaja täisnime ja kasutaja ema, 431 00:21:21,250 --> 00:21:24,999 ja nii on see teave, et saaksime üldisest päringu 432 00:21:24,999 --> 00:21:26,040 mis me teha SELECT. 433 00:21:26,040 --> 00:21:28,873 Nii me liitus tabelite ja me ekstraheeriti need kaks veergu, 434 00:21:28,873 --> 00:21:31,610 ja nii see on, mida me oleks saanud. 435 00:21:31,610 --> 00:21:33,370 Aga SQL liitub mingi keeruline. 436 00:21:33,370 --> 00:21:36,770 Sa ilmselt ei tee neid liiga palju, aga lihtsalt mõned ideed skelett 437 00:21:36,770 --> 00:21:41,992 mida võiks kasutada, et ühendada kaks tabelid koos, kui teil on vaja. 438 00:21:41,992 --> 00:21:43,700 Viimased kaks on natuke lihtsam ma luban. 439 00:21:43,700 --> 00:21:48,040 Nii ajakohastamine, saame kasutada UPDATE muuta teabe tabelisse. 440 00:21:48,040 --> 00:21:53,880 Üldvormingu on UPDATE mõned tabel, määrata mõned veerus mõned väärtus 441 00:21:53,880 --> 00:21:55,540 Kui osa predikaat on täidetud. 442 00:21:55,540 --> 00:21:57,850 Nii näiteks me tahta uuendada kasutajate tabelis 443 00:21:57,850 --> 00:22:04,400 ja määrake salasõna JANKUTUSTA JANKUTUSTA, kus ID number on 10. 444 00:22:04,400 --> 00:22:06,400 >> Nii et kui me oleme ajakohastamine kasutajate tabelis. 445 00:22:06,400 --> 00:22:08,275 ID number on 10 et esimeses reas on, 446 00:22:08,275 --> 00:22:10,690 ja me tahame, et uuendada parool JANKUTUSTA. 447 00:22:10,690 --> 00:22:12,170 Ja nii see on, mis juhtuks. 448 00:22:12,170 --> 00:22:13,628 See on üsna lihtne, eks? 449 00:22:13,628 --> 00:22:17,990 See on lihtsalt väga lihtne muutmine tabelis. 450 00:22:17,990 --> 00:22:22,250 >> Kustutada, on operatsiooni kasutasime informatsiooni eemaldamiseks tabelist. 451 00:22:22,250 --> 00:22:24,817 Kustutada laua taga, kus Mõnes predikaat on täidetud. 452 00:22:24,817 --> 00:22:26,900 Me tahame, et kustutada kasutajate tabelis näiteks 453 00:22:26,900 --> 00:22:28,254 kus kasutajanimi on Newman. 454 00:22:28,254 --> 00:22:31,420 Võite ilmselt arvata, mis läheb juhtub siin pärast me ellu, et SQL 455 00:22:31,420 --> 00:22:35,790 päringu Newman on läinud laualt. 456 00:22:35,790 --> 00:22:40,460 >> Nii et kõik need toimingud, nagu ma olen öelnud, on väga lihtne teha phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 See on väga kasutajasõbralik liides. 458 00:22:43,020 --> 00:22:45,930 Aga see ei nõua füüsilise pingutuseta. 459 00:22:45,930 --> 00:22:47,840 Me ei taha tööle füüsilise pingutuseta. 460 00:22:47,840 --> 00:22:51,280 Me tahame, et meie programmid Selleks meile, eks? 461 00:22:51,280 --> 00:22:53,190 Nii et me võiks teha tahad Selle programmiliselt. 462 00:22:53,190 --> 00:22:56,410 Tahame lisada SQL ja on midagi muud teha seda meie jaoks. 463 00:22:56,410 --> 00:23:02,710 >> Aga mida me näinud, mis võimaldab meil programmiliselt midagi? 464 00:23:02,710 --> 00:23:03,690 Me oleme näinud PHP, eks? 465 00:23:03,690 --> 00:23:05,760 Ta tutvustab mõningaid dünaamilisus meie programme. 466 00:23:05,760 --> 00:23:10,430 Ja nii õnneks SQL ja PHP mängida väga kenasti kokku. 467 00:23:10,430 --> 00:23:13,230 Seal on funktsioon PHP nimetatakse päringu, mida saab kasutada. 468 00:23:13,230 --> 00:23:15,870 Ja sa ei liigu, kui parameetri või argument 469 00:23:15,870 --> 00:23:19,210 päringu SQL päring, mis soovid täita. 470 00:23:19,210 --> 00:23:23,250 Ja PHP teeb seda sinu eest. 471 00:23:23,250 --> 00:23:25,564 >> Nii siis, kui olete ühendatud oma andmebaasi PHP, 472 00:23:25,564 --> 00:23:26,980 seal on kaks eelvalimised sa seda teed. 473 00:23:26,980 --> 00:23:29,230 Seal on midagi, mida nimetatakse MySQLi ja midagi, mida nimetatakse KPN. 474 00:23:29,230 --> 00:23:31,063 Me ei hakka suur summa detail seal. 475 00:23:31,063 --> 00:23:32,957 In CS50 me kasutame KPN. 476 00:23:32,957 --> 00:23:34,790 Kui olete ühendatud oma andmebaasi, siis 477 00:23:34,790 --> 00:23:40,980 Seejärel saab teha päringuid oma andmebaasi sooritades päringud argumentidena 478 00:23:40,980 --> 00:23:42,730 PHP funktsioone. 479 00:23:42,730 --> 00:23:46,460 Ja kui sa seda teha, teil salvestada tagajärjega on assotsiatiivne massiiv. 480 00:23:46,460 --> 00:23:50,290 >> Ja me teame, kuidas töötada assotsiatiivne massiivid PHP. 481 00:23:50,290 --> 00:23:52,630 Nii et ma võiks öelda midagi nagu see-- $ results-- 482 00:23:52,630 --> 00:23:55,470 see on PHP-- võrdub päring. 483 00:23:55,470 --> 00:23:57,660 Ja siis seestpoolt päringu funktsiooni, et argument 484 00:23:57,660 --> 00:24:00,130 et ma möödaminnes päringut mis näeb välja nagu SQL. 485 00:24:00,130 --> 00:24:01,160 Ja tegelikult, mis on SQL. 486 00:24:01,160 --> 00:24:05,700 See on stringi, et ma meeldib täita minu andmebaasis. 487 00:24:05,700 --> 00:24:09,250 >> Ja nii punane, see on PHP. 488 00:24:09,250 --> 00:24:11,890 See on SQL, et ma olen integreerides PHP tehes 489 00:24:11,890 --> 00:24:15,020 see argument päringu funktsiooni. 490 00:24:15,020 --> 00:24:19,640 Ma tahan, et valida fullname alates kasutajate, kus ID number võrdub 10. 491 00:24:19,640 --> 00:24:22,560 Ja siis äkki, kui ma olen teinud, et Ma võiks öelda midagi sellist. 492 00:24:22,560 --> 00:24:25,550 Ma tahan välja printida sõnum Täname sisselogimist. 493 00:24:25,550 --> 00:24:32,530 >> Ja ma tahan seda interpolate-- ma tahan interpoleerimiseks $ tulemusi fullname. 494 00:24:32,530 --> 00:24:36,280 Ja nii see on, kuidas ma töötan, et assotsiatiivne massiiv, et ma sain tagasi. 495 00:24:36,280 --> 00:24:39,730 $ tulemusi fullname oleks põhimõtteliselt lõpuks välja trükkida, 496 00:24:39,730 --> 00:24:42,870 Täname sisselogimist Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 See oli täielik nimi kus idnum võrdub 10. 498 00:24:46,570 --> 00:24:48,850 >> Ja nii ma teengi on ma now-- Ma salvestatud 499 00:24:48,850 --> 00:24:52,780 minu päringu tulemusi minu päringu ja tulemuseks on assotsiatiivne massiiv, 500 00:24:52,780 --> 00:24:56,330 ja nimi on nimi Veerus ma imestasin eest. 501 00:24:56,330 --> 00:25:01,010 Nii et minu võti tulemusi assotsiatiivne massiiv, mida ma tahan. 502 00:25:01,010 --> 00:25:05,930 Nii Täname sisselogimist $ tulemusi, fullname prinditakse välja, on kinni 503 00:25:05,930 --> 00:25:08,654 õigus nende vahel lokkis traksid, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 Ja ma tahan välja printida sõnum Täname logige Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Nüüd ilmselt ei taha kõva kood asjad niimoodi, eks? 506 00:25:16,652 --> 00:25:19,860 Me tahta teha midagi print f, kus saame asendada ja võibolla 507 00:25:19,860 --> 00:25:22,443 koguda erinevaid andmeid, või äkki on päringu protsess 508 00:25:22,443 --> 00:25:23,370 erinevat teavet. 509 00:25:23,370 --> 00:25:27,920 Ja nii päring, päringu funktsioon on Selle mõiste omamoodi asendused 510 00:25:27,920 --> 00:25:32,310 väga sarnane printida f protsenti s ja protsenti c, on küsimärke. 511 00:25:32,310 --> 00:25:34,290 >> Ja me saame kasutada küsimus märgid väga sarnaselt 512 00:25:34,290 --> 00:25:38,400 printida f asendajakohale muutujaid. 513 00:25:38,400 --> 00:25:44,120 Ehk oma kasutaja sisse logitud varem ja sa päästsid oma kasutaja ID number 514 00:25:44,120 --> 00:25:51,710 in $ _session PHP super globaalse võtme ID. 515 00:25:51,710 --> 00:25:55,947 Ehk pärast sisselogimist seate $ _session ID võrdub 10, 516 00:25:55,947 --> 00:25:58,280 ekstrapoleerimise näitel me just nägin hetk tagasi. 517 00:25:58,280 --> 00:26:01,960 >> Ja nii, kui me tegelikult ellu Selle päringu tulemused nüüd, 518 00:26:01,960 --> 00:26:08,440 see pistik 10, või mis iganes on $ _session ID väärtus on. 519 00:26:08,440 --> 00:26:10,790 Ja nii, et võimaldab meil olla natuke rohkem dünaamiline. 520 00:26:10,790 --> 00:26:12,699 Me ei leidu kodeerimist asju enam. 521 00:26:12,699 --> 00:26:14,490 Me säästa info kusagil ja siis 522 00:26:14,490 --> 00:26:18,924 saame seda teavet kasutada uuesti omamoodi üldistada, mida me tahame teha, 523 00:26:18,924 --> 00:26:21,090 ja lihtsalt plug-in ja muutus käitumist meie leht 524 00:26:21,090 --> 00:26:26,489 põhjal, mida kasutaja ID number tegelikult on pärast olen sisenenud. 525 00:26:26,489 --> 00:26:28,530 On ka võimalik, kuigi et oma tulemusi seatud 526 00:26:28,530 --> 00:26:30,840 Võib sisaldada mitu rida. 527 00:26:30,840 --> 00:26:33,990 Millisel juhul on teil massiivi arrays-- 528 00:26:33,990 --> 00:26:35,334 massiivi assotsiatiivne massiivid. 529 00:26:35,334 --> 00:26:37,000 Ja sa lihtsalt vaja korrata läbi. 530 00:26:37,000 --> 00:26:41,950 Ja me teame, kuidas itereerima läbi massiivi PHP, eks? 531 00:26:41,950 --> 00:26:45,600 Nii et siin on tõenäoliselt kõige keeruline asi, mida me oleme näinud siiani. 532 00:26:45,600 --> 00:26:49,640 See tegelikult ühendab kolmes keeles koos. 533 00:26:49,640 --> 00:26:52,920 >> Siin punane, see on mingi HTML. 534 00:26:52,920 --> 00:26:56,872 Ma ilmselt starting-- see on väljavõtte mõned HTML, mis mul on. 535 00:26:56,872 --> 00:26:59,580 Ma olen hakanud uus lõige, mis ütleb moms TV Seinfeld. 536 00:26:59,580 --> 00:27:02,350 Ja siis kohe pärast seda Ma olen hakanud tabeli. 537 00:27:02,350 --> 00:27:06,060 Ja siis pärast, et ma mõned PHP, eks? 538 00:27:06,060 --> 00:27:08,229 Mul on kõik see PHP kood seal. 539 00:27:08,229 --> 00:27:09,645 Ma ilmselt läheb tee päring. 540 00:27:09,645 --> 00:27:14,180 Ja teha päringu, ma lähen olla kasutades SELECT emasid moms. 541 00:27:14,180 --> 00:27:15,970 >> Nii et see on getting-- see on SQL. 542 00:27:15,970 --> 00:27:17,300 Nii sinine on SQL. 543 00:27:17,300 --> 00:27:19,680 Punane nägime hetk tagasi oli HTML. 544 00:27:19,680 --> 00:27:21,360 Ja roheline on siin PHP. 545 00:27:21,360 --> 00:27:23,400 Nii et ma teen päringu minu andmebaasi, ma olen 546 00:27:23,400 --> 00:27:26,040 valides kõik emad moms tabelis. 547 00:27:26,040 --> 00:27:30,710 Mitte ainult kitsendades selle alla eriti rida, ma küsin neid kõiki. 548 00:27:30,710 --> 00:27:33,290 >> Siis ma vaadata, kas tulemus on ei võrdsete võrdne vale. 549 00:27:33,290 --> 00:27:37,410 See on lihtsalt minu viis kontrollida omamoodi If tulemused ei ole võrdne null, 550 00:27:37,410 --> 00:27:40,260 et me näeksime c näiteks. 551 00:27:40,260 --> 00:27:44,000 Põhimõtteliselt on see lihtsalt kontrollida, et kindel, et see tegelikult sain andmed tagasi. 552 00:27:44,000 --> 00:27:47,041 Sest ma ei taha, et alustada printimist välja andmed, kui ma ei saa midagi andmeid. 553 00:27:47,041 --> 00:27:50,690 Siis iga Tulemused mille tulemusena foreach süntaksi PHP, kõik, mida ma teen 554 00:27:50,690 --> 00:27:53,399 printimise $ tulemus emad. 555 00:27:53,399 --> 00:27:55,940 Ja nii ma lähen komplekt Kõigi emad each-- 556 00:27:55,940 --> 00:27:59,980 see on massiivi assotsiatiivne arrays-- ja ma väljatrükk 557 00:27:59,980 --> 00:28:03,649 igaüks iseenda tabelilahtrile. 558 00:28:03,649 --> 00:28:05,690 Ja see on tõesti ilus palju kõik on see. 559 00:28:05,690 --> 00:28:07,750 Ma tean, et seal on vähe natuke siin toimub 560 00:28:07,750 --> 00:28:13,210 Selles viimases näiteks massiivid arrays-- massiive assotsiatiivne massiivid. 561 00:28:13,210 --> 00:28:17,340 Aga see tõesti ei keeda täpselt alla SQL teha päringu, 562 00:28:17,340 --> 00:28:21,102 tavaliselt, valides pärast me oleme juba pane andmed tabelisse, 563 00:28:21,102 --> 00:28:22,310 ja siis lihtsalt välja tõmmata. 564 00:28:22,310 --> 00:28:25,710 >> Ja see on meil oleks tõmba sellel konkreetsel juhul. 565 00:28:25,710 --> 00:28:31,120 Tahaksime ekstraheerida kõik üksikud emad alates moms tabelis. 566 00:28:31,120 --> 00:28:35,970 Meil on terve rida neid, ja me tahan korrata läbi ja välja printida 567 00:28:35,970 --> 00:28:37,630 igaüks. 568 00:28:37,630 --> 00:28:40,510 Nii jälle see on ilmselt Kõige keerulisem näiteks 569 00:28:40,510 --> 00:28:44,510 oleme näinud, sest me segamine kolm eri keeli kõnelevad, eks? 570 00:28:44,510 --> 00:28:50,100 >> Jällegi on meil HTML siin punane, segada mõned SQL siin sinine, 571 00:28:50,100 --> 00:28:52,049 segada mõned PHP roheline. 572 00:28:52,049 --> 00:28:53,840 Aga kõik need mängida kenasti koos, see on 573 00:28:53,840 --> 00:28:57,060 lihtsalt asja arendada Heade kommete nii et saad 574 00:28:57,060 --> 00:28:58,780 neil koos töötada nii, nagu soovite. 575 00:28:58,780 --> 00:29:03,790 Ja ainus viis tõesti, et on praktika, praktika, praktika. 576 00:29:03,790 --> 00:29:06,740 Ma olen Doug Lloyd, see on CS50. 577 00:29:06,740 --> 00:29:08,647