1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [CHRISTOPHER Bartolomej] [Sveučilištu Harvard] 3 00:00:04,000 --> 00:00:06,000 [OVO JE CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Dakle, programeri koriste baze podataka kao alat za pohranu i organizirati 5 00:00:11,620 --> 00:00:13,620 naši uporni podataka unutar tablice. 6 00:00:13,620 --> 00:00:18,960 To znači da se vaši podaci pohranjeni na non-volatile medijani kao što su tvrdi disk, 7 00:00:18,960 --> 00:00:22,940 pa čak i kada je računalo isključeno, podaci se još uvijek netaknut. 8 00:00:22,940 --> 00:00:29,530 I, kao programera, naši programi koriste baze podataka za scenarije kao što su spremanje 9 00:00:29,530 --> 00:00:32,890 Korisnik informacija s web obrascima, gleda gore inventara, 10 00:00:32,890 --> 00:00:36,210 ili ažuriranje informacije o tome što stranice prikazati. 11 00:00:37,150 --> 00:00:40,070 No, kako smo zapravo u interakciji s naše baze podataka, 12 00:00:40,070 --> 00:00:43,150 ili ono što mi koristiti za čitanje, spremanje, brisanje, 13 00:00:43,150 --> 00:00:46,070 i ažurirati naše podatke u tim tablicama baze podataka? 14 00:00:47,280 --> 00:00:49,700 Pa, odgovor je da ćemo koristiti poseban tip baze jeziku 15 00:00:49,700 --> 00:00:53,400 koja komunicira izravno s našim tablicama baze podataka. 16 00:00:53,400 --> 00:00:56,740 To ime je strukturirani upitni jezik, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 ili ono što mislim da kao SQL. 19 00:01:00,740 --> 00:01:05,100 >> Sada, [Se-Quel], ili SQL, nije programski jezik, 20 00:01:05,100 --> 00:01:08,580 ali umjesto toga, to je jezik koji pruža standardni set naredbi 21 00:01:08,580 --> 00:01:13,520 dohvaćanje i manipulirati podacima iz različitih baza podataka sustava upravljanja. 22 00:01:13,520 --> 00:01:17,630 Za potrebe CS50, mi ćemo ići preko četiri osnovne naredbe: 23 00:01:17,630 --> 00:01:21,210 odaberite, umetanje, ažuriranje i brisanje. 24 00:01:21,210 --> 00:01:26,230 Nadalje, mi ćemo koristiti sučelje baze podataka pod nazivom phpMyAdmin web, 25 00:01:26,230 --> 00:01:29,890 koji instalirani na uređaju za pisanje naše SQL izjave. 26 00:01:30,830 --> 00:01:33,050 Dakle, kako bi vam pomoći da zapamtite ove naredbe, 27 00:01:33,050 --> 00:01:37,080 Donio sam neke kolače u ormar kako bi se pomoglo s našim scenarijima. 28 00:01:39,650 --> 00:01:42,210 Recimo da imate cupcake je baza podataka, 29 00:01:42,210 --> 00:01:44,490 gdje ćete pohraniti sve informacije o vašem cupcakes. 30 00:01:44,490 --> 00:01:48,220 Sada, baze podataka može sadržavati mnogo stolova 31 00:01:48,220 --> 00:01:50,950 i stolovi sami mogu sadržavati mnoge stupce. 32 00:01:50,950 --> 00:01:57,020 Unutar našeg Cupcake baze podataka, imamo tablicu pod nazivom cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Ovaj stol će se koristiti za pohranu sve informacije o cupcakes 34 00:02:00,500 --> 00:02:02,990 koji su, dobro, u svom ormaru. 35 00:02:02,990 --> 00:02:07,770 Stupovi koji su unutar vašeg tablici predstavljaju atribute cupcake. 36 00:02:07,770 --> 00:02:14,560 Na primjer, cupcake_cupboard je stupci 37 00:02:14,560 --> 00:02:15,920 Torta ID, CakeType, CakeColor i CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Ovo boolean-upisali stupac se koristi kako bi se utvrdilo je li kolač je lijepo ili nije lijepo. 39 00:02:23,040 --> 00:02:26,560 Mi ćemo početi s pisanjem odaberite izjavu. 40 00:02:26,560 --> 00:02:32,160 Odaberite izvještaji služe za dohvaćanje podataka o određenoj tablici baze podataka. 41 00:02:32,160 --> 00:02:34,890 U ovom scenariju, želimo znati sve 42 00:02:34,890 --> 00:02:39,080 o svim cupcakes koji postoje u našem ormaru. 43 00:02:39,080 --> 00:02:48,670 Sintaksa za to je "Select" prostor zvijezda, ili *, prostor iz svemira naš stol, 44 00:02:48,670 --> 00:02:52,050 što je cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Idemo naprijed i izvršiti to. 46 00:02:56,670 --> 00:03:00,140 >> Kao što možemo vidjeti, to su sve cupcakes u našem ormaru. 47 00:03:00,140 --> 00:03:05,110 Važno je napomenuti da se *, ili zvjezdicu, je džoker znakova 48 00:03:05,110 --> 00:03:08,830 koji označava okupljanje svih stupaca neke tablice. 49 00:03:08,830 --> 00:03:13,650 Normalno, možemo pristupiti određeni stupac ili stupce 50 00:03:13,650 --> 00:03:16,950 zamjenom * sa stvarnim ime stupca. 51 00:03:16,950 --> 00:03:21,220 Ako želimo više stupaca, ali ne i sve, možemo postići 52 00:03:21,220 --> 00:03:25,620 prema pisanju nazive stupaca razgraničavanja svaki stupac zarezom. 53 00:03:25,620 --> 00:03:28,620 Na primjer, neka je samo dohvatiti CakeId i CakeType u cupcake_cupboard tablici. 54 00:03:28,620 --> 00:03:38,370 Sintaksa za to je: SELECT prostor CakeID zarezom 55 00:03:38,370 --> 00:03:44,370 CakeType prostor od našeg stola, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Idemo naprijed i izvršiti to. 57 00:03:49,340 --> 00:03:52,670 I ovdje, sada imaju samo dvije kolone smo naveli 58 00:03:52,670 --> 00:03:54,670 za svaki cupcake u našem ormaru. 59 00:03:54,670 --> 00:03:57,710 Mi također može poboljšati naše rezultate upita određivanjem 60 00:03:57,710 --> 00:04:00,910 "Gdje" klauzulu neposredno nakon naziva tablice. 61 00:04:02,000 --> 00:04:05,410 Na primjer, čini se da cupcake u našem ormaru 62 00:04:05,410 --> 00:04:08,660 da je, dobro, ne tako lijepo izgleda. 63 00:04:08,660 --> 00:04:13,950 Ajmo shvatiti sve kolače u našem ormariću koji su, dobro, ne tako lijepo izgleda 64 00:04:13,950 --> 00:04:16,110 pomoću "Gdje" klauzulu. 65 00:04:16,110 --> 00:04:26,390 Sintaksa za to je: SELECT * prostor prostor iz svemira cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 Prostor gdje je prostor naše uvjetno stupac, u ovom slučaju CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 i boolean vrijednost False. 68 00:04:36,900 --> 00:04:42,750 Važno je napomenuti da ako koristite žice, morate stavite ga u jednostrukim navodnicima. 69 00:04:42,750 --> 00:04:49,620 To vrijedi za sve žice u SQL, ili, u SQL bazi podataka smislu, varijanta znakova 70 00:04:49,620 --> 00:04:51,620 poznat kao varchar datatype. 71 00:04:51,620 --> 00:04:57,660 U ovom slučaju, mi smo pomoću True ili False, što je boolean vrijednost, a ne niz. 72 00:04:59,120 --> 00:05:00,660 Idemo naprijed i izvršiti ovu naredbu. 73 00:05:00,660 --> 00:05:05,340 >> Evo i gle, to je slučaj da imamo jednog čokoladu 74 00:05:05,340 --> 00:05:07,920 Ne tako lijepo cupcake u našem ormaru. 75 00:05:09,620 --> 00:05:11,460 Dalje, idemo napisati umetanje izjavu. 76 00:05:11,460 --> 00:05:15,560 Umetni izvještaji se koriste za umetanje ili dodati 77 00:05:15,560 --> 00:05:17,770 dodatni redovi podataka u bazu podataka tablice. 78 00:05:17,770 --> 00:05:23,160 Preispitivanje naš scenarij, pretpostavimo da smo upravo napravili novi cupcake. 79 00:05:25,910 --> 00:05:30,080 Budući da smo vrlo organizirana Cupcake eaters, mi smo idući u morati umetnuti ovaj novi cupcake 80 00:05:30,080 --> 00:05:32,330 u našoj cupcake_cupboard tablici. 81 00:05:32,330 --> 00:05:40,690 Sintaksa za to je ovo: Umetnite prostor u svemir naš stol, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, prostor (, 83 00:05:46,830 --> 00:05:51,060 i ovdje smo naveli kolumne imena, omeđena zarez, 84 00:05:51,060 --> 00:05:59,790 CakeType zarez CakeColor zarez CakeIsNice) prostor. 85 00:05:59,790 --> 00:06:06,540 Nakon toga, pišemo prostor riječi vrijednosti (i ovdje 86 00:06:06,540 --> 00:06:12,170 ulazimo vrijednost za svaki stupac, odnosno, također omeđena zarez. 87 00:06:12,170 --> 00:06:17,830 Jedan citat, jer su svi VARCHAR vrijednosti ćemo ih okružuju u jednostruke navodnike, 88 00:06:17,830 --> 00:06:26,780 Maslac od kikirikija 'Zarez' svjetlo smeđe 'zarez Istina. 89 00:06:26,780 --> 00:06:30,480 Sada, važno je da svaki redak jedinstveni broj za identifikaciju sebe. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing stupac daje ovo kao 91 00:06:33,660 --> 00:06:37,410  "Ne postoje dvije iste ID ikad može postojati u ovoj tablici." 92 00:06:37,410 --> 00:06:39,480 Idemo naprijed i izvršiti. 93 00:06:39,480 --> 00:06:45,380 Tu idemo, sve organizirano. 94 00:06:49,720 --> 00:06:52,100 >> Sljedeći SQL da ćemo upisati ažuriranje podataka. 95 00:06:52,100 --> 00:06:55,650 Ažuriranje podataka se može koristiti za modificiranje podataka u stupcu 96 00:06:55,650 --> 00:06:58,440 za bilo koji postojeći red u svojoj bazi podataka tablice. 97 00:06:59,670 --> 00:07:03,420 Ranije u našem scenariju, koristite odaberite izjavu, identificirali smo cupcake 98 00:07:03,420 --> 00:07:08,300 unutar našeg cupcake_cupboard stolu čija je vrijednost bila CakeIsNice Netočno. 99 00:07:08,300 --> 00:07:12,050 Pretpostavimo da je, dok je naša kikiriki maslac cupcake je u pećnici, 100 00:07:12,050 --> 00:07:15,790 smo napravili naš ne-tako-lijepa cupcake jako lijepo. 101 00:07:18,020 --> 00:07:22,240 Budući da je tako iznimno organizirana, želimo naš cupcake bi odražavala ovu vrijednost 102 00:07:22,240 --> 00:07:24,240 u našoj cupcake_cupboard tablici. 103 00:07:24,240 --> 00:07:28,710 Stoga, neka je ažurirati naš čokolade cupcake u bazi podataka, da bi odražavala to. 104 00:07:28,710 --> 00:07:39,720 Sintaksa je: UPDATE prostor naš stol, cupcake_cupboard, prostor SET prostor 105 00:07:39,720 --> 00:07:44,240 stupac koji želimo promijeniti, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Onda ovdje stavimo našu novu vrijednost True prostor. 107 00:07:49,210 --> 00:07:54,290 Sada, jer ne želimo da ažuriraju sve retke s tom vrijednosti, 108 00:07:54,290 --> 00:07:57,400 želimo pružiti "gdje" klauzulu koja će nas uoče 109 00:07:57,400 --> 00:07:59,830 za točan red da želimo mijenjati. 110 00:07:59,830 --> 00:08:03,690 U ovom slučaju, znamo da postoji samo jedan cupcake 111 00:08:03,690 --> 00:08:06,670 koji ima CakeIsNice vrijednost False. 112 00:08:06,670 --> 00:08:11,030 Nadalje, također ćemo osigurati da se mi ažuriranja ispravan red 113 00:08:11,030 --> 00:08:13,030 pomoću "i" klauzulu. 114 00:08:14,340 --> 00:08:17,270 Mi koristimo "i" klauzulu poboljšati naš upit dalje. 115 00:08:17,270 --> 00:08:20,380 U ovom slučaju, jer znamo da je čokolada cupcake, 116 00:08:20,380 --> 00:08:23,160 ćemo koristiti ovaj CakeType kolumnu. 117 00:08:23,160 --> 00:08:31,500 GDJE prostor naša uvjetna stupac prostor CakeIsNice prostor = False, 118 00:08:31,500 --> 00:08:38,330 i prostor CakeType = 'ČOKOLADA'. 119 00:08:38,330 --> 00:08:41,880 Dakle, stavljajući ga svi zajedno, ovo ažuriranje podataka kaže 120 00:08:41,880 --> 00:08:44,670 pronaći sve kolače u našem cupcake ormariću, 121 00:08:44,670 --> 00:08:50,520 i ako postoji cupcake čiji stupac CakeIsNice sadrži vrijednost False 122 00:08:50,520 --> 00:08:54,130 i CakeType sadrži vrijednost čokolade, 123 00:08:54,130 --> 00:08:58,240 želimo ažurirati određenu redaka CakeIsNice vrijednost True. 124 00:08:58,240 --> 00:09:01,140 Dakle, idemo naprijed i izvršiti izjavu. 125 00:09:03,860 --> 00:09:05,860 I sada, mi smo organizirali. 126 00:09:06,650 --> 00:09:09,220 >> Sve to govori o cupcakes je napravio mene malo gladan. 127 00:09:09,220 --> 00:09:11,360 Mislim da bi trebao pomoći sebi na jedan. 128 00:09:11,360 --> 00:09:17,670 Ali, ako sam zapravo jesti ovu cupcake, ja bi trebao barem također ukloniti svoje postojanje 129 00:09:17,670 --> 00:09:19,670  iz naše cupcake_cupboard tablici. 130 00:09:20,650 --> 00:09:22,590 Da biste to učinili, mi ćemo koristiti "Delete" izjavu. 131 00:09:22,590 --> 00:09:27,400 "Delete" izjava se može koristiti za uklanjanje svih ili nekih redaka iz tablice. 132 00:09:27,400 --> 00:09:29,920 Ako želite ukloniti neke specifične redak iz tablice, 133 00:09:29,920 --> 00:09:34,360 onda morate dati "gdje" klauzulu, čime se određuje stupac 134 00:09:34,360 --> 00:09:37,660 koji bi trebao biti jedinstven u nizu koji želite ukloniti. 135 00:09:37,660 --> 00:09:47,370 Ovo je sintaksa: DELETE prostor iz svemira naš stol, cupcake_cupboard, prostor. 136 00:09:47,370 --> 00:09:51,760 Sada, u ovom trenutku, kad god su ovako daleko u svom priopćenju za brisanje 137 00:09:51,760 --> 00:09:54,240 Želite li biti vrlo oprezni. 138 00:09:54,240 --> 00:09:59,970 Na primjer, ako želim pokrenuti ovaj upit što je bez pružanja neke "gdje" klauzulu 139 00:09:59,970 --> 00:10:04,500 Ja bih izgubiti sve podatke u ovoj tablici cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 ali zato ja već znam da mi torta iskaznice su jedinstveni, ja ću koristiti 141 00:10:09,590 --> 00:10:12,410 Red Velvet torta ID za moje "gdje" klauzulu. 142 00:10:14,550 --> 00:10:20,670 GDJE prostor naš stup, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Budući da je ovo cjelobrojna vrijednost nema potrebe da ga okružuju u jednostrukim navodnicima. 144 00:10:25,010 --> 00:10:27,020 Dakle, neka je izvršiti izjavu. 145 00:10:33,560 --> 00:10:35,990 Pa, sad kad smo izbrisala postojanje ovog cupcake 146 00:10:35,990 --> 00:10:40,360 iz naše cupcake_cupboard tablici, imamo samo jednu stvar lijevo: 147 00:10:41,680 --> 00:10:43,680 Učinite to nestati. 148 00:10:43,680 --> 00:10:46,990 Ja sam Christopher Bartula. Ovo je CS50.