1 00:00:00,000 --> 00:00:03,493 >> [REPRODUCCIÓN DE MÚSICA] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD: En nuestros videos sobre temas de desarrollo web, 4 00:00:07,100 --> 00:00:10,560 hemos mencionado el concepto de una base de datos un par de veces, ¿verdad? 5 00:00:10,560 --> 00:00:12,700 Así que una base de datos que está probablemente está familiarizado con de 6 00:00:12,700 --> 00:00:15,780 decir utilizando Microsoft Excel o Hojas de cálculo de Google. 7 00:00:15,780 --> 00:00:20,650 Es realmente sólo una organizada un conjunto de tablas, filas y columnas. 8 00:00:20,650 --> 00:00:23,140 >> Y una base de datos es donde nuestras tiendas del sitio web 9 00:00:23,140 --> 00:00:26,760 información que es importante para nuestro sitio web para que funcione correctamente. 10 00:00:26,760 --> 00:00:30,150 De nuevo, un ejemplo muy común aquí se almacenar nombres de usuario y contraseñas 11 00:00:30,150 --> 00:00:32,824 en una base de datos, de modo que cuando un usuario se registra en nuestro sitio web, 12 00:00:32,824 --> 00:00:36,690 la base de datos se puede consultar para ver Si existe ese usuario en la base de datos. 13 00:00:36,690 --> 00:00:39,260 Y si lo son, la comprobación de que su contraseña es correcta. 14 00:00:39,260 --> 00:00:43,420 Y si su contraseña es correcta, entonces podemos darles cualquier página 15 00:00:43,420 --> 00:00:45,370 que están solicitando. 16 00:00:45,370 --> 00:00:48,590 >> Así que usted está probablemente, de nuevo, familiar con esta idea desde Excel o Google 17 00:00:48,590 --> 00:00:49,430 Las hojas de cálculo. 18 00:00:49,430 --> 00:00:52,980 Tenemos bases de datos, tablas, filas y columnas. 19 00:00:52,980 --> 00:00:56,450 Y eso es realmente una especie del conjunto fundamental 20 00:00:56,450 --> 00:00:58,470 del desglose jerárquico aquí. 21 00:00:58,470 --> 00:00:59,800 Así que aquí está una hoja de cálculo Excel. 22 00:00:59,800 --> 00:01:02,640 Y si alguna vez has abierto este u otro programa similar 23 00:01:02,640 --> 00:01:06,780 usted sabe que estas aquí están rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Estos son columnas. 25 00:01:08,760 --> 00:01:11,790 >> Tal vez aquí, aunque es posible No utilice esta función terriblemente mucho-- 26 00:01:11,790 --> 00:01:15,370 Voy a hacer un zoom en-- tenemos esta idea de una hoja. 27 00:01:15,370 --> 00:01:17,930 Así que tal vez estas hojas, si Alterno de ida y vuelta, 28 00:01:17,930 --> 00:01:21,600 son diferentes tablas que existir en mi base de datos. 29 00:01:21,600 --> 00:01:25,210 Y si seguimos el ejemplo de todo la forma, el nombre de esta base de datos 30 00:01:25,210 --> 00:01:26,940 es el libro 1. 31 00:01:26,940 --> 00:01:28,710 Tal vez tengo libro 2 y 3 del libro. 32 00:01:28,710 --> 00:01:33,270 Así que cada archivo de Excel es un base de datos, cada hoja es una tabla, 33 00:01:33,270 --> 00:01:39,530 y en el interior de cada tabla que tengo esta idea de filas y columnas. 34 00:01:39,530 --> 00:01:41,900 >> Entonces, ¿cómo puedo trabajar con esta base de datos? 35 00:01:41,900 --> 00:01:43,630 ¿Cómo puedo obtener información de ella? 36 00:01:43,630 --> 00:01:47,540 Bueno, hay un lenguaje llamado SQL-- que por lo general sólo llamo Sequel-- 37 00:01:47,540 --> 00:01:50,010 y que representa el Lenguaje de consulta estructurado. 38 00:01:50,010 --> 00:01:52,981 Y es un lenguaje de programación, pero es una programación bastante limitado 39 00:01:52,981 --> 00:01:53,480 idioma. 40 00:01:53,480 --> 00:01:56,407 No es exactamente igual que los demás que hemos trabajado. 41 00:01:56,407 --> 00:01:58,240 Sin embargo, el propósito de este lenguaje de programación 42 00:01:58,240 --> 00:02:01,570 es para consultar una base de datos, a pedir información de una base de datos, 43 00:02:01,570 --> 00:02:04,480 encontrar información en una base de datos, y así sucesivamente. 44 00:02:04,480 --> 00:02:08,449 >> También, en CS50-- y es una muy plataforma común, se llama MySQL. 45 00:02:08,449 --> 00:02:10,600 Eso es lo que usamos en el curso. 46 00:02:10,600 --> 00:02:12,880 Es una fuente abierta plataforma que establece 47 00:02:12,880 --> 00:02:16,732 un denominado database-- relacional una base de datos, de manera efectiva. 48 00:02:16,732 --> 00:02:18,440 No necesitamos para llegar en demasiados detalles 49 00:02:18,440 --> 00:02:20,930 en lo que es una base de datos relacional es. 50 00:02:20,930 --> 00:02:24,650 Pero el lenguaje SQL es muy hábil para trabajar 51 00:02:24,650 --> 00:02:29,760 con MySQL y otros similares estilos de bases de datos relacionales. 52 00:02:29,760 --> 00:02:34,010 >> Y muchas instalaciones de MySQL venir con algo 53 00:02:34,010 --> 00:02:37,760 llamada phpMyAdmin, que es una gráfica de usuario 54 00:02:37,760 --> 00:02:40,970 interface-- un GUI-- que hace que sea un poco más 55 00:02:40,970 --> 00:02:44,410 fácil de usar para ejecutar consultas de bases de datos, 56 00:02:44,410 --> 00:02:48,980 porque las bases de datos no sólo son utilizadas por los programadores avanzados, ¿verdad? 57 00:02:48,980 --> 00:02:51,510 A veces hay estas pequeñas empresas, 58 00:02:51,510 --> 00:02:53,900 y no pueden darse el lujo de contratar a un equipo de programadores, 59 00:02:53,900 --> 00:02:56,700 pero todavía necesitan para almacenar información en una base de datos. 60 00:02:56,700 --> 00:02:59,300 >> Algo así como phpMyAdmin hace que sea muy fácil para alguien 61 00:02:59,300 --> 00:03:03,630 que nunca ha programado antes de recoger y familiarizarse con la forma 62 00:03:03,630 --> 00:03:07,710 para trabajar con una base de datos. 63 00:03:07,710 --> 00:03:11,800 El problema es, phpMyAdmin, mientras es una herramienta fantástica para el aprendizaje 64 00:03:11,800 --> 00:03:14,850 sobre las bases de datos, es manual. 65 00:03:14,850 --> 00:03:18,050 Vas a tener que iniciar sesión en y ejecutar comandos y el tipo 66 00:03:18,050 --> 00:03:19,910 las cosas en forma manual. 67 00:03:19,910 --> 00:03:23,160 >> Y como sabemos por nuestra ejemplo de programación web PHP, 68 00:03:23,160 --> 00:03:26,550 tener que hacer de forma manual cosas en nuestro sitio web, 69 00:03:26,550 --> 00:03:30,970 si queremos una dinámica, activa sensible sitio web, tal vez no sea el mejor enfoque. 70 00:03:30,970 --> 00:03:33,980 Nos gustaría encontrar una manera de quizá automatizar esto de alguna manera. 71 00:03:33,980 --> 00:03:37,864 Y SQL nos permitirá hacer esto. 72 00:03:37,864 --> 00:03:39,780 Así que cuando vamos a empezar a trabajar con SQL, 73 00:03:39,780 --> 00:03:41,220 que primero necesita tener un base de datos para trabajar. 74 00:03:41,220 --> 00:03:42,510 Creación de una base de datos se algo que probablemente 75 00:03:42,510 --> 00:03:45,350 lo hará en phpMyAdmin, porque solo tendrá que hacerlo una vez, 76 00:03:45,350 --> 00:03:49,690 y la sintaxis para hacerlo es mucho más sencillo. 77 00:03:49,690 --> 00:03:51,940 Es mucho más fácil hacerlo en una interfaz de usuario gráfica 78 00:03:51,940 --> 00:03:53,520 de escribirlo como un comando. 79 00:03:53,520 --> 00:03:55,186 El comando puede ser un poco engorroso. 80 00:03:55,186 --> 00:03:58,889 Del mismo modo, la creación de una mesa puede conseguir un poco engorroso también. 81 00:03:58,889 --> 00:04:01,930 Y así las cosas como la creación de una base de datos y la creación de una mesa, que eres 82 00:04:01,930 --> 00:04:06,270 probablemente sólo va a hacer vez-- una vez por mesa, una vez por database-- 83 00:04:06,270 --> 00:04:09,040 que está bien hacer eso en una interfaz gráfica. 84 00:04:09,040 --> 00:04:11,570 En el proceso de la creación de una mesa, se le 85 00:04:11,570 --> 00:04:14,840 también hay que especificar todos los columnas que estarán en esa mesa. 86 00:04:14,840 --> 00:04:18,149 ¿Qué tipo de información hacer que desea almacenar en la tabla? 87 00:04:18,149 --> 00:04:24,520 Tal vez el nombre de un usuario y fecha de nacimiento, contraseña, número de identificación de usuario, y tal vez 88 00:04:24,520 --> 00:04:26,170 ciudad y estado, ¿no? 89 00:04:26,170 --> 00:04:30,080 >> Y por cada vez que queramos añadir un usuario a la base de datos, queremos llegar a los seis 90 00:04:30,080 --> 00:04:31,890 de esas piezas de información. 91 00:04:31,890 --> 00:04:34,840 Y lo hacemos añadiendo filas a la tabla. 92 00:04:34,840 --> 00:04:37,800 Así que primero creamos una base de datos, entonces se crea una tabla. 93 00:04:37,800 --> 00:04:40,100 Como parte de la creación una mesa, se nos pide 94 00:04:40,100 --> 00:04:44,280 para especificar que cada columna nos gustaría en esta tabla. 95 00:04:44,280 --> 00:04:47,247 Y entonces como que empezamos a añadir información para la base de datos 96 00:04:47,247 --> 00:04:49,580 y consultar la base de datos más generally-- no sólo añadir, 97 00:04:49,580 --> 00:04:51,610 pero todo lo demás nos hacer-- estaremos tratando 98 00:04:51,610 --> 00:04:58,870 con filas de la tabla, que es uno la información del usuario para todo el conjunto. 99 00:04:58,870 --> 00:05:03,210 >> Así que cada columna de SQL es capaz de el almacenamiento de datos de un tipo de datos en particular. 100 00:05:03,210 --> 00:05:06,560 Así que tipo de eliminamos este idea de los tipos de datos en PHP, 101 00:05:06,560 --> 00:05:08,747 pero son de nuevo aquí en SQL. 102 00:05:08,747 --> 00:05:10,080 Y hay un montón de tipos de datos. 103 00:05:10,080 --> 00:05:13,420 Aquí es sólo 20 de ellos, pero ni siquiera todos ellos. 104 00:05:13,420 --> 00:05:16,240 Así que tenemos ideas como INTs-- Integers-- probablemente sabemos 105 00:05:16,240 --> 00:05:17,760 que esta columna puede contener números enteros. 106 00:05:17,760 --> 00:05:21,077 Y hay variaciones thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Tal vez no siempre necesitamos cuatro picaduras. 108 00:05:22,660 --> 00:05:26,800 Tal vez necesitamos ocho bytes, por lo que puede utilizar estas variaciones en los números enteros 109 00:05:26,800 --> 00:05:28,510 a ser un poco más eficiente del espacio. 110 00:05:28,510 --> 00:05:31,899 Podemos hacer números decimales, se puede hacer números de punto flotante. 111 00:05:31,899 --> 00:05:32,940 Estos son bastante similares. 112 00:05:32,940 --> 00:05:34,773 Hay algunas diferencias, y si lo haría 113 00:05:34,773 --> 00:05:37,330 gustaría buscar el Tipo SQL de guía, 114 00:05:37,330 --> 00:05:40,670 puede ver lo que el ligero diferencias son entre ellos. 115 00:05:40,670 --> 00:05:43,250 >> Tal vez queremos almacenar información sobre fecha y hora. 116 00:05:43,250 --> 00:05:47,047 Tal vez estamos hacer el seguimiento de cuando el usuario se unió a nuestro sitio web, 117 00:05:47,047 --> 00:05:48,880 y así tal vez queremos tener una columna que es 118 00:05:48,880 --> 00:05:52,820 un tiempo de fecha o una marca de tiempo que indica cuando el usuario realmente 119 00:05:52,820 --> 00:05:54,130 inscrito. 120 00:05:54,130 --> 00:05:56,132 Podemos hacer geometrías y cadenas lineales. 121 00:05:56,132 --> 00:05:57,340 Esto es realmente muy bueno. 122 00:05:57,340 --> 00:06:01,410 Podríamos trazar un zona geográfica 123 00:06:01,410 --> 00:06:05,110 Coordenadas SIG para trazar un área. 124 00:06:05,110 --> 00:06:08,580 Así que en realidad puede almacenar ese tipo de información en una columna de SQL. 125 00:06:08,580 --> 00:06:11,390 >> TEXTO está a sólo burbujas gigantes de texto, tal vez. 126 00:06:11,390 --> 00:06:12,840 ENUM son bastante interesante. 127 00:06:12,840 --> 00:06:16,080 En realidad existen en C. No lo hacemos hablar de ellos porque no son 128 00:06:16,080 --> 00:06:19,110 terriblemente uso común, al menos CS50. 129 00:06:19,110 --> 00:06:22,680 Pero es un tipo de datos enumerado, que es capaz de mantener los valores limitados. 130 00:06:22,680 --> 00:06:25,940 >> Un muy buen ejemplo aquí sería para crear una enumeración, donde los siete 131 00:06:25,940 --> 00:06:29,394 los valores posibles son Domingo, Lunes, Martes Miércoles Jueves Viernes, 132 00:06:29,394 --> 00:06:30,060 Sábado, ¿verdad? 133 00:06:30,060 --> 00:06:33,311 Ese tipo de datos el día de Semana no existe, 134 00:06:33,311 --> 00:06:35,310 pero podríamos crear un tipo de datos enumerado como 135 00:06:35,310 --> 00:06:39,400 que esa columna puede solamente nunca sostenga uno de esos siete valores posibles. 136 00:06:39,400 --> 00:06:44,300 Hemos enumeramos todos de los valores posibles. 137 00:06:44,300 --> 00:06:47,630 >> Entonces tenemos CHAR y VARCHAR, y yo tengo el color de estos de verde 138 00:06:47,630 --> 00:06:49,505 porque estamos en realidad Va a tomar un segundo 139 00:06:49,505 --> 00:06:51,950 para hablar de la diferencia entre estas dos cosas. 140 00:06:51,950 --> 00:06:55,780 Así CHAR, a diferencia de C, donde CHAR era un solo carácter, 141 00:06:55,780 --> 00:07:00,730 SQL en un CHAR se refiere a una cadena de longitud fija. 142 00:07:00,730 --> 00:07:02,620 Y cuando creamos este columna, que en realidad 143 00:07:02,620 --> 00:07:05,070 puede especificar la longitud de la cadena. 144 00:07:05,070 --> 00:07:08,080 >> Así, en este ejemplo, podríamos decir CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Eso significa que cada elemento de esa columna 146 00:07:11,190 --> 00:07:13,910 constará de 10 bytes de información. 147 00:07:13,910 --> 00:07:15,770 Ni más Ni menos. 148 00:07:15,770 --> 00:07:21,780 Así que si lo intentamos y lo ponemos en un 15 bit o un elemento de 15 caracteres 149 00:07:21,780 --> 00:07:25,340 o el valor en esta columna, sólo estamos obtenemos la primera 10. 150 00:07:25,340 --> 00:07:27,290 Si ponemos en los dos valor a largo carácter, 151 00:07:27,290 --> 00:07:30,700 vamos a tener los dos personajes, y luego de ocho picaduras nulos. 152 00:07:30,700 --> 00:07:34,990 Nunca vamos a ser más eficientes que eso. 153 00:07:34,990 --> 00:07:37,727 >> Un VARCHAR es algo así como nuestra noción de una cadena 154 00:07:37,727 --> 00:07:39,560 que estamos familiarizados con de C o desde PHP. 155 00:07:39,560 --> 00:07:40,830 Es una cadena de longitud variable. 156 00:07:40,830 --> 00:07:42,560 Y cuando se crea esta columna, sólo 157 00:07:42,560 --> 00:07:44,860 especificar las longitudes máximas posibles. 158 00:07:44,860 --> 00:07:49,065 Así que tal vez 99, o comúnmente 255. 159 00:07:49,065 --> 00:07:50,440 Esa sería la longitud máxima. 160 00:07:50,440 --> 00:07:52,890 Y por lo que si nos almacenando 15 cadena de caracteres, 161 00:07:52,890 --> 00:07:56,157 usaríamos 15 bytes, tal vez 16 bytes para el terminador nulo. 162 00:07:56,157 --> 00:07:57,990 Si estuviéramos almacenar un de tres cadena de caracteres, 163 00:07:57,990 --> 00:08:01,120 usaríamos tres o cuatro bytes. 164 00:08:01,120 --> 00:08:03,050 Pero no podríamos utilizar el pleno 99. 165 00:08:03,050 --> 00:08:05,190 >> Así que ¿por qué tenemos tanto? 166 00:08:05,190 --> 00:08:08,210 Bueno, si tenemos que encontrar la manera mucho algo es con un VARCHAR, 167 00:08:08,210 --> 00:08:10,680 tenemos que tipo de iteración a través de ella al igual que lo hicimos en C 168 00:08:10,680 --> 00:08:12,230 y averiguar donde se detiene. 169 00:08:12,230 --> 00:08:15,920 Mientras que si sabemos que todo en esta columna es de 10 bytes, tal vez 170 00:08:15,920 --> 00:08:19,220 sabemos que la información, podemos saltar 10 bytes, 10 bytes, 10 bytes, 10 bytes, 171 00:08:19,220 --> 00:08:21,790 y siempre encontrar la principio de la cadena. 172 00:08:21,790 --> 00:08:25,210 >> Así que es posible que tengamos alguna desperdiciado espacio con un CHAR, 173 00:08:25,210 --> 00:08:28,510 pero tal vez hay un comercio fuera de tener una mejor velocidad 174 00:08:28,510 --> 00:08:30,160 en la navegación de la base de datos. 175 00:08:30,160 --> 00:08:32,330 Pero tal vez queremos que la flexibilidad de un VARCHAR 176 00:08:32,330 --> 00:08:36,710 en lugar de having-- Si nuestro CHAR era 255, pero la mayoría de nuestros usuarios 177 00:08:36,710 --> 00:08:40,537 solamente fueron introduciendo tres o cuatro bytes valor de la información o tres o cuatro 178 00:08:40,537 --> 00:08:41,870 caracteres de valor de la información. 179 00:08:41,870 --> 00:08:44,324 >> Sin embargo, algunos usuarios estaban usando todo el 255, tal vez 180 00:08:44,324 --> 00:08:45,990 VARCHAR sería más apropiado allí. 181 00:08:45,990 --> 00:08:49,840 Es una especie de una solución de compromiso, y generalmente para fines de CS50, 182 00:08:49,840 --> 00:08:54,107 usted no tiene que preocuparse demasiado acerca de si se utiliza un CHAR o VARCHAR. 183 00:08:54,107 --> 00:08:57,190 Pero en el mundo real, estas cosas no importa porque todas estas columnas 184 00:08:57,190 --> 00:08:59,300 ocupan un espacio físico real. 185 00:08:59,300 --> 00:09:04,150 Y el espacio físico, en el mundo real, tiene su precio. 186 00:09:04,150 --> 00:09:06,800 >> Así que una otra consideración cuando usted está construyendo una tabla 187 00:09:06,800 --> 00:09:09,840 es escoger una columna a ser lo que se llama una clave principal. 188 00:09:09,840 --> 00:09:14,350 Y una clave principal es una columna donde cada valor individual es único. 189 00:09:14,350 --> 00:09:19,980 Y eso significa que usted puede fácilmente seleccionar una sola fila con sólo mirar 190 00:09:19,980 --> 00:09:22,450 en la clave principal de la fila. 191 00:09:22,450 --> 00:09:24,580 Así, por ejemplo, en general, con los usuarios, 192 00:09:24,580 --> 00:09:27,210 no quieren dos usuarios que tener el mismo número de ID de usuario. 193 00:09:27,210 --> 00:09:28,960 Y así, tal vez usted tiene gran cantidad de información, 194 00:09:28,960 --> 00:09:30,793 y tal vez dos usuarios pueden tener el mismo nombre-- 195 00:09:30,793 --> 00:09:32,650 Tiene John Smith y John Smith. 196 00:09:32,650 --> 00:09:34,520 Eso no es necesariamente un problema, porque hay varias personas 197 00:09:34,520 --> 00:09:35,830 en el mundo llamado John Smith. 198 00:09:35,830 --> 00:09:40,766 Pero sólo tenemos el número de identificación de un usuario 10, un usuario número 11, 12, 13 ID. 199 00:09:40,766 --> 00:09:42,640 No tenemos dos usuarios con el mismo número, 200 00:09:42,640 --> 00:09:46,010 y así tal vez los números de identificación de usuario sería una buena clave principal. 201 00:09:46,010 --> 00:09:48,610 >> No tenemos toda duplicación, y ahora podemos única 202 00:09:48,610 --> 00:09:52,619 identificar cada hilera justo mirando a esa columna. 203 00:09:52,619 --> 00:09:55,410 La elección de las claves principales en realidad puede realizar operaciones de tabla subsiguientes 204 00:09:55,410 --> 00:09:59,710 mucho más fácil porque se puede aprovechar el hecho de que ciertas filas voluntad 205 00:09:59,710 --> 00:10:02,720 ser único, o de un determinado columna de su base de datos o tabla 206 00:10:02,720 --> 00:10:06,030 será único para recoger filas particulares fuera. 207 00:10:06,030 --> 00:10:08,790 >> Usted también puede tener una primaria conjunta clave, que usted puede encontrar ocasión 208 00:10:08,790 --> 00:10:11,720 utilizar, que es sólo un combinación de dos columnas que 209 00:10:11,720 --> 00:10:13,280 se garantiza que sea único. 210 00:10:13,280 --> 00:10:16,410 Así que tal vez usted tiene uno columna que es A y B, 211 00:10:16,410 --> 00:10:19,290 una columna que es uno, dos, y tres, pero usted sólo alguna vez 212 00:10:19,290 --> 00:10:23,660 tener una sola A1, un solo A2, y así sucesivamente y así sucesivamente. 213 00:10:23,660 --> 00:10:28,980 Pero es posible que tenga un B2, un C2, o un A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Así que es posible tener múltiples Como, múltiple B, los múltiples, múltiples parejas, 215 00:10:32,840 --> 00:10:38,567 pero nunca se puede tener solamente un sola A1, B2, C3, y así sucesivamente. 216 00:10:38,567 --> 00:10:40,400 Así que, como dije, SQL es un lenguaje de programación, 217 00:10:40,400 --> 00:10:42,024 pero tiene un vocabulario bastante limitado. 218 00:10:42,024 --> 00:10:44,880 No es tan expansiva como C y PHP y otros lenguajes 219 00:10:44,880 --> 00:10:46,350 que se habla en el curso. 220 00:10:46,350 --> 00:10:49,960 Es un más detallado el lenguaje de lo que somos 221 00:10:49,960 --> 00:10:52,789 vamos a hablar en este video, porque en este vídeo 222 00:10:52,789 --> 00:10:54,830 vamos a hablar acerca de cuatro operaciones que 223 00:10:54,830 --> 00:10:55,720 puede realizar sobre una mesa. 224 00:10:55,720 --> 00:10:56,761 >> Hay más de esto. 225 00:10:56,761 --> 00:10:58,730 Podemos hacer más que esto, pero para nuestros propósitos, 226 00:10:58,730 --> 00:11:02,250 estamos generalmente va a utilizar sólo cuatro de inserción operations--, 227 00:11:02,250 --> 00:11:05,360 seleccionar, actualizar y eliminar. 228 00:11:05,360 --> 00:11:08,750 Y es probable que pueda intuitivamente adivinar lo que los cuatro de estas cosas hacen. 229 00:11:08,750 --> 00:11:12,520 Pero vamos a ir en un poco de detalles sobre cada uno de ellos. 230 00:11:12,520 --> 00:11:15,780 >> Así que para los fines de esta video, vamos a suponer 231 00:11:15,780 --> 00:11:18,870 hemos los dos siguientes tablas de una base de datos única. 232 00:11:18,870 --> 00:11:23,460 Tenemos una tabla llamada usuarios que tiene de cuatro columns-- número de identificación, nombre de usuario, 233 00:11:23,460 --> 00:11:25,350 contraseña y nombre completo. 234 00:11:25,350 --> 00:11:27,430 Y tenemos un segundo mesa en la misma base de datos 235 00:11:27,430 --> 00:11:32,129 llamada mamás que acaba de almacenes de información acerca de un nombre de usuario y una madre. 236 00:11:32,129 --> 00:11:33,920 Así que para todos los ejemplos en este video, vamos a 237 00:11:33,920 --> 00:11:37,945 ser el uso de esta base de datos y actualizaciones posteriores a la misma. 238 00:11:37,945 --> 00:11:40,070 Así que digamos que queremos añadir información a una tabla. 239 00:11:40,070 --> 00:11:44,460 Eso es lo que hace la operación de inserción. 240 00:11:44,460 --> 00:11:46,550 Al explicar todos estos comandos, voy 241 00:11:46,550 --> 00:11:48,860 para darle un esqueleto en general a utilizar. 242 00:11:48,860 --> 00:11:51,661 Porque en el fondo, las consultas van aspecto muy similar, 243 00:11:51,661 --> 00:11:54,660 sólo vamos a estar cambiando ligeramente diferentes piezas de información 244 00:11:54,660 --> 00:11:56,750 hacer cosas diferentes con la tabla. 245 00:11:56,750 --> 00:11:59,200 >> Así que para INSERT, el esqueleto se ve algo así como esto. 246 00:11:59,200 --> 00:12:02,230 Queremos insertar en una tabla en particular. 247 00:12:02,230 --> 00:12:05,290 Entonces tenemos un paréntesis abierto y una lista de columnas 248 00:12:05,290 --> 00:12:08,070 que queremos poner valores en. 249 00:12:08,070 --> 00:12:10,974 Cerrar paréntesis, el los siguientes valores y, a continuación 250 00:12:10,974 --> 00:12:13,390 otra vez, listamos los valores queremos poner en la mesa. 251 00:12:13,390 --> 00:12:15,950 >> Así un ejemplo de este sería el siguiente. 252 00:12:15,950 --> 00:12:19,170 Quiero insertar en la tabla usuarios la siguiente columns-- 253 00:12:19,170 --> 00:12:21,010 nombre de usuario, contraseña y nombre completo. 254 00:12:21,010 --> 00:12:25,282 Así que una nueva fila en la que me estoy poniendo en esos tres columnas y estamos 255 00:12:25,282 --> 00:12:30,030 va a poner en los valores Newman, USMAIL, y Newman. 256 00:12:30,030 --> 00:12:32,730 Así que en este caso, estoy poniendo el newman minúsculas 257 00:12:32,730 --> 00:12:38,710 en la columna de nombre de usuario, la contraseña USMAIL, y el nombre de capital plena N 258 00:12:38,710 --> 00:12:41,940 Newman en la columna de nombre completo. 259 00:12:41,940 --> 00:12:44,240 >> Así que esto es lo que la base de datos parecía antes. 260 00:12:44,240 --> 00:12:48,250 Esto es lo que la tabla de usuarios en la superior que parecía antes de que nos hicimos. 261 00:12:48,250 --> 00:12:50,760 Después ejecutamos este consulta, obtenemos esto. 262 00:12:50,760 --> 00:12:54,790 Hemos añadido una nueva fila a la tabla. 263 00:12:54,790 --> 00:12:56,810 Pero note una cosa que no especificó, 264 00:12:56,810 --> 00:12:59,880 pero de alguna manera tengo un valor para, que es este 12 aquí. 265 00:12:59,880 --> 00:13:02,820 Yo no he dicho que quería ponga el número de identificación en ese país. 266 00:13:02,820 --> 00:13:04,900 Quería poner nombre de usuario, contraseña, nombre completo. 267 00:13:04,900 --> 00:13:06,440 Y lo hice, eso está bien. 268 00:13:06,440 --> 00:13:07,760 >> Pero también tengo este 12. 269 00:13:07,760 --> 00:13:09,490 ¿Por qué me sale este 12? 270 00:13:09,490 --> 00:13:12,904 Bueno, resulta que cuando se está definiendo 271 00:13:12,904 --> 00:13:15,570 una columna que se va a ser su clave principal, que suele ser, 272 00:13:15,570 --> 00:13:16,510 como he dicho, un número de identificación. 273 00:13:16,510 --> 00:13:18,718 No siempre es necesariamente va a ser un número de identificación, 274 00:13:18,718 --> 00:13:22,380 pero por lo general es una buena idea haber algún tipo de valor entero. 275 00:13:22,380 --> 00:13:25,950 Usted tiene una opción en phpMyAdmin cuando se va a crear la base de datos 276 00:13:25,950 --> 00:13:31,130 o su mesa para establecer que columna como incremental automático. 277 00:13:31,130 --> 00:13:34,520 >> Lo cual es una muy buena idea cuando está trabajando con una clave principal, 278 00:13:34,520 --> 00:13:39,330 porque quiere todo valor en esa columna que ser único. 279 00:13:39,330 --> 00:13:43,310 Y si usted se olvida de especificar para más de una persona, 280 00:13:43,310 --> 00:13:46,240 ahora tiene una situación en la que que la columna ya no es único. 281 00:13:46,240 --> 00:13:50,200 Usted tendrá dos espacios en blanco, por lo que no pueden ya identificar un column-- 282 00:13:50,200 --> 00:13:54,150 o ya no únicamente puede identificar una fila basado en esa columna. 283 00:13:54,150 --> 00:13:57,010 Ha perdido todo su valor como clave principal. 284 00:13:57,010 --> 00:14:02,010 >> Y así, al parecer, lo que he hecho aquí se configura el ID de usuario 285 00:14:02,010 --> 00:14:07,790 columna de incremento automático para que cada vez que añadir información a la mesa, 286 00:14:07,790 --> 00:14:12,220 será automáticamente darme un valor para la clave principal. 287 00:14:12,220 --> 00:14:15,570 Así que nunca podré olvidar hacerlo porque la base de datos lo hará por mí. 288 00:14:15,570 --> 00:14:16,587 Así que eso es un poco agradable. 289 00:14:16,587 --> 00:14:18,670 Y por eso es que tenemos 12 allí, porque he 290 00:14:18,670 --> 00:14:21,772 establecer que la columna hasta la subasta de automóviles. 291 00:14:21,772 --> 00:14:23,730 Si he añadido otra persona que sería 13, si he añadido 292 00:14:23,730 --> 00:14:27,890 otra persona que sería 14, y así sucesivamente. 293 00:14:27,890 --> 00:14:30,190 >> Así que vamos a hacer una inserción más. 294 00:14:30,190 --> 00:14:34,530 Vamos a insertar en la tabla de las madres, en en particular, el nombre de usuario y la madre 295 00:14:34,530 --> 00:14:37,390 de columna, los valores Kramer y Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 Y por lo que tuvimos antes. 297 00:14:39,140 --> 00:14:41,800 Después ejecutamos que Consulta SQL, tenemos esto. 298 00:14:41,800 --> 00:14:47,290 Hemos añadido Kramer y Babs Kramer a la mesa de las mamás. 299 00:14:47,290 --> 00:14:48,350 >> Así que ha de insertar. 300 00:14:48,350 --> 00:14:51,850 SELECT es lo que usamos para extraer información de la tabla. 301 00:14:51,850 --> 00:14:54,390 Así que esta es la forma en que obtenemos la información de la base de datos. 302 00:14:54,390 --> 00:14:59,589 Y los comandos de modo SELECT van a ser utilizado con mucha frecuencia en la programación. 303 00:14:59,589 --> 00:15:02,130 El general framework-- la esqueleto en general se parece a esto. 304 00:15:02,130 --> 00:15:06,550 Seleccione un conjunto de columnas de una mesa, y luego opcionalmente 305 00:15:06,550 --> 00:15:11,090 puede especificar un condición-- o lo que normalmente llamamos un predicado, 306 00:15:11,090 --> 00:15:13,010 suele ser el término que utilizamos en SQL. 307 00:15:13,010 --> 00:15:16,490 >> Pero es básicamente lo que filas particulares que quieren conseguir. 308 00:15:16,490 --> 00:15:19,100 Si lo desea, en lugar de obtener todo, reducirla, 309 00:15:19,100 --> 00:15:20,060 aquí es donde usted haría eso. 310 00:15:20,060 --> 00:15:22,777 Y a continuación, opcionalmente, también puede ordenar por una columna en particular. 311 00:15:22,777 --> 00:15:25,860 Así que tal vez usted quiere tener cosas ordenados alfabético basado en una columna 312 00:15:25,860 --> 00:15:27,540 o por orden alfabético basado en otro. 313 00:15:27,540 --> 00:15:30,610 >> Una vez más, WHERE y ORDER BY son opcionales. 314 00:15:30,610 --> 00:15:32,681 Pero probablemente estarán useful-- particular 315 00:15:32,681 --> 00:15:34,680 DONDE será útil para reducir por lo que no lo hace 316 00:15:34,680 --> 00:15:37,460 obtener toda la base de datos de ida y tiene que procesarlo, que acaba de llegar 317 00:15:37,460 --> 00:15:39,300 las piezas de lo que te importa. 318 00:15:39,300 --> 00:15:44,932 Así, por ejemplo, puede ser que desee seleccionar Número de identificación y nombre completo de los usuarios. 319 00:15:44,932 --> 00:15:46,140 Entonces, ¿qué podría este aspecto? 320 00:15:46,140 --> 00:15:48,270 Así que aquí está mi tabla de usuarios. 321 00:15:48,270 --> 00:15:51,080 Quiero seleccionar IDNUM y nombre completo de los usuarios. 322 00:15:51,080 --> 00:15:52,300 ¿Qué voy a conseguir? 323 00:15:52,300 --> 00:15:53,580 Voy a conseguir esto. 324 00:15:53,580 --> 00:15:56,930 No limitar la búsqueda, así que estoy obtener el número de identificación para cada fila 325 00:15:56,930 --> 00:16:00,850 y me estoy poniendo el pleno nombre de cada fila. 326 00:16:00,850 --> 00:16:02,210 >> OK. 327 00:16:02,210 --> 00:16:05,640 ¿Qué pasa si quiero seleccionar contraseña de los usuarios WHERE-- ahora 328 00:16:05,640 --> 00:16:10,370 Estoy añadiendo una condición, un predicate-- donde IDNUM es inferior a 12. 329 00:16:10,370 --> 00:16:13,660 Así que aquí está mi base de datos de nuevo, mi tabla de usuarios de la parte superior. 330 00:16:13,660 --> 00:16:17,030 ¿Qué voy a tener si quiero seleccionar esa información, la contraseña, 331 00:16:17,030 --> 00:16:21,550 donde ID de usuario o IDNUM está a menos de 12? 332 00:16:21,550 --> 00:16:24,910 Voy a conseguir este información de nuevo, ¿verdad? 333 00:16:24,910 --> 00:16:29,170 Sucede que IDNUM es 10, menos de 12, número de identificación de 11 a menos de 12. 334 00:16:29,170 --> 00:16:32,160 Me estoy poniendo la contraseña para esas filas. 335 00:16:32,160 --> 00:16:33,914 Eso es lo que pedí. 336 00:16:33,914 --> 00:16:34,580 ¿Y esto? 337 00:16:34,580 --> 00:16:39,170 ¿Qué pasa si quiero seleccionar estrellas de la mesa de mamás, donde nombre de usuario es igual a Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, seleccione estrella es la especial especie de comodín llamados 339 00:16:43,780 --> 00:16:45,670 que utilizamos para conseguir todo. 340 00:16:45,670 --> 00:16:48,620 Así que están diciendo seleccione username madre coma, que 341 00:16:48,620 --> 00:16:51,060 pasó a ser el único dos columnas de esta tabla, 342 00:16:51,060 --> 00:16:53,260 Yo sólo puedo seleccionar estrellas y tener todo 343 00:16:53,260 --> 00:16:55,030 donde el nombre de usuario es igual a Jerry. 344 00:16:55,030 --> 00:16:59,380 Y eso es lo que me gustaría tener si he hecho esa pregunta en particular. 345 00:16:59,380 --> 00:17:01,810 >> Ahora, son las bases de datos grandes porque permiten 346 00:17:01,810 --> 00:17:06,074 nosotros organizamos la información tal vez un poco más eficientemente que nos 347 00:17:06,074 --> 00:17:06,740 podría de otra manera. 348 00:17:06,740 --> 00:17:10,240 No necesariamente a almacenamos cada pieza relevante de la información 349 00:17:10,240 --> 00:17:12,230 acerca de un usuario en la misma tabla. 350 00:17:12,230 --> 00:17:13,730 Teníamos dos mesas allí. 351 00:17:13,730 --> 00:17:15,734 >> Necesitamos almacenar nombre de la madre de todos, 352 00:17:15,734 --> 00:17:18,900 y tal vez no tenemos la seguridad social número, tenemos su fecha de nacimiento. 353 00:17:18,900 --> 00:17:21,819 Eso no siempre necesita para estar en la misma tabla. 354 00:17:21,819 --> 00:17:25,339 Mientras podemos definir relaciones entre el tables-- 355 00:17:25,339 --> 00:17:28,440 y ahí es donde que relacional término base de datos de tipo de trata 356 00:17:28,440 --> 00:17:32,130 en play-- el tiempo que podemos definir relaciones entre las tablas, 357 00:17:32,130 --> 00:17:35,545 podemos especie de compartimentar o cosas abstractas de una manera, 358 00:17:35,545 --> 00:17:37,670 donde sólo tenemos la información realmente importante 359 00:17:37,670 --> 00:17:39,270 nos preocupamos en la tabla del usuario. 360 00:17:39,270 --> 00:17:43,220 Y luego tenemos información auxiliar o información adicional en otras tablas 361 00:17:43,220 --> 00:17:48,260 que podemos conectar de nuevo a la principal tabla de usuarios de una manera particular. 362 00:17:48,260 --> 00:17:52,200 >> Así que aquí tenemos estas dos tablas, pero hay una relación entre ellos, 363 00:17:52,200 --> 00:17:53,010 ¿derecho? 364 00:17:53,010 --> 00:17:55,070 Parece como nombre de usuario podría ser algo 365 00:17:55,070 --> 00:17:59,909 que existe en común entre estas dos tablas diferentes. 366 00:17:59,909 --> 00:18:01,700 ¿Y qué si ahora tenemos una situación en la que 367 00:18:01,700 --> 00:18:06,046 que desee obtener el nombre completo de un usuario la mesa del usuario, y su madre de 368 00:18:06,046 --> 00:18:07,170 nombre de la tabla de la madre? 369 00:18:07,170 --> 00:18:10,960 No tenemos una manera de conseguir que tal y como está, ¿no? 370 00:18:10,960 --> 00:18:17,790 No hay una sola mesa que contiene tanto el nombre completo y el nombre de la madre. 371 00:18:17,790 --> 00:18:20,400 No tenemos esa opción de lo que hemos visto hasta ahora. 372 00:18:20,400 --> 00:18:22,950 >> Y así tenemos que introducir la idea de un JOIN. 373 00:18:22,950 --> 00:18:24,857 Y se une son probablemente el más complex-- 374 00:18:24,857 --> 00:18:27,940 en realidad es más compleja operación vamos a hablar en el video. 375 00:18:27,940 --> 00:18:30,040 Son un poco complicado, pero una vez que el cuelgue de ella, 376 00:18:30,040 --> 00:18:31,248 que en realidad no están tan mal. 377 00:18:31,248 --> 00:18:32,820 Es sólo un caso especial de un SELECT. 378 00:18:32,820 --> 00:18:37,120 Vamos a seleccionar un conjunto de columnas de una tabla de unión 379 00:18:37,120 --> 00:18:40,650 en una segunda mesa en algún predicado. 380 00:18:40,650 --> 00:18:45,340 >> En este caso, pensar en ello como esto-- Mesa es un círculo aquí, 381 00:18:45,340 --> 00:18:47,530 mesa dos es otro círculo aquí. 382 00:18:47,530 --> 00:18:49,410 Y esa parte de predicados en el medio, que es 383 00:18:49,410 --> 00:18:51,701 algo así como si usted piensa acerca como un diagrama de Venn, lo 384 00:18:51,701 --> 00:18:52,670 Qué tienen en común? 385 00:18:52,670 --> 00:18:55,960 Queremos vincular estos dos tablas en base a lo que tienen en común 386 00:18:55,960 --> 00:19:01,230 y crear esta tabla hipotética que es la fusión de los dos juntos. 387 00:19:01,230 --> 00:19:03,480 Así que vamos a ver esto en un ejemplo y tal vez eso va a ayudar 388 00:19:03,480 --> 00:19:04,521 aclararlo un poco. 389 00:19:04,521 --> 00:19:09,260 Así que tal vez desea seleccionar user.fullname y moms.mother 390 00:19:09,260 --> 00:19:13,220 de los usuarios se unen en el mesa mamás en cada situación 391 00:19:13,220 --> 00:19:16,790 donde la columna el nombre de usuario es el mismo entre ellos. 392 00:19:16,790 --> 00:19:19,240 Y este es un nuevo sintaxis aquí, este usuario. 393 00:19:19,240 --> 00:19:20,460 y las mamás .. 394 00:19:20,460 --> 00:19:26,697 Si estoy haciendo varias tablas juntos, puedo especificar una tabla. 395 00:19:26,697 --> 00:19:29,530 Puedo distinguir, en particular en en que en la parte inferior allí. 396 00:19:29,530 --> 00:19:33,220 Puedo distinguir el nombre de usuario la columna de la tabla de usuarios 397 00:19:33,220 --> 00:19:36,010 de la columna nombre de usuario del mesa de madres, que son otherwise-- 398 00:19:36,010 --> 00:19:38,070 si acabamos de decir nombre de usuario es igual nombre de usuario, que en realidad no 399 00:19:38,070 --> 00:19:38,970 significar cualquier cosa. 400 00:19:38,970 --> 00:19:41,440 Queremos hacerlo donde coinciden. 401 00:19:41,440 --> 00:19:46,080 >> Así que puedo especificar la tabla y el nombre de la columna en caso de una situación 402 00:19:46,080 --> 00:19:48,370 donde sería poco claro lo que estoy hablando. 403 00:19:48,370 --> 00:19:51,880 Así que eso es todo lo que estoy haciendo no estoy diciendo esta columna de esta tabla, 404 00:19:51,880 --> 00:19:54,020 y ser muy explícito. 405 00:19:54,020 --> 00:19:56,810 Así que de nuevo, estoy seleccionando la nombre completo y el nombre de la madre 406 00:19:56,810 --> 00:20:00,950 de la tabla de usuarios conectados entre sí con la tabla de las mamás en cada situación 407 00:20:00,950 --> 00:20:05,960 donde comparten que column-- comparten ese nombre de usuario noción. 408 00:20:05,960 --> 00:20:08,580 >> Así que aquí están las tablas que teníamos antes. 409 00:20:08,580 --> 00:20:12,210 Este es el estado de nuestra base de datos, tal como existe ahora. 410 00:20:12,210 --> 00:20:16,390 La información que estamos extrayendo Es este para empezar. 411 00:20:16,390 --> 00:20:19,820 Esta es la nueva tabla que vamos para crear la combinación de estos juntos. 412 00:20:19,820 --> 00:20:23,585 Y notamos que no estamos destacando Fila de Newman en la tabla del usuario, 413 00:20:23,585 --> 00:20:25,960 y no estamos destacando Fila de Kramer en la tabla de las mamás 414 00:20:25,960 --> 00:20:31,250 porque no existe ninguno en tanto sets-- en ambas tablas. 415 00:20:31,250 --> 00:20:36,260 >> La única información que se encuentra en común entre ellos es Jerry es en ambas tablas 416 00:20:36,260 --> 00:20:39,100 y gcostanza es en ambas tablas. 417 00:20:39,100 --> 00:20:42,620 Y así, cuando hacemos el SQL JOIN, lo que get-- y estamos haciendo realmente conseguir esto. 418 00:20:42,620 --> 00:20:44,830 Es una especie de una variable temporal. 419 00:20:44,830 --> 00:20:47,330 Es como una hipotética fusión de las dos tablas. 420 00:20:47,330 --> 00:20:49,930 En realidad obtenemos algo como este, donde 421 00:20:49,930 --> 00:20:54,730 hemos fusionado las mesas en la información que tienen en común. 422 00:20:54,730 --> 00:20:58,334 >> Así notar que users.username y la columna moms.username, 423 00:20:58,334 --> 00:20:59,250 que es exactamente el mismo. 424 00:20:59,250 --> 00:21:01,820 Esa fue la información que era coherente de los usuarios 425 00:21:01,820 --> 00:21:02,890 mesa y la mesa de las mamás. 426 00:21:02,890 --> 00:21:04,270 Y así que ellos se fusionaron. 427 00:21:04,270 --> 00:21:06,919 Descartamos Kramer porque no existía en la tabla de usuarios, 428 00:21:06,919 --> 00:21:09,710 y se descartó Newman, porque que no existe en la tabla mamás. 429 00:21:09,710 --> 00:21:16,450 Así que esta es la fusión hipotética mediante la operación JOIN de SELECT. 430 00:21:16,450 --> 00:21:21,250 >> Y luego que estábamos buscando para el el nombre completo del usuario y la madre del usuario, 431 00:21:21,250 --> 00:21:24,999 y por lo que esta es la información que que se pueden conseguir de la consulta general 432 00:21:24,999 --> 00:21:26,040 que hicimos con SELECT. 433 00:21:26,040 --> 00:21:28,873 Así que nos unimos a las mesas y se extrajeron esas dos columnas, 434 00:21:28,873 --> 00:21:31,610 y eso es lo que iba a conseguir. 435 00:21:31,610 --> 00:21:33,370 Pero SQL se une a una clase de complicado. 436 00:21:33,370 --> 00:21:36,770 Usted probablemente no va a hacer demasiado, pero sólo tener alguna idea del esqueleto 437 00:21:36,770 --> 00:21:41,992 que se puede utilizar para combinar dos mesas si necesitabas. 438 00:21:41,992 --> 00:21:43,700 Los dos últimos son un poco más simple lo prometo. 439 00:21:43,700 --> 00:21:48,040 Así que la actualización, podemos utilizar ACTUALIZACIÓN para cambiar la información en una tabla. 440 00:21:48,040 --> 00:21:53,880 El formato general es actualizar algunos mesa, SET alguna columna a algún valor 441 00:21:53,880 --> 00:21:55,540 DONDE algún predicado está satisfecho. 442 00:21:55,540 --> 00:21:57,850 Así, por ejemplo, podríamos querer para actualizar la tabla de usuarios 443 00:21:57,850 --> 00:22:04,400 y establecer la contraseña para yada yada, donde el número ID es 10. 444 00:22:04,400 --> 00:22:06,400 >> Así que en este caso, estamos la actualización de la tabla de usuarios. 445 00:22:06,400 --> 00:22:08,275 El número de identificación es 10 para esa primera fila allí, 446 00:22:08,275 --> 00:22:10,690 y queremos actualizar la contraseña para yada yada. 447 00:22:10,690 --> 00:22:12,170 Y eso es lo que ocurriría. 448 00:22:12,170 --> 00:22:13,628 Es bastante sencillo, ¿verdad? 449 00:22:13,628 --> 00:22:17,990 Es sólo una muy simple modificación a la tabla. 450 00:22:17,990 --> 00:22:22,250 >> DELETE es la operación que solíamos eliminar la información de una tabla. 451 00:22:22,250 --> 00:22:24,817 DELETE FROM tabla WHERE algún predicado está satisfecho. 452 00:22:24,817 --> 00:22:26,900 Queremos eliminar de la tabla de usuarios, por ejemplo, 453 00:22:26,900 --> 00:22:28,254 donde el nombre de usuario es Newman. 454 00:22:28,254 --> 00:22:31,420 Usted probablemente puede adivinar lo que va a pasar aquí después ejecutamos que SQL 455 00:22:31,420 --> 00:22:35,790 consulta, Newman se ha ido de la mesa. 456 00:22:35,790 --> 00:22:40,460 >> Así que todas estas operaciones, como he dicho, son muy fáciles de hacer en phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Es una interfaz de usuario muy amigable. 458 00:22:43,020 --> 00:22:45,930 Pero sí requiere esfuerzo manual. 459 00:22:45,930 --> 00:22:47,840 No queremos emplear esfuerzo manual. 460 00:22:47,840 --> 00:22:51,280 Queremos que nuestros programas a hacer esto por nosotros, ¿no? 461 00:22:51,280 --> 00:22:53,190 Así que podríamos querer hacer esta programación. 462 00:22:53,190 --> 00:22:56,410 Queremos incorporar SQL y tienen algo más que hacer esto por nosotros. 463 00:22:56,410 --> 00:23:02,710 >> Pero ¿qué hemos visto que permite que hagamos programación algo? 464 00:23:02,710 --> 00:23:03,690 Hemos visto PHP, ¿verdad? 465 00:23:03,690 --> 00:23:05,760 Introduce algunos dinamismo a nuestros programas. 466 00:23:05,760 --> 00:23:10,430 Y así, por fortuna, SQL y PHP jugar muy bien juntos. 467 00:23:10,430 --> 00:23:13,230 Hay una función en PHP llamada de consulta, que se puede utilizar. 468 00:23:13,230 --> 00:23:15,870 Y usted puede pasar por el parámetro o argumento 469 00:23:15,870 --> 00:23:19,210 para consultar una consulta SQL que desea ejecutar. 470 00:23:19,210 --> 00:23:23,250 Y PHP lo hará en su nombre. 471 00:23:23,250 --> 00:23:25,564 >> Así que después de que ha conectado a su base de datos con PHP, 472 00:23:25,564 --> 00:23:26,980 hay dos primarias que haces esto. 473 00:23:26,980 --> 00:23:29,230 Hay algo que se llama MySQLi y algo llamado DOP. 474 00:23:29,230 --> 00:23:31,063 No vamos a entrar en una enorme cantidad de detalle allí. 475 00:23:31,063 --> 00:23:32,957 En CS50 utilizamos DOP. 476 00:23:32,957 --> 00:23:34,790 Después de haber conectado a su base de datos, 477 00:23:34,790 --> 00:23:40,980 a continuación, puede hacer consultas su base de datos pasando las consultas como argumentos 478 00:23:40,980 --> 00:23:42,730 a las funciones de PHP. 479 00:23:42,730 --> 00:23:46,460 Y cuando lo hace, se almacena el conjunto de resultados en un array asociativo. 480 00:23:46,460 --> 00:23:50,290 >> Y sabemos cómo trabajar con matrices asociativas en PHP. 481 00:23:50,290 --> 00:23:52,630 Así que podría decir algo así- $ resultados-- 482 00:23:52,630 --> 00:23:55,470 esto es en PHP-- es igual a la consulta. 483 00:23:55,470 --> 00:23:57,660 Y luego en el interior del función de consulta que el argumento 484 00:23:57,660 --> 00:24:00,130 que estoy pasando para consultar que se parece a SQL. 485 00:24:00,130 --> 00:24:01,160 Y de hecho, que es SQL. 486 00:24:01,160 --> 00:24:05,700 Esa es la cadena de consulta que lo haría desea ejecutar en mi base de datos. 487 00:24:05,700 --> 00:24:09,250 >> Y así, en rojo, esto es PHP. 488 00:24:09,250 --> 00:24:11,890 Esta es SQL que soy integrando en PHP haciendo 489 00:24:11,890 --> 00:24:15,020 que el argumento de la función de consulta. 490 00:24:15,020 --> 00:24:19,640 Quiero seleccionar nombre completo de usuarios, donde el número de identificación es igual a 10. 491 00:24:19,640 --> 00:24:22,560 Y entonces tal vez después de que yo he hecho, Yo podría decir algo como esto. 492 00:24:22,560 --> 00:24:25,550 Quiero imprimir el mensaje Gracias por ingresar. 493 00:24:25,550 --> 00:24:32,530 >> Y lo quiero interpolate-- Quiero interpolar $ resultados nombre completo. 494 00:24:32,530 --> 00:24:36,280 Y así es como yo trabajo con eso matriz asociativa que regresé. 495 00:24:36,280 --> 00:24:39,730 $ resultados nombre completo haría básicamente terminan de imprimir, 496 00:24:39,730 --> 00:24:42,870 gracias por ingresar, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Ese era el nombre completo donde IDNUM es igual a 10. 498 00:24:46,570 --> 00:24:48,850 >> Y así, todo lo que estoy haciendo es que estoy ahora-- guardé 499 00:24:48,850 --> 00:24:52,780 mi consulta, los resultados de mi búsqueda y los resultados en un array asociativo, 500 00:24:52,780 --> 00:24:56,330 y nombre completo es el nombre de la columna que estaba recibiendo para. 501 00:24:56,330 --> 00:25:01,010 Así que esa es mi llave en los resultados matriz asociativa que quiero. 502 00:25:01,010 --> 00:25:05,930 Así Gracias por ingresar, $ resultados, nombre completo se imprima, se pegará 503 00:25:05,930 --> 00:25:08,654 justo en medio de los rizada llaves, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 Y me va a gustar para imprimir el mensaje Gracias por ingresar Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Ahora, es probable que no queremos duro cosas de código como ese, ¿no? 506 00:25:16,652 --> 00:25:19,860 Podríamos querer hacer algo como de impresión f, donde podemos sustituir y tal vez 507 00:25:19,860 --> 00:25:22,443 recopilar información diferente, o tal vez que el proceso de consulta 508 00:25:22,443 --> 00:25:23,370 información diferente. 509 00:25:23,370 --> 00:25:27,920 Y así, la consulta, la función de consulta tiene esta noción de tipo de sustituciones 510 00:25:27,920 --> 00:25:32,310 muy similar a imprimir f ciento s y el porcentaje de c, es signos de interrogación. 511 00:25:32,310 --> 00:25:34,290 >> Y podemos usar pregunta marcas muy análoga 512 00:25:34,290 --> 00:25:38,400 para imprimir f a las variables de sustitución. 513 00:25:38,400 --> 00:25:44,120 Así que tal vez el usuario ha iniciado sesión anterior, y guardó su número de ID de usuario 514 00:25:44,120 --> 00:25:51,710 en $ _SESSION de PHP súper global en el ID de la llave. 515 00:25:51,710 --> 00:25:55,947 Así que tal vez después de que se registran en, configura $ _SESSION ID es igual a 10, 516 00:25:55,947 --> 00:25:58,280 extrapolando a partir del ejemplo que acabamos de ver hace un segundo. 517 00:25:58,280 --> 00:26:01,960 >> Y así, cuando en realidad nos ejecutamos Esta consulta los resultados ahora, 518 00:26:01,960 --> 00:26:08,440 sería conectar 10, o lo que sea el valor de ID $ _SESSION es. 519 00:26:08,440 --> 00:26:10,790 Y para que nos permite ser un poco más dinámico. 520 00:26:10,790 --> 00:26:12,699 No estamos de codificación dura cosas más. 521 00:26:12,699 --> 00:26:14,490 Estamos ahorrando información en alguna parte y después 522 00:26:14,490 --> 00:26:18,924 podemos usar esa información de nuevo para tipo de generalizar lo que queremos hacer, 523 00:26:18,924 --> 00:26:21,090 y acaba de plug-in y el cambio el comportamiento de nuestra página 524 00:26:21,090 --> 00:26:26,489 basado en lo que el número de identificación del usuario en realidad es después de haber iniciado la sesión. 525 00:26:26,489 --> 00:26:28,530 También es posible, sin embargo, que sus resultados establecen 526 00:26:28,530 --> 00:26:30,840 podría consistir en varias filas. 527 00:26:30,840 --> 00:26:33,990 En cuyo caso, usted tiene una serie de arrays-- 528 00:26:33,990 --> 00:26:35,334 una matriz de matrices asociativas. 529 00:26:35,334 --> 00:26:37,000 Y sólo tiene que recorrer a través de él. 530 00:26:37,000 --> 00:26:41,950 Y sabemos la forma de repetición a través de una matriz en PHP, ¿verdad? 531 00:26:41,950 --> 00:26:45,600 Así que aquí es probablemente la más cosa compleja que hemos visto hasta ahora. 532 00:26:45,600 --> 00:26:49,640 En realidad, se integra tres idiomas juntos. 533 00:26:49,640 --> 00:26:52,920 >> Aquí en rojo, esto es algo de HTML. 534 00:26:52,920 --> 00:26:56,872 Aparentemente estoy starting-- esto es un fragmento de algo de HTML que tengo. 535 00:26:56,872 --> 00:26:59,580 Estoy empezando un nuevo párrafo que dice que las mamás de Seinfeld de televisión. 536 00:26:59,580 --> 00:27:02,350 Y a continuación, inmediatamente después Estoy empezando una mesa. 537 00:27:02,350 --> 00:27:06,060 Y luego, después de eso, tener algo de PHP, ¿verdad? 538 00:27:06,060 --> 00:27:08,229 Tengo todo este código PHP en ese país. 539 00:27:08,229 --> 00:27:09,645 Al parecer, voy a hacer una consulta. 540 00:27:09,645 --> 00:27:14,180 Y para hacer la consulta, voy a a utilizar las madres Selecciona de las mamás. 541 00:27:14,180 --> 00:27:15,970 >> Así que este se getting-- esto es SQL. 542 00:27:15,970 --> 00:27:17,300 Así que el azul es SQL. 543 00:27:17,300 --> 00:27:19,680 El rojo que vimos hace un segundo estaba HTML. 544 00:27:19,680 --> 00:27:21,360 Y el verde aquí es PHP. 545 00:27:21,360 --> 00:27:23,400 Así que estoy haciendo una consulta a mi base de datos, estoy 546 00:27:23,400 --> 00:27:26,040 seleccionar todos los madres en la mesa de las mamás. 547 00:27:26,040 --> 00:27:30,710 No sólo el estrechamiento hacia abajo a lo particular fila, lo que estoy pidiendo a todos ellos. 548 00:27:30,710 --> 00:27:33,290 >> Entonces puedo comprobar si el resultado se no es igual a los iguales falsa. 549 00:27:33,290 --> 00:27:37,410 Esto es sólo mi manera de comprobar especie de si los resultados no es igual a null, 550 00:27:37,410 --> 00:27:40,260 que veríamos c por ejemplo. 551 00:27:40,260 --> 00:27:44,000 Básicamente esto es sólo comprobando hacer Seguro que en realidad tiene datos de nuevo. 552 00:27:44,000 --> 00:27:47,041 Porque yo no quiero empezar a imprimir salida de datos si no he tenido ningún dato. 553 00:27:47,041 --> 00:27:50,690 Luego, para cada resultado como resultado la foreach sintaxis de PHP, todo lo que estoy haciendo 554 00:27:50,690 --> 00:27:53,399 está imprimiendo madres $ resultado. 555 00:27:53,399 --> 00:27:55,940 Así que voy a obtener un conjunto de todas las madres de each-- 556 00:27:55,940 --> 00:27:59,980 es un conjunto de asociativa arrays-- y estoy imprimiendo 557 00:27:59,980 --> 00:28:03,649 cada uno de ellos como su propia fila de una tabla. 558 00:28:03,649 --> 00:28:05,690 Y eso es muy bonito todo lo que hay que hacer. 559 00:28:05,690 --> 00:28:07,750 Sé que hay un poco de poco pasando aquí 560 00:28:07,750 --> 00:28:13,210 En este último ejemplo, con matrices de arrays-- matrices de matrices asociativas. 561 00:28:13,210 --> 00:28:17,340 Pero en realidad se limita a hervir en SQL para hacer una consulta, 562 00:28:17,340 --> 00:28:21,102 por lo general la selección después de que ya hemos poner la información en la tabla, 563 00:28:21,102 --> 00:28:22,310 y luego simplemente tirando de él. 564 00:28:22,310 --> 00:28:25,710 >> Y esto es nos tire de ella en este caso particular. 565 00:28:25,710 --> 00:28:31,120 Queremos extraer todo del individuo madres de la tabla mamás. 566 00:28:31,120 --> 00:28:35,970 Tenemos todo un conjunto de ellos, y nosotros querer recorrer e imprimir 567 00:28:35,970 --> 00:28:37,630 cada uno. 568 00:28:37,630 --> 00:28:40,510 Así que de nuevo, esto es probablemente el ejemplo más complicado 569 00:28:40,510 --> 00:28:44,510 que hemos visto porque estamos mezclando de tres diferentes idiomas juntos, ¿no? 570 00:28:44,510 --> 00:28:50,100 >> Una vez más, tenemos HTML aquí en rojo, mezclado con un poco de SQL aquí en azul, 571 00:28:50,100 --> 00:28:52,049 mezclado con un poco de PHP en verde. 572 00:28:52,049 --> 00:28:53,840 Pero todos ellos juegan muy bien juntos, es 573 00:28:53,840 --> 00:28:57,060 sólo es cuestión de desarrollar buenos hábitos de modo que usted puede obtener 574 00:28:57,060 --> 00:28:58,780 que trabajen juntos de la manera deseada. 575 00:28:58,780 --> 00:29:03,790 Y la única manera de hacerlo realmente tan es practicar, practicar y practicar. 576 00:29:03,790 --> 00:29:06,740 Soy Doug Lloyd, esto es CS50. 577 00:29:06,740 --> 00:29:08,647