1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [Christopher Bartolomeu] [Harvard University] 3 00:00:04,000 --> 00:00:06,000 [Esta é CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Así, os desenvolvedores usan bases de datos como unha ferramenta para almacenar e organizar 5 00:00:11,620 --> 00:00:13,620 nosos datos persistentes dentro de táboas. 6 00:00:13,620 --> 00:00:18,960 Isto significa que os datos se almacenan en non volátiles medianas, como un disco duro, 7 00:00:18,960 --> 00:00:22,940 e mesmo cando o ordenador está apagado, os datos aínda está intacto. 8 00:00:22,940 --> 00:00:29,530 E, como desenvolvedores, os nosos programas utilizan bases de datos para escenarios como o almacenamento 9 00:00:29,530 --> 00:00:32,890 información de usuario de formularios web, buscar-se o inventario, 10 00:00:32,890 --> 00:00:36,210 ou actualización de información sobre os sitios que exhiben. 11 00:00:37,150 --> 00:00:40,070 Pero como nós realmente interactuar co noso banco de datos, 12 00:00:40,070 --> 00:00:43,150 ou o que usan para ler, gardar, eliminar 13 00:00:43,150 --> 00:00:46,070 e actualizar os nosos datos dentro destas táboas da base de datos? 14 00:00:47,280 --> 00:00:49,700 Ben, a resposta é que usamos un tipo especial de linguaxe de base de datos 15 00:00:49,700 --> 00:00:53,400 que interactúa directamente coas táboas do noso banco de datos. 16 00:00:53,400 --> 00:00:56,740 O seu nome é Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 ou o que eu chamo de SQL. 19 00:01:00,740 --> 00:01:05,100 >> Agora, [se Quel], ou SQL, non é unha linguaxe de programación, 20 00:01:05,100 --> 00:01:08,580 pero en vez diso, é unha linguaxe que ofrece un conxunto patrón de comandos 21 00:01:08,580 --> 00:01:13,520 para obter e manipular os datos a partir dunha variedade de sistemas de xestión de bases de datos. 22 00:01:13,520 --> 00:01:17,630 Para os efectos do CS50, nós imos pasar por riba de catro comandos básicos: 23 00:01:17,630 --> 00:01:21,210 seleccionar, inserir, actualizar e borrar. 24 00:01:21,210 --> 00:01:26,230 Ademais, imos empregar unha interface web base de datos chamado phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 que instalou o aparello para escribir as nosas instrucións SQL. 26 00:01:30,830 --> 00:01:33,050 Entón, para axudar a lembrar eses comandos, 27 00:01:33,050 --> 00:01:37,080 Eu trouxo algúns galletas nun armario para axudar cos nosos escenarios. 28 00:01:39,650 --> 00:01:42,210 Digamos que teña unha base de datos do queque, 29 00:01:42,210 --> 00:01:44,490 onde almacenar todas as informacións sobre o seu cupcakes. 30 00:01:44,490 --> 00:01:48,220 Agora, os bancos de datos pode conter varias táboas 31 00:01:48,220 --> 00:01:50,950 e as propias táboas pode conter moitas columnas. 32 00:01:50,950 --> 00:01:57,020 Dentro da base de datos noso queque, temos unha táboa chamada cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Esta táboa será usado para almacenar toda a información sobre queques 34 00:02:00,500 --> 00:02:02,990 que son, así, no seu armario. 35 00:02:02,990 --> 00:02:07,770 As columnas que están dentro da súa táboa represéntanse os atributos dun Cupcake. 36 00:02:07,770 --> 00:02:14,560 Por exemplo, as columnas son a cupcake_cupboard 37 00:02:14,560 --> 00:02:15,920 Bolo de identificación, CakeType, CakeColor e CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Esta columna booleana ingresaran é usado para determinar se o bolo é agradable ou non agradable. 39 00:02:23,040 --> 00:02:26,560 Nós imos comezar coa escritura dunha instrución SELECT. 40 00:02:26,560 --> 00:02:32,160 Instrucións de selección son usadas para recuperar datos dunha táboa de base de datos. 41 00:02:32,160 --> 00:02:34,890 Neste escenario, queremos saber todo 42 00:02:34,890 --> 00:02:39,080 sobre todos os boliñas que existen no noso armario. 43 00:02:39,080 --> 00:02:48,670 A sintaxe para facer iso é espazo estrela "Select", ou *, o espazo a partir do espazo nosa mesa, 44 00:02:48,670 --> 00:02:52,050 que é cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Imos adiante e executar isto. 46 00:02:56,670 --> 00:03:00,140 >> Como podemos ver, estes son todos os cupcakes no noso armario. 47 00:03:00,140 --> 00:03:05,110 É importante notar que, * ou asterisco, é un personaxe Coringa 48 00:03:05,110 --> 00:03:08,830 que denota a reunión de todas as columnas dunha táboa. 49 00:03:08,830 --> 00:03:13,650 Normalmente, podemos acceder a unha columna ou columnas específicas 50 00:03:13,650 --> 00:03:16,950 substituíndo * co nome da columna actual. 51 00:03:16,950 --> 00:03:21,220 Se queremos que varias columnas, pero non todos podemos alcanzar este 52 00:03:21,220 --> 00:03:25,620 escribindo os nomes das columnas que delimitan cada columna por unha coma. 53 00:03:25,620 --> 00:03:28,620 Por exemplo, imos só recuperar o CakeId e CakeType na táboa cupcake_cupboard. 54 00:03:28,620 --> 00:03:38,370 A sintaxe para facelo é: SELECT espazo coma CakeID 55 00:03:38,370 --> 00:03:44,370 CakeType espazo da nosa táboa de cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Imos adiante e executar isto. 57 00:03:49,340 --> 00:03:52,670 E aquí, agora só as dúas columnas que especificamos 58 00:03:52,670 --> 00:03:54,670 para cada Cupcake no noso armario. 59 00:03:54,670 --> 00:03:57,710 Tamén pode refinar os resultados da consulta, especificando 60 00:03:57,710 --> 00:04:00,910 a cláusula "Where" logo o nome da táboa. 61 00:04:02,000 --> 00:04:05,410 Por exemplo, parece haber un queque no noso armario 62 00:04:05,410 --> 00:04:08,660 é dicir, ben, non tan agradable mirando. 63 00:04:08,660 --> 00:04:13,950 Imos descubrir todos os queques no noso armario que son, así, non tan bo ollar 64 00:04:13,950 --> 00:04:16,110 usar a cláusula "Where". 65 00:04:16,110 --> 00:04:26,390 A sintaxe para facelo é: SELECT * espazo espazo de cupcake_cupboard espazo 66 00:04:26,390 --> 00:04:34,080 espazo cando o espazo a columna condicional, neste caso CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 eo valor booleano falso. 68 00:04:36,900 --> 00:04:42,750 É importante notar que, se está a usar cordas, ten que poñelas entre comiñas simples. 69 00:04:42,750 --> 00:04:49,620 Isto é certo para todas as cadeas en SQL ou, en termos de base de datos SQL, variante caracteres 70 00:04:49,620 --> 00:04:51,620 coñecido como Varchar tipo de datos. 71 00:04:51,620 --> 00:04:57,660 Neste caso, estamos usando verdadeiro ou falso, o que é un valor booleano e non unha cadea. 72 00:04:59,120 --> 00:05:00,660 Imos adiante e executar este comando. 73 00:05:00,660 --> 00:05:05,340 >> E velaí, que é o caso que nos 1 chocolate 74 00:05:05,340 --> 00:05:07,920 non tan bo queque no noso armario. 75 00:05:09,620 --> 00:05:11,460 A continuación, imos escribir unha declaración de inserción. 76 00:05:11,460 --> 00:05:15,560 Instrucións de inserción son usados ​​para inserir ou engadir 77 00:05:15,560 --> 00:05:17,770 liñas adicionais de datos na súa táboa de base de datos. 78 00:05:17,770 --> 00:05:23,160 Revisitando o noso escenario, imos supor que acaba de facer un Cupcake novo. 79 00:05:25,910 --> 00:05:30,080 Unha vez que estamos moi organizado comedores queque, nós imos ter que introducir este novo queque 80 00:05:30,080 --> 00:05:32,330 na nosa mesa cupcake_cupboard. 81 00:05:32,330 --> 00:05:40,690 A sintaxe para facelo é o seguinte: Inserir espazo en espazo a nosa mesa, 82 00:05:40,690 --> 00:05:46,830 espazo cupcake_cupboard, (, 83 00:05:46,830 --> 00:05:51,060 e aquí especificar os nomes das columnas, delimitado por comas, 84 00:05:51,060 --> 00:05:59,790 CakeType coma CakeColor espazo coma CakeIsNice). 85 00:05:59,790 --> 00:06:06,540 Tras iso, nós escribimos a palabra espazo VALUES (e aquí 86 00:06:06,540 --> 00:06:12,170 Entramos no valor de cada columna, respectivamente, tamén delimitado por comas. 87 00:06:12,170 --> 00:06:17,830 Comiñas simples, porque son todos os valores Varchar imos cerca-los entre comiñas simples, 88 00:06:17,830 --> 00:06:26,780 Coma 'coma' manteiga de cacahuete LUZ BROWN 'True. 89 00:06:26,780 --> 00:06:30,480 Agora, é importante dar a cada liña un número único para identificarse. 90 00:06:30,480 --> 00:06:33,660 Autoincremental unha columna proporciona esta tan 91 00:06:33,660 --> 00:06:37,410  "Non hai dous iguais identificacións pode nunca existir na táboa." 92 00:06:37,410 --> 00:06:39,480 Imos adiante e executar. 93 00:06:39,480 --> 00:06:45,380 Alí imos nós, todo organizado. 94 00:06:49,720 --> 00:06:52,100 >> A instrución SQL seguinte que imos escribir é unha instrución de actualización. 95 00:06:52,100 --> 00:06:55,650 A instrución de actualización pode ser usado para modificar os datos dentro dunha columna 96 00:06:55,650 --> 00:06:58,440 para calquera liña existente na táboa de base de datos. 97 00:06:59,670 --> 00:07:03,420 No inicio do noso escenario, usando unha declaración de selección, identificamos un Cupcake 98 00:07:03,420 --> 00:07:08,300 dentro da nosa mesa cupcake_cupboard, cuxo valor CakeIsNice era falsa. 99 00:07:08,300 --> 00:07:12,050 Imos supor que, aínda que o noso queque manteiga de cacahuete estaba ó forno, 100 00:07:12,050 --> 00:07:15,790 fixemos o noso queque non tan agradable moi agradable. 101 00:07:18,020 --> 00:07:22,240 Sendo tan excepcionalmente organizado, queremos que o noso queque para reflectir este valor 102 00:07:22,240 --> 00:07:24,240 na nosa mesa cupcake_cupboard. 103 00:07:24,240 --> 00:07:28,710 Polo tanto, imos actualizar o seu bolinha de chocolate na base de datos para reflectir iso. 104 00:07:28,710 --> 00:07:39,720 A sintaxe é: Update espazo nosa mesa, cupcake_cupboard, espazo SET espazo 105 00:07:39,720 --> 00:07:44,240 a columna que quere cambiar, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Entón, aquí poñemos o noso espazo novo valor True. 107 00:07:49,210 --> 00:07:54,290 Agora, porque non queremos para actualizar todas as liñas con este valor, 108 00:07:54,290 --> 00:07:57,400 queremos proporcionar unha cláusula "Where" que ha identificar-nos 109 00:07:57,400 --> 00:07:59,830 para a liña exacta que queremos modificar. 110 00:07:59,830 --> 00:08:03,690 Neste caso, sabemos que existe só un queque 111 00:08:03,690 --> 00:08:06,670 que ten un valor de CakeIsNice False. 112 00:08:06,670 --> 00:08:11,030 Ademais, tamén imos garantir que estamos a actualizar a liña correcta 113 00:08:11,030 --> 00:08:13,030 usando o "E" cláusula. 114 00:08:14,340 --> 00:08:17,270 Usamos o "E" cláusula de refinar aínda máis a nosa consulta. 115 00:08:17,270 --> 00:08:20,380 Neste caso, porque sabemos que o Cupcake é de chocolate, 116 00:08:20,380 --> 00:08:23,160 imos usar esta columna CakeType. 117 00:08:23,160 --> 00:08:31,500 ONDE noso espazo condicional columna espazo espazo CakeIsNice = False, 118 00:08:31,500 --> 00:08:38,330 e espazo CakeType = 'chocolate. 119 00:08:38,330 --> 00:08:41,880 Entón, xuntando todo, esa instrución de actualización di 120 00:08:41,880 --> 00:08:44,670 atopar todos os cupcakes no noso armario Cupcake, 121 00:08:44,670 --> 00:08:50,520 e, se hai un queque cuxa columna contén o valor CakeIsNice False 122 00:08:50,520 --> 00:08:54,130 e CakeType contén o valor chocolate, 123 00:08:54,130 --> 00:08:58,240 queremos actualizar o valor CakeIsNice específico liñas para True. 124 00:08:58,240 --> 00:09:01,140 Entón, imos adiante e executar a instrución. 125 00:09:03,860 --> 00:09:05,860 E agora, estamos organizados. 126 00:09:06,650 --> 00:09:09,220 >> Toda esa conversa de cupcakes me fixo un pouco de fame. 127 00:09:09,220 --> 00:09:11,360 Eu creo que debe axudar-me a un. 128 00:09:11,360 --> 00:09:17,670 Pero se realmente comer ese Cupcake, que eu debería polo menos tamén eliminar a súa existencia 129 00:09:17,670 --> 00:09:19,670  da nosa táboa de cupcake_cupboard. 130 00:09:20,650 --> 00:09:22,590 Para iso, imos utilizar o "Delete" afirmación. 131 00:09:22,590 --> 00:09:27,400 O "Delete" afirmación pode ser usado para eliminar todas ou algunhas liñas da táboa. 132 00:09:27,400 --> 00:09:29,920 Se desexa eliminar algunha liña específica da mesa, 133 00:09:29,920 --> 00:09:34,360 a continuación, ten que proporcionar unha cláusula "Where", así, especificando unha columna 134 00:09:34,360 --> 00:09:37,660 que debe ser exclusivo para a liña que desexa eliminar. 135 00:09:37,660 --> 00:09:47,370 Esta é a sintaxe: DELETE espazo do espazo nosa mesa, cupcake_cupboard espazo. 136 00:09:47,370 --> 00:09:51,760 Agora, neste momento, sempre que está tan lonxe na súa instrución de exclusión 137 00:09:51,760 --> 00:09:54,240 quere ser moi coidadoso. 138 00:09:54,240 --> 00:09:59,970 Por exemplo, se eu queira facer esa consulta como está, sen ofrecer algunha cláusula "Where" 139 00:09:59,970 --> 00:10:04,500 Eu perdería todos os datos nesta táboa cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 senón porque eu xa sei que o meu bolo IDs son únicos, eu vou usar 141 00:10:09,590 --> 00:10:12,410 o ID de bolo Red Velvet o meu cláusula "Where". 142 00:10:14,550 --> 00:10:20,670 Onde o espazo nosa columna, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Porque este é un valor enteiro, non hai necesidade de preto-lo entre comiñas simples. 144 00:10:25,010 --> 00:10:27,020 Entón, imos realizar a instrución. 145 00:10:33,560 --> 00:10:35,990 Ben, agora que xa limpou a existencia deste queque 146 00:10:35,990 --> 00:10:40,360 da nosa táboa de cupcake_cupboard, só temos unha cousa á esquerda: 147 00:10:41,680 --> 00:10:43,680 Facelo desaparecer. 148 00:10:43,680 --> 00:10:46,990 Eu son Christopher Bartolomeu. Este é CS50.