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 Assim, os programadores usam bancos de dados como uma ferramenta para armazenar e organizar 5 00:00:11,620 --> 00:00:13,620 nossos dados persistentes dentro de tabelas. 6 00:00:13,620 --> 00:00:18,960 Isto significa que os dados são armazenados em não-voláteis medianas, como um disco rígido, 7 00:00:18,960 --> 00:00:22,940 e mesmo quando o computador está desligado, os dados ainda está intacto. 8 00:00:22,940 --> 00:00:29,530 E, como programadores, nossos programas utilizam bases de dados para cenários como o armazenamento 9 00:00:29,530 --> 00:00:32,890 informações de usuário de formulários web, procurando-se o inventário, 10 00:00:32,890 --> 00:00:36,210 ou atualização de informações sobre os sites que exibem. 11 00:00:37,150 --> 00:00:40,070 Mas como nós realmente interagir com nosso banco de dados, 12 00:00:40,070 --> 00:00:43,150 ou o que usamos para ler, armazenar, excluir 13 00:00:43,150 --> 00:00:46,070 e atualizar nossos dados dentro destas tabelas do banco de dados? 14 00:00:47,280 --> 00:00:49,700 Bem, a resposta é que nós usamos um tipo especial de linguagem de banco de dados 15 00:00:49,700 --> 00:00:53,400 que interage diretamente com as tabelas de nosso banco de dados. 16 00:00:53,400 --> 00:00:56,740 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, não é uma linguagem de programação, 20 00:01:05,100 --> 00:01:08,580 mas em vez disso, é uma linguagem que fornece um conjunto padrão de comandos 21 00:01:08,580 --> 00:01:13,520 para obter e manipular os dados a partir de uma variedade de sistemas de gestão de bases de dados. 22 00:01:13,520 --> 00:01:17,630 Para efeitos do CS50, nós vamos passar por cima de quatro comandos básicos: 23 00:01:17,630 --> 00:01:21,210 selecionar, inserir, atualizar e excluir. 24 00:01:21,210 --> 00:01:26,230 Além disso, vamos utilizar uma interface web banco de dados chamado phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 que instalou o aparelho para escrever nossas instruções SQL. 26 00:01:30,830 --> 00:01:33,050 Então, para ajudar a lembrar esses comandos, 27 00:01:33,050 --> 00:01:37,080 Eu trouxe alguns biscoitos em um armário para ajudar com nossos cenários. 28 00:01:39,650 --> 00:01:42,210 Digamos que você tenha um banco de dados do queque, 29 00:01:42,210 --> 00:01:44,490 onde você armazenar todas as informações sobre o seu cupcakes. 30 00:01:44,490 --> 00:01:48,220 Agora, os bancos de dados pode conter várias tabelas 31 00:01:48,220 --> 00:01:50,950 e as próprias tabelas pode conter muitas colunas. 32 00:01:50,950 --> 00:01:57,020 Dentro do banco de dados nosso queque, temos uma tabela chamada cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Esta tabela será usado para armazenar toda a informação sobre queques 34 00:02:00,500 --> 00:02:02,990 que são, assim, em seu armário. 35 00:02:02,990 --> 00:02:07,770 As colunas que estão dentro de sua tabela representam os atributos de um cupcake. 36 00:02:07,770 --> 00:02:14,560 Por exemplo, as colunas são a cupcake_cupboard 37 00:02:14,560 --> 00:02:15,920 Bolo de identificação, CakeType, CakeColor e CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Esta coluna booleana digitado é usado para determinar se o bolo é agradável ou não agradável. 39 00:02:23,040 --> 00:02:26,560 Nós vamos começar com a escrita de uma instrução select. 40 00:02:26,560 --> 00:02:32,160 Instruções de seleção são usadas para recuperar dados de uma tabela de banco de dados. 41 00:02:32,160 --> 00:02:34,890 Neste cenário, queremos saber tudo 42 00:02:34,890 --> 00:02:39,080 sobre todos os bolinhos que existem em nosso armário. 43 00:02:39,080 --> 00:02:48,670 A sintaxe para fazer isso é espaço estrela "Select", ou *, o espaço a partir do espaço nossa mesa, 44 00:02:48,670 --> 00:02:52,050 que é cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Vamos em frente e executar isso. 46 00:02:56,670 --> 00:03:00,140 >> Como podemos ver, estes são todos os cupcakes no nosso armário. 47 00:03:00,140 --> 00:03:05,110 É importante notar que, * ou asterisco, é um personagem coringa 48 00:03:05,110 --> 00:03:08,830 que denota a reunião de todas as colunas de uma tabela. 49 00:03:08,830 --> 00:03:13,650 Normalmente, podemos acessar uma coluna ou colunas específicas 50 00:03:13,650 --> 00:03:16,950 substituindo * com o nome da coluna atual. 51 00:03:16,950 --> 00:03:21,220 Se queremos que várias colunas, mas não todos, podemos alcançar este 52 00:03:21,220 --> 00:03:25,620 escrevendo os nomes das colunas que delimitam cada coluna por uma vírgula. 53 00:03:25,620 --> 00:03:28,620 Por exemplo, vamos apenas recuperar o CakeId e CakeType na tabela cupcake_cupboard. 54 00:03:28,620 --> 00:03:38,370 A sintaxe para fazer isso é: SELECT espaço vírgula CakeID 55 00:03:38,370 --> 00:03:44,370 CakeType espaço da nossa tabela de cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Vamos em frente e executar isso. 57 00:03:49,340 --> 00:03:52,670 E aqui, agora só tem as duas colunas que especificamos 58 00:03:52,670 --> 00:03:54,670 para cada cupcake no nosso armário. 59 00:03:54,670 --> 00:03:57,710 Nós também pode refinar os resultados da consulta, especificando 60 00:03:57,710 --> 00:04:00,910 a cláusula "Where" logo após o nome da tabela. 61 00:04:02,000 --> 00:04:05,410 Por exemplo, parece haver um queque no nosso armário 62 00:04:05,410 --> 00:04:08,660 isto é, bem, não tão agradável olhando. 63 00:04:08,660 --> 00:04:13,950 Vamos descobrir todos os queques no nosso armário que são, bem, não tão bom olhar 64 00:04:13,950 --> 00:04:16,110 usando a cláusula "Where". 65 00:04:16,110 --> 00:04:26,390 A sintaxe para fazer isso é: SELECT * espaço espaço DE cupcake_cupboard espaço 66 00:04:26,390 --> 00:04:34,080 espaço quando o espaço a coluna condicional, neste caso CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 eo valor booleano False. 68 00:04:36,900 --> 00:04:42,750 É importante notar que, se você estiver usando cordas, você deve colocá-lo entre aspas simples. 69 00:04:42,750 --> 00:04:49,620 Isto é verdade para todas as cadeias em SQL, ou, em termos de banco de dados SQL, variante caracteres 70 00:04:49,620 --> 00:04:51,620 conhecido como Varchar tipo de dados. 71 00:04:51,620 --> 00:04:57,660 Neste caso, estamos usando Verdadeiro ou falso, o que é um valor booleano e não uma string. 72 00:04:59,120 --> 00:05:00,660 Vamos em frente e executar este comando. 73 00:05:00,660 --> 00:05:05,340 >> E eis, que é o caso que temos 1 chocolate 74 00:05:05,340 --> 00:05:07,920 não tão bom queque no nosso armário. 75 00:05:09,620 --> 00:05:11,460 Em seguida, vamos escrever uma declaração de inserção. 76 00:05:11,460 --> 00:05:15,560 Instruções de inserção são usados ​​para inserir ou adicionar 77 00:05:15,560 --> 00:05:17,770 linhas adicionais de dados em sua tabela de banco de dados. 78 00:05:17,770 --> 00:05:23,160 Revisitando o nosso cenário, vamos supor que você acabou de fazer um cupcake novo. 79 00:05:25,910 --> 00:05:30,080 Uma vez que estamos muito organizado comedores queque, nós vamos ter que inserir este novo queque 80 00:05:30,080 --> 00:05:32,330 em nossa mesa cupcake_cupboard. 81 00:05:32,330 --> 00:05:40,690 A sintaxe para fazer isso é o seguinte: Inserir espaço em espaço nossa mesa, 82 00:05:40,690 --> 00:05:46,830 espaço cupcake_cupboard, (, 83 00:05:46,830 --> 00:05:51,060 e aqui especificar os nomes das colunas, delimitado por uma vírgula, 84 00:05:51,060 --> 00:05:59,790 CakeType vírgula CakeColor espaço vírgula CakeIsNice). 85 00:05:59,790 --> 00:06:06,540 Após isso, nós escrevemos a palavra espaço VALUES (e aqui 86 00:06:06,540 --> 00:06:12,170 entramos no valor para cada coluna, respectivamente, também delimitado por uma vírgula. 87 00:06:12,170 --> 00:06:17,830 Aspas simples, porque são todos os valores Varchar vamos cercá-los entre aspas simples, 88 00:06:17,830 --> 00:06:26,780 Vírgula 'vírgula' MANTEIGA DE AMENDOIM LUZ BROWN 'True. 89 00:06:26,780 --> 00:06:30,480 Agora, é importante dar a cada linha um número único para identificar-se. 90 00:06:30,480 --> 00:06:33,660 Autoincremental uma coluna fornece esta tão 91 00:06:33,660 --> 00:06:37,410  "Não existem dois as mesmas identificações pode nunca existir na tabela." 92 00:06:37,410 --> 00:06:39,480 Vamos em frente e executar. 93 00:06:39,480 --> 00:06:45,380 Lá vamos nós, tudo organizado. 94 00:06:49,720 --> 00:06:52,100 >> A instrução SQL seguinte que vamos escrever é uma instrução de atualização. 95 00:06:52,100 --> 00:06:55,650 A instrução de actualização pode ser usado para modificar os dados dentro de uma coluna 96 00:06:55,650 --> 00:06:58,440 para qualquer linha existente na tabela de banco de dados. 97 00:06:59,670 --> 00:07:03,420 No início de nosso cenário, usando uma declaração de seleção, identificamos um cupcake 98 00:07:03,420 --> 00:07:08,300 dentro de nossa mesa cupcake_cupboard, cujo valor CakeIsNice era falsa. 99 00:07:08,300 --> 00:07:12,050 Vamos supor que, embora nosso queque manteiga de amendoim estava no forno, 100 00:07:12,050 --> 00:07:15,790 fizemos o nosso queque não tão agradável muito agradável. 101 00:07:18,020 --> 00:07:22,240 Sendo tão excepcionalmente organizado, queremos que o nosso queque para refletir este valor 102 00:07:22,240 --> 00:07:24,240 em nossa mesa cupcake_cupboard. 103 00:07:24,240 --> 00:07:28,710 Portanto, vamos atualizar o nosso bolinho de chocolate no banco de dados para refletir isso. 104 00:07:28,710 --> 00:07:39,720 A sintaxe é: UPDATE espaço nossa mesa, cupcake_cupboard, espaço SET espaço 105 00:07:39,720 --> 00:07:44,240 a coluna que deseja mudar, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Então, aqui colocamos nosso espaço novo valor True. 107 00:07:49,210 --> 00:07:54,290 Agora, porque não queremos para atualizar todas as linhas com este valor, 108 00:07:54,290 --> 00:07:57,400 queremos proporcionar uma cláusula "Where" que irá identificar-nos 109 00:07:57,400 --> 00:07:59,830 para a linha exata que queremos modificar. 110 00:07:59,830 --> 00:08:03,690 Neste caso, sabemos que existe apenas um queque 111 00:08:03,690 --> 00:08:06,670 que tem um valor de CakeIsNice False. 112 00:08:06,670 --> 00:08:11,030 Além disso, também vamos garantir que estamos atualizando a linha correta 113 00:08:11,030 --> 00:08:13,030 usando o "E" cláusula. 114 00:08:14,340 --> 00:08:17,270 Nós usamos o "E" cláusula de refinar ainda mais a nossa 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 vamos usar esta coluna CakeType. 117 00:08:23,160 --> 00:08:31,500 ONDE nosso espaço condicional coluna espaço espaço CakeIsNice = False, 118 00:08:31,500 --> 00:08:38,330 e espaço CakeType = 'CHOCOLATE. 119 00:08:38,330 --> 00:08:41,880 Então, juntando tudo, essa instrução de atualização diz 120 00:08:41,880 --> 00:08:44,670 encontrar todos os cupcakes no nosso armário cupcake, 121 00:08:44,670 --> 00:08:50,520 e, se houver um queque cuja coluna contém o valor CakeIsNice False 122 00:08:50,520 --> 00:08:54,130 e CakeType contém o valor CHOCOLATE, 123 00:08:54,130 --> 00:08:58,240 queremos atualizar o valor CakeIsNice específico linhas para True. 124 00:08:58,240 --> 00:09:01,140 Então, vamos em frente e executar a instrução. 125 00:09:03,860 --> 00:09:05,860 E agora, estamos organizados. 126 00:09:06,650 --> 00:09:09,220 >> Toda essa conversa de cupcakes me fez um pouco de fome. 127 00:09:09,220 --> 00:09:11,360 Eu acho que deve ajudar-me a um. 128 00:09:11,360 --> 00:09:17,670 Mas se eu realmente comer esse cupcake, que eu deveria pelo menos também remover a sua existência 129 00:09:17,670 --> 00:09:19,670  da nossa tabela de cupcake_cupboard. 130 00:09:20,650 --> 00:09:22,590 Para fazer isso, vamos usar o "Delete" afirmação. 131 00:09:22,590 --> 00:09:27,400 O "Delete" afirmação pode ser usado para remover todas ou algumas linhas da tabela. 132 00:09:27,400 --> 00:09:29,920 Se você deseja remover alguma linha específica da mesa, 133 00:09:29,920 --> 00:09:34,360 em seguida, você deve fornecer uma cláusula "Where", assim, especificando uma coluna 134 00:09:34,360 --> 00:09:37,660 que deve ser exclusivo para a linha que você deseja remover. 135 00:09:37,660 --> 00:09:47,370 Esta é a sintaxe: DELETE espaço do espaço nossa mesa, cupcake_cupboard espaço. 136 00:09:47,370 --> 00:09:51,760 Agora, neste momento, sempre que você está tão longe em sua instrução de exclusão 137 00:09:51,760 --> 00:09:54,240 você quer ser muito cuidadoso. 138 00:09:54,240 --> 00:09:59,970 Por exemplo, se eu quiser executar essa consulta como está, sem fornecer alguma cláusula "Where" 139 00:09:59,970 --> 00:10:04,500 Eu perderia todos os dados nesta tabela cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 mas porque eu já sei que o meu bolo IDs são únicos, eu vou usar 141 00:10:09,590 --> 00:10:12,410 o ID do bolo Red Velvet para o meu cláusula "Where". 142 00:10:14,550 --> 00:10:20,670 Onde o espaço nossa coluna, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Porque este é um valor inteiro, não há necessidade de cercá-lo entre aspas simples. 144 00:10:25,010 --> 00:10:27,020 Então, vamos executar a instrução. 145 00:10:33,560 --> 00:10:35,990 Bem, agora que já limpou a existência deste queque 146 00:10:35,990 --> 00:10:40,360 da nossa tabela de cupcake_cupboard, só temos uma coisa a esquerda: 147 00:10:41,680 --> 00:10:43,680 Fazê-lo desaparecer. 148 00:10:43,680 --> 00:10:46,990 Eu sou Christopher Bartolomeu. Este é CS50.