1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [CHRISTOPHER Bartholomew] [Harvardin yliopisto] 3 00:00:04,000 --> 00:00:06,000 [Tämä on CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Joten, ohjelmoijat käyttävät tietokantoja välineenä tallentaa ja järjestää 5 00:00:11,620 --> 00:00:13,620 Pitkäjänteisen tietoja sisällä taulukoita. 6 00:00:13,620 --> 00:00:18,960 Tämä tarkoittaa, että tiedot on tallennettu haihtumattomaan mediaanit kuten kiintolevyn, 7 00:00:18,960 --> 00:00:22,940 ja vaikka tietokone on pois päältä, data on vielä ehjä. 8 00:00:22,940 --> 00:00:29,530 Ja kuten ohjelmoijat, meidän ohjelmat käyttävät tietokantoihin skenaarioita kuten varastointi 9 00:00:29,530 --> 00:00:32,890 käyttäjän tietoja verkkolomakkeita, katsellen ylös inventaario, 10 00:00:32,890 --> 00:00:36,210 tai päivittäminen tietoa siitä, mitä sivustoja näkyviin. 11 00:00:37,150 --> 00:00:40,070 Mutta miten me oikeastaan ​​vuorovaikutuksessa meidän tietokantaan, 12 00:00:40,070 --> 00:00:43,150 vai mitä käytämme lukea, tallentaa, poistaa, 13 00:00:43,150 --> 00:00:46,070 ja päivittää tietomme näiden taulujen? 14 00:00:47,280 --> 00:00:49,700 No, vastaus on, että käytämme erityinen tietokanta kieli 15 00:00:49,700 --> 00:00:53,400 joka vaikuttaa suoraan meidän tietokantataulukoihin. 16 00:00:53,400 --> 00:00:56,740 Se nimi on Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 tai mitä nimitystä SQL. 19 00:01:00,740 --> 00:01:05,100 >> Nyt, [SE-quel] tai SQL, ei ohjelmointikieli, 20 00:01:05,100 --> 00:01:08,580 vaan se on kieli, joka tarjoaa standardin sarja komentoja 21 00:01:08,580 --> 00:01:13,520 hakea ja käsitellä tietoja useista tietokannan hallintajärjestelmiä. 22 00:01:13,520 --> 00:01:17,630 Varten CS50, menemme yli neljä peruskomennot: 23 00:01:17,630 --> 00:01:21,210 Valitse, lisätä, päivittää ja poistaa. 24 00:01:21,210 --> 00:01:26,230 Lisäksi me hyödyntää tietokannan web-käyttöliittymä nimeltään phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 joka asennetaan laitteen kirjoittaa SQL-lauseet. 26 00:01:30,830 --> 00:01:33,050 Joten auttaa muistamaan näitä komentoja, 27 00:01:33,050 --> 00:01:37,080 Olen tuonut joitakin cupcakes kaapissa avustamaan meidän skenaarioita. 28 00:01:39,650 --> 00:01:42,210 Sano olet cupcake tietokantaan, 29 00:01:42,210 --> 00:01:44,490 jonne tallennetaan kaikki tietoja cupcakes. 30 00:01:44,490 --> 00:01:48,220 Nyt, tietokannat voivat sisältää useita taulukoita 31 00:01:48,220 --> 00:01:50,950 ja taulukot itse voi sisältää useita sarakkeita. 32 00:01:50,950 --> 00:01:57,020 Sisällä cupcake: n tietokantaan, meillä on taulukko nimeltään cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Tämä taulukko voidaan tallentaa kaikki tiedot cupcakes 34 00:02:00,500 --> 00:02:02,990 jotka ovat hyvin, kaapissa. 35 00:02:02,990 --> 00:02:07,770 Sarakkeet ovat sisällä pöydän edustavat ominaisuuksia cupcake. 36 00:02:07,770 --> 00:02:14,560 Esimerkiksi cupcake_cupboard: n sarakkeet ovat 37 00:02:14,560 --> 00:02:15,920 Kakku ID, CakeType, CakeColor, ja CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Tämä boolean-kirjoitetaan sarake käytetään määrittämään, jos kakku on mukavaa vai ei kiva. 39 00:02:23,040 --> 00:02:26,560 Aiomme aloittaa kirjoittaminen SELECT. 40 00:02:26,560 --> 00:02:32,160 Valitse lausuntoja käytetään hakea tietoja tietyn tietokannan taulukon. 41 00:02:32,160 --> 00:02:34,890 Tässä skenaariossa haluamme tietää kaiken 42 00:02:34,890 --> 00:02:39,080 kaikista cupcakes että olemassa meidän kaapissa. 43 00:02:39,080 --> 00:02:48,670 Syntaksi tehdä tämä on "Valitse" Space Star, tai *, tilaa avaruudesta meidän pöytä, 44 00:02:48,670 --> 00:02:52,050 joka on cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Mennään eteenpäin ja toteuttaa se. 46 00:02:56,670 --> 00:03:00,140 >> Kuten näemme, nämä ovat kaikki cupcakes meidän kaapissa. 47 00:03:00,140 --> 00:03:05,110 On tärkeää huomata, että * tai tähti, on villi kortti merkki 48 00:03:05,110 --> 00:03:08,830 että tarkoittaa kokoamalla kaikki sarakkeet joidenkin taulukossa. 49 00:03:08,830 --> 00:03:13,650 Normaalisti voimme käyttää tietyn sarakkeen tai sarakkeiden 50 00:03:13,650 --> 00:03:16,950 korvaamalla * varsinaiseen sarakkeen nimeä. 51 00:03:16,950 --> 00:03:21,220 Jos haluamme useita sarakkeita, mutta eivät kaikki, voimme saavuttaa tämän 52 00:03:21,220 --> 00:03:25,620 kirjoittamalla sarakkeen nimet rajoittavan jokaisen sarakkeen pilkulla. 53 00:03:25,620 --> 00:03:28,620 Esimerkiksi, nyt vain hakea CakeId ja CakeType vuonna cupcake_cupboard taulukossa. 54 00:03:28,620 --> 00:03:38,370 Syntaksi tehdä tämä on: SELECT tila CakeID pilkulla 55 00:03:38,370 --> 00:03:44,370 CakeType tilaa meidän pöytä, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Mennään eteenpäin ja toteuttaa tätä. 57 00:03:49,340 --> 00:03:52,670 Ja tässä meillä on nyt vain kaksi saraketta me määritetty 58 00:03:52,670 --> 00:03:54,670 kunkin cupcake meidän kaapissa. 59 00:03:54,670 --> 00:03:57,710 Voimme myös tarkentaa myös kyselyn tulokset määrittämällä 60 00:03:57,710 --> 00:04:00,910 "Jos" lauseke heti taulukon nimi. 61 00:04:02,000 --> 00:04:05,410 Esimerkiksi, siellä näyttää olevan cupcake meidän kaapissa 62 00:04:05,410 --> 00:04:08,660 että on hyvin, ei niin mukavan näköinen. 63 00:04:08,660 --> 00:04:13,950 Katsotaanpa selvittää kaikki cupcakes meidän kaapissa, jotka ovat hyvin, ei niin mukavan näköinen 64 00:04:13,950 --> 00:04:16,110 käyttämällä "Jos" lauseke. 65 00:04:16,110 --> 00:04:26,390 Syntaksi tehdä tämä on: SELECT tila * tilaa tilaa cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 tila, jossa tilaa myös ehdollinen sarakkeen, tässä tapauksessa CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 ja Boolen arvon False. 68 00:04:36,900 --> 00:04:42,750 On tärkeää huomata, että jos käytät jouset, sinun täytyy liittää se puolilainausmerkkejä. 69 00:04:42,750 --> 00:04:49,620 Tämä koskee kaikkia merkkijonoja SQL, tai SQL-tietokannan kannalta, variantti merkkiä 70 00:04:49,620 --> 00:04:51,620 tunnetaan Varchar tietotyyppi. 71 00:04:51,620 --> 00:04:57,660 Tässä tapauksessa käytämme True tai False, mikä on boolean arvo eikä merkkijono. 72 00:04:59,120 --> 00:05:00,660 Mennään eteenpäin ja tätä komentoa. 73 00:05:00,660 --> 00:05:05,340 >> Kas kummaa, se on totta, että meillä on 1 suklaata 74 00:05:05,340 --> 00:05:07,920 ei niin mukava cupcake meidän kaapissa. 75 00:05:09,620 --> 00:05:11,460 Seuraavaksi aiomme kirjoittaa INSERT julkilausuman. 76 00:05:11,460 --> 00:05:15,560 Lisää lausuntoja käytetään lisätä tai lisätä 77 00:05:15,560 --> 00:05:17,770 rivejä ja tiedot tietokantaan taulukon. 78 00:05:17,770 --> 00:05:23,160 Käynti meidän skenaariossa oletetaan, että olemme juuri tehneet upouusi cupcake. 79 00:05:25,910 --> 00:05:30,080 Koska olemme hyvin organisoitu cupcake syövillä, aiomme pitää lisätä tämä uusi cupcake 80 00:05:30,080 --> 00:05:32,330 meidän cupcake_cupboard taulukossa. 81 00:05:32,330 --> 00:05:40,690 Syntaksi tehdä tämä on tämä: Aseta tila avaruuteen meidän pöytä, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, tila (, 83 00:05:46,830 --> 00:05:51,060 ja tässä me määritellä sarakkeiden nimet rajaamaa pilkku, 84 00:05:51,060 --> 00:05:59,790 CakeType pilkulla CakeColor pilkulla CakeIsNice) tilaa. 85 00:05:59,790 --> 00:06:06,540 Tämän jälkeen kirjoitamme sanan VALUES tilaa (ja täällä 86 00:06:06,540 --> 00:06:12,170 astumme arvo kunkin sarakkeen osalta myös rajataan pilkulla. 87 00:06:12,170 --> 00:06:17,830 Tarjouksen, koska ne ovat kaikki Varchar arvoja me ympäröivät heitä puolilainausmerkeissä, 88 00:06:17,830 --> 00:06:26,780 MAAPHKINÄVOI 'pilkku' LIGHT BROWN "pilkku True. 89 00:06:26,780 --> 00:06:30,480 Nyt on tärkeää antaa jokaiselle riville oma numero tunnistaa itsensä. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing sarakkeessa esitetään tätä 91 00:06:33,660 --> 00:06:37,410  "Ei ole kahta samaa tunnukset voi koskaan esiintyä tässä taulukossa." 92 00:06:37,410 --> 00:06:39,480 Mennään eteenpäin ja toteuttaa. 93 00:06:39,480 --> 00:06:45,380 Siellä mennään, kaikki järjestetty. 94 00:06:49,720 --> 00:06:52,100 >> Seuraava SQL-lause, että me kirjoitamme on päivitetty selvitys. 95 00:06:52,100 --> 00:06:55,650 Päivitys lausuma voidaan muuttaa tietoja sisällä sarakkeen 96 00:06:55,650 --> 00:06:58,440 olemassa olevien riville tietokannan taulukkoon. 97 00:06:59,670 --> 00:07:03,420 Aiemmin meidän skenaariossa käyttämällä SELECT, olemme määritelleet cupcake 98 00:07:03,420 --> 00:07:08,300 sisäpuolella cupcake_cupboard pöytä jonka CakeIsNice arvo oli False. 99 00:07:08,300 --> 00:07:12,050 Oletetaan, että samalla kun maapähkinävoita cupcake oli uunissa, 100 00:07:12,050 --> 00:07:15,790 teimme ei-niin-mukava cupcake very nice. 101 00:07:18,020 --> 00:07:22,240 Ovat niin poikkeuksellisesti järjestetty, haluamme cupcake pohtia tätä arvoa 102 00:07:22,240 --> 00:07:24,240 meidän cupcake_cupboard taulukossa. 103 00:07:24,240 --> 00:07:28,710 Siksi mennään päivittää suklaa cupcake kannassa vastaamaan tähän. 104 00:07:28,710 --> 00:07:39,720 Syntaksi on: UPDATE tilaa meidän pöytään, cupcake_cupboard, avaruus SET tilaa 105 00:07:39,720 --> 00:07:44,240 sarake haluamme muuttaa, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Sitten täällä me laitamme uuden arvon True tilaa. 107 00:07:49,210 --> 00:07:54,290 Nyt, koska emme halua päivittää kaikki rivit tämän arvon, 108 00:07:54,290 --> 00:07:57,400 haluamme tarjota "Jos"-lauseke, joka paikantaa meidät 109 00:07:57,400 --> 00:07:59,830 täsmällisestä rivi haluamme muuttaa. 110 00:07:59,830 --> 00:08:03,690 Tässä tapauksessa tiedämme, että on olemassa vain yksi cupcake 111 00:08:03,690 --> 00:08:06,670 että on CakeIsNice arvo False. 112 00:08:06,670 --> 00:08:11,030 Lisäksi olemme myös varmistaa, että olemme päivittää oikean rivin 113 00:08:11,030 --> 00:08:13,030 käyttämällä "Ja" lauseke. 114 00:08:14,340 --> 00:08:17,270 Käytämme "Ja" lauseke tarkentaa meidän kyselyn eteenpäin. 115 00:08:17,270 --> 00:08:20,380 Tässä tapauksessa, koska tiedämme, että cupcake on suklaa, 116 00:08:20,380 --> 00:08:23,160 käytämme tätä CakeType sarakkeessa. 117 00:08:23,160 --> 00:08:31,500 Jos tilaa meidän ehdollisen palstatilaa CakeIsNice tila = False, 118 00:08:31,500 --> 00:08:38,330 ja avaruus CakeType = "suklaa." 119 00:08:38,330 --> 00:08:41,880 Joten, laitat sen kaiken yhteen, tämä päivitys lausunto sanoo 120 00:08:41,880 --> 00:08:44,670 löytää kaikki cupcakes meidän cupcake kaapissa, 121 00:08:44,670 --> 00:08:50,520 ja jos on olemassa cupcake, jonka sarake CakeIsNice sisältää arvon False 122 00:08:50,520 --> 00:08:54,130 ja CakeType sisältää arvon CHOCOLATE, 123 00:08:54,130 --> 00:08:58,240 haluamme päivittää rivien CakeIsNice arvon True. 124 00:08:58,240 --> 00:09:01,140 Joten, mennään eteenpäin ja toteuttaa lausuman. 125 00:09:03,860 --> 00:09:05,860 Ja nyt, me järjestetään. 126 00:09:06,650 --> 00:09:09,220 >> Kaikki tämä puhe cupcakes on tehnyt minusta hieman nälkäinen. 127 00:09:09,220 --> 00:09:11,360 Minun pitäisi auttaa itseäni yhteen. 128 00:09:11,360 --> 00:09:17,670 Mutta jos olen itse syö cupcake, minun pitäisi ainakin myös poistaa sen olemassaolon 129 00:09:17,670 --> 00:09:19,670  meidän cupcake_cupboard taulukosta. 130 00:09:20,650 --> 00:09:22,590 Voit tehdä tämän, käytämme "Poista" lausunto. 131 00:09:22,590 --> 00:09:27,400 "Delete" lausuma voidaan poistaa kaikki tai jotkin rivit taulukosta. 132 00:09:27,400 --> 00:09:29,920 Jos haluat poistaa joitakin erityisiä rivin taulukosta, 133 00:09:29,920 --> 00:09:34,360 sinun on annettava "Jos"-lauseke, mikä määrittää sarakkeen 134 00:09:34,360 --> 00:09:37,660 että pitäisi olla ainutlaatuinen rivi, jonka haluat poistaa. 135 00:09:37,660 --> 00:09:47,370 Tämä on syntaksi: DELETE tilaa avaruudesta meidän pöytään, cupcake_cupboard, tilaa. 136 00:09:47,370 --> 00:09:51,760 Nyt tässä vaiheessa, kun olet näin pitkälle teidän poista ilmoitus 137 00:09:51,760 --> 00:09:54,240 Haluatko olla hyvin varovainen. 138 00:09:54,240 --> 00:09:59,970 Esimerkiksi, jos haluan suorittaa tämän kyselyn ei tarjota joitakin "Jos" lauseke 139 00:09:59,970 --> 00:10:04,500 Haluaisin menettää kaikki tiedot tämän cupcake_cupboard taulukossa 140 00:10:04,500 --> 00:10:09,590 mutta koska olen jo tiedän, että kakku tunnukset ovat ainutlaatuisia, minä käytän 141 00:10:09,590 --> 00:10:12,410 Red Velvet cake ID minun "Missä"-lauseke. 142 00:10:14,550 --> 00:10:20,670 Joissa tilaa meidän sarake, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Koska tämä on kokonaisluku-arvo ei ole tarpeen ympäröidä se puolilainausmerkeissä. 144 00:10:25,010 --> 00:10:27,020 Joten, nyt suorittaa lauseen. 145 00:10:33,560 --> 00:10:35,990 No, nyt olemme pyyhki olemassaolon cupcake 146 00:10:35,990 --> 00:10:40,360 meidän cupcake_cupboard taulukosta, meillä on vain yksi asia vasen: 147 00:10:41,680 --> 00:10:43,680 Tee se katoaa. 148 00:10:43,680 --> 00:10:46,990 Olen Christopher Bartholomew. Tämä on CS50.