1 00:00:00,000 --> 00:00:03,493 >> [MUSIC JOC] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD: În filmele noastre pe teme de dezvoltare web, 4 00:00:07,100 --> 00:00:10,560 am menționat conceptul de o bază de date de câteva ori, nu? 5 00:00:10,560 --> 00:00:12,700 Deci, o bază de date ce te probabil, familiarizat cu de la 6 00:00:12,700 --> 00:00:15,780 spune folosind Microsoft Excel sau foi de calcul Google. 7 00:00:15,780 --> 00:00:20,650 Este într-adevăr doar o organizat set de tabele, rânduri, și coloane. 8 00:00:20,650 --> 00:00:23,140 >> Și o bază de date în cazul în care este noastre de magazine site-ul 9 00:00:23,140 --> 00:00:26,760 informații care sunt importante pentru site-ul nostru să funcționeze corect. 10 00:00:26,760 --> 00:00:30,150 Din nou, un exemplu foarte comun aici este stocarea numele de utilizator și parole 11 00:00:30,150 --> 00:00:32,824 o bază de date, astfel încât atunci când un utilizator în site-ul nostru, 12 00:00:32,824 --> 00:00:36,690 baza de date poate fi interogate pentru a vedea dacă utilizatorul există în baza de date. 13 00:00:36,690 --> 00:00:39,260 Și dacă sunt, verificarea faptului că parola este corectă. 14 00:00:39,260 --> 00:00:43,420 Și dacă parola este corectă, apoi le tot ce poate da pagina 15 00:00:43,420 --> 00:00:45,370 acestea sunt solicitante. 16 00:00:45,370 --> 00:00:48,590 >> Deci tu ești probabil, din nou, familiar cu această idee de la Excel sau Google 17 00:00:48,590 --> 00:00:49,430 Foi de calcul. 18 00:00:49,430 --> 00:00:52,980 Avem baze de date, tabele, rânduri, și coloane. 19 00:00:52,980 --> 00:00:56,450 Și asta într-adevăr un fel a setului fundamental 20 00:00:56,450 --> 00:00:58,470 de defalcare ierarhic aici. 21 00:00:58,470 --> 00:00:59,800 Deci, aici este o foaie de calcul Excel. 22 00:00:59,800 --> 00:01:02,640 Și dacă ați deschis vreodată acest sau un alt program similar 23 00:01:02,640 --> 00:01:06,780 știți că acestea sunt aici rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Acestea sunt coloane. 25 00:01:08,760 --> 00:01:11,790 >> Poate aici, deși s-ar putea nu utiliza această caracteristică foarte much-- 26 00:01:11,790 --> 00:01:15,370 Voi zoom in-- avem această idee de o foaie. 27 00:01:15,370 --> 00:01:17,930 Deci, poate aceste foi, dacă Am alternativ înainte și înapoi, 28 00:01:17,930 --> 00:01:21,600 sunt tabele diferite care există în baza mea de date. 29 00:01:21,600 --> 00:01:25,210 Și dacă vom continua exemplul toate Apropo, numele acestei baze de date 30 00:01:25,210 --> 00:01:26,940 este cartea 1. 31 00:01:26,940 --> 00:01:28,710 Poate că au Book 2 și 3 de carte. 32 00:01:28,710 --> 00:01:33,270 Deci, fiecare fișier Excel este un baze de date, fiecare foaie este un tabel, 33 00:01:33,270 --> 00:01:39,530 și în interiorul fiecărui tabel am această idee de rânduri și coloane. 34 00:01:39,530 --> 00:01:41,900 >> Deci, cum lucrez cu această bază de date? 35 00:01:41,900 --> 00:01:43,630 Cum pot obține informații de la ea? 36 00:01:43,630 --> 00:01:47,540 Ei bine, există un limbaj numit SQL-- care, de obicei, eu numesc doar Sequel-- 37 00:01:47,540 --> 00:01:50,010 și standuri pentru Structured Query Language. 38 00:01:50,010 --> 00:01:52,981 Și este un limbaj de programare, dar este un destul de limitat de programare 39 00:01:52,981 --> 00:01:53,480 limbă. 40 00:01:53,480 --> 00:01:56,407 Nu e destul ca alții care le-am lucrat cu. 41 00:01:56,407 --> 00:01:58,240 Dar scopul acestei limbaj de programare 42 00:01:58,240 --> 00:02:01,570 este pentru a interoga o bază de date, pentru a cere informații de baze de date, 43 00:02:01,570 --> 00:02:04,480 găsi informații într-o baze de date, și așa mai departe. 44 00:02:04,480 --> 00:02:08,449 >> Avem, de asemenea, în CS50-- și este un foarte platformă comună, se numește MySQL. 45 00:02:08,449 --> 00:02:10,600 Asta e ceea ce ne-am folosi în cursul. 46 00:02:10,600 --> 00:02:12,880 Este o sursă deschisă platformă care stabilește 47 00:02:12,880 --> 00:02:16,732 un așa-numit database-- relațională o bază de date, în mod eficient. 48 00:02:16,732 --> 00:02:18,440 Nu avem nevoie de a obține în prea multe detalii 49 00:02:18,440 --> 00:02:20,930 pe ceea ce o bază de date relațională este. 50 00:02:20,930 --> 00:02:24,650 Dar limbajul SQL este foarte adept la lucru 51 00:02:24,650 --> 00:02:29,760 cu MySQL și alte similare stiluri de baze de date relaționale. 52 00:02:29,760 --> 00:02:34,010 >> Și multe instalații de MySQL vin cu ceva 53 00:02:34,010 --> 00:02:37,760 numit phpMyAdmin, care este un grafică de utilizator 54 00:02:37,760 --> 00:02:40,970 interface-- un GUI-- care face un pic mai 55 00:02:40,970 --> 00:02:44,410 ușor de utilizat pentru a executa interogări de baze de date, 56 00:02:44,410 --> 00:02:48,980 deoarece bazele de date nu sunt utilizate doar de programatori avansate, nu? 57 00:02:48,980 --> 00:02:51,510 Uneori există aceste întreprinderi mici, 58 00:02:51,510 --> 00:02:53,900 și nu își pot permite să angaja o echipă de programatori, 59 00:02:53,900 --> 00:02:56,700 dar ei încă mai au nevoie pentru a stoca informații în baza de date. 60 00:02:56,700 --> 00:02:59,300 >> Ceva de genul phpMyAdmin face foarte usor pentru cineva 61 00:02:59,300 --> 00:03:03,630 cine nu programat înainte de a ridica și să se familiarizeze cu modul 62 00:03:03,630 --> 00:03:07,710 de a lucra cu o bază de date. 63 00:03:07,710 --> 00:03:11,800 Problema este, phpMyAdmin, în timp ce este un instrument fantastic pentru învățare 64 00:03:11,800 --> 00:03:14,850 despre bazele de date, este manual. 65 00:03:14,850 --> 00:03:18,050 Ai de gând să trebuie să vă autentificați în l și executa comenzi și de tip 66 00:03:18,050 --> 00:03:19,910 lucruri în manual. 67 00:03:19,910 --> 00:03:23,160 >> Și, după cum știm din nostru exemplu pe PHP programare web, 68 00:03:23,160 --> 00:03:26,550 au de a face manual lucruri pe site-ul nostru, 69 00:03:26,550 --> 00:03:30,970 dacă vrem o dinamică, receptiv activ site-ul, poate nu cea mai bună abordare. 70 00:03:30,970 --> 00:03:33,980 Ne-ar dori să găsească o modalitate de a poate automatiza acest cumva. 71 00:03:33,980 --> 00:03:37,864 Și SQL ne va permite să facă acest lucru. 72 00:03:37,864 --> 00:03:39,780 Așa că atunci când vom începe să lucreze cu SQL, 73 00:03:39,780 --> 00:03:41,220 avem nevoie mai întâi să aibă un baza de date pentru a lucra cu. 74 00:03:41,220 --> 00:03:42,510 Crearea unei baze de date este ai ceva, probabil, 75 00:03:42,510 --> 00:03:45,350 va face în phpMyAdmin, deoarece veți avea nevoie doar de a face acest lucru o singură dată, 76 00:03:45,350 --> 00:03:49,690 și sintaxa pentru a face acest lucru este mult mai simplă. 77 00:03:49,690 --> 00:03:51,940 Este mult mai ușor să o facă într-o interfață de utilizator grafică 78 00:03:51,940 --> 00:03:53,520 decât tastarea l ca o comandă. 79 00:03:53,520 --> 00:03:55,186 Comanda poate obține un pic greoaie. 80 00:03:55,186 --> 00:03:58,889 În mod similar, crearea unui tabel poate obține destul de un pic greoaie, de asemenea. 81 00:03:58,889 --> 00:04:01,930 Și așa lucruri cum ar fi crearea unei baze de date și crearea unui tabel, care ești 82 00:04:01,930 --> 00:04:06,270 probabil, doar de gând să faci once-- o dată pe masă, o dată pe database-- 83 00:04:06,270 --> 00:04:09,040 este OK pentru a face acest lucru în o interfață grafică. 84 00:04:09,040 --> 00:04:11,570 În procesul de crearea unui tabel, veți 85 00:04:11,570 --> 00:04:14,840 asemenea, trebuie să specificați toate coloane care vor fi în acest tabel. 86 00:04:14,840 --> 00:04:18,149 Ce fel de informații face doriți să stocați în tabel? 87 00:04:18,149 --> 00:04:24,520 Poate numele de utilizator și data nașterii, parola, număr de identificare de utilizator, și poate 88 00:04:24,520 --> 00:04:26,170 oraș și de stat, nu? 89 00:04:26,170 --> 00:04:30,080 >> Și pentru fiecare dată când doriți să adăugați un utilizator la baza de date, ne-o dorim pentru a obține toate cele șase 90 00:04:30,080 --> 00:04:31,890 de acele informații. 91 00:04:31,890 --> 00:04:34,840 Și facem asta prin adăugarea rânduri în tabel. 92 00:04:34,840 --> 00:04:37,800 Așa că am crea mai întâi o baza de date, atunci vom crea un tabel. 93 00:04:37,800 --> 00:04:40,100 Ca parte a creării un tabel, ni se cere 94 00:04:40,100 --> 00:04:44,280 pentru a specifica fiecare coloană care am dori în acest tabel. 95 00:04:44,280 --> 00:04:47,247 Și apoi ca vom începe să adăuga informații în baza de date 96 00:04:47,247 --> 00:04:49,580 și interoga baza de date mai generally-- nu doar adaugand, 97 00:04:49,580 --> 00:04:51,610 dar totul altceva am do-- vom fi de-a face 98 00:04:51,610 --> 00:04:58,870 cu rânduri din tabel, care este unul informații de utilizator de pe întregul set. 99 00:04:58,870 --> 00:05:03,210 >> Deci, în fiecare coloană SQL este capabil de care deține date de un anumit tip de date. 100 00:05:03,210 --> 00:05:06,560 Așa că am un fel de eliminat acest Ideea de tipuri de date în PHP, 101 00:05:06,560 --> 00:05:08,747 dar sunt aici în SQL. 102 00:05:08,747 --> 00:05:10,080 Și există o mulțime de tipuri de date. 103 00:05:10,080 --> 00:05:13,420 Iată doar 20 dintre ele, dar nu e chiar toate dintre ele. 104 00:05:13,420 --> 00:05:16,240 Deci, avem idei cum ar fi INTs-- Integers-- probabil știm 105 00:05:16,240 --> 00:05:17,760 că această coloană poate deține numere întregi. 106 00:05:17,760 --> 00:05:21,077 Și există variații thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Poate nu avem nevoie de patru întotdeauna mușcături. 108 00:05:22,660 --> 00:05:26,800 Poate avem nevoie de opt bytes, si asa ne-am pot folosi aceste variații pe numere întregi 109 00:05:26,800 --> 00:05:28,510 să fie un pic mai mult spațiu eficient. 110 00:05:28,510 --> 00:05:31,899 Putem face numere zecimale, am pot face numere în virgulă mobilă. 111 00:05:31,899 --> 00:05:32,940 Acestea sunt destul de similare. 112 00:05:32,940 --> 00:05:34,773 Există unele diferențe, și dacă v-ar 113 00:05:34,773 --> 00:05:37,330 place să se uite în sus Un fel de ghid SQL, voi 114 00:05:37,330 --> 00:05:40,670 Puteti vedea ce ușoară Diferențele sunt între ele. 115 00:05:40,670 --> 00:05:43,250 >> Poate că doriți să stocați informații despre data și ora. 116 00:05:43,250 --> 00:05:47,047 Poate ne ține evidența atunci când utilizatorul s-au alăturat site-ul nostru, 117 00:05:47,047 --> 00:05:48,880 și așa, poate ne-o dorim pentru a avea o coloană care este 118 00:05:48,880 --> 00:05:52,820 un timp dată sau un marcaj de timp care indică atunci când utilizatorul efectiv 119 00:05:52,820 --> 00:05:54,130 inscris. 120 00:05:54,130 --> 00:05:56,132 Putem face geometrii și linestrings. 121 00:05:56,132 --> 00:05:57,340 Aceasta este, de fapt destul de cool. 122 00:05:57,340 --> 00:06:01,410 Am putea trasa o zonă geografică, folosind 123 00:06:01,410 --> 00:06:05,110 GIS coordonatele pentru a parcelei pe o suprafață. 124 00:06:05,110 --> 00:06:08,580 Deci, poate stoca de fapt, ca un fel de informații într-o coloană SQL. 125 00:06:08,580 --> 00:06:11,390 >> Acest text este doar pete gigant de text, poate. 126 00:06:11,390 --> 00:06:12,840 ENUM sunt un fel de interesante. 127 00:06:12,840 --> 00:06:16,080 Ele există de fapt, în C. Noi nu vorbesc despre ei, deoarece ei nu sunt 128 00:06:16,080 --> 00:06:19,110 teribil utilizate în mod obișnuit, cel puțin CS50. 129 00:06:19,110 --> 00:06:22,680 Dar este un tip de date enumerat, care este capabil de a deține valori limitate. 130 00:06:22,680 --> 00:06:25,940 >> Un exemplu foarte bun aici ar fi pentru a crea o enumerare care șapte 131 00:06:25,940 --> 00:06:29,394 Valorile posibile sunt duminică, luni, Marți, Miercuri, Joi, Vineri, 132 00:06:29,394 --> 00:06:30,060 Sâmbătă, dreapta? 133 00:06:30,060 --> 00:06:33,311 Acest tip de date Ziua Săptămâna nu există, 134 00:06:33,311 --> 00:06:35,310 dar am putea crea o tip de date enumerate, cum ar 135 00:06:35,310 --> 00:06:39,400 care acea coloană poate deține doar vreodată unul dintre cele șapte valori posibile. 136 00:06:39,400 --> 00:06:44,300 Am enumerat toate de valori posibile. 137 00:06:44,300 --> 00:06:47,630 >> Apoi, avem CHAR și VARCHAR, Și am colora aceste verde 138 00:06:47,630 --> 00:06:49,505 pentru că suntem de fapt de gând să ia un al doilea 139 00:06:49,505 --> 00:06:51,950 pentru a vorbi despre diferenta între aceste două lucruri. 140 00:06:51,950 --> 00:06:55,780 Deci CHAR, spre deosebire de C în cazul în care CHAR fost un singur caracter, 141 00:06:55,780 --> 00:07:00,730 în SQL o CHAR se referă la un șir de lungime fixă. 142 00:07:00,730 --> 00:07:02,620 Și când vom crea acest coloană, am de fapt, 143 00:07:02,620 --> 00:07:05,070 poate specifica lungimea șirului. 144 00:07:05,070 --> 00:07:08,080 >> Deci, în acest exemplu, am putea spune CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Asta înseamnă că fiecare element de care coloana 146 00:07:11,190 --> 00:07:13,910 va consta din 10 octeți de informație. 147 00:07:13,910 --> 00:07:15,770 Nu mai mult, nici mai puțin. 148 00:07:15,770 --> 00:07:21,780 Deci, dacă am încerca și a pus într-o 15 bit sau un element de 15 de caractere 149 00:07:21,780 --> 00:07:25,340 sau valoarea în această coloană, suntem primi doar primele 10. 150 00:07:25,340 --> 00:07:27,290 Dacă ne-am pus în cele două Valoarea caracter lung, 151 00:07:27,290 --> 00:07:30,700 vom avea două caractere, și apoi opt muscaturile nule. 152 00:07:30,700 --> 00:07:34,990 Noi nu vom fi mai eficient decât atât. 153 00:07:34,990 --> 00:07:37,727 >> Un VARCHAR este un fel de noțiunea noastră de un șir 154 00:07:37,727 --> 00:07:39,560 că suntem familiarizați cu de la C sau de la PHP. 155 00:07:39,560 --> 00:07:40,830 Este un șir de lungime variabilă. 156 00:07:40,830 --> 00:07:42,560 Și atunci când vă creați această coloană, doar 157 00:07:42,560 --> 00:07:44,860 specifica lungimile maxime posibile. 158 00:07:44,860 --> 00:07:49,065 Deci, poate 99, sau în mod obișnuit 255. 159 00:07:49,065 --> 00:07:50,440 Asta ar fi lungimea maximă. 160 00:07:50,440 --> 00:07:52,890 Și astfel, dacă ne-am stocarea 15 șir de caractere, 161 00:07:52,890 --> 00:07:56,157 ne-ar folosi de 15 bytes, poate 16 bytes pentru terminatorul nul. 162 00:07:56,157 --> 00:07:57,990 Dacă am fost o stocarea trei șir de caractere, 163 00:07:57,990 --> 00:08:01,120 ne-ar folosi trei sau patru octeți. 164 00:08:01,120 --> 00:08:03,050 Dar nu ne-ar folosi deplin 99. 165 00:08:03,050 --> 00:08:05,190 >> Deci, de ce ne-ar avea atât? 166 00:08:05,190 --> 00:08:08,210 Ei bine, dacă trebuie să ne dăm seama cum ceva timp este cu un VARCHAR, 167 00:08:08,210 --> 00:08:10,680 trebuie să ne fel de repeta peste place doar am făcut în C 168 00:08:10,680 --> 00:08:12,230 și dau seama unde se oprește. 169 00:08:12,230 --> 00:08:15,920 Întrucât, dacă știm că totul în această coloană este de 10 bytes, poate 170 00:08:15,920 --> 00:08:19,220 știm că informații, putem sări 10 bytes, 10 bytes, 10 bytes, 10 bytes, 171 00:08:19,220 --> 00:08:21,790 și găsi întotdeauna începutul șirului. 172 00:08:21,790 --> 00:08:25,210 >> Deci, am putea avea unele irosit spațiu cu un CHAR, 173 00:08:25,210 --> 00:08:28,510 dar poate exista un comert off de a avea o mai bună viteză 174 00:08:28,510 --> 00:08:30,160 în navigarea baza de date. 175 00:08:30,160 --> 00:08:32,330 Dar poate vrem flexibilitatea unui VARCHAR 176 00:08:32,330 --> 00:08:36,710 în loc de having-- Dacă CHAR nostru a fost 255, dar cele mai multe dintre utilizatorii noștri 177 00:08:36,710 --> 00:08:40,537 au fost introducerea doar trei sau patru octeți în valoare de informații sau trei sau patru 178 00:08:40,537 --> 00:08:41,870 caractere în valoare de informații. 179 00:08:41,870 --> 00:08:44,324 >> Dar unii utilizatori au folosit întreaga 255, poate 180 00:08:44,324 --> 00:08:45,990 VARCHAR ar fi mai potrivit acolo. 181 00:08:45,990 --> 00:08:49,840 E un fel de compromis, și în general în scopuri de CS50, 182 00:08:49,840 --> 00:08:54,107 nu aveți nevoie să vă faceți griji prea mult despre dacă utilizați un CHAR sau VARCHAR o. 183 00:08:54,107 --> 00:08:57,190 Dar, în lumea reală, aceste lucruri conteaza deoarece toate aceste coloane 184 00:08:57,190 --> 00:08:59,300 ocupă spațiu fizic real. 185 00:08:59,300 --> 00:09:04,150 Și spațiu fizic, în lumea reală, vine la o primă. 186 00:09:04,150 --> 00:09:06,800 >> Deci, un alt considerare atunci când sunteți construirea unui tabel 187 00:09:06,800 --> 00:09:09,840 este de a alege o coloană pentru a fi ceea ce se numește o cheie primară. 188 00:09:09,840 --> 00:09:14,350 Și o cheie primară este o coloană în cazul în care fiecare valoare nu este unic. 189 00:09:14,350 --> 00:09:19,980 Și asta înseamnă că puteți cu ușurință alege un singur rând doar uitandu-te 190 00:09:19,980 --> 00:09:22,450 la cheia primară de acel rând. 191 00:09:22,450 --> 00:09:24,580 Deci, de exemplu, puteți în general, cu utilizatorii, 192 00:09:24,580 --> 00:09:27,210 Nu vreau doi utilizatori care au același număr de ID-ul de utilizator. 193 00:09:27,210 --> 00:09:28,960 Și așa poate aveți o mulțime de informații, 194 00:09:28,960 --> 00:09:30,793 și, poate, doi utilizatori pot au aceeași name-- 195 00:09:30,793 --> 00:09:32,650 aveți John Smith și John Smith. 196 00:09:32,650 --> 00:09:34,520 Asta nu e neapărat o problemă, pentru că există mai multe persoane 197 00:09:34,520 --> 00:09:35,830 în lume pe nume John Smith. 198 00:09:35,830 --> 00:09:40,766 Dar avem doar un singur utilizator număr de identificare 10, un utilizator de identitate numărul 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Noi nu avem doi utilizatori cu același număr, 200 00:09:42,640 --> 00:09:46,010 și Poate numerele de identificare utilizator ar fi un bun cheie primară. 201 00:09:46,010 --> 00:09:48,610 >> Noi nu avem nici o duplicare, și putem acum unic 202 00:09:48,610 --> 00:09:52,619 identifica fiecare singur rând doar uitandu-se la acea coloană. 203 00:09:52,619 --> 00:09:55,410 Alegerea cheile primare poate de fapt, face operațiuni de masă ulterioare 204 00:09:55,410 --> 00:09:59,710 mult mai ușor, deoarece puteți utiliza faptul că anumite rânduri va 205 00:09:59,710 --> 00:10:02,720 fie unic, sau o anumită coloană de baza de date sau tabel 206 00:10:02,720 --> 00:10:06,030 va fi unic pentru a alege out rânduri special. 207 00:10:06,030 --> 00:10:08,790 >> Puteți avea, de asemenea un primar comun cheie, care ar putea găsi ocazie ați 208 00:10:08,790 --> 00:10:11,720 de a utiliza, care este doar o Amestec de două coloane care 209 00:10:11,720 --> 00:10:13,280 este garantat să fie unic. 210 00:10:13,280 --> 00:10:16,410 Poate aveți unul coloană care este la fel de și BS, 211 00:10:16,410 --> 00:10:19,290 o coloană care este unul, doi, și trei, dar va numai vreodată 212 00:10:19,290 --> 00:10:23,660 au un singur A1, un singur A2, și așa mai departe și așa mai departe. 213 00:10:23,660 --> 00:10:28,980 Dar s-ar putea avea un B2, o C2, sau o A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Deci s-ar putea avea mai multe Ca, multiple BS, cele mai multe, mai multe câte două, 215 00:10:32,840 --> 00:10:38,567 dar puteți avea numai o vreodată singur A1, B2, C3, și așa mai departe. 216 00:10:38,567 --> 00:10:40,400 Deci, după cum am spus, SQL este un limbaj de programare, 217 00:10:40,400 --> 00:10:42,024 dar are un vocabular destul de limitat. 218 00:10:42,024 --> 00:10:44,880 Nu e la fel de expansiv ca C și PHP și alte limbi 219 00:10:44,880 --> 00:10:46,350 că vorbim în curs. 220 00:10:46,350 --> 00:10:49,960 Este o mai detaliată limbă decât ceea ce suntem 221 00:10:49,960 --> 00:10:52,789 vorbi despre în acest video, pentru că în acest film 222 00:10:52,789 --> 00:10:54,830 vom vorbi despre patru operații pe care le 223 00:10:54,830 --> 00:10:55,720 poate efectua pe o masă. 224 00:10:55,720 --> 00:10:56,761 >> Există mai mult de acest lucru. 225 00:10:56,761 --> 00:10:58,730 Putem face mai mult decât acest lucru, dar pentru scopurile noastre, 226 00:10:58,730 --> 00:11:02,250 ne, în general, va fi folosind doar patru insert operations--, 227 00:11:02,250 --> 00:11:05,360 selectați, actualiza, și șterge. 228 00:11:05,360 --> 00:11:08,750 Și puteți, probabil ghici intuitiv ce toate cele patru aceste lucruri. 229 00:11:08,750 --> 00:11:12,520 Dar vom merge într-un pic de detaliu pe fiecare dintre ele. 230 00:11:12,520 --> 00:11:15,780 >> Deci, în scopul acestei video, să presupunem 231 00:11:15,780 --> 00:11:18,870 Avem următoarele două tabele într-o bază de date unică. 232 00:11:18,870 --> 00:11:23,460 Avem o masă numit Utilizatorii care are patru columns-- număr de identificare, numele de utilizator, 233 00:11:23,460 --> 00:11:25,350 parola și numele complet. 234 00:11:25,350 --> 00:11:27,430 Și avem un al doilea tabel în aceeași bază de date 235 00:11:27,430 --> 00:11:32,129 numit Mamele care stochează doar informații despre un nume de utilizator și o mamă. 236 00:11:32,129 --> 00:11:33,920 Deci, pentru toate exemplele în acest film, vom 237 00:11:33,920 --> 00:11:37,945 folosi această bază de date și actualizări ulterioare ale acesteia. 238 00:11:37,945 --> 00:11:40,070 Deci, să spunem că vrem să adăugați informații la o masă. 239 00:11:40,070 --> 00:11:44,460 Asta e ceea ce face operația de inserție. 240 00:11:44,460 --> 00:11:46,550 În explicarea toate aceste comenzi, am de gând 241 00:11:46,550 --> 00:11:48,860 pentru a vă oferi un schelet generală de a utiliza. 242 00:11:48,860 --> 00:11:51,661 Deoarece practic, interogări vor arata destul de similare, 243 00:11:51,661 --> 00:11:54,660 noi suntem doar de gând să se schimbe ușor diferite piese de informații 244 00:11:54,660 --> 00:11:56,750 de a face lucruri diferite, cu masa. 245 00:11:56,750 --> 00:11:59,200 >> Deci, pentru INSERT, scheletul arata un fel de aceasta. 246 00:11:59,200 --> 00:12:02,230 Vrem să introduceți în un anumit tabel. 247 00:12:02,230 --> 00:12:05,290 Atunci avem o paranteză deschisă și o listă de coloane 248 00:12:05,290 --> 00:12:08,070 care ne-o dorim pentru a pune valori în. 249 00:12:08,070 --> 00:12:10,974 Aproape de paranteze, The în urma valori, iar apoi 250 00:12:10,974 --> 00:12:13,390 din nou, am lista din valorile vrem să pună în tabel. 251 00:12:13,390 --> 00:12:15,950 >> Deci un exemplu în acest sens ar fi cele ce urmează. 252 00:12:15,950 --> 00:12:19,170 Vreau să inserați în tabel utilizatorii următorul columns-- 253 00:12:19,170 --> 00:12:21,010 numele de utilizator, parola și FULLNAME. 254 00:12:21,010 --> 00:12:25,282 Deci, un nou rând în cazul în care am pune în aceste trei coloane și suntem 255 00:12:25,282 --> 00:12:30,030 de gând să pună în valorile Newman, USMAIL, și Newman. 256 00:12:30,030 --> 00:12:32,730 Deci, în acest caz, eu sunt punerea Newman minuscule 257 00:12:32,730 --> 00:12:38,710 în coloana numele de utilizator, parola USMAIL, și complet de capital nume N 258 00:12:38,710 --> 00:12:41,940 Newman în coloana FULLNAME. 259 00:12:41,940 --> 00:12:44,240 >> Deci, aici e ceea ce baza de date arăta ca înainte. 260 00:12:44,240 --> 00:12:48,250 Aici e ceea ce masa de utilizatori cu privire la top arata ca înainte de a făcut asta. 261 00:12:48,250 --> 00:12:50,760 Dupa ce am executa această interogare, avem asta. 262 00:12:50,760 --> 00:12:54,790 Am adăugat un rând nou în tabel. 263 00:12:54,790 --> 00:12:56,810 Dar observați un lucru că nu a specificat, 264 00:12:56,810 --> 00:12:59,880 dar cumva am o valoare pentru, care este acest 12 de aici. 265 00:12:59,880 --> 00:13:02,820 N-am spus am vrut să pune numărul ID acolo. 266 00:13:02,820 --> 00:13:04,900 Am vrut să pun numele de utilizator, parola, FULLNAME. 267 00:13:04,900 --> 00:13:06,440 Și am făcut asta, e în regulă. 268 00:13:06,440 --> 00:13:07,760 >> Dar, de asemenea am primit această 12. 269 00:13:07,760 --> 00:13:09,490 De ce am primit acest 12? 270 00:13:09,490 --> 00:13:12,904 Ei bine, se pare că atunci când sunt definirea 271 00:13:12,904 --> 00:13:15,570 o coloană care va fi dvs. cheie primară, care este de obicei, 272 00:13:15,570 --> 00:13:16,510 cum am spus, un număr de identificare. 273 00:13:16,510 --> 00:13:18,718 Nu e întotdeauna necesar O să fie un număr de identificare, 274 00:13:18,718 --> 00:13:22,380 dar este, de obicei, o idee bună să fie un fel de valoare întreagă. 275 00:13:22,380 --> 00:13:25,950 Aveți o opțiune în phpMyAdmin atunci când sunteți crearea bazei de date 276 00:13:25,950 --> 00:13:31,130 sau tabelul pentru a seta ca coloană ca incrementare auto. 277 00:13:31,130 --> 00:13:34,520 >> Care este o idee foarte bună, atunci când lucrați cu o cheie primară, 278 00:13:34,520 --> 00:13:39,330 pentru că vrei fiecare valoare în acea coloană pentru a fi unic. 279 00:13:39,330 --> 00:13:43,310 Și dacă vă uitați să specificați l pentru mai mult de o persoană, 280 00:13:43,310 --> 00:13:46,240 aveți acum o situație în care coloana nu mai este unic. 281 00:13:46,240 --> 00:13:50,200 Aveți două spații, astfel încât să nu puteți mai unic identifica un column-- 282 00:13:50,200 --> 00:13:54,150 sau nu mai poate unic identifica un rând bazat pe acea coloană. 283 00:13:54,150 --> 00:13:57,010 E pierdut toate sale Valoarea ca o cheie primară. 284 00:13:57,010 --> 00:14:02,010 >> Și așa se pare că ceea ce am făcut aici este configurat ID-ul utilizatorului 285 00:14:02,010 --> 00:14:07,790 coloană de creștere auto, astfel încât fiecare timp am adăuga informații la masa, 286 00:14:07,790 --> 00:14:12,220 se va da în mod automat mine o valoare pentru cheia primară. 287 00:14:12,220 --> 00:14:15,570 Deci, eu nu pot uita să o facă pentru că baza de date se va face pentru mine. 288 00:14:15,570 --> 00:14:16,587 Deci, asta e un fel de frumos. 289 00:14:16,587 --> 00:14:18,670 Și așa de aceea ne 12 acolo, pentru că am 290 00:14:18,670 --> 00:14:21,772 set care coloana de până la auto increment. 291 00:14:21,772 --> 00:14:23,730 Dacă am adăugat altcineva că ar fi 13, dacă am adăugat 292 00:14:23,730 --> 00:14:27,890 altcineva că ar fi de 14, și așa mai departe. 293 00:14:27,890 --> 00:14:30,190 >> Deci, hai să facem mai mult de o inserție. 294 00:14:30,190 --> 00:14:34,530 Vom introduce în tabelul de mame, în special, numele de utilizator și mama 295 00:14:34,530 --> 00:14:37,390 coloane, valorile Kramer și Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 Și astfel am avut acest lucru înainte. 297 00:14:39,140 --> 00:14:41,800 Dupa ce am executa că Interogare SQL, avem asta. 298 00:14:41,800 --> 00:14:47,290 Am adăugat Kramer și Babs Kramer la masa mame. 299 00:14:47,290 --> 00:14:48,350 >> Așa că e inserarea. 300 00:14:48,350 --> 00:14:51,850 SELECT este ceea ce vom folosi pentru a extrage informații de pe masă. 301 00:14:51,850 --> 00:14:54,390 Deci, acesta este modul în care obține Informatiile din baza de date. 302 00:14:54,390 --> 00:14:59,589 Și așa selecta comenzile vor fi foarte frecvent folosit in programare. 303 00:14:59,589 --> 00:15:02,130 Generalul framework-- schelet generală arata ca acest lucru. 304 00:15:02,130 --> 00:15:06,550 Selectați un set de coloane din un tabel, și apoi opțional 305 00:15:06,550 --> 00:15:11,090 puteți specifica o condition-- sau ceea ce noi numim de obicei un predicat, 306 00:15:11,090 --> 00:15:13,010 este, de obicei termenul care le folosim în SQL. 307 00:15:13,010 --> 00:15:16,490 >> Dar este practic ceea ce special rânduri doriți să obțineți. 308 00:15:16,490 --> 00:15:19,100 Dacă doriți să, în loc de a obține totul, ea restrânge, 309 00:15:19,100 --> 00:15:20,060 acest lucru este în cazul în care v-ar face asta. 310 00:15:20,060 --> 00:15:22,777 Și apoi, opțional, puteți, de asemenea comandă de un anumit coloană. 311 00:15:22,777 --> 00:15:25,860 Deci, poate doriți să aveți lucruri sortate alfabetic bazat pe o coloană 312 00:15:25,860 --> 00:15:27,540 sau alfabetic bazat pe altul. 313 00:15:27,540 --> 00:15:30,610 >> Din nou, unde și ORDER BY sunt opționale. 314 00:15:30,610 --> 00:15:32,681 Dar vor fi, probabil, useful-- special 315 00:15:32,681 --> 00:15:34,680 Unde va fi util pentru restrânge, astfel încât să nu 316 00:15:34,680 --> 00:15:37,460 obține întreaga bază de date și înapoi trebuie să-l proceseze, doar te 317 00:15:37,460 --> 00:15:39,300 piesele de ea pe care le pasă. 318 00:15:39,300 --> 00:15:44,932 Deci, de exemplu, s-ar putea dori pentru a selecta Număr de identificare și FULLNAME de utilizatori. 319 00:15:44,932 --> 00:15:46,140 Deci, ceea ce ar putea arata ca acest? 320 00:15:46,140 --> 00:15:48,270 Deci, aici e tabel utilizatori mea. 321 00:15:48,270 --> 00:15:51,080 Vreau pentru a selecta IDNUM și FULLNAME la utilizatori. 322 00:15:51,080 --> 00:15:52,300 Ce am de gând pentru a obține? 323 00:15:52,300 --> 00:15:53,580 Am de gând pentru a obține acest lucru. 324 00:15:53,580 --> 00:15:56,930 Nu l-am restrânge, așa că eu sunt obtinerea numărul ID pentru fiecare rând 325 00:15:56,930 --> 00:16:00,850 și Primesc pe deplin nume de fiecare rând. 326 00:16:00,850 --> 00:16:02,210 >> BINE. 327 00:16:02,210 --> 00:16:05,640 Ce se întâmplă dacă doriți să selectați parola de la utilizatorii WHERE-- asa ca acum 328 00:16:05,640 --> 00:16:10,370 Sunt adăugarea unei condiții, un predicate-- în cazul în care IDNUM este mai mică de 12. 329 00:16:10,370 --> 00:16:13,660 Deci, aici e din nou baza mea de date, utilizatorii masa mea de sus. 330 00:16:13,660 --> 00:16:17,030 Ce am de gând pentru a obține dacă vreau să selectați aceste informații, parola, 331 00:16:17,030 --> 00:16:21,550 în cazul în care ID-ul de utilizator sau IDNUM este mai mică de 12? 332 00:16:21,550 --> 00:16:24,910 Am de gând pentru a obține acest informații înapoi, nu? 333 00:16:24,910 --> 00:16:29,170 Se întâmplă că IDNUM este de 10, mai puțin de 12, număr de identificare 11 mai puțin de 12. 334 00:16:29,170 --> 00:16:32,160 Primesc parola pentru acele rânduri. 335 00:16:32,160 --> 00:16:33,914 Asta e ceea ce am cerut. 336 00:16:33,914 --> 00:16:34,580 Ce zici de asta? 337 00:16:34,580 --> 00:16:39,170 Ce se întâmplă dacă doriți să selectați stea din mame tabel în cazul în care numele de utilizator este egal cu Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, selectați stele este speciale un fel de carte de sălbatic așa-numitele 339 00:16:43,780 --> 00:16:45,670 pe care le folosim pentru a obține totul. 340 00:16:45,670 --> 00:16:48,620 Deci ce spun selectați username mama virgulă, care 341 00:16:48,620 --> 00:16:51,060 sa întâmplat să fie singurul două coloane de tabel, aceasta 342 00:16:51,060 --> 00:16:53,260 Pot selecta doar stele și de a lua totul 343 00:16:53,260 --> 00:16:55,030 în cazul în care numele de utilizator este egal cu Jerry. 344 00:16:55,030 --> 00:16:59,380 Și așa mai departe asta e ceea ce mi-ar lua dacă am făcut asta de interogare special. 345 00:16:59,380 --> 00:17:01,810 >> Acum, bazele de date sunt mare, deoarece acestea permit 346 00:17:01,810 --> 00:17:06,074 ne a organiza informațiile poate un pic mai eficient decât noi 347 00:17:06,074 --> 00:17:06,740 s-ar putea altfel. 348 00:17:06,740 --> 00:17:10,240 Noi nu neapărat pentru a stoca fiecare bucată de informații relevante 349 00:17:10,240 --> 00:17:12,230 despre un utilizator în același tabel. 350 00:17:12,230 --> 00:17:13,730 Am avut două tabele de acolo. 351 00:17:13,730 --> 00:17:15,734 >> Avem nevoie pentru a stoca numele mamei tuturor lui, 352 00:17:15,734 --> 00:17:18,900 si poate nu avem de securitate socială numărul, avem data lor de naștere. 353 00:17:18,900 --> 00:17:21,819 Care nu are nevoie de întotdeauna să fie în același tabel. 354 00:17:21,819 --> 00:17:25,339 Atâta timp cât putem defini relații între tables-- 355 00:17:25,339 --> 00:17:28,440 și că este în cazul în care acea relațională termen de baze de date de tip vine 356 00:17:28,440 --> 00:17:32,130 în play-- atâta timp cât putem defini relațiile dintre tabele, 357 00:17:32,130 --> 00:17:35,545 putem fel de compartimentează sau lucruri abstracte-un fel, 358 00:17:35,545 --> 00:17:37,670 unde avem doar Informații cu adevarat important 359 00:17:37,670 --> 00:17:39,270 ne pasă în tabelul utilizatorului. 360 00:17:39,270 --> 00:17:43,220 Și apoi ne-am informații auxiliare sau informații suplimentare în alte tabele 361 00:17:43,220 --> 00:17:48,260 că ne putem conecta înapoi la principalele masă de utilizatori într-un anumit fel. 362 00:17:48,260 --> 00:17:52,200 >> Deci, aici avem aceste două tabele, dar există o relație între ele, 363 00:17:52,200 --> 00:17:53,010 dreapta? 364 00:17:53,010 --> 00:17:55,070 Se pare ca numele de utilizator ar putea fi ceva 365 00:17:55,070 --> 00:17:59,909 care există în comun între aceste două tabele diferite. 366 00:17:59,909 --> 00:18:01,700 Și ce dacă avem acum o situație în care ne-am 367 00:18:01,700 --> 00:18:06,046 doriți să obțineți numele complet al unui utilizator de la masa utilizatorului, și mama lor 368 00:18:06,046 --> 00:18:07,170 numele de tabelul mamei? 369 00:18:07,170 --> 00:18:10,960 Noi nu avem o modalitate de a obține că în forma sa actuală, nu? 370 00:18:10,960 --> 00:18:17,790 Nu e nici o singur tabel care conține atât numele complet și numele mamei lui. 371 00:18:17,790 --> 00:18:20,400 Noi nu avem această opțiune de la ceea ce am văzut până acum. 372 00:18:20,400 --> 00:18:22,950 >> Și așa ne-am să introducă ideea unei TE. 373 00:18:22,950 --> 00:18:24,857 Și se alătură sunt, probabil, cel mai complex-- 374 00:18:24,857 --> 00:18:27,940 este într-adevăr cel mai operațiune complexă vom vorbi despre în video. 375 00:18:27,940 --> 00:18:30,040 Sunt un pic mai complicat, dar odată ce te obișnuiești cu ea, 376 00:18:30,040 --> 00:18:31,248 nu sunt de fapt prea rău. 377 00:18:31,248 --> 00:18:32,820 E doar un caz special de un SELECT. 378 00:18:32,820 --> 00:18:37,120 Vom selecta un set de coloanele dintr-un tabel de îmbinare 379 00:18:37,120 --> 00:18:40,650 într-o a doua masă pe unele predicat. 380 00:18:40,650 --> 00:18:45,340 >> În acest caz, gândiți-vă place asta: Tabelul unul este un cerc aici, 381 00:18:45,340 --> 00:18:47,530 Tabelul doi este un alt cerc aici. 382 00:18:47,530 --> 00:18:49,410 Și că o parte predicat în mijloc, e 383 00:18:49,410 --> 00:18:51,701 un fel de, dacă credeți despre o diagramă Venn, ceea ce 384 00:18:51,701 --> 00:18:52,670 nu au în comun? 385 00:18:52,670 --> 00:18:55,960 Vrem să lega aceste două tabele bazate pe ceea ce au în comun 386 00:18:55,960 --> 00:19:01,230 și de a crea acest tabel ipotetic că este fuziunea dintre cele două împreună. 387 00:19:01,230 --> 00:19:03,480 Deci, vom vedea acest lucru într-un exemplu și poate că va ajuta 388 00:19:03,480 --> 00:19:04,521 clar-l un pic. 389 00:19:04,521 --> 00:19:09,260 Deci, poate doriți să o selectați USER.FULLNAME și moms.mother 390 00:19:09,260 --> 00:19:13,220 de la utilizatorii alătura masă mame în fiecare situație 391 00:19:13,220 --> 00:19:16,790 în cazul în care coloana nume de utilizator este aceeași între ele. 392 00:19:16,790 --> 00:19:19,240 Și aceasta este o nouă sintaxa aici, acest utilizator. 393 00:19:19,240 --> 00:19:20,460 si mame .. 394 00:19:20,460 --> 00:19:26,697 Dacă fac mai multe tabele împreună, pot specifica un tabel. 395 00:19:26,697 --> 00:19:29,530 Eu pot distinge în special pe care pe la foarte jos acolo. 396 00:19:29,530 --> 00:19:33,220 Eu pot distinge numele de utilizator coloană din tabel utilizatori 397 00:19:33,220 --> 00:19:36,010 din coloana numele de utilizator al tabel mame, care sunt otherwise-- 398 00:19:36,010 --> 00:19:38,070 dacă ne-am spus numele de utilizator este egal cu numele de utilizator, care nu prea 399 00:19:38,070 --> 00:19:38,970 înseamnă nimic. 400 00:19:38,970 --> 00:19:41,440 Vrem să o facem în cazul în care acestea se potrivesc. 401 00:19:41,440 --> 00:19:46,080 >> Deci, eu pot specifica masă și nume de coloană în cazul unei situații 402 00:19:46,080 --> 00:19:48,370 în cazul în care ar fi clar ce vorbesc despre. 403 00:19:48,370 --> 00:19:51,880 Deci, asta e tot ce fac este că sunt spunând această coloană din acest tabel, 404 00:19:51,880 --> 00:19:54,020 și fiind foarte explicit. 405 00:19:54,020 --> 00:19:56,810 Deci, din nou, eu sunt selectarea numele complet și numele mamei 406 00:19:56,810 --> 00:20:00,950 din tabelul utilizatorilor legate între ele cu tabelul de mame în orice situație 407 00:20:00,950 --> 00:20:05,960 în cazul în care împărtășesc această column-- ei împărtășesc această noțiune nume de utilizator. 408 00:20:05,960 --> 00:20:08,580 >> Deci, aici sunt tabelele le-am avut până acum. 409 00:20:08,580 --> 00:20:12,210 Aceasta este starea de nostru bază de date așa cum există acum. 410 00:20:12,210 --> 00:20:16,390 Informațiile ne extragere este aceasta pentru a începe cu. 411 00:20:16,390 --> 00:20:19,820 Acesta este noul tabel vom pentru a crea combinarea acestor împreună. 412 00:20:19,820 --> 00:20:23,585 Și observați că nu te subliniind Rândul lui Newman în masa utilizatorului, 413 00:20:23,585 --> 00:20:25,960 si nu suntem subliniind Rândul Kramer în tabelul mame 414 00:20:25,960 --> 00:20:31,250 pentru că nici unul există în atât sets-- în ambele tabele. 415 00:20:31,250 --> 00:20:36,260 >> Singurele informații care este în comun între ele este Jerry este în ambele tabele 416 00:20:36,260 --> 00:20:39,100 și gcostanza este, în ambele tabele. 417 00:20:39,100 --> 00:20:42,620 Și așa că atunci când facem SQL se alăture, ceea ce get-- și facem de fapt obține acest. 418 00:20:42,620 --> 00:20:44,830 E un fel de variabile temporare. 419 00:20:44,830 --> 00:20:47,330 E ca un ipotetic fuziune dintre cele două tabele. 420 00:20:47,330 --> 00:20:49,930 Ne-am de fapt, ceva ca aceasta, în cazul în care 421 00:20:49,930 --> 00:20:54,730 am fuzionat împreună tabelele de pe informațiile pe care le au în comun. 422 00:20:54,730 --> 00:20:58,334 >> Deci observați că users.username și coloana moms.username, 423 00:20:58,334 --> 00:20:59,250 e exact la fel. 424 00:20:59,250 --> 00:21:01,820 Asta a fost informațiile pe care a fost consistentă de la utilizatori 425 00:21:01,820 --> 00:21:02,890 de masă și masa mame. 426 00:21:02,890 --> 00:21:04,270 Și așa le-am fuzionat împreună. 427 00:21:04,270 --> 00:21:06,919 Am aruncat Kramer pentru că el nu există în tabela de utilizatori, 428 00:21:06,919 --> 00:21:09,710 și ne-am aruncat Newman, deoarece el nu există în tabela mame. 429 00:21:09,710 --> 00:21:16,450 Astfel încât acesta este fuziunea ipotetic folosind funcționarea TE de SELECT. 430 00:21:16,450 --> 00:21:21,250 >> Și apoi am fost în căutarea pentru numele complet de utilizator și mama utilizatorului, 431 00:21:21,250 --> 00:21:24,999 și așa mai departe acest lucru este informația pe care ne-ar obține de la interogarea de ansamblu 432 00:21:24,999 --> 00:21:26,040 că am făcut cu SELECT. 433 00:21:26,040 --> 00:21:28,873 Așa că am aderat la mesele împreună și am extras cele două coloane, 434 00:21:28,873 --> 00:21:31,610 și așa mai departe asta e ceea ce ne-ar ajunge. 435 00:21:31,610 --> 00:21:33,370 Dar SQL se alătură un fel de complicat. 436 00:21:33,370 --> 00:21:36,770 Tu, probabil, nu le va face prea mult, dar doar avea o idee a scheletului 437 00:21:36,770 --> 00:21:41,992 pe care le-ar putea folosi pentru a fuziona două tabele împreună dacă necesare pentru a. 438 00:21:41,992 --> 00:21:43,700 Ultimele două sunt o bit simplu promit. 439 00:21:43,700 --> 00:21:48,040 Deci actualizarea, putem folosi UPDATE pentru a schimba informații într-un tabel. 440 00:21:48,040 --> 00:21:53,880 Formatul general este UPDATE unele masă, seta unele coloană la o valoare 441 00:21:53,880 --> 00:21:55,540 Atunci când unele predicat este îndeplinită. 442 00:21:55,540 --> 00:21:57,850 Deci, de exemplu, ne-am putea dori să se actualizeze tabelul utilizatori 443 00:21:57,850 --> 00:22:04,400 și setați parola pentru bla bla, în cazul în care numărul de ID-ul este de 10. 444 00:22:04,400 --> 00:22:06,400 >> Deci, în acest caz, noi suntem actualizarea tabelului utilizatori. 445 00:22:06,400 --> 00:22:08,275 Numărul ID-ul este de 10 de că în primul rând rând acolo, 446 00:22:08,275 --> 00:22:10,690 și vrem să actualizeze parola pentru a bla bla. 447 00:22:10,690 --> 00:22:12,170 Și pentru ca e ceea ce se va întâmpla. 448 00:22:12,170 --> 00:22:13,628 E destul de simplu, nu? 449 00:22:13,628 --> 00:22:17,990 E doar un foarte simplu modificare a tabelului. 450 00:22:17,990 --> 00:22:22,250 >> DELETE este operațiunea am folosit pentru a elimina informațiile dintr-un tabel. 451 00:22:22,250 --> 00:22:24,817 DELETE FROM masa la care unele predicat este îndeplinită. 452 00:22:24,817 --> 00:22:26,900 Vrem să ștergeți din tabel utilizatori, de exemplu, 453 00:22:26,900 --> 00:22:28,254 în cazul în care numele de utilizator este Newman. 454 00:22:28,254 --> 00:22:31,420 Probabil puteți ghici ce se va se întâmplă aici după ce am executa că SQL 455 00:22:31,420 --> 00:22:35,790 interogare, Newman este plecat de la masă. 456 00:22:35,790 --> 00:22:40,460 >> Deci, toate aceste operațiuni, așa cum am spus, sunt foarte ușor de făcut în phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Este o interfata prietenoasa foarte user. 458 00:22:43,020 --> 00:22:45,930 Dar are nevoie de un efort manual. 459 00:22:45,930 --> 00:22:47,840 Noi nu vrem să angajeze efort manual. 460 00:22:47,840 --> 00:22:51,280 Ne dorim ca programele noastre de face acest lucru pentru noi, nu? 461 00:22:51,280 --> 00:22:53,190 Deci, am putea vrem să facem acest programatic. 462 00:22:53,190 --> 00:22:56,410 Vrem să includă SQL și au altceva de a face acest lucru pentru noi. 463 00:22:56,410 --> 00:23:02,710 >> Dar ceea ce am văzut, care permite ne să facem programatic ceva? 464 00:23:02,710 --> 00:23:03,690 Am văzut PHP, nu? 465 00:23:03,690 --> 00:23:05,760 Introduce unele dinamism în programele noastre. 466 00:23:05,760 --> 00:23:10,430 Și astfel, din fericire, SQL și PHP joacă foarte bine împreună. 467 00:23:10,430 --> 00:23:13,230 Există o funcție în PHP numit interogare, care poate fi utilizat. 468 00:23:13,230 --> 00:23:15,870 Și puteți trece ca parametru sau argumentul 469 00:23:15,870 --> 00:23:19,210 pentru a interoga o interogare SQL care doriți să execute. 470 00:23:19,210 --> 00:23:23,250 Și PHP va face în numele dumneavoastră. 471 00:23:23,250 --> 00:23:25,564 >> Deci, după ce ați conectat la baza de date cu PHP, 472 00:23:25,564 --> 00:23:26,980 există două primare să faci asta. 473 00:23:26,980 --> 00:23:29,230 E ceva numit MySQLi și ceva numit DOP. 474 00:23:29,230 --> 00:23:31,063 Nu vom merge într-un imens sumă detaliu acolo. 475 00:23:31,063 --> 00:23:32,957 În CS50 vom folosi DOP. 476 00:23:32,957 --> 00:23:34,790 După ce ați conectat la baza de date, vă 477 00:23:34,790 --> 00:23:40,980 poate face apoi interogări baza de date prin trecerea interogări ca argumente 478 00:23:40,980 --> 00:23:42,730 la funcțiile PHP. 479 00:23:42,730 --> 00:23:46,460 Și când faci asta, tu magazin set de rezultate într-un tablou asociativ. 480 00:23:46,460 --> 00:23:50,290 >> Și știm cum să lucreze cu tablouri asociative în PHP. 481 00:23:50,290 --> 00:23:52,630 Așa că s-ar putea spune ceva ca asta: $ results-- 482 00:23:52,630 --> 00:23:55,470 acest lucru este în PHP-- egal interogare. 483 00:23:55,470 --> 00:23:57,660 Și apoi în interiorul Funcția de interogare acest argument 484 00:23:57,660 --> 00:24:00,130 că eu sunt trecerea la interogare care arata ca SQL. 485 00:24:00,130 --> 00:24:01,160 Și, de fapt, care este SQL. 486 00:24:01,160 --> 00:24:05,700 Asta e șir de interogare care mi-ar Vrei să execute pe baza mea de date. 487 00:24:05,700 --> 00:24:09,250 >> Și astfel în roșu, aceasta este PHP. 488 00:24:09,250 --> 00:24:11,890 Aceasta este SQL că eu sunt integrarea în PHP făcând 489 00:24:11,890 --> 00:24:15,020 este argumentul funcției de interogare. 490 00:24:15,020 --> 00:24:19,640 Vreau pentru a selecta de la FULLNAME utilizatorii în cazul în care numărul de identificare este egal cu 10. 491 00:24:19,640 --> 00:24:22,560 Și atunci poate, după ce am făcut asta, Am putea spune ceva de genul asta. 492 00:24:22,560 --> 00:24:25,550 Vreau să imprima Multumesc pentru mesaj logare. 493 00:24:25,550 --> 00:24:32,530 >> Și eu o vreau interpolate-- vreau a interpola $ rezultate FULLNAME. 494 00:24:32,530 --> 00:24:36,280 Și așa așa lucrez cu care tablou asociativ care m-am întors. 495 00:24:36,280 --> 00:24:39,730 $ FULLNAME rezultatele ar practic ajung imprimarea, 496 00:24:39,730 --> 00:24:42,870 Vă mulțumim pentru logare, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Asta a fost numele complet în cazul în care este egal cu 10 IDNUM. 498 00:24:46,570 --> 00:24:48,850 >> Și atunci tot fac este Sunt now-- am stocat 499 00:24:48,850 --> 00:24:52,780 interogare mea, rezultatele de interogare meu și are ca rezultat o matrice asociativ, 500 00:24:52,780 --> 00:24:56,330 și FULLNAME este numele coloana am fost obtinerea de. 501 00:24:56,330 --> 00:25:01,010 Deci, asta e cheia mea în rezultatele tablou asociativ care vreau. 502 00:25:01,010 --> 00:25:05,930 Deci, Vă mulțumim pentru logare, $ rezultate, FULLNAME va imprima, se va lipi 503 00:25:05,930 --> 00:25:08,654 chiar în între cei cret bretele, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 Și voi dori pentru a imprima mesajul Vă mulțumim pentru logare Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Acum, noi, probabil, nu doresc să greu Codul lucruri de genul asta in, nu? 506 00:25:16,652 --> 00:25:19,860 S-ar putea dori să facă ceva de genul de imprimare f, unde putem înlocui și poate 507 00:25:19,860 --> 00:25:22,443 colecta informații diferite, sau poate au procesul de interogare 508 00:25:22,443 --> 00:25:23,370 informații diferite. 509 00:25:23,370 --> 00:25:27,920 Și astfel de interogare, funcția de interogare a această noțiune de fel de substituții 510 00:25:27,920 --> 00:25:32,310 foarte asemănătoare cu a imprima f sută s și la suta C, este semne de întrebare. 511 00:25:32,310 --> 00:25:34,290 >> Și putem folosi întrebare mărci foarte analog 512 00:25:34,290 --> 00:25:38,400 pentru a imprima f la variabile de substituție. 513 00:25:38,400 --> 00:25:44,120 Deci, poate că dvs. de utilizator autentificat devreme, și ați salvat numărul lor ID utilizator 514 00:25:44,120 --> 00:25:51,710 în $ _SESSION de PHP super- la nivel mondial în ID-ul cheie. 515 00:25:51,710 --> 00:25:55,947 Deci, poate că după ce au autentificat, setați $ _SESSION ID egal 10, 516 00:25:55,947 --> 00:25:58,280 extrapolând exemplul tocmai am văzut în urmă cu o secundă. 517 00:25:58,280 --> 00:26:01,960 >> Și așa că atunci când am executa efectiv Această interogare rezultatele acum, 518 00:26:01,960 --> 00:26:08,440 ar conectați 10, sau orice valoarea ID-ul $ _SESSION este. 519 00:26:08,440 --> 00:26:10,790 Și pentru ca ne permite să fi un pic mai dinamică. 520 00:26:10,790 --> 00:26:12,699 Nu ne greu de codificare lucrurile în mai. 521 00:26:12,699 --> 00:26:14,490 Suntem salvarea informațiilor undeva și apoi 522 00:26:14,490 --> 00:26:18,924 putem folosi aceste informații din nou pentru a un fel de a generaliza ceea ce vrem să facem, 523 00:26:18,924 --> 00:26:21,090 și doar plug-in și schimbare comportamentul paginii noastre 524 00:26:21,090 --> 00:26:26,489 bazat pe ceea ce numărul de identificare al utilizatorului este de fapt după ce au autentificat. 525 00:26:26,489 --> 00:26:28,530 Este de asemenea posibil, totuși, că rezultatele stabilite 526 00:26:28,530 --> 00:26:30,840 poate consta din mai multe rânduri. 527 00:26:30,840 --> 00:26:33,990 În acest caz, aveți o serie de arrays-- 528 00:26:33,990 --> 00:26:35,334 o serie de tablouri asociative. 529 00:26:35,334 --> 00:26:37,000 Și trebuie doar să itera prin ea. 530 00:26:37,000 --> 00:26:41,950 Și știm cum să repeta printr-o serie în PHP, nu? 531 00:26:41,950 --> 00:26:45,600 Deci, aici este, probabil, cel mai lucru complex ne-am văzut până acum. 532 00:26:45,600 --> 00:26:49,640 Este de fapt integrează trei limbi împreună. 533 00:26:49,640 --> 00:26:52,920 >> Aici, în roșu, aceasta este un HTML. 534 00:26:52,920 --> 00:26:56,872 Am aparent sunt starting-- acest lucru este un fragment de unele HTML care le-am. 535 00:26:56,872 --> 00:26:59,580 Încep un nou alineat, care spune mamele de Seinfeld TV. 536 00:26:59,580 --> 00:27:02,350 Și apoi, imediat după aceea Am început o masă. 537 00:27:02,350 --> 00:27:06,060 Și apoi după aceea, am au unele PHP, nu? 538 00:27:06,060 --> 00:27:08,229 Am toate acest cod PHP acolo. 539 00:27:08,229 --> 00:27:09,645 Mă duc aparent face o interogare. 540 00:27:09,645 --> 00:27:14,180 Și pentru a face interogare, am de gând să fie folosind SELECT mamele din mame. 541 00:27:14,180 --> 00:27:15,970 >> Deci, aceasta este getting-- acest lucru este SQL. 542 00:27:15,970 --> 00:27:17,300 Deci, albastru este SQL. 543 00:27:17,300 --> 00:27:19,680 Roșu am văzut-o a doua în urmă a fost HTML. 544 00:27:19,680 --> 00:27:21,360 Și verde aici este PHP. 545 00:27:21,360 --> 00:27:23,400 Deci, eu sunt a face o interogare la baza mea de date, eu sunt 546 00:27:23,400 --> 00:27:26,040 selectarea cele de mai mamele din tabelul de mame. 547 00:27:26,040 --> 00:27:30,710 Nu doar îngustarea jos pentru a special rând, eu cer pentru toate acestea. 548 00:27:30,710 --> 00:27:33,290 >> Apoi am verifica dacă rezultatul este nu este egal la egal la egal false. 549 00:27:33,290 --> 00:27:37,410 Acesta este doar felul meu de a verifica fel de cazul în care rezultatele nu este egal cu NULL, 550 00:27:37,410 --> 00:27:40,260 care ne-ar vedea, de exemplu, c. 551 00:27:40,260 --> 00:27:44,000 Practic aceasta nu este doar de verificare pentru a face sigur că de fapt a primit date înapoi. 552 00:27:44,000 --> 00:27:47,041 Pentru că nu vreau să încep tipărirea din date, dacă nu am primi nici date. 553 00:27:47,041 --> 00:27:50,690 Apoi pentru fiecare rezultat, ca atare, foreach sintaxa din PHP, toate fac 554 00:27:50,690 --> 00:27:53,399 este imprimarea mamele $ rezultat. 555 00:27:53,399 --> 00:27:55,940 Și așa am de gând pentru a obține un set tuturor mamele each-- 556 00:27:55,940 --> 00:27:59,980 este o serie de asociativ arrays-- și eu sunt imprimarea 557 00:27:59,980 --> 00:28:03,649 fiecare ca propria linie a unui tabel. 558 00:28:03,649 --> 00:28:05,690 Și asta e într-adevăr destul de mult tot acolo este să-l. 559 00:28:05,690 --> 00:28:07,750 Știu că e un pic bit se întâmplă aici 560 00:28:07,750 --> 00:28:13,210 în acest ultim exemplu, cu rețele de arrays-- tablouri de tablouri asociative. 561 00:28:13,210 --> 00:28:17,340 Dar chiar nu doar fierbe în SQL pentru a face o interogare, 562 00:28:17,340 --> 00:28:21,102 de obicei, selectarea după ce am deja pune informații în tabel, 563 00:28:21,102 --> 00:28:22,310 și apoi doar trăgând. 564 00:28:22,310 --> 00:28:25,710 >> Și acest lucru este ne-ar trage în acest caz particular. 565 00:28:25,710 --> 00:28:31,120 Ne-ar extrage toate individului mamele din tabelul mame. 566 00:28:31,120 --> 00:28:35,970 Avem un set întreg de ei, iar noi doresc să itera prin și imprima 567 00:28:35,970 --> 00:28:37,630 fiecare. 568 00:28:37,630 --> 00:28:40,510 Deci, din nou, acest lucru este, probabil, exemplul cel mai complicat 569 00:28:40,510 --> 00:28:44,510 am văzut că suntem de amestecare cu trei limbi diferite împreună, nu? 570 00:28:44,510 --> 00:28:50,100 >> Din nou, avem aici HTML în roșu, amestecat cu unele SQL aici, în albastru, 571 00:28:50,100 --> 00:28:52,049 amestecat cu unele PHP în verde. 572 00:28:52,049 --> 00:28:53,840 Dar toate acestea juca frumos împreună, e 573 00:28:53,840 --> 00:28:57,060 doar o chestiune de dezvoltare obiceiuri bune, astfel încât să puteți obține 574 00:28:57,060 --> 00:28:58,780 le să lucreze împreună așa cum doriți. 575 00:28:58,780 --> 00:29:03,790 Și singurul mod de a face cu adevărat că este de a practica, practica, practica. 576 00:29:03,790 --> 00:29:06,740 Sunt Doug Lloyd, aceasta este CS50. 577 00:29:06,740 --> 00:29:08,647