1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [CHRISTOPHER BARTOLOMEO] [Harvard University] 3 00:00:04,000 --> 00:00:06,000 [QUESTO E 'CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Così, i programmatori utilizzare i database come strumento per memorizzare e organizzare 5 00:00:11,620 --> 00:00:13,620 i nostri dati persistenti all'interno delle tabelle. 6 00:00:13,620 --> 00:00:18,960 Ciò significa che i dati sono memorizzati su non volatili mediane, come un disco rigido, 7 00:00:18,960 --> 00:00:22,940 e anche quando il computer è spento, i dati è ancora intatto. 8 00:00:22,940 --> 00:00:29,530 E, come i programmatori, i nostri programmi utilizzano database per scenari come la memorizzazione 9 00:00:29,530 --> 00:00:32,890 informazioni utente dai moduli web, guardando l'inventario, 10 00:00:32,890 --> 00:00:36,210 o aggiornare le informazioni su quali siti visualizzare. 11 00:00:37,150 --> 00:00:40,070 Ma come possiamo effettivamente interagire con il nostro database, 12 00:00:40,070 --> 00:00:43,150 o quello che usiamo per leggere, memorizzare, cancellare, 13 00:00:43,150 --> 00:00:46,070 e aggiornare i nostri dati all'interno di queste tabelle del database? 14 00:00:47,280 --> 00:00:49,700 Beh, la risposta è che usiamo un particolare tipo di linguaggio di database 15 00:00:49,700 --> 00:00:53,400 che interagisce direttamente con i nostri tabelle del database. 16 00:00:53,400 --> 00:00:56,740 Il suo 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 o che cosa mi riferisco a come SQL. 19 00:01:00,740 --> 00:01:05,100 >> Ora, [Sequel], o SQL, non è un linguaggio di programmazione, 20 00:01:05,100 --> 00:01:08,580 ma, invece, si tratta di un linguaggio che fornisce un insieme standard di comandi 21 00:01:08,580 --> 00:01:13,520 per recuperare e manipolare dati da una varietà di sistemi di gestione di database. 22 00:01:13,520 --> 00:01:17,630 Ai fini del CS50, andremo su quattro comandi di base: 23 00:01:17,630 --> 00:01:21,210 selezionare, inserire, aggiornare ed eliminare. 24 00:01:21,210 --> 00:01:26,230 Inoltre, faremo utilizzare una interfaccia web database chiamato phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 che ha installato l'apparecchio per scrivere le nostre istruzioni SQL. 26 00:01:30,830 --> 00:01:33,050 Così, per ricordare questi comandi, 27 00:01:33,050 --> 00:01:37,080 Ho portato un po 'di cupcakes in un armadio per assistere con i nostri scenari. 28 00:01:39,650 --> 00:01:42,210 Diciamo che avete un cupcake del database, il 29 00:01:42,210 --> 00:01:44,490 dove si memorizzano tutte le informazioni sul vostro cupcakes. 30 00:01:44,490 --> 00:01:48,220 Ora, i database possono contenere molte tabelle 31 00:01:48,220 --> 00:01:50,950 e le stesse tabelle possono contenere molte colonne. 32 00:01:50,950 --> 00:01:57,020 All'interno del database nostra Cupcake, abbiamo una tabella denominata cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Questa tabella viene utilizzata per memorizzare tutte le informazioni sui bigné 34 00:02:00,500 --> 00:02:02,990 che sono, beh, nel vostro armadio. 35 00:02:02,990 --> 00:02:07,770 Le colonne che si trovano all'interno della tabella rappresentano gli attributi di un cupcake. 36 00:02:07,770 --> 00:02:14,560 Ad esempio, le colonne della cupcake_cupboard sono 37 00:02:14,560 --> 00:02:15,920 Torta ID, CakeType, CakeColor e CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Questo valore booleano tipizzato colonna viene utilizzata per determinare se la torta è bello o non è bello. 39 00:02:23,040 --> 00:02:26,560 Stiamo per iniziare con la scrittura di un'istruzione select. 40 00:02:26,560 --> 00:02:32,160 Istruzioni Select vengono utilizzati per recuperare i dati di una tabella di database particolare. 41 00:02:32,160 --> 00:02:34,890 In questo scenario, vogliamo sapere tutto 42 00:02:34,890 --> 00:02:39,080 di tutto bigné che esistono nel nostro armadio. 43 00:02:39,080 --> 00:02:48,670 La sintassi per farlo è stelle "Select" spazio, o *, lo spazio dallo spazio il nostro tavolo, 44 00:02:48,670 --> 00:02:52,050 che è cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Andiamo avanti ed eseguire questo. 46 00:02:56,670 --> 00:03:00,140 >> Come si può vedere, questi sono tutti i cupcakes nel nostro armadio. 47 00:03:00,140 --> 00:03:05,110 E 'importante notare che *, o un asterisco, è un carattere jolly 48 00:03:05,110 --> 00:03:08,830 che denota la raccolta di tutte le colonne di alcuni tabella. 49 00:03:08,830 --> 00:03:13,650 Normalmente, siamo in grado di accedere a una determinata colonna o le colonne 50 00:03:13,650 --> 00:03:16,950 sostituendo * con il nome della colonna attuale. 51 00:03:16,950 --> 00:03:21,220 Se vogliamo più colonne, ma non tutti, siamo in grado di raggiungere questo obiettivo 52 00:03:21,220 --> 00:03:25,620 scrivendo i nomi delle colonne che delimitano ogni colonna da una virgola. 53 00:03:25,620 --> 00:03:28,620 Ad esempio, supponiamo solo recuperare il CakeId e CakeType nella tabella cupcake_cupboard. 54 00:03:28,620 --> 00:03:38,370 La sintassi per farlo è: SELECT virgola spazio CakeID 55 00:03:38,370 --> 00:03:44,370 Spazio CakeType dal nostro tavolo, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Andiamo avanti ed eseguire questa. 57 00:03:49,340 --> 00:03:52,670 E qui, ora solo le due colonne che specificate 58 00:03:52,670 --> 00:03:54,670 per ogni cupcake nel nostro armadio. 59 00:03:54,670 --> 00:03:57,710 Possiamo anche migliorare i nostri risultati della query specificando 60 00:03:57,710 --> 00:04:00,910 la clausola di "Dove" subito dopo il nome della tabella. 61 00:04:02,000 --> 00:04:05,410 Per esempio, sembra che vi sia un cupcake nel nostro armadio 62 00:04:05,410 --> 00:04:08,660 che è, beh, non così bello guardare. 63 00:04:08,660 --> 00:04:13,950 Cerchiamo di capire tutti i bigné nel nostro armadio che sono, beh, non così bello guardare 64 00:04:13,950 --> 00:04:16,110 utilizzando la clausola "Dove". 65 00:04:16,110 --> 00:04:26,390 La sintassi per farlo è: SELECT * spazio spazio da cupcake_cupboard spazio 66 00:04:26,390 --> 00:04:34,080 spazio in cui lo spazio la nostra colonna condizionale, in questo caso CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 e il valore booleano false. 68 00:04:36,900 --> 00:04:42,750 E 'importante notare che se si utilizza stringhe, è necessario racchiuderlo tra virgolette singole. 69 00:04:42,750 --> 00:04:49,620 Questo è vero per tutte le stringhe in SQL, o, in termini di database SQL, variante di caratteri 70 00:04:49,620 --> 00:04:51,620 noto come Varchar tipo di dati. 71 00:04:51,620 --> 00:04:57,660 In questo caso, stiamo usando Vero o falso, che è un valore booleano e non una stringa. 72 00:04:59,120 --> 00:05:00,660 Andiamo avanti ed eseguire questo comando. 73 00:05:00,660 --> 00:05:05,340 >> Ed ecco, è il caso che abbiamo 1 cioccolato 74 00:05:05,340 --> 00:05:07,920 non così bello Cupcake nel nostro armadio. 75 00:05:09,620 --> 00:05:11,460 Avanti, andiamo a scrivere una dichiarazione di inserimento. 76 00:05:11,460 --> 00:05:15,560 Inserisci dichiarazioni vengono utilizzate per inserire o aggiungere 77 00:05:15,560 --> 00:05:17,770 righe di dati nella vostra tabella di database. 78 00:05:17,770 --> 00:05:23,160 Rivisitare il nostro scenario, supponiamo che abbiamo appena fatto un cupcake nuovo di zecca. 79 00:05:25,910 --> 00:05:30,080 Dal momento che sono molto organizzati mangiatori Cupcake, stiamo andando ad avere per inserire questo nuovo Cupcake 80 00:05:30,080 --> 00:05:32,330 nella nostra tabella cupcake_cupboard. 81 00:05:32,330 --> 00:05:40,690 La sintassi per farlo è questo: Inserire uno spazio nello spazio il nostro tavolo, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, spazio (, 83 00:05:46,830 --> 00:05:51,060 e qui si specificare i nomi delle colonne, delimitato da una virgola, 84 00:05:51,060 --> 00:05:59,790 CakeType virgola CakeColor virgola CakeIsNice) spazio. 85 00:05:59,790 --> 00:06:06,540 A seguito di questo, scriviamo la parola spazio VALUES (e qui 86 00:06:06,540 --> 00:06:12,170 entriamo il valore per ogni colonna, rispettivamente, anche delimitato da una virgola. 87 00:06:12,170 --> 00:06:17,830 Sola offerta, perché sono tutti i valori Varchar noi li circondano in virgolette singole, 88 00:06:17,830 --> 00:06:26,780 Virgola 'comma' BURRO DI ARACHIDI MARRONE CHIARO 'vero. 89 00:06:26,780 --> 00:06:30,480 Ora, è importante per dare ad ogni riga un numero univoco per identificare se stesso. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing una colonna fornisce questo come 91 00:06:33,660 --> 00:06:37,410  "Non ci sono due gli stessi ID potrà mai esistere in questa tabella." 92 00:06:37,410 --> 00:06:39,480 Andiamo avanti ed eseguire. 93 00:06:39,480 --> 00:06:45,380 Ci andiamo, tutto organizzato. 94 00:06:49,720 --> 00:06:52,100 >> L'istruzione successiva SQL che scriveremo è una dichiarazione di aggiornamento. 95 00:06:52,100 --> 00:06:55,650 L'istruzione di aggiornamento può essere utilizzato per modificare i dati all'interno di una colonna 96 00:06:55,650 --> 00:06:58,440 per ogni riga esistente nella tabella di database. 97 00:06:59,670 --> 00:07:03,420 All'inizio del nostro scenario, con una istruzione select, abbiamo identificato un cupcake 98 00:07:03,420 --> 00:07:08,300 nel nostro tavolo cupcake_cupboard il cui valore CakeIsNice era falsa. 99 00:07:08,300 --> 00:07:12,050 Supponiamo che, mentre il nostro Cupcake burro di arachidi era nel forno, 100 00:07:12,050 --> 00:07:15,790 abbiamo fatto il nostro Cupcake non-così-bello molto bello. 101 00:07:18,020 --> 00:07:22,240 Essendo così eccezionalmente organizzato, vogliamo che il nostro Cupcake per riflettere tale valore 102 00:07:22,240 --> 00:07:24,240 nella nostra tabella cupcake_cupboard. 103 00:07:24,240 --> 00:07:28,710 Pertanto, cerchiamo di aggiornare il nostro Cupcake cioccolato nella base di dati di conseguenza. 104 00:07:28,710 --> 00:07:39,720 La sintassi è la seguente: lo spazio UPDATE nostro tavolo, cupcake_cupboard, SET spazio spazio 105 00:07:39,720 --> 00:07:44,240 la colonna che si desidera modificare, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Allora qui abbiamo posto il nostro nuovo spazio vero valore. 107 00:07:49,210 --> 00:07:54,290 Ora, perché non si desidera aggiornare tutte le righe con questo valore, 108 00:07:54,290 --> 00:07:57,400 vogliamo fornire una clausola di "Dove" che ci individuare 109 00:07:57,400 --> 00:07:59,830 alla riga esatta che si desidera modificare. 110 00:07:59,830 --> 00:08:03,690 In questo caso, sappiamo che vi è una sola Cupcake 111 00:08:03,690 --> 00:08:06,670 che ha un valore CakeIsNice di False. 112 00:08:06,670 --> 00:08:11,030 Inoltre, ci sarà anche garantire che si sta aggiornando la riga corretta 113 00:08:11,030 --> 00:08:13,030 utilizzando la "E" clausola. 114 00:08:14,340 --> 00:08:17,270 Usiamo la "E" clausola di perfezionare ulteriormente la nostra query. 115 00:08:17,270 --> 00:08:20,380 In questo caso, perché sappiamo che il cupcake è il cioccolato, 116 00:08:20,380 --> 00:08:23,160 useremo questa colonna CakeType. 117 00:08:23,160 --> 00:08:31,500 Dove lo spazio spazio spazio condizionato la nostra colonna CakeIsNice = False, 118 00:08:31,500 --> 00:08:38,330 e lo spazio CakeType 'CHOCOLATE.' = 119 00:08:38,330 --> 00:08:41,880 Così, mettendo tutto insieme, questa dichiarazione di aggiornamento dice 120 00:08:41,880 --> 00:08:44,670 trovare tutte le cupcakes nel nostro armadio Cupcake, 121 00:08:44,670 --> 00:08:50,520 e se c'è un cupcake cui CakeIsNice colonna contiene il valore False 122 00:08:50,520 --> 00:08:54,130 CakeType e contiene il valore CIOCCOLATO, 123 00:08:54,130 --> 00:08:58,240 vogliamo aggiornare la specifica CakeIsNice righe il valore su true. 124 00:08:58,240 --> 00:09:01,140 Quindi, andiamo avanti ed eseguire l'istruzione. 125 00:09:03,860 --> 00:09:05,860 E ora, siamo organizzati. 126 00:09:06,650 --> 00:09:09,220 >> Tutto questo parlare di dolci mi ha fatto un po 'di fame. 127 00:09:09,220 --> 00:09:11,360 Penso che dovrei farne a meno a uno. 128 00:09:11,360 --> 00:09:17,670 Ma se io in realtà mangiare questa Cupcake, vorrei almeno rimuovere anche la sua esistenza 129 00:09:17,670 --> 00:09:19,670  dal nostro tavolo cupcake_cupboard. 130 00:09:20,650 --> 00:09:22,590 Per fare questo, si utilizza l'istruzione "Cancella". 131 00:09:22,590 --> 00:09:27,400 L'affermazione "Delete" può essere usato per rimuovere tutte o alcune righe della tabella. 132 00:09:27,400 --> 00:09:29,920 Se si desidera rimuovere alcuni riga specifica della tabella, 133 00:09:29,920 --> 00:09:34,360 allora è necessario fornire una clausola di "Dove", specificando quindi una colonna 134 00:09:34,360 --> 00:09:37,660 che deve essere univoco per la riga che si desidera rimuovere. 135 00:09:37,660 --> 00:09:47,370 Questa è la sintassi: DELETE spazio dallo spazio il nostro tavolo, cupcake_cupboard, spazio. 136 00:09:47,370 --> 00:09:51,760 Ora, a questo punto, ogni volta che siete a questo punto nella vostra dichiarazione delete 137 00:09:51,760 --> 00:09:54,240 si vuole essere molto attenti. 138 00:09:54,240 --> 00:09:59,970 Per esempio, se voglio eseguire questa query è senza fornire qualche clausola di "Dove" 139 00:09:59,970 --> 00:10:04,500 Avrei perso tutti i dati in questa tabella cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 ma perché so già che i miei ID torta sono unici, userò 141 00:10:09,590 --> 00:10:12,410 Red Velvet cake ID per il mio clausola di "Dove". 142 00:10:14,550 --> 00:10:20,670 In cui lo spazio la nostra colonna, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Poiché si tratta di un valore intero non c'è bisogno di circondarla tra apici. 144 00:10:25,010 --> 00:10:27,020 Quindi, cerchiamo di eseguire l'istruzione. 145 00:10:33,560 --> 00:10:35,990 Bene, ora che abbiamo cancellato l'esistenza di questo Cupcake 146 00:10:35,990 --> 00:10:40,360 dal nostro tavolo cupcake_cupboard, abbiamo solo una cosa di sinistra: 147 00:10:41,680 --> 00:10:43,680 Fai sparire. 148 00:10:43,680 --> 00:10:46,990 Sono Christopher Bartolomeo. Questo è CS50.