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] [Universitatea Harvard] 3 00:00:04,000 --> 00:00:06,000 [Acesta este CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Deci, programatorii folosesc baze de date ca un instrument pentru a stoca și organiza 5 00:00:11,620 --> 00:00:13,620 datele noastre persistente în tabele. 6 00:00:13,620 --> 00:00:18,960 Acest lucru înseamnă că datele sunt stocate pe non-volatile, cum ar fi mediane un hard-disk, 7 00:00:18,960 --> 00:00:22,940 și chiar și atunci când calculatorul este oprit, datele sunt încă intacte. 8 00:00:22,940 --> 00:00:29,530 Și, ca programatori, programele noastre de a utiliza baze de date pentru scenarii, cum ar fi stocarea 9 00:00:29,530 --> 00:00:32,890 informațiilor de utilizator de la formularele de pe web, uita în sus inventar, 10 00:00:32,890 --> 00:00:36,210 sau actualizarea informațiilor despre ceea ce site-uri de afișare. 11 00:00:37,150 --> 00:00:40,070 Dar cum putem interactiona efectiv cu baza noastră de date, 12 00:00:40,070 --> 00:00:43,150 sau ceea ce ne folosesc pentru a citi, stoca, șterge, 13 00:00:43,150 --> 00:00:46,070 și să actualizeze datele noastre în aceste tabele de bază de date? 14 00:00:47,280 --> 00:00:49,700 Ei bine, răspunsul este că noi folosim un tip special de limbaj de baze de date 15 00:00:49,700 --> 00:00:53,400 care interacționează direct cu tabele de baza noastră de date. 16 00:00:53,400 --> 00:00:56,740 Numele lui este structurată Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 sau ce mă refer în continuare SQL. 19 00:01:00,740 --> 00:01:05,100 >> Acum, [Se-Quel], sau SQL, nu este un limbaj de programare, 20 00:01:05,100 --> 00:01:08,580 dar în schimb, este un limbaj care oferă un set standard de comenzi 21 00:01:08,580 --> 00:01:13,520 pentru a prelua și a manipula datele dintr-o varietate de sisteme de management de baze de date. 22 00:01:13,520 --> 00:01:17,630 În scopul de a CS50, vom trece peste patru comenzi de bază: 23 00:01:17,630 --> 00:01:21,210 selectați, insera, actualiza și șterge. 24 00:01:21,210 --> 00:01:26,230 În plus, vom utiliza o interfata web de baze de date numit phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 care a instalat pe aparat pentru a scrie declarațiile noastre SQL. 26 00:01:30,830 --> 00:01:33,050 Deci, pentru a ajuta să vă amintiți aceste comenzi, 27 00:01:33,050 --> 00:01:37,080 Am adus niște prăjiturele într-un dulap pentru a ajuta cu scenarii noastre. 28 00:01:39,650 --> 00:01:42,210 Să presupunem că aveți o prajitura baza de date a lui, 29 00:01:42,210 --> 00:01:44,490 în cazul în care se stochează toate informațiile despre prajiturele ta. 30 00:01:44,490 --> 00:01:48,220 Acum, baze de date pot conține multe tabele 31 00:01:48,220 --> 00:01:50,950 și tabelele în sine poate conține mai multe coloane. 32 00:01:50,950 --> 00:01:57,020 În interiorul bazei de date cupcake noastre, avem un tabel numit cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Acest tabel va fi utilizat pentru a stoca toate informațiile despre prajiturele 34 00:02:00,500 --> 00:02:02,990 care sunt, de asemenea, în dulap. 35 00:02:02,990 --> 00:02:07,770 Coloanele care sunt în interiorul tabelului reprezintă atributele o prajitura. 36 00:02:07,770 --> 00:02:14,560 De exemplu, coloanele cupcake_cupboard sunt 37 00:02:14,560 --> 00:02:15,920 ID-ul de tort, CakeType, CakeColor, și CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Această coloană Boolean-tastat este folosit pentru a determina dacă este tort frumos sau nu frumos. 39 00:02:23,040 --> 00:02:26,560 Vom începe cu scrierea o declarație de selectare. 40 00:02:26,560 --> 00:02:32,160 Selectați declarații sunt utilizate pentru a regăsi date dintr-un tabel de bază de date special. 41 00:02:32,160 --> 00:02:34,890 În acest scenariu, vrem să știm totul 42 00:02:34,890 --> 00:02:39,080 despre toate cupcakes că există în dulap nostru. 43 00:02:39,080 --> 00:02:48,670 Sintaxa de a face acest lucru este "Select" stea spațiu, sau *, spațiu de spațiu de masa noastră, 44 00:02:48,670 --> 00:02:52,050 care este cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Să mergem mai departe și să execute. 46 00:02:56,670 --> 00:03:00,140 >> După cum putem vedea, toate acestea sunt prăjiturile în dulap nostru. 47 00:03:00,140 --> 00:03:05,110 Este important să rețineți că *, sau asterisc, este un personaj wild card 48 00:03:05,110 --> 00:03:08,830 denotă faptul că adunarea tuturor coloanelor unor tabel. 49 00:03:08,830 --> 00:03:13,650 În mod normal, putem accesa o anumită coloană sau coloanele 50 00:03:13,650 --> 00:03:16,950 prin înlocuirea * cu numele de coloană real. 51 00:03:16,950 --> 00:03:21,220 Dacă vrem mai multe coloane, dar nu toate, putem realiza acest lucru 52 00:03:21,220 --> 00:03:25,620 scriind numele coloanelor care delimitează fiecare coloană printr-o virgulă. 53 00:03:25,620 --> 00:03:28,620 De exemplu, să preluați numai CakeId și CakeType în tabelul cupcake_cupboard. 54 00:03:28,620 --> 00:03:38,370 Sintaxa de a face acest lucru este: SELECT spațiu virgulă CakeID 55 00:03:38,370 --> 00:03:44,370 Spațiul CakeType din tabelul nostru, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Să mergem mai departe și să execute acest lucru. 57 00:03:49,340 --> 00:03:52,670 Și aici, acum avem doar două coloane am specificat 58 00:03:52,670 --> 00:03:54,670 pentru fiecare cupcake în dulap nostru. 59 00:03:54,670 --> 00:03:57,710 Noi, de asemenea, să redefiniți rezultatele noastre de interogare prin specificarea 60 00:03:57,710 --> 00:04:00,910 "În cazul în care" clauza imediat după numele tabelului. 61 00:04:02,000 --> 00:04:05,410 De exemplu, se pare că există o prăjitură în dulap nostru 62 00:04:05,410 --> 00:04:08,660 care este, ei bine, nu, atât de frumos cautati. 63 00:04:08,660 --> 00:04:13,950 Să dau seama tot prajiturele în dulap, care sunt, ei bine, nu, atât de frumos în căutarea 64 00:04:13,950 --> 00:04:16,110 folosind "În cazul în care" clauza. 65 00:04:16,110 --> 00:04:26,390 Sintaxa de a face acest lucru este: SELECT * spatiu spatiu spatiu DIN cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 spațiu în care spațiul nostru coloana condiționată, în acest caz CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 și valoarea booleană Fals. 68 00:04:36,900 --> 00:04:42,750 Este important să rețineți că, dacă sunt utilizați șiruri, trebuie să-l includeți în ghilimele simple. 69 00:04:42,750 --> 00:04:49,620 Acest lucru este valabil pentru toate siruri de caractere în SQL, sau, în termeni de baze de date SQL, varianta de caractere 70 00:04:49,620 --> 00:04:51,620 cunoscut sub numele de tip de date VARCHAR. 71 00:04:51,620 --> 00:04:57,660 În acest caz, vom folosi Adevarat sau Fals, care este o valoare boolean, și nu un șir. 72 00:04:59,120 --> 00:05:00,660 Să mergem mai departe și să executați această comandă. 73 00:05:00,660 --> 00:05:05,340 >> Lo și iată, acesta este cazul în care avem o ciocolată 74 00:05:05,340 --> 00:05:07,920 Nu atât de frumos prăjitură în dulap nostru. 75 00:05:09,620 --> 00:05:11,460 În continuare, vom scrie o declarație de inserare. 76 00:05:11,460 --> 00:05:15,560 Situațiile Inserare sunt folosite pentru a insera sau adăuga 77 00:05:15,560 --> 00:05:17,770 rânduri suplimentare de date în tabel baza de date. 78 00:05:17,770 --> 00:05:23,160 Revizitarea scenariul nostru, să presupunem că am făcut doar o prăjitură de brand nou. 79 00:05:25,910 --> 00:05:30,080 Din moment ce sunt organizate foarte mancatorii de cupcake, vom avea de a insera acest Cupcake nouă 80 00:05:30,080 --> 00:05:32,330 în tabelul nostru cupcake_cupboard. 81 00:05:32,330 --> 00:05:40,690 Sintaxa de a face acest lucru este aceasta: Introduceți spațiu în spațiu masa noastră, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, spațiu (, 83 00:05:46,830 --> 00:05:51,060 și aici vom specifica numele coloanelor, delimitată de o virgulă, 84 00:05:51,060 --> 00:05:59,790 CakeType virgulă CakeColor virgula CakeIsNice) spațiu. 85 00:05:59,790 --> 00:06:06,540 După aceasta, vom scrie cuvântul spațiul VALORI (și aici 86 00:06:06,540 --> 00:06:12,170 intrăm valoare pentru fiecare coloană, respectiv, de asemenea, delimitate prin virgulă. 87 00:06:12,170 --> 00:06:17,830 Citat unică, deoarece acestea sunt toate valorile VARCHAR le vom înconjoară în ghilimele simple, 88 00:06:17,830 --> 00:06:26,780 "Virgulă" unt de arahide de culoare brun deschis "virgulă Adevarat. 89 00:06:26,780 --> 00:06:30,480 Acum, este important pentru a da fiecare rând un număr unic pentru a se identifica. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing o coloană prevede acest lucru ca 91 00:06:33,660 --> 00:06:37,410  "Nu există două ID-urile de aceleași poate exista vreodată în acest tabel." 92 00:06:37,410 --> 00:06:39,480 Să mergem mai departe și să execute. 93 00:06:39,480 --> 00:06:45,380 Acolo vom merge, toate organizate. 94 00:06:49,720 --> 00:06:52,100 >> Următoare instrucțiune SQL care vom scrie este o declarație de actualizare. 95 00:06:52,100 --> 00:06:55,650 Declarația de actualizare poate fi folosit pentru a modifica datele în cadrul unei coloane 96 00:06:55,650 --> 00:06:58,440 pentru orice rând existent în tabelul de baza de date. 97 00:06:59,670 --> 00:07:03,420 Mai devreme, în scenariul nostru, folosind o instrucțiune SELECT, am identificat o prajitura 98 00:07:03,420 --> 00:07:08,300 în termen de masa cupcake_cupboard noastre a cărui valoare a fost de CakeIsNice Fals. 99 00:07:08,300 --> 00:07:12,050 Să presupunem că în timp ce prăjitură nostru unt de arahide a fost în cuptor, 100 00:07:12,050 --> 00:07:15,790 ne-am facut prajitura noastră nu-așa-frumos foarte frumos. 101 00:07:18,020 --> 00:07:22,240 Fiind atât de excepțional organizat, vrem prăjitură, pentru a reflecta această valoare 102 00:07:22,240 --> 00:07:24,240 în tabelul nostru cupcake_cupboard. 103 00:07:24,240 --> 00:07:28,710 De aceea, haideți să actualizeze prăjitură de ciocolată noastre în baza de date pentru a reflecta acest lucru. 104 00:07:28,710 --> 00:07:39,720 Sintaxa este: spațiul UPDATE masa noastră, cupcake_cupboard, SET spatiu spatiu 105 00:07:39,720 --> 00:07:44,240 coloana pe care dorim să se schimbe, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Atunci aici ne punem spațiul nostru noua valoare Adevărat. 107 00:07:49,210 --> 00:07:54,290 Acum, pentru că nu vrem să actualizeze toate rândurile cu această valoare, 108 00:07:54,290 --> 00:07:57,400 dorim sa oferim o "În cazul în care" clauza care ne va indica 109 00:07:57,400 --> 00:07:59,830 la rândul exactă pe care ne-o dorim pentru a modifica. 110 00:07:59,830 --> 00:08:03,690 În acest caz, știm că există doar o singură Cupcake 111 00:08:03,690 --> 00:08:06,670 care are o valoare de CakeIsNice Fals. 112 00:08:06,670 --> 00:08:11,030 În plus, ne vom asigura, de asemenea, ca suntem actualizarea rândul corectă 113 00:08:11,030 --> 00:08:13,030 prin utilizarea "Și" clauză. 114 00:08:14,340 --> 00:08:17,270 Noi folosim "Și" clauză pentru a rafina interogare nostru mai departe. 115 00:08:17,270 --> 00:08:20,380 În acest caz, pentru că știm că cupcake este ciocolata, 116 00:08:20,380 --> 00:08:23,160 vom folosi această coloană CakeType. 117 00:08:23,160 --> 00:08:31,500 UNDE spațiul nostru condiționată coloana spațiu spațiu CakeIsNice = Fals, 118 00:08:31,500 --> 00:08:38,330 și spațiu CakeType = 'CHOCOLATE. " 119 00:08:38,330 --> 00:08:41,880 Deci, pune totul impreuna, această declarație actualizare spune 120 00:08:41,880 --> 00:08:44,670 găsi toate prăjiturile în dulap nostru Cupcake, 121 00:08:44,670 --> 00:08:50,520 și dacă există o prăjitură a cărei coloană CakeIsNice conține valoarea Fals 122 00:08:50,520 --> 00:08:54,130 și CakeType conține CIOCOLATA valoarea, 123 00:08:54,130 --> 00:08:58,240 vrem să actualizeze valoarea specifică rânduri CakeIsNice la True. 124 00:08:58,240 --> 00:09:01,140 Deci, hai să mergem mai departe și să execute declarația. 125 00:09:03,860 --> 00:09:05,860 Și acum, suntem organizat. 126 00:09:06,650 --> 00:09:09,220 >> Toate acestea vorbesc de prajiturele a făcut-mi un pic foame. 127 00:09:09,220 --> 00:09:11,360 Cred că ar trebui să mă ajute la unul. 128 00:09:11,360 --> 00:09:17,670 Dar dacă am mânca de fapt această prăjitură, ar trebui să elimine, de asemenea, cel puțin existența acestuia 129 00:09:17,670 --> 00:09:19,670  de la masa noastră cupcake_cupboard. 130 00:09:20,650 --> 00:09:22,590 Pentru a face acest lucru, vom folosi "Delete" declarație. 131 00:09:22,590 --> 00:09:27,400 "Delete", declarația poate fi utilizat pentru a elimina toate sau unele rândurile din tabel. 132 00:09:27,400 --> 00:09:29,920 Dacă doriți să eliminați unele anumit rând din tabel, 133 00:09:29,920 --> 00:09:34,360 atunci trebuie să furnizeze o "În cazul în care" clauză, specificând astfel o coloană 134 00:09:34,360 --> 00:09:37,660 care ar trebui să fie unic la rândul pe care doriți să le eliminați. 135 00:09:37,660 --> 00:09:47,370 Aceasta este sintaxa: DELETE FROM spațiul spațiul nostru de masă, cupcake_cupboard, spațiu. 136 00:09:47,370 --> 00:09:51,760 Acum, în acest moment, ori de câte ori sunt atât de departe în declarația dumneavoastră de ștergere 137 00:09:51,760 --> 00:09:54,240 vrei să fii foarte atent. 138 00:09:54,240 --> 00:09:59,970 De exemplu, dacă vreau să rulați acest interogare cum este, fără a oferi niște "În cazul în care" clauza de 139 00:09:59,970 --> 00:10:04,500 Mi-ar pierde toate datele din acest tabel cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 dar pentru că eu deja știu că ID-uri mele tort sunt unice, voi folosi 141 00:10:09,590 --> 00:10:12,410 Red Velvet tort ID-ul pentru a-mi "În cazul în care" clauză. 142 00:10:14,550 --> 00:10:20,670 UNDE spațiul nostru coloană, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Deoarece aceasta este o valoare întreagă nu este nevoie să-l înconjoare în ghilimele simple. 144 00:10:25,010 --> 00:10:27,020 Deci, haideți să execute declarația. 145 00:10:33,560 --> 00:10:35,990 Ei bine, acum că am șters existența acestui Cupcake 146 00:10:35,990 --> 00:10:40,360 de la masa cupcake_cupboard nostru, avem doar un singur lucru stânga: 147 00:10:41,680 --> 00:10:43,680 Face să dispară. 148 00:10:43,680 --> 00:10:46,990 Sunt Christopher Bartolomeu. Acest lucru este CS50.