1 00:00:00,000 --> 00:00:03,493 >> [REPRODUCCIÓ DE MÚSICA] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD: En els nostres vídeos sobre temes de desenvolupament web, 4 00:00:07,100 --> 00:00:10,560 hem esmentat el concepte de una base de dades un parell de vegades, oi? 5 00:00:10,560 --> 00:00:12,700 Així que una base de dades que està probablement està familiaritzat amb de 6 00:00:12,700 --> 00:00:15,780 dir utilitzant Microsoft Excel o Fulls de càlcul de Google. 7 00:00:15,780 --> 00:00:20,650 És realment només una organitzada un conjunt de taules, files i columnes. 8 00:00:20,650 --> 00:00:23,140 >> I una base de dades és on les nostres botigues del lloc web 9 00:00:23,140 --> 00:00:26,760 informació que és important per al nostre lloc web perquè funcioni correctament. 10 00:00:26,760 --> 00:00:30,150 De nou, un exemple molt comú aquí es emmagatzemar noms d'usuari i contrasenyes 11 00:00:30,150 --> 00:00:32,824 en una base de dades, de manera que quan un usuari es registra al nostre lloc web, 12 00:00:32,824 --> 00:00:36,690 la base de dades es pot consultar per veure Si hi ha aquest usuari a la base de dades. 13 00:00:36,690 --> 00:00:39,260 I si ho són, la comprovació que la contrasenya és correcta. 14 00:00:39,260 --> 00:00:43,420 I si la contrasenya és correcta, llavors podem donar-los qualsevol pàgina 15 00:00:43,420 --> 00:00:45,370 que estan demanant. 16 00:00:45,370 --> 00:00:48,590 >> Així que vostè està probablement, de nou, familiar amb aquesta idea des d'Excel o Google 17 00:00:48,590 --> 00:00:49,430 Els fulls de càlcul. 18 00:00:49,430 --> 00:00:52,980 Tenim bases de dades, taules, files i columnes. 19 00:00:52,980 --> 00:00:56,450 I això és realment una espècie del conjunt fonamental 20 00:00:56,450 --> 00:00:58,470 del desglossament jeràrquic aquí. 21 00:00:58,470 --> 00:00:59,800 Així que aquí està un full de càlcul Excel. 22 00:00:59,800 --> 00:01:02,640 I si alguna vegada has obert aquest o altre programa similar 23 00:01:02,640 --> 00:01:06,780 vostè sap que ets aquí estan rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Aquests són columnes. 25 00:01:08,760 --> 00:01:11,790 >> Potser aquí, encara que és possible No utilitzeu aquesta funció terriblement molt-- 26 00:01:11,790 --> 00:01:15,370 Vaig a fer un zoom en-- tenim aquesta idea d'un full. 27 00:01:15,370 --> 00:01:17,930 Així que potser aquests fulls, si Altern d'anada i tornada, 28 00:01:17,930 --> 00:01:21,600 són diferents taules que existir en la meva base de dades. 29 00:01:21,600 --> 00:01:25,210 I si seguim l'exemple de tot la forma, el nom d'aquesta base de dades 30 00:01:25,210 --> 00:01:26,940 és el llibre 1. 31 00:01:26,940 --> 00:01:28,710 Potser tinc llibre 2 i 3 del llibre. 32 00:01:28,710 --> 00:01:33,270 Així que cada arxiu d'Excel és un base de dades, cada full és una taula, 33 00:01:33,270 --> 00:01:39,530 ia l'interior de cada taula que tinc aquesta idea de files i columnes. 34 00:01:39,530 --> 00:01:41,900 >> Llavors, com puc treballar amb aquesta base de dades? 35 00:01:41,900 --> 00:01:43,630 Com puc obtenir informació d'ella? 36 00:01:43,630 --> 00:01:47,540 Bé, hi ha un llenguatge anomenat SQL-- que en general només dic Sequel-- 37 00:01:47,540 --> 00:01:50,010 i que representa el Structured Query Language. 38 00:01:50,010 --> 00:01:52,981 I és un llenguatge de programació, però és una programació bastant limitat 39 00:01:52,981 --> 00:01:53,480 idioma. 40 00:01:53,480 --> 00:01:56,407 No és exactament igual que els altres que hem treballat. 41 00:01:56,407 --> 00:01:58,240 No obstant això, el propòsit d'aquest llenguatge de programació 42 00:01:58,240 --> 00:02:01,570 és per consultar una base de dades, a demanar informació d'una base de dades, 43 00:02:01,570 --> 00:02:04,480 trobar informació en una base de dades, i així successivament. 44 00:02:04,480 --> 00:02:08,449 >> També, en CS50-- i és una molt plataforma comuna, es diu MySQL. 45 00:02:08,449 --> 00:02:10,600 Això és el que fem servir en el curs. 46 00:02:10,600 --> 00:02:12,880 És una font oberta plataforma que estableix 47 00:02:12,880 --> 00:02:16,732 1 denominat database-- relacional una base de dades, de manera efectiva. 48 00:02:16,732 --> 00:02:18,440 No necessitem per arribar en massa detalls 49 00:02:18,440 --> 00:02:20,930 en el que és una base de dades relacional és. 50 00:02:20,930 --> 00:02:24,650 Però el llenguatge SQL és molt hàbil per treballar 51 00:02:24,650 --> 00:02:29,760 amb MySQL i altres similars estils de bases de dades relacionals. 52 00:02:29,760 --> 00:02:34,010 >> I moltes instal·lacions de MySQL venir amb alguna cosa 53 00:02:34,010 --> 00:02:37,760 anomenada phpMyAdmin, que és una gràfica d'usuari 54 00:02:37,760 --> 00:02:40,970 interface-- 1 GUI-- que fa que sigui una mica més 55 00:02:40,970 --> 00:02:44,410 fàcil d'usar per a executar consultes de bases de dades, 56 00:02:44,410 --> 00:02:48,980 perquè les bases de dades no només són utilitzades pels programadors avançats, oi? 57 00:02:48,980 --> 00:02:51,510 A vegades hi ha aquestes petites empreses, 58 00:02:51,510 --> 00:02:53,900 i no poden donar-se el luxe de contractar un equip de programadors, 59 00:02:53,900 --> 00:02:56,700 però encara necessiten per emmagatzemar informació en una base de dades. 60 00:02:56,700 --> 00:02:59,300 >> Una cosa així com phpMyAdmin fa que sigui molt fàcil per a algú 61 00:02:59,300 --> 00:03:03,630 que mai ha programat abans de recollir i familiaritzar-se amb la forma 62 00:03:03,630 --> 00:03:07,710 per treballar amb una base de dades. 63 00:03:07,710 --> 00:03:11,800 El problema és, phpMyAdmin, mentre és una eina fantàstica per a l'aprenentatge 64 00:03:11,800 --> 00:03:14,850 sobre les bases de dades, és manual. 65 00:03:14,850 --> 00:03:18,050 Vas a haver d'iniciar sessió en i executar ordres i el tipus 66 00:03:18,050 --> 00:03:19,910 les coses en manualment. 67 00:03:19,910 --> 00:03:23,160 >> I com sabem per la nostra exemple de programació web PHP, 68 00:03:23,160 --> 00:03:26,550 haver de fer de forma manual coses en el nostre lloc web, 69 00:03:26,550 --> 00:03:30,970 si volem una dinàmica, activa sensible lloc web, potser no és el millor enfocament. 70 00:03:30,970 --> 00:03:33,980 Ens agradaria trobar una manera de potser automatitzar això d'alguna manera. 71 00:03:33,980 --> 00:03:37,864 I SQL ens permetrà fer això. 72 00:03:37,864 --> 00:03:39,780 Així que quan anem a començar a treballar amb SQL, 73 00:03:39,780 --> 00:03:41,220 que primer necessita tenir un base de dades per treballar. 74 00:03:41,220 --> 00:03:42,510 Creació d'una base de dades es cosa que probablement 75 00:03:42,510 --> 00:03:45,350 ho farà en phpMyAdmin, perquè només haurà de fer una vegada, 76 00:03:45,350 --> 00:03:49,690 i la sintaxi per fer-ho és molt més senzill. 77 00:03:49,690 --> 00:03:51,940 És molt més fàcil fer-ho en una interfície d'usuari gràfica 78 00:03:51,940 --> 00:03:53,520 d'escriure-ho com una ordre. 79 00:03:53,520 --> 00:03:55,186 La comanda pot ser una mica molest. 80 00:03:55,186 --> 00:03:58,889 De la mateixa manera, la creació d'una taula pot aconseguir una mica molest també. 81 00:03:58,889 --> 00:04:01,930 I així les coses com la creació d'una base de dades i la creació d'una taula, que ets 82 00:04:01,930 --> 00:04:06,270 probablement només va a fer vegada-- una vegada per taula, un cop per database-- 83 00:04:06,270 --> 00:04:09,040 que està bé fer això en una interfície gràfica. 84 00:04:09,040 --> 00:04:11,570 En vies de la creació d'una taula, se li 85 00:04:11,570 --> 00:04:14,840 també cal especificar tots els columnes que estaran en aquesta taula. 86 00:04:14,840 --> 00:04:18,149 Quin tipus d'informació fer que desitja emmagatzemar a la taula? 87 00:04:18,149 --> 00:04:24,520 Potser el nom d'un usuari i data de naixement, contrasenya, número d'identificació d'usuari, i potser 88 00:04:24,520 --> 00:04:26,170 ciutat i estat, no? 89 00:04:26,170 --> 00:04:30,080 >> I per cada vegada que vulguem afegir un usuari a la base de dades, volem arribar als sis 90 00:04:30,080 --> 00:04:31,890 d'aquestes peces d'informació. 91 00:04:31,890 --> 00:04:34,840 I ho fem afegint files a la taula. 92 00:04:34,840 --> 00:04:37,800 Així que primer vam crear una base de dades, llavors es crea una taula. 93 00:04:37,800 --> 00:04:40,100 Com a part de la creació una taula, se'ns demana 94 00:04:40,100 --> 00:04:44,280 per especificar que cada columna ens agradaria en aquesta taula. 95 00:04:44,280 --> 00:04:47,247 I llavors com que vam començar a afegir informació per a la base de dades 96 00:04:47,247 --> 00:04:49,580 i consultar la base de dades més generally-- no només afegir, 97 00:04:49,580 --> 00:04:51,610 però tota la resta ens fer-- estarem tractant 98 00:04:51,610 --> 00:04:58,870 amb files de la taula, que és un la informació de l'usuari per a tot el conjunt. 99 00:04:58,870 --> 00:05:03,210 >> Així que cada columna de SQL és capaç de l'emmagatzematge de dades d'un tipus de dades en particular. 100 00:05:03,210 --> 00:05:06,560 Així que tipus de eliminem aquest idea dels tipus de dades en PHP, 101 00:05:06,560 --> 00:05:08,747 però són de nou aquí en SQL. 102 00:05:08,747 --> 00:05:10,080 I hi ha un munt de tipus de dades. 103 00:05:10,080 --> 00:05:13,420 Aquí és només 20 d'ells, però ni tan sols tots ells. 104 00:05:13,420 --> 00:05:16,240 Així que tenim idees com INTs-- Integers-- probablement sabem 105 00:05:16,240 --> 00:05:17,760 que aquesta columna pot contenir nombres enters. 106 00:05:17,760 --> 00:05:21,077 I hi ha variacions thereon-- Smallint, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Potser no sempre necessitem 4 picades. 108 00:05:22,660 --> 00:05:26,800 Potser necessitem 8 bytes, de manera que pot utilitzar aquestes variacions en els nombres enters 109 00:05:26,800 --> 00:05:28,510 a ser una mica més eficient de l'espai. 110 00:05:28,510 --> 00:05:31,899 Podem fer números decimals, es pot fer números de punt flotant. 111 00:05:31,899 --> 00:05:32,940 Aquests són bastant similars. 112 00:05:32,940 --> 00:05:34,773 Hi ha algunes diferències, i si ho faria 113 00:05:34,773 --> 00:05:37,330 agradaria buscar el Tipus SQL de guia, 114 00:05:37,330 --> 00:05:40,670 pot veure el que el lleuger diferències són entre ells. 115 00:05:40,670 --> 00:05:43,250 >> Potser volem emmagatzemar informació sobre data i hora. 116 00:05:43,250 --> 00:05:47,047 Potser estem fer el seguiment de quan l'usuari es va unir al nostre lloc web, 117 00:05:47,047 --> 00:05:48,880 i així potser volem tenir una columna que és 118 00:05:48,880 --> 00:05:52,820 un temps de data o una marca de temps que indica quan l'usuari realment 119 00:05:52,820 --> 00:05:54,130 registrat. 120 00:05:54,130 --> 00:05:56,132 Podem fer geometries i cadenes lineals. 121 00:05:56,132 --> 00:05:57,340 Això és realment molt bo. 122 00:05:57,340 --> 00:06:01,410 Podríem traçar un zona geogràfica 123 00:06:01,410 --> 00:06:05,110 Coordenades SIG per traçar una àrea. 124 00:06:05,110 --> 00:06:08,580 Així que en realitat pot emmagatzemar aquest tipus d'informació en una columna de SQL. 125 00:06:08,580 --> 00:06:11,390 >> TEXT és a bombolles gegants de text, potser. 126 00:06:11,390 --> 00:06:12,840 ENUM són bastant interessant. 127 00:06:12,840 --> 00:06:16,080 En realitat existeixen en C. No ho fem parlar d'ells perquè no són 128 00:06:16,080 --> 00:06:19,110 terriblement ús comú, almenys CS50. 129 00:06:19,110 --> 00:06:22,680 Però és un tipus de dades enumerat, que és capaç de mantenir els valors limitats. 130 00:06:22,680 --> 00:06:25,940 >> Un molt bon exemple aquí seria per crear una enumeració, on els set 131 00:06:25,940 --> 00:06:29,394 els valors possibles són Diumenge, Dilluns, Dimarts, Dimecres, Dijous, Divendres, 132 00:06:29,394 --> 00:06:30,060 Dissabte, oi? 133 00:06:30,060 --> 00:06:33,311 Aquest tipus de dades el dia de Setmana no existeix, 134 00:06:33,311 --> 00:06:35,310 però podríem crear un tipus de dades enumerat com 135 00:06:35,310 --> 00:06:39,400 que aquesta columna pot solament mai sostingui un d'aquests set valors possibles. 136 00:06:39,400 --> 00:06:44,300 Hem enumerem tots dels valors possibles. 137 00:06:44,300 --> 00:06:47,630 >> Llavors tenim CHAR i VARCHAR, i jo tinc el color d'aquests de verd 138 00:06:47,630 --> 00:06:49,505 perquè estem en realitat Va a prendre un segon 139 00:06:49,505 --> 00:06:51,950 per parlar de la diferència entre aquestes dues coses. 140 00:06:51,950 --> 00:06:55,780 Així CHAR, a diferència de C, on CHAR era un sol caràcter, 141 00:06:55,780 --> 00:07:00,730 SQL en un CHAR es refereix a una cadena de longitud fixa. 142 00:07:00,730 --> 00:07:02,620 I quan vam crear aquest columna, que en realitat 143 00:07:02,620 --> 00:07:05,070 pot especificar la longitud de la cadena. 144 00:07:05,070 --> 00:07:08,080 >> Així, en aquest exemple, podríem dir CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Això vol dir que cada element d'aquesta columna 146 00:07:11,190 --> 00:07:13,910 constarà de 10 bytes d'informació. 147 00:07:13,910 --> 00:07:15,770 Ni més, ni menys. 148 00:07:15,770 --> 00:07:21,780 Així que si ho intentem i ho posem en un 15 bit o un element de 15 caràcters 149 00:07:21,780 --> 00:07:25,340 o el valor en aquesta columna, només estem obtenim la primera 10. 150 00:07:25,340 --> 00:07:27,290 Si posem en els dos valor a llarg caràcter, 151 00:07:27,290 --> 00:07:30,700 tindrem els dos personatges, i després de vuit picades nuls. 152 00:07:30,700 --> 00:07:34,990 Mai serem més eficients que això. 153 00:07:34,990 --> 00:07:37,727 >> Un VARCHAR és una mena la nostra noció d'una cadena 154 00:07:37,727 --> 00:07:39,560 que estem familiaritzats amb de C o des de PHP. 155 00:07:39,560 --> 00:07:40,830 És una cadena de longitud variable. 156 00:07:40,830 --> 00:07:42,560 I quan es crea aquesta columna, només 157 00:07:42,560 --> 00:07:44,860 especificar les longituds màximes possibles. 158 00:07:44,860 --> 00:07:49,065 Així que potser 99, o comunament 255. 159 00:07:49,065 --> 00:07:50,440 Aquesta seria la longitud màxima. 160 00:07:50,440 --> 00:07:52,890 I pel que si ens emmagatzemant 15 cadena de caràcters, 161 00:07:52,890 --> 00:07:56,157 utilitzaríem 15 bytes, potser 16 bytes per al terminador nul. 162 00:07:56,157 --> 00:07:57,990 Si estiguéssim emmagatzemar un de tres cadena de caràcters, 163 00:07:57,990 --> 00:08:01,120 utilitzaríem tres o quatre bytes. 164 00:08:01,120 --> 00:08:03,050 Però no podríem utilitzar el ple 99. 165 00:08:03,050 --> 00:08:05,190 >> Així que per què tenim tant? 166 00:08:05,190 --> 00:08:08,210 Bé, si hem de trobar la manera molt alguna cosa és amb un VARCHAR, 167 00:08:08,210 --> 00:08:10,680 hem de tipus d'iteració a través d'ella igual que ho vam fer en C 168 00:08:10,680 --> 00:08:12,230 i esbrinar on s'atura. 169 00:08:12,230 --> 00:08:15,920 Mentre que si sabem que tot en aquesta columna és de 10 bytes, potser 170 00:08:15,920 --> 00:08:19,220 sabem que la informació, podem saltar 10 bytes, 10 bytes, 10 bytes, 10 bytes, 171 00:08:19,220 --> 00:08:21,790 i sempre trobar la principi de la cadena. 172 00:08:21,790 --> 00:08:25,210 >> Així que és possible que tinguem alguna desaprofitat espai amb un CHAR, 173 00:08:25,210 --> 00:08:28,510 però potser hi ha un comerç fora de tenir una millor velocitat 174 00:08:28,510 --> 00:08:30,160 en la navegació de la base de dades. 175 00:08:30,160 --> 00:08:32,330 Però potser volem que la flexibilitat d'un VARCHAR 176 00:08:32,330 --> 00:08:36,710 en lloc de having-- Si el nostre CHAR era 255, però la majoria dels nostres usuaris 177 00:08:36,710 --> 00:08:40,537 només van anar introduint tres o quatre bytes valor de la informació o tres o quatre 178 00:08:40,537 --> 00:08:41,870 caràcters de valor de la informació. 179 00:08:41,870 --> 00:08:44,324 >> No obstant això, alguns usuaris estaven usant tot el 255, potser 180 00:08:44,324 --> 00:08:45,990 VARCHAR seria més apropiat allà. 181 00:08:45,990 --> 00:08:49,840 És una espècie d'una solució de compromís, i generalment per a fins d'CS50, 182 00:08:49,840 --> 00:08:54,107 vostè no ha de preocupar massa sobre si s'utilitza un CHAR o VARCHAR. 183 00:08:54,107 --> 00:08:57,190 Però en el món real, aquestes coses no importa perquè totes aquestes columnes 184 00:08:57,190 --> 00:08:59,300 ocupen un espai físic real. 185 00:08:59,300 --> 00:09:04,150 I l'espai físic, en el món real, té el seu preu. 186 00:09:04,150 --> 00:09:06,800 >> Així que una altra consideració quan vostè està construint una taula 187 00:09:06,800 --> 00:09:09,840 és escollir una columna a ser el que es diu una clau principal. 188 00:09:09,840 --> 00:09:14,350 I un clau principal és una columna on cada valor individual és únic. 189 00:09:14,350 --> 00:09:19,980 I això vol dir que vostè pot fàcilment seleccionar una sola fila amb només mirar 190 00:09:19,980 --> 00:09:22,450 en la clau principal de la fila. 191 00:09:22,450 --> 00:09:24,580 Així, per exemple, en general, amb els usuaris, 192 00:09:24,580 --> 00:09:27,210 no volen dos usuaris que tenir el mateix nombre d'ID d'usuari. 193 00:09:27,210 --> 00:09:28,960 I així, potser vostè té gran quantitat d'informació, 194 00:09:28,960 --> 00:09:30,793 i potser dos usuaris poden tenir el mateix nom-- 195 00:09:30,793 --> 00:09:32,650 Té John Smith i John Smith. 196 00:09:32,650 --> 00:09:34,520 Això no és necessàriament un problema, perquè hi ha diverses persones 197 00:09:34,520 --> 00:09:35,830 en el món anomenat John Smith. 198 00:09:35,830 --> 00:09:40,766 Però només tenim el número d'identificació d'un usuari 10, un usuari número 11, 12, 13 ID. 199 00:09:40,766 --> 00:09:42,640 No tenim dos usuaris amb el mateix número, 200 00:09:42,640 --> 00:09:46,010 i així potser els números d'identificació d'usuari seria una bona clau principal. 201 00:09:46,010 --> 00:09:48,610 >> No tenim tota duplicació, i ara podem única 202 00:09:48,610 --> 00:09:52,619 identificar cada filera just mirant a aquesta columna. 203 00:09:52,619 --> 00:09:55,410 L'elecció de les claus principals en realitat pot realitzar operacions de taula subsegüents 204 00:09:55,410 --> 00:09:59,710 molt més fàcil perquè es pot aprofitar el fet que certes files voluntat 205 00:09:59,710 --> 00:10:02,720 ser únic, o d'un determinat columna de la base de dades o taula 206 00:10:02,720 --> 00:10:06,030 serà únic per recollir files particulars fora. 207 00:10:06,030 --> 00:10:08,790 >> Vostè també pot tenir una primària conjunta clau, que vostè pot trobar ocasió 208 00:10:08,790 --> 00:10:11,720 utilitzar, que és només un combinació de dues columnes que 209 00:10:11,720 --> 00:10:13,280 es garanteix que sigui únic. 210 00:10:13,280 --> 00:10:16,410 Així que potser vostè en té un columna que és A i B, 211 00:10:16,410 --> 00:10:19,290 una columna que és un, dos, i tres, però vostè només alguna vegada 212 00:10:19,290 --> 00:10:23,660 tenir una sola A1, un sol A2, i així successivament i així successivament. 213 00:10:23,660 --> 00:10:28,980 Però és possible que tingui un B2, 1 C2, o A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Així que és possible tenir múltiples Com, múltiple B, els múltiples, múltiples parelles, 215 00:10:32,840 --> 00:10:38,567 però mai es pot tenir només un sola A1, B2, C3, i així successivament. 216 00:10:38,567 --> 00:10:40,400 Així que, com vaig dir, SQL és un llenguatge de programació, 217 00:10:40,400 --> 00:10:42,024 però té un vocabulari bastant limitat. 218 00:10:42,024 --> 00:10:44,880 No és tan expansiva com C i PHP i altres llenguatges 219 00:10:44,880 --> 00:10:46,350 que es parla en el curs. 220 00:10:46,350 --> 00:10:49,960 És un més detallat el llenguatge del que som 221 00:10:49,960 --> 00:10:52,789 anem a parlar en aquest vídeo, perquè en aquest vídeo 222 00:10:52,789 --> 00:10:54,830 anem a parlar sobre quatre operacions que 223 00:10:54,830 --> 00:10:55,720 pot realitzar sobre una taula. 224 00:10:55,720 --> 00:10:56,761 >> Hi ha més d'això. 225 00:10:56,761 --> 00:10:58,730 Podem fer més que això, però per als nostres propòsits, 226 00:10:58,730 --> 00:11:02,250 estem generalment utilitzarà només quatre d'inserció operations--, 227 00:11:02,250 --> 00:11:05,360 seleccionar, actualitzar i eliminar. 228 00:11:05,360 --> 00:11:08,750 I és probable que pugui intuïtivament endevinar el que els quatre d'aquestes coses fan. 229 00:11:08,750 --> 00:11:12,520 Però anirem a una mica de detalls sobre cada un d'ells. 230 00:11:12,520 --> 00:11:15,780 >> Així que per als fins d'aquesta vídeo, suposarem 231 00:11:15,780 --> 00:11:18,870 hem els dos següents taules d'una base de dades única. 232 00:11:18,870 --> 00:11:23,460 Tenim una taula anomenada usuaris que té de quatre columns-- número d'identificació, nom d'usuari, 233 00:11:23,460 --> 00:11:25,350 contrasenya i nom complet. 234 00:11:25,350 --> 00:11:27,430 I tenim un segon taula en la mateixa base de dades 235 00:11:27,430 --> 00:11:32,129 anomenada mares que acaba de magatzems d'informació sobre un nom d'usuari i una mare. 236 00:11:32,129 --> 00:11:33,920 Així que per a tots els exemples en aquest video, anem a 237 00:11:33,920 --> 00:11:37,945 ser l'ús d'aquesta base de dades i actualitzacions posteriors a aquesta. 238 00:11:37,945 --> 00:11:40,070 Així que diguem que volem afegir informació a una taula. 239 00:11:40,070 --> 00:11:44,460 Això és el que fa l'operació d'inserció. 240 00:11:44,460 --> 00:11:46,550 En explicar tots aquestes comandes, vaig 241 00:11:46,550 --> 00:11:48,860 per donar-li un esquelet en general a utilitzar. 242 00:11:48,860 --> 00:11:51,661 Perquè en el fons, les consultes van aspecte molt similar, 243 00:11:51,661 --> 00:11:54,660 només estarem canviant lleugerament diferents peces d'informació 244 00:11:54,660 --> 00:11:56,750 fer coses diferents amb la taula. 245 00:11:56,750 --> 00:11:59,200 >> Així que per INSERT, l'esquelet es veu alguna cosa així com això. 246 00:11:59,200 --> 00:12:02,230 Volem inserir en una taula en particular. 247 00:12:02,230 --> 00:12:05,290 Llavors tenim un parèntesi obert i una llista de columnes 248 00:12:05,290 --> 00:12:08,070 que volem posar valors en. 249 00:12:08,070 --> 00:12:10,974 Tancar parèntesi, el els següents valors i, a continuació 250 00:12:10,974 --> 00:12:13,390 una altra vegada, llistem els valors volem posar a taula. 251 00:12:13,390 --> 00:12:15,950 >> Així un exemple d'aquest seria el següent. 252 00:12:15,950 --> 00:12:19,170 Vull inserir a la taula usuaris la següent columns-- 253 00:12:19,170 --> 00:12:21,010 nom d'usuari, contrasenya i nom complet. 254 00:12:21,010 --> 00:12:25,282 Així que una nova fila en què m'estic posant en aquests tres columnes i estem 255 00:12:25,282 --> 00:12:30,030 posarà en els valors Newman, USMAIL, i Newman. 256 00:12:30,030 --> 00:12:32,730 Així que en aquest cas, estic posant l'newman minúscules 257 00:12:32,730 --> 00:12:38,710 a la columna de nom d'usuari, la contrasenya USMAIL, i el nom de capital plena N 258 00:12:38,710 --> 00:12:41,940 Newman a la columna de nom complet. 259 00:12:41,940 --> 00:12:44,240 >> Així que això és el que la base de dades semblava abans. 260 00:12:44,240 --> 00:12:48,250 Això és el que la taula d'usuaris a la superior que semblava abans que ens vam fer. 261 00:12:48,250 --> 00:12:50,760 Després executem aquest consulta, obtenim això. 262 00:12:50,760 --> 00:12:54,790 Hem afegit una nova fila a la taula. 263 00:12:54,790 --> 00:12:56,810 Però noti una cosa que no va especificar, 264 00:12:56,810 --> 00:12:59,880 però d'alguna manera tinc un valor per, que és aquest 12 aquí. 265 00:12:59,880 --> 00:13:02,820 Jo no he dit que volia posi el número d'identificació en aquest país. 266 00:13:02,820 --> 00:13:04,900 Volia posar nom d'usuari, contrasenya, nom complet. 267 00:13:04,900 --> 00:13:06,440 I ho vaig fer, això està bé. 268 00:13:06,440 --> 00:13:07,760 >> Però també tinc aquest 12. 269 00:13:07,760 --> 00:13:09,490 Per què em surt aquest 12? 270 00:13:09,490 --> 00:13:12,904 Bé, resulta que quan s'està definint 271 00:13:12,904 --> 00:13:15,570 una columna que es va a ser el seu clau principal, que sol ser, 272 00:13:15,570 --> 00:13:16,510 com he dit, un número d'identificació. 273 00:13:16,510 --> 00:13:18,718 No sempre és necessàriament serà un número d'identificació, 274 00:13:18,718 --> 00:13:22,380 però en general és una bona idea haver algun tipus de valor sencer. 275 00:13:22,380 --> 00:13:25,950 Vostè té una opció en phpMyAdmin quan es crearà la base de dades 276 00:13:25,950 --> 00:13:31,130 o la seva taula per establir que columna com incremental automàtic. 277 00:13:31,130 --> 00:13:34,520 >> La qual cosa és una molt bona idea quan està treballant amb una clau principal, 278 00:13:34,520 --> 00:13:39,330 perquè vol tot valor en aquesta columna de ser únic. 279 00:13:39,330 --> 00:13:43,310 I si vostè s'oblida d'especificar per més d'una persona, 280 00:13:43,310 --> 00:13:46,240 ara té una situació en la qual que la columna ja no és únic. 281 00:13:46,240 --> 00:13:50,200 Vostè tindrà dos espais en blanc, de manera que no poden ja identificar un column-- 282 00:13:50,200 --> 00:13:54,150 o ja no únicament pot identificar una fila basada en aquesta columna. 283 00:13:54,150 --> 00:13:57,010 Ha perdut tot el seu valor com a clau principal. 284 00:13:57,010 --> 00:14:02,010 >> I així, segons sembla, el que he fet aquí es configura l'ID d'usuari 285 00:14:02,010 --> 00:14:07,790 columna d'increment automàtic perquè cada vegada afegir informació a la taula, 286 00:14:07,790 --> 00:14:12,220 serà automàticament donar-me un valor per a la clau principal. 287 00:14:12,220 --> 00:14:15,570 Així que mai podré oblidar fer-ho perquè la base de dades ho farà per mi. 288 00:14:15,570 --> 00:14:16,587 Així que això és una mica agradable. 289 00:14:16,587 --> 00:14:18,670 I per això és que tenim 12 allà, perquè he 290 00:14:18,670 --> 00:14:21,772 establir que la columna fins a la subhasta d'automòbils. 291 00:14:21,772 --> 00:14:23,730 Si he afegit una altra persona que seria 13, si he afegit 292 00:14:23,730 --> 00:14:27,890 una altra persona que seria 14, i així successivament. 293 00:14:27,890 --> 00:14:30,190 >> Així que farem una inserció més. 294 00:14:30,190 --> 00:14:34,530 Anem a inserir en la taula de les mares, en en particular, el nom d'usuari i la mare 295 00:14:34,530 --> 00:14:37,390 de columna, els valors Kramer i Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 I pel que vam tenir abans. 297 00:14:39,140 --> 00:14:41,800 Després executem que Consulta SQL, tenim això. 298 00:14:41,800 --> 00:14:47,290 Hem afegit Kramer i Babs Kramer a la taula de les mares. 299 00:14:47,290 --> 00:14:48,350 >> Així que ha d'inserir. 300 00:14:48,350 --> 00:14:51,850 SELECT és el que fem servir per extreure informació de la taula. 301 00:14:51,850 --> 00:14:54,390 Així que aquesta és la forma en que obtenim la informació de la base de dades. 302 00:14:54,390 --> 00:14:59,589 I les ordres de manera SELECT seran utilitzat amb molta freqüència en la programació. 303 00:14:59,589 --> 00:15:02,130 El general framework-- la esquelet en general són aquestes. 304 00:15:02,130 --> 00:15:06,550 Seleccioneu un conjunt de columnes de una taula, i després opcionalment 305 00:15:06,550 --> 00:15:11,090 pot especificar un condición-- o el que normalment anomenem un predicat, 306 00:15:11,090 --> 00:15:13,010 sol ser el terme que fem servir en SQL. 307 00:15:13,010 --> 00:15:16,490 >> Però és bàsicament el que files particulars que volen aconseguir. 308 00:15:16,490 --> 00:15:19,100 Si ho desitja, en lloc d'obtenir tot, reduir-la, 309 00:15:19,100 --> 00:15:20,060 aquí és on vostè faria això. 310 00:15:20,060 --> 00:15:22,777 I a continuació, opcionalment, també pot ordenar per una columna en particular. 311 00:15:22,777 --> 00:15:25,860 Així que potser vostè vol tenir coses ordenats alfabètic basat en una columna 312 00:15:25,860 --> 00:15:27,540 o per ordre alfabètic basat en un altre. 313 00:15:27,540 --> 00:15:30,610 >> Un cop més, WHERE i ORDER BY són opcionals. 314 00:15:30,610 --> 00:15:32,681 Però probablement estaran useful-- particular 315 00:15:32,681 --> 00:15:34,680 ON serà útil per reduir de manera que no ho fa 316 00:15:34,680 --> 00:15:37,460 obtenir tota la base de dades d'anada i ha de processar-lo, que acaba d'arribar 317 00:15:37,460 --> 00:15:39,300 les peces del que t'importa. 318 00:15:39,300 --> 00:15:44,932 Així, per exemple, pot ser que voleu seleccionar Número d'identificació i nom complet dels usuaris. 319 00:15:44,932 --> 00:15:46,140 Llavors, què podria aquest aspecte? 320 00:15:46,140 --> 00:15:48,270 Així que aquí està la meva taula d'usuaris. 321 00:15:48,270 --> 00:15:51,080 Vull seleccionar IDNUM i nom complet dels usuaris. 322 00:15:51,080 --> 00:15:52,300 Què aconseguiré? 323 00:15:52,300 --> 00:15:53,580 Vaig a aconseguir això. 324 00:15:53,580 --> 00:15:56,930 No limitar la cerca, així que estic obtenir el número d'identificació per a cada fila 325 00:15:56,930 --> 00:16:00,850 i m'estic posant el ple nom de cada fila. 326 00:16:00,850 --> 00:16:02,210 >> D'ACORD. 327 00:16:02,210 --> 00:16:05,640 Què passa si vull seleccionar contrasenya dels usuaris WHERE-- ara 328 00:16:05,640 --> 00:16:10,370 Estic afegint-hi una condició, un predicate-- on IDNUM és inferior a 12. 329 00:16:10,370 --> 00:16:13,660 Així que aquí està la meva base de dades de nou, la meva taula d'usuaris de la part superior. 330 00:16:13,660 --> 00:16:17,030 Què vaig a tenir si vull seleccionar aquesta informació, la contrasenya, 331 00:16:17,030 --> 00:16:21,550 on ID d'usuari o IDNUM està a menys de 12? 332 00:16:21,550 --> 00:16:24,910 Vaig a aconseguir aquest informació de nou, oi? 333 00:16:24,910 --> 00:16:29,170 Passa que IDNUM és 10, menys de 12, número d'identificació d'11 a menys de 12. 334 00:16:29,170 --> 00:16:32,160 M'estic posant la contrasenya per a aquestes files. 335 00:16:32,160 --> 00:16:33,914 Això és el que vaig demanar. 336 00:16:33,914 --> 00:16:34,580 ¿I això? 337 00:16:34,580 --> 00:16:39,170 Què passa si vull seleccionar estrelles de la taula de mares, on nom d'usuari és igual a Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, seleccioneu estrella és l'especial espècie de comodí anomenats 339 00:16:43,780 --> 00:16:45,670 que utilitzem per aconseguir tot. 340 00:16:45,670 --> 00:16:48,620 Així que estan dient seleccioni username mare coma, que 341 00:16:48,620 --> 00:16:51,060 va passar a ser l'únic dues columnes d'aquesta taula, 342 00:16:51,060 --> 00:16:53,260 Jo només puc seleccionar estrelles i tenir tot 343 00:16:53,260 --> 00:16:55,030 on el nom d'usuari és igual a Jerry. 344 00:16:55,030 --> 00:16:59,380 I això és el que m'agradaria tenir si he fet aquesta pregunta en particular. 345 00:16:59,380 --> 00:17:01,810 >> Ara, són les bases de dades grans perquè permeten 346 00:17:01,810 --> 00:17:06,074 nosaltres vam organitzar la informació potser una mica més eficientment que ens 347 00:17:06,074 --> 00:17:06,740 podria d'una altra manera. 348 00:17:06,740 --> 00:17:10,240 No necessàriament a emmagatzemem cada peça rellevant de la informació 349 00:17:10,240 --> 00:17:12,230 sobre un usuari en la mateixa taula. 350 00:17:12,230 --> 00:17:13,730 Teníem dues taules allà. 351 00:17:13,730 --> 00:17:15,734 >> Necessitem emmagatzemar nom de la mare de tots, 352 00:17:15,734 --> 00:17:18,900 i potser no tenim la seguretat social nombre, tenim la seva data de naixement. 353 00:17:18,900 --> 00:17:21,819 Això no sempre necessita per estar a la mateixa taula. 354 00:17:21,819 --> 00:17:25,339 Mentre podem definir relacions entre el tables-- 355 00:17:25,339 --> 00:17:28,440 i aquí és on que relacional terme base de dades de tipus de tracta 356 00:17:28,440 --> 00:17:32,130 en play-- el temps que podem definir relacions entre les taules, 357 00:17:32,130 --> 00:17:35,545 podem espècie de compartimentar o coses abstractes d'una manera, 358 00:17:35,545 --> 00:17:37,670 on només tenim la informació realment important 359 00:17:37,670 --> 00:17:39,270 ens preocupem en la taula de l'usuari. 360 00:17:39,270 --> 00:17:43,220 I després tenim informació auxiliar o informació addicional en altres taules 361 00:17:43,220 --> 00:17:48,260 que podem connectar de nou a la principal taula d'usuaris d'una manera particular. 362 00:17:48,260 --> 00:17:52,200 >> Així que aquí tenim aquestes dues taules, però hi ha una relació entre ells, 363 00:17:52,200 --> 00:17:53,010 Oi? 364 00:17:53,010 --> 00:17:55,070 Sembla com nom d'usuari podria ser alguna cosa 365 00:17:55,070 --> 00:17:59,909 que hi ha en comú entre aquestes dues taules diferents. 366 00:17:59,909 --> 00:18:01,700 ¿I què si ara tenim una situació en la qual 367 00:18:01,700 --> 00:18:06,046 que desitgi obtenir el nom complet d'un usuari la taula de l'usuari, i la seva mare de 368 00:18:06,046 --> 00:18:07,170 nom de la taula de la mare? 369 00:18:07,170 --> 00:18:10,960 No tenim una manera d'aconseguir que tal com està, no? 370 00:18:10,960 --> 00:18:17,790 No hi ha una sola taula que conté tant el nom complet i el nom de la mare. 371 00:18:17,790 --> 00:18:20,400 No tenim aquesta opció del que hem vist fins ara. 372 00:18:20,400 --> 00:18:22,950 >> I així hem d'introduir la idea d'un JOIN. 373 00:18:22,950 --> 00:18:24,857 I s'uneix són probablement el més complex-- 374 00:18:24,857 --> 00:18:27,940 en realitat és més complexa operació parlarem en el vídeo. 375 00:18:27,940 --> 00:18:30,040 Són una mica complicat, però una vegada que el pengi d'ella, 376 00:18:30,040 --> 00:18:31,248 que en realitat no estan tan malament. 377 00:18:31,248 --> 00:18:32,820 És només un cas especial d'un SELECT. 378 00:18:32,820 --> 00:18:37,120 Anem a seleccionar un conjunt de columnes d'una taula d'unió 379 00:18:37,120 --> 00:18:40,650 en una segona taula en algun predicat. 380 00:18:40,650 --> 00:18:45,340 >> En aquest cas, pensar-hi com esto-- Taula és un cercle aquí, 381 00:18:45,340 --> 00:18:47,530 taula dos és un altre cercle aquí. 382 00:18:47,530 --> 00:18:49,410 I aquesta part de predicats en el medi, que és 383 00:18:49,410 --> 00:18:51,701 una cosa així com si vostè pensa sobre com un diagrama de Venn, el 384 00:18:51,701 --> 00:18:52,670 Què tenen en comú? 385 00:18:52,670 --> 00:18:55,960 Volem vincular aquests dos taules en base al que tenen en comú 386 00:18:55,960 --> 00:19:01,230 i crear aquesta taula hipotètica que és la fusió dels dos junts. 387 00:19:01,230 --> 00:19:03,480 Així que anem a veure això en un exemple i potser això va a ajudar 388 00:19:03,480 --> 00:19:04,521 aclarir una mica. 389 00:19:04,521 --> 00:19:09,260 Així que potser voleu seleccionar user.fullname i moms.mother 390 00:19:09,260 --> 00:19:13,220 dels usuaris s'uneixen en el taula mares en cada situació 391 00:19:13,220 --> 00:19:16,790 on la columna el nom d'usuari és el mateix entre ells. 392 00:19:16,790 --> 00:19:19,240 I aquest és un nou sintaxi aquí, aquest usuari. 393 00:19:19,240 --> 00:19:20,460 i les mares .. 394 00:19:20,460 --> 00:19:26,697 Si estic fent diverses taules junts, puc especificar una taula. 395 00:19:26,697 --> 00:19:29,530 Puc distingir, en particular en en que a la part inferior allà. 396 00:19:29,530 --> 00:19:33,220 Puc distingir el nom d'usuari la columna de la taula d'usuaris 397 00:19:33,220 --> 00:19:36,010 de la columna nom d'usuari del taula de mares, que són otherwise-- 398 00:19:36,010 --> 00:19:38,070 si acabem de dir nom d'usuari és igual nom d'usuari, que en realitat no 399 00:19:38,070 --> 00:19:38,970 significar qualsevol cosa. 400 00:19:38,970 --> 00:19:41,440 Volem fer-ho on coincideixen. 401 00:19:41,440 --> 00:19:46,080 >> Així que puc especificar la taula i el nom de la columna en cas d'una situació 402 00:19:46,080 --> 00:19:48,370 on seria poc clar el que estic parlant. 403 00:19:48,370 --> 00:19:51,880 Així que això és tot el que estic fent no estic dient aquesta columna d'aquesta taula, 404 00:19:51,880 --> 00:19:54,020 i ser molt explícit. 405 00:19:54,020 --> 00:19:56,810 Així que de nou, estic seleccionant la nom complet i el nom de la mare 406 00:19:56,810 --> 00:20:00,950 de la taula d'usuaris connectats entre si amb la taula de les mares en cada situació 407 00:20:00,950 --> 00:20:05,960 on comparteixen que column-- comparteixen aquest nom d'usuari noció. 408 00:20:05,960 --> 00:20:08,580 >> Així que aquí estan les taules que teníem abans. 409 00:20:08,580 --> 00:20:12,210 Aquest és l'estat de la nostra base de dades, tal com existeix ara. 410 00:20:12,210 --> 00:20:16,390 La informació que estem extraient És aquest per començar. 411 00:20:16,390 --> 00:20:19,820 Aquesta és la nova taula que anem per crear la combinació d'aquests junts. 412 00:20:19,820 --> 00:20:23,585 I notem que no estem destacant Fila de Newman a la taula de l'usuari, 413 00:20:23,585 --> 00:20:25,960 i no estem destacant Fila de Kramer a la taula de les mares 414 00:20:25,960 --> 00:20:31,250 perquè no n'hi ha cap en tant sets-- en ambdues taules. 415 00:20:31,250 --> 00:20:36,260 >> L'única informació que es troba en comú entre ells és Jerry és en les dues taules 416 00:20:36,260 --> 00:20:39,100 i gcostanza és en les dues taules. 417 00:20:39,100 --> 00:20:42,620 I així, quan fem l'SQL JOIN, el que get-- i estem fent realment aconseguir això. 418 00:20:42,620 --> 00:20:44,830 És una espècie d'una variable temporal. 419 00:20:44,830 --> 00:20:47,330 És com una hipotètica fusió de les dues taules. 420 00:20:47,330 --> 00:20:49,930 En realitat obtenim alguna cosa com aquest, on 421 00:20:49,930 --> 00:20:54,730 hem fusionat les taules a la informació que tenen en comú. 422 00:20:54,730 --> 00:20:58,334 >> Així notar que users.username i la columna moms.username, 423 00:20:58,334 --> 00:20:59,250 que és exactament el mateix. 424 00:20:59,250 --> 00:21:01,820 Aquesta va ser la informació que era coherent dels usuaris 425 00:21:01,820 --> 00:21:02,890 taula i la taula de les mares. 426 00:21:02,890 --> 00:21:04,270 I així que ells es van fusionar. 427 00:21:04,270 --> 00:21:06,919 Descartem Kramer perquè no existia a la taula d'usuaris, 428 00:21:06,919 --> 00:21:09,710 i es va descartar Newman, perquè que no existeix en la taula mares. 429 00:21:09,710 --> 00:21:16,450 Així que aquesta és la fusió hipotètica mitjançant l'operació JOIN de SELECT. 430 00:21:16,450 --> 00:21:21,250 >> I després que estàvem buscant per al el nom complet de l'usuari i la mare de l'usuari, 431 00:21:21,250 --> 00:21:24,999 i pel que aquesta és la informació que que es poden aconseguir de la consulta general 432 00:21:24,999 --> 00:21:26,040 que vam fer amb SELECT. 433 00:21:26,040 --> 00:21:28,873 Així que ens unim a les taules i es van extreure aquestes dues columnes, 434 00:21:28,873 --> 00:21:31,610 i això és el que anava a aconseguir. 435 00:21:31,610 --> 00:21:33,370 Però SQL s'uneix a una classe de complicat. 436 00:21:33,370 --> 00:21:36,770 Vostè probablement no va a fer massa, però només tenir alguna idea de l'esquelet 437 00:21:36,770 --> 00:21:41,992 que es pot utilitzar per combinar dues taules si necessitaves. 438 00:21:41,992 --> 00:21:43,700 Els dos últims són un mica més simple ho prometo. 439 00:21:43,700 --> 00:21:48,040 Així que l'actualització, podem utilitzar ACTUALITZACIÓ per canviar la informació en una taula. 440 00:21:48,040 --> 00:21:53,880 El format general és actualitzar alguns taula, SET alguna columna a algun valor 441 00:21:53,880 --> 00:21:55,540 ON algun predicat està satisfet. 442 00:21:55,540 --> 00:21:57,850 Així, per exemple, podríem voler per actualitzar la taula d'usuaris 443 00:21:57,850 --> 00:22:04,400 i establir la contrasenya per Canyada Yada, on el nombre ID és de 10. 444 00:22:04,400 --> 00:22:06,400 >> Així que en aquest cas, estem l'actualització de la taula d'usuaris. 445 00:22:06,400 --> 00:22:08,275 El número d'identificació és 10 per a aquesta primera fila allà, 446 00:22:08,275 --> 00:22:10,690 i volem actualitzar la contrasenya per Canyada Canyada. 447 00:22:10,690 --> 00:22:12,170 I això és el que passaria. 448 00:22:12,170 --> 00:22:13,628 És bastant senzill, oi? 449 00:22:13,628 --> 00:22:17,990 És només una molt simple modificació a la taula. 450 00:22:17,990 --> 00:22:22,250 >> DELETE és l'operació que solíem eliminar la informació d'una taula. 451 00:22:22,250 --> 00:22:24,817 DELETE FROM taula WHERE algun predicat està satisfet. 452 00:22:24,817 --> 00:22:26,900 Volem eliminar de la taula d'usuaris, per exemple, 453 00:22:26,900 --> 00:22:28,254 on el nom d'usuari és Newman. 454 00:22:28,254 --> 00:22:31,420 Vostè probablement pot endevinar el que va a passar aquí després executem que SQL 455 00:22:31,420 --> 00:22:35,790 consulta, Newman s'ha anat de la taula. 456 00:22:35,790 --> 00:22:40,460 >> Així que totes aquestes operacions, com he dit, són molt fàcils de fer en phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 És una interfície d'usuari molt amigable. 458 00:22:43,020 --> 00:22:45,930 Però sí que requereix esforç manual. 459 00:22:45,930 --> 00:22:47,840 No volem emprar esforç manual. 460 00:22:47,840 --> 00:22:51,280 Volem que els nostres programes a fer això per nosaltres, no? 461 00:22:51,280 --> 00:22:53,190 Així que podríem voler fer aquesta programació. 462 00:22:53,190 --> 00:22:56,410 Volem incorporar SQL i tenen alguna cosa més que fer això per nosaltres. 463 00:22:56,410 --> 00:23:02,710 >> Però què hem vist que permet que fem programació alguna cosa? 464 00:23:02,710 --> 00:23:03,690 Hem vist PHP, oi? 465 00:23:03,690 --> 00:23:05,760 Introdueix alguns dinamisme als nostres programes. 466 00:23:05,760 --> 00:23:10,430 I així, per fortuna, SQL i PHP jugar molt bé junts. 467 00:23:10,430 --> 00:23:13,230 Hi ha una funció en PHP trucada de consulta, que es pot utilitzar. 468 00:23:13,230 --> 00:23:15,870 I vostè pot passar pel paràmetre o argument 469 00:23:15,870 --> 00:23:19,210 per consultar una consulta SQL que desitja executar. 470 00:23:19,210 --> 00:23:23,250 I PHP ho farà en nom seu. 471 00:23:23,250 --> 00:23:25,564 >> Així que després que ha connectat a la base de dades amb PHP, 472 00:23:25,564 --> 00:23:26,980 hi ha dos primàries que fas això. 473 00:23:26,980 --> 00:23:29,230 Hi ha alguna cosa que es diu MySQLi i una cosa anomenada DOP. 474 00:23:29,230 --> 00:23:31,063 No entrarem en una enorme quantitat de detall allà. 475 00:23:31,063 --> 00:23:32,957 En CS50 utilitzem DOP. 476 00:23:32,957 --> 00:23:34,790 Després d'haver connectat a la base de dades, 477 00:23:34,790 --> 00:23:40,980 a continuació, pot fer consultes seva base de dades passant les consultes com a arguments 478 00:23:40,980 --> 00:23:42,730 a les funcions de PHP. 479 00:23:42,730 --> 00:23:46,460 I quan ho fa, s'emmagatzema el conjunt de resultats en un array associatiu. 480 00:23:46,460 --> 00:23:50,290 >> I sabem com treballar amb matrius associatives en PHP. 481 00:23:50,290 --> 00:23:52,630 Així que podria dir alguna cosa així- $ resultats-- 482 00:23:52,630 --> 00:23:55,470 això és en PHP-- és igual a la consulta. 483 00:23:55,470 --> 00:23:57,660 I després a l'interior del funció de consulta que l'argument 484 00:23:57,660 --> 00:24:00,130 que estic passant per consultar que s'assembla a SQL. 485 00:24:00,130 --> 00:24:01,160 I de fet, que és SQL. 486 00:24:01,160 --> 00:24:05,700 Aquesta és la cadena de consulta que ho faria desitja executar en la meva base de dades. 487 00:24:05,700 --> 00:24:09,250 >> I així, en vermell, això és PHP. 488 00:24:09,250 --> 00:24:11,890 Aquesta és SQL que sóc integrant en PHP fent 489 00:24:11,890 --> 00:24:15,020 que l'argument de la funció de consulta. 490 00:24:15,020 --> 00:24:19,640 Vull seleccionar nom complet de usuaris, on el nombre d'identificació és igual a 10. 491 00:24:19,640 --> 00:24:22,560 I llavors potser després que jo he fet, Jo podria dir alguna cosa com això. 492 00:24:22,560 --> 00:24:25,550 Vull imprimir el missatge Gràcies per ingressar. 493 00:24:25,550 --> 00:24:32,530 >> I ho vull interpolate-- Vull interpolar $ resultats nom complet. 494 00:24:32,530 --> 00:24:36,280 I així és com jo treball amb això matriu associativa que vaig tornar. 495 00:24:36,280 --> 00:24:39,730 $ Resultats nom complet faria bàsicament acaben d'imprimir, 496 00:24:39,730 --> 00:24:42,870 gràcies per ingressar, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Aquest era el nom complet on IDNUM és igual a 10. 498 00:24:46,570 --> 00:24:48,850 >> I així, tot el que estic fent és que estic ara-- vaig guardar 499 00:24:48,850 --> 00:24:52,780 la meva consulta, els resultats de la meva recerca i els resultats en un array associatiu, 500 00:24:52,780 --> 00:24:56,330 i nom complet és el nom de la columna que estava rebent per. 501 00:24:56,330 --> 00:25:01,010 Així que aquesta és la meva clau en els resultats matriu associativa que vull. 502 00:25:01,010 --> 00:25:05,930 Així Gràcies per ingressar, $ resultats, nom complet s'imprimeixi, s'enganxarà 503 00:25:05,930 --> 00:25:08,654 al bell mig dels arrissada claus, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 I m'agradarà per imprimir el missatge Gràcies per ingressar Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Ara, és probable que no volem dur coses de codi com aquest, ¿no? 506 00:25:16,652 --> 00:25:19,860 Podríem voler fer alguna cosa com d'impressió f, on podem substituir i potser 507 00:25:19,860 --> 00:25:22,443 recopilar informació diferent, o potser que el procés de consulta 508 00:25:22,443 --> 00:25:23,370 informació diferent. 509 00:25:23,370 --> 00:25:27,920 I així, la consulta, la funció de consulta té aquesta noció de tipus de substitucions 510 00:25:27,920 --> 00:25:32,310 molt similar a imprimir f cent s i el percentatge de c, és signes d'interrogació. 511 00:25:32,310 --> 00:25:34,290 >> I podem fer servir pregunta marques molt anàloga 512 00:25:34,290 --> 00:25:38,400 per imprimir f a les variables de substitució. 513 00:25:38,400 --> 00:25:44,120 Així que potser l'usuari ha iniciat sessió anterior, i guardar el seu nombre d'ID d'usuari 514 00:25:44,120 --> 00:25:51,710 en $ _SESSION de PHP súper global en l'ID de la clau. 515 00:25:51,710 --> 00:25:55,947 Així que potser després que es registren en, configura $ _SESSION ID és igual a 10, 516 00:25:55,947 --> 00:25:58,280 extrapolant a partir de l'exemple que acabem de veure fa un segon. 517 00:25:58,280 --> 00:26:01,960 >> I així, quan en realitat ens executem Aquesta consulta els resultats ara, 518 00:26:01,960 --> 00:26:08,440 seria connectar 10, o el que sigui el valor de ID $ _SESSION és. 519 00:26:08,440 --> 00:26:10,790 I perquè ens permet ser una mica més dinàmic. 520 00:26:10,790 --> 00:26:12,699 No estem de codificació dura coses més. 521 00:26:12,699 --> 00:26:14,490 Estem estalviant informació en algun lloc i després 522 00:26:14,490 --> 00:26:18,924 podem utilitzar aquesta informació de nou per tipus de generalitzar el que volem fer, 523 00:26:18,924 --> 00:26:21,090 i acaba de plug-in i el canvi el comportament de la nostra pàgina 524 00:26:21,090 --> 00:26:26,489 basat en el que el número d'identificació de l'usuari en realitat és després d'haver iniciat la sessió. 525 00:26:26,489 --> 00:26:28,530 També és possible, però, que els seus resultats estableixen 526 00:26:28,530 --> 00:26:30,840 podria consistir en diverses files. 527 00:26:30,840 --> 00:26:33,990 En aquest cas, vostè té una sèrie de arrays-- 528 00:26:33,990 --> 00:26:35,334 una matriu de matrius associatives. 529 00:26:35,334 --> 00:26:37,000 I només ha de recórrer a través d'ell. 530 00:26:37,000 --> 00:26:41,950 I sabem la forma de repetició a través d'una matriu en PHP, oi? 531 00:26:41,950 --> 00:26:45,600 Així que aquí és probablement la més cosa complexa que hem vist fins ara. 532 00:26:45,600 --> 00:26:49,640 En realitat, s'integra tres idiomes junts. 533 00:26:49,640 --> 00:26:52,920 >> Aquí a vermell, això és una cosa d'HTML. 534 00:26:52,920 --> 00:26:56,872 Aparentment estic starting-- això és un fragment d'alguna cosa d'HTML que tinc. 535 00:26:56,872 --> 00:26:59,580 Estic començant un nou paràgraf que diu que les mares de Seinfeld de televisió. 536 00:26:59,580 --> 00:27:02,350 I a continuació, immediatament després Estic començant una taula. 537 00:27:02,350 --> 00:27:06,060 I després, després d'això, tenir una mica de PHP, oi? 538 00:27:06,060 --> 00:27:08,229 Tinc tot aquest codi PHP en aquest país. 539 00:27:08,229 --> 00:27:09,645 Pel que sembla, vaig a fer una consulta. 540 00:27:09,645 --> 00:27:14,180 I per fer la consulta, vaig a a utilitzar les mares Selecciona de les mares. 541 00:27:14,180 --> 00:27:15,970 >> Així que aquest es getting-- això és SQL. 542 00:27:15,970 --> 00:27:17,300 Així que el blau és SQL. 543 00:27:17,300 --> 00:27:19,680 El vermell que vam veure fa un segon estava HTML. 544 00:27:19,680 --> 00:27:21,360 I el verd aquí és PHP. 545 00:27:21,360 --> 00:27:23,400 Així que estic fent una consulta a la meva base de dades, estic 546 00:27:23,400 --> 00:27:26,040 seleccionar tots els mares en la taula de les mares. 547 00:27:26,040 --> 00:27:30,710 No només l'estrenyiment cap avall al particular fila, el que estic demanant a tots ells. 548 00:27:30,710 --> 00:27:33,290 >> Llavors puc comprovar si el resultat es no és igual als iguals falsa. 549 00:27:33,290 --> 00:27:37,410 Això és només la meva manera de comprovar espècie de si els resultats no és igual a null, 550 00:27:37,410 --> 00:27:40,260 que veuríem c per exemple. 551 00:27:40,260 --> 00:27:44,000 Bàsicament això és només comprovant fer Segur que en realitat té dades de nou. 552 00:27:44,000 --> 00:27:47,041 Perquè jo no vull començar a imprimir sortida de dades si no he tingut cap dada. 553 00:27:47,041 --> 00:27:50,690 Després, per a cada resultat com a resultat la foreach sintaxi de PHP, tot el que estic fent 554 00:27:50,690 --> 00:27:53,399 està imprimint mares $ resultat. 555 00:27:53,399 --> 00:27:55,940 Així que vaig a obtenir un conjunt de totes les mares de each-- 556 00:27:55,940 --> 00:27:59,980 és un conjunt de associativa arrays-- i estic imprimint 557 00:27:59,980 --> 00:28:03,649 cada un d'ells com la seva pròpia fila d'una taula. 558 00:28:03,649 --> 00:28:05,690 I això és molt bonic tot el que cal fer. 559 00:28:05,690 --> 00:28:07,750 Sé que hi ha una mica de poc passant aquí 560 00:28:07,750 --> 00:28:13,210 En aquest últim exemple, amb matrius de arrays-- matrius de matrius associatives. 561 00:28:13,210 --> 00:28:17,340 Però en realitat es limita a bullir en SQL per fer una consulta, 562 00:28:17,340 --> 00:28:21,102 en general la selecció després que ja hem posar la informació a la taula, 563 00:28:21,102 --> 00:28:22,310 i després simplement tirant d'ell. 564 00:28:22,310 --> 00:28:25,710 >> I això és ens tiri d'ella en aquest cas particular. 565 00:28:25,710 --> 00:28:31,120 Volem extreure tot l'individu mares de la taula mares. 566 00:28:31,120 --> 00:28:35,970 Tenim tot un conjunt d'ells, i nosaltres voler recórrer i imprimir 567 00:28:35,970 --> 00:28:37,630 cadascú. 568 00:28:37,630 --> 00:28:40,510 Així que de nou, això és probablement l'exemple més complicat 569 00:28:40,510 --> 00:28:44,510 que hem vist perquè estem barrejant de tres diferents idiomes junts, no? 570 00:28:44,510 --> 00:28:50,100 >> Un cop més, tenim HTML aquí en vermell, barrejat amb una mica de SQL aquí en blau, 571 00:28:50,100 --> 00:28:52,049 barrejat amb una mica de PHP en verd. 572 00:28:52,049 --> 00:28:53,840 Però tots ells juguen molt bé junts, és 573 00:28:53,840 --> 00:28:57,060 només és qüestió de desenvolupar bons hàbits de manera que vostè pot obtenir 574 00:28:57,060 --> 00:28:58,780 que treballin junts de la manera desitjada. 575 00:28:58,780 --> 00:29:03,790 I l'única manera de fer-ho realment tan és practicar, practicar i practicar. 576 00:29:03,790 --> 00:29:06,740 Sóc Doug Lloyd, això és CS50. 577 00:29:06,740 --> 00:29:08,647