1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [CHRISTOPHER BARTOLOMÉ] [HARVARD UNIVERSITY] 3 00:00:04,000 --> 00:00:06,000 [AIXÒ ÉS CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Així, els programadors utilitzen bases de dades com a eina per emmagatzemar i organitzar 5 00:00:11,620 --> 00:00:13,620 nostres dades persistents dins de les taules. 6 00:00:13,620 --> 00:00:18,960 Això significa que les dades s'emmagatzemen en no volàtils mitjanes com ara un disc dur, 7 00:00:18,960 --> 00:00:22,940 i fins i tot quan l'ordinador està apagat, les dades segueix intacta. 8 00:00:22,940 --> 00:00:29,530 I, com programadors, els nostres programes utilitzen bases de dades per a escenaris com ara l'emmagatzematge 9 00:00:29,530 --> 00:00:32,890 usuari de la informació dels formularis web, mirant inventari, 10 00:00:32,890 --> 00:00:36,210 o actualització de la informació sobre els llocs mostrar. 11 00:00:37,150 --> 00:00:40,070 Però com podem interactuar amb la nostra base de dades, 12 00:00:40,070 --> 00:00:43,150 o què és el que utilitzem per llegir, emmagatzemar, eliminar, 13 00:00:43,150 --> 00:00:46,070 i actualitzar les nostres dades en aquestes taules de base de dades? 14 00:00:47,280 --> 00:00:49,700 Bé, la resposta és que s'utilitza un tipus especial de llenguatge de base de dades 15 00:00:49,700 --> 00:00:53,400 que interactua directament amb les taules de base de dades. 16 00:00:53,400 --> 00:00:56,740 El seu nom està estructurat Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 o el que em refereixo com SQL. 19 00:01:00,740 --> 00:01:05,100 >> Ara, [Sequel], o SQL, no és un llenguatge de programació, 20 00:01:05,100 --> 00:01:08,580 però en canvi, és un llenguatge que proporciona un conjunt estàndard de comandaments 21 00:01:08,580 --> 00:01:13,520 per recuperar i manipular les dades d'una varietat de sistemes de gestió de base de dades. 22 00:01:13,520 --> 00:01:17,630 Als efectes del CS50, anirem més de quatre ordres bàsiques: 23 00:01:17,630 --> 00:01:21,210 seleccionar, inserir, actualitzar i eliminar. 24 00:01:21,210 --> 00:01:26,230 A més, utilitzarem una interfície web base de dades anomenada phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 d'instal · lar en l'aparell per escriure les nostres sentències SQL. 26 00:01:30,830 --> 00:01:33,050 Per tant, per ajudar a recordar aquestes ordres, 27 00:01:33,050 --> 00:01:37,080 He portat alguns bescuits en un armari per ajudar als nostres escenaris. 28 00:01:39,650 --> 00:01:42,210 Diguem que vostè té una base de dades de la magdalena, 29 00:01:42,210 --> 00:01:44,490 on s'emmagatzema tota la informació sobre els seus pastissets. 30 00:01:44,490 --> 00:01:48,220 Ara, les bases de dades pot contenir moltes taules 31 00:01:48,220 --> 00:01:50,950 i les pròpies taules poden contenir diverses columnes. 32 00:01:50,950 --> 00:01:57,020 Dins de la nostra base de dades magdalena, tenim una taula anomenada cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Aquesta taula s'utilitza per emmagatzemar tota la informació sobre les magdalenes 34 00:02:00,500 --> 00:02:02,990 que són, bé, en el teu armari. 35 00:02:02,990 --> 00:02:07,770 Les columnes que es troben dins de la taula representen els atributs d'una magdalena. 36 00:02:07,770 --> 00:02:14,560 Per exemple, les columnes de la cupcake_cupboard són 37 00:02:14,560 --> 00:02:15,920 Coca de ID, CakeType, CakeColor, i CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Aquesta columna amb tipus booleà s'utilitza per determinar si el pastís és agradable o no agradable. 39 00:02:23,040 --> 00:02:26,560 Anem a començar amb l'escriptura d'una instrucció select. 40 00:02:26,560 --> 00:02:32,160 Sentències SELECT s'utilitzen per recuperar dades d'una taula de base de dades en particular. 41 00:02:32,160 --> 00:02:34,890 En aquest escenari, volem saber-ho tot 42 00:02:34,890 --> 00:02:39,080 sobretot les magdalenes que existeixen en el nostre armari. 43 00:02:39,080 --> 00:02:48,670 La sintaxi per fer-ho és "Select" estrella espai, o *, espai d'espai de la nostra taula, 44 00:02:48,670 --> 00:02:52,050 que és cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Seguirem endavant i executar això. 46 00:02:56,670 --> 00:03:00,140 >> Com podem veure, aquests són tots els cupcakes en el nostre armari. 47 00:03:00,140 --> 00:03:05,110 És important tenir en compte que * o asterisc, és un caràcter comodí 48 00:03:05,110 --> 00:03:08,830 que denota la reunió de totes les columnes de cada taula. 49 00:03:08,830 --> 00:03:13,650 Normalment, es pot accedir a una columna o columnes específiques 50 00:03:13,650 --> 00:03:16,950 en reemplaçar * amb el nom real de la columna. 51 00:03:16,950 --> 00:03:21,220 Si volem columnes múltiples, però no tots, es pot aconseguir aquest 52 00:03:21,220 --> 00:03:25,620 escrivint els noms de les columnes que delimiten cada columna amb una coma. 53 00:03:25,620 --> 00:03:28,620 Per exemple, anem a recuperar només el CakeId i CakeType a la taula cupcake_cupboard. 54 00:03:28,620 --> 00:03:38,370 La sintaxi per fer això és: SELECT espai coma CakeID 55 00:03:38,370 --> 00:03:44,370 CakeType espai de la nostra taula, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Seguirem endavant i executar això. 57 00:03:49,340 --> 00:03:52,670 I aquí, ara només tenen les dues columnes que s'especifiquen 58 00:03:52,670 --> 00:03:54,670 per a cada Cupcake al nostre armari. 59 00:03:54,670 --> 00:03:57,710 També pot refinar els resultats de la consulta especificant 60 00:03:57,710 --> 00:04:00,910 la clàusula "Where" just després del nom de la taula. 61 00:04:02,000 --> 00:04:05,410 Per exemple, sembla que hi ha una magdalena al nostre armari 62 00:04:05,410 --> 00:04:08,660 és a dir, bé, no tan bonica. 63 00:04:08,660 --> 00:04:13,950 Anem a esbrinar totes les magdalenes al nostre armari que, bé, no tan bon aspecte 64 00:04:13,950 --> 00:04:16,110 utilitzant la clàusula "Where". 65 00:04:16,110 --> 00:04:26,390 La sintaxi per fer això és: SELECT * espai espai espai DES cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 espai on l'espai la nostra columna condicional, en aquest cas CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 i el valor booleà de false. 68 00:04:36,900 --> 00:04:42,750 És important tenir en compte que si esteu utilitzant cadenes, s'ha de tancar entre cometes simples. 69 00:04:42,750 --> 00:04:49,620 Això és cert per a totes les cadenes de SQL, o, en termes de bases de dades SQL, les variants de caràcters 70 00:04:49,620 --> 00:04:51,620 conegut com VARCHAR tipus de dades. 71 00:04:51,620 --> 00:04:57,660 En aquest cas, estem usant Veritable o Fals, que és un valor booleà i no una cadena. 72 00:04:59,120 --> 00:05:00,660 Seguirem endavant i executar aquesta comanda. 73 00:05:00,660 --> 00:05:05,340 >> I mira, és el cas disposem de 1 xocolata 74 00:05:05,340 --> 00:05:07,920 no tan agradable magdalena al nostre armari. 75 00:05:09,620 --> 00:05:11,460 A continuació, anem a escriure una instrucció d'inserció. 76 00:05:11,460 --> 00:05:15,560 Instruccions d'inserció s'utilitza per inserir o afegir 77 00:05:15,560 --> 00:05:17,770 files de dades a la taula de base de dades. 78 00:05:17,770 --> 00:05:23,160 Revisant el nostre escenari, suposarem que ens acaba de fer una magdalena nou. 79 00:05:25,910 --> 00:05:30,080 Ja que estem molt organitzat menjadors de la magdalena, haurem inserir aquest magdalena nou 80 00:05:30,080 --> 00:05:32,330 en la nostra taula cupcake_cupboard. 81 00:05:32,330 --> 00:05:40,690 La sintaxi per fer-ho és la següent: Inseriu l'espai a l'espai la nostra taula, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, espai (, 83 00:05:46,830 --> 00:05:51,060 i aquí s'especifiquen els noms de columnes, delimitat per comes, 84 00:05:51,060 --> 00:05:59,790 Coma CakeType CakeColor coma CakeIsNice) d'espai. 85 00:05:59,790 --> 00:06:06,540 Després d'això, escrivim la paraula espai VALUES (i aquí 86 00:06:06,540 --> 00:06:12,170 entrem en el valor de cada columna, respectivament, també delimitat per una coma. 87 00:06:12,170 --> 00:06:17,830 Cometes simples, perquè tots ells són valors VARCHAR anem a envoltar amb cometes simples, 88 00:06:17,830 --> 00:06:26,780 Coma 'coma' mantega de cacauet LIGHT BROWN 'True. 89 00:06:26,780 --> 00:06:30,480 Ara, és important donar a cada fila un número únic per identificar-se. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing una columna proporciona això com 91 00:06:33,660 --> 00:06:37,410  "No hi ha dos identificadors dels mateixos mai poden existir en aquesta taula". 92 00:06:37,410 --> 00:06:39,480 Seguirem endavant i executar. 93 00:06:39,480 --> 00:06:45,380 Aquí anem, tot organitzat. 94 00:06:49,720 --> 00:06:52,100 >> La següent sentència SQL que escriurem és una instrucció d'actualització. 95 00:06:52,100 --> 00:06:55,650 La declaració d'actualització pot ser utilitzada per modificar les dades dins d'una columna 96 00:06:55,650 --> 00:06:58,440 per qualsevol fila existent a la taula de base de dades. 97 00:06:59,670 --> 00:07:03,420 Anteriorment en aquest escenari, utilitzant una instrucció de selecció, hem identificat una magdalena 98 00:07:03,420 --> 00:07:08,300 dins de la nostra taula cupcake_cupboard, el valor CakeIsNice era falsa. 99 00:07:08,300 --> 00:07:12,050 Anem a suposar que, si bé el nostre magdalena mantega de cacauet era al forn, 100 00:07:12,050 --> 00:07:15,790 vam fer la nostra magdalena no tan agradable molt agradable. 101 00:07:18,020 --> 00:07:22,240 En estar tan excepcionalment organitzat, volem que la nostra magdalena per reflectir aquest valor 102 00:07:22,240 --> 00:07:24,240 en la nostra taula cupcake_cupboard. 103 00:07:24,240 --> 00:07:28,710 Per tant, anem a actualitzar el nostre magdalena de xocolata a la base de dades per reflectir això. 104 00:07:28,710 --> 00:07:39,720 La sintaxi és: espai ACTUALITZACIÓ nostra taula, cupcake_cupboard, espai espai SET 105 00:07:39,720 --> 00:07:44,240 la columna que voleu canviar, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Llavors aquí posem el nostre espai veritable valor nou. 107 00:07:49,210 --> 00:07:54,290 Ara, pel fet que no desitja actualitzar totes les files amb aquest valor, 108 00:07:54,290 --> 00:07:57,400 volem proporcionar una clàusula "Where" que ens precisar 109 00:07:57,400 --> 00:07:59,830 a la fila exacta que volem modificar. 110 00:07:59,830 --> 00:08:03,690 En aquest cas, se sap que només hi ha una magdalena 111 00:08:03,690 --> 00:08:06,670 que té un valor de False CakeIsNice. 112 00:08:06,670 --> 00:08:11,030 D'altra banda, també s'ha d'assegurar que estem actualitzant la fila correcta 113 00:08:11,030 --> 00:08:13,030 mitjançant l'ús de la "I" clàusula. 114 00:08:14,340 --> 00:08:17,270 Fem servir la "I" clàusula de refinar la nostra consulta addicional. 115 00:08:17,270 --> 00:08:20,380 En aquest cas, perquè sabem que és la magdalena de xocolata, 116 00:08:20,380 --> 00:08:23,160 utilitzarem aquesta columna CakeType. 117 00:08:23,160 --> 00:08:31,500 On l'espai del nostre espai condicional columna CakeIsNice espai = False, 118 00:08:31,500 --> 00:08:38,330 i l'espai CakeType = 'XOCOLATA'. 119 00:08:38,330 --> 00:08:41,880 Per tant, posar tot junt, aquesta declaració diu actualització 120 00:08:41,880 --> 00:08:44,670 trobar tots els cupcakes en el nostre armari magdalena, 121 00:08:44,670 --> 00:08:50,520 i si hi ha una magdalena, la columna CakeIsNice conté el valor False 122 00:08:50,520 --> 00:08:54,130 i CakeType conté la xocolata de valor, 123 00:08:54,130 --> 00:08:58,240 volem actualitzar el valor de files específic CakeIsNice a True. 124 00:08:58,240 --> 00:09:01,140 Per tant, seguirem endavant i executar la sentència. 125 00:09:03,860 --> 00:09:05,860 I ara, estem organitzats. 126 00:09:06,650 --> 00:09:09,220 >> Tota aquesta xerrada de magdalenes m'ha fet una mica de fam. 127 00:09:09,220 --> 00:09:11,360 Crec que hauria de ajudar-me a mi mateix a un. 128 00:09:11,360 --> 00:09:17,670 Però si realment menjar aquesta magdalena, jo hauria almenys també eliminar la seva existència 129 00:09:17,670 --> 00:09:19,670  des de la nostra taula cupcake_cupboard. 130 00:09:20,650 --> 00:09:22,590 Per això, utilitzarem el botó "Elimina" declaració. 131 00:09:22,590 --> 00:09:27,400 El "Elimina" estat de compte es pot utilitzar per eliminar totes o algunes files de la taula. 132 00:09:27,400 --> 00:09:29,920 Si voleu eliminar alguna fila específica de la taula, 133 00:09:29,920 --> 00:09:34,360 llavors vostè ha de proporcionar una clàusula "Where", amb el que especifica una columna 134 00:09:34,360 --> 00:09:37,660 que ha de ser únic per a la fila que voleu suprimir. 135 00:09:37,660 --> 00:09:47,370 Aquesta és la sintaxi: DELETE espai des de l'espai la nostra taula, cupcake_cupboard, espai. 136 00:09:47,370 --> 00:09:51,760 Ara, en aquest punt, sempre que estigui tan lluny en la seva sentència delete 137 00:09:51,760 --> 00:09:54,240 vostè vol ser molt curós. 138 00:09:54,240 --> 00:09:59,970 Per exemple, si voleu executar aquesta consulta com és, sense proporcionar alguna clàusula "Where" 139 00:09:59,970 --> 00:10:04,500 M'agradaria perdre totes les dades en aquesta taula cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 sinó perquè jo ja sé que el meu ID de pastís són únics, vaig a utilitzar 141 00:10:09,590 --> 00:10:12,410 la Xarxa Velvet ID pastís per a mi "On" clàusula. 142 00:10:14,550 --> 00:10:20,670 On l'espai de la nostra columna, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Com que aquest és un valor enter que no és necessari que l'envolten en cometes simples. 144 00:10:25,010 --> 00:10:27,020 Per tant, anem a executar la sentència. 145 00:10:33,560 --> 00:10:35,990 Bé, ara que hem eliminat l'existència d'aquest magdalena 146 00:10:35,990 --> 00:10:40,360 des de la nostra taula cupcake_cupboard, només tenim una cosa a l'esquerra: 147 00:10:41,680 --> 00:10:43,680 Fer desaparèixer. 148 00:10:43,680 --> 00:10:46,990 Sóc Christopher Bartholomew. Això és CS50.