1 00:00:00,000 --> 00:00:03,493 >> [MUZYKI] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD: W naszych filmów na tematy, tworzenie stron internetowych, 4 00:00:07,100 --> 00:00:10,560 już wspomnieliśmy koncepcji bazy danych kilka razy, prawda? 5 00:00:10,560 --> 00:00:12,700 Więc baza jesteś prawdopodobnie zna od 6 00:00:12,700 --> 00:00:15,780 powiedzieć, za pomocą programu Microsoft Excel lub Arkusze Google. 7 00:00:15,780 --> 00:00:20,650 To naprawdę tylko zorganizowane zestaw tabel, wierszy i kolumn. 8 00:00:20,650 --> 00:00:23,140 >> I bazy danych, gdzie Nasze sklepy www 9 00:00:23,140 --> 00:00:26,760 Informacje, które jest ważne na naszej stronie internetowej, aby działać poprawnie. 10 00:00:26,760 --> 00:00:30,150 Ponownie, bardzo typowym przykładem tutaj jest przechowywanie nazw użytkownika i haseł 11 00:00:30,150 --> 00:00:32,824 w bazie danych, tak, że kiedy użytkownik zaloguje się naszej stronie internetowej, 12 00:00:32,824 --> 00:00:36,690 bazy danych można przeszukiwać, aby zobaczyć jeśli użytkownik nie istnieje w bazie danych. 13 00:00:36,690 --> 00:00:39,260 A jeśli są, sprawdzając, ich hasło jest prawidłowe. 14 00:00:39,260 --> 00:00:43,420 A jeśli ich hasło jest prawidłowe, wtedy możemy dać im cokolwiek strona 15 00:00:43,420 --> 00:00:45,370 oni żądania. 16 00:00:45,370 --> 00:00:48,590 >> Więc jesteś prawdopodobnie znowu znajome ten pomysł z programu Excel lub Google 17 00:00:48,590 --> 00:00:49,430 Arkusze kalkulacyjne. 18 00:00:49,430 --> 00:00:52,980 Mamy bazy danych, tabele, wiersze i kolumny. 19 00:00:52,980 --> 00:00:56,450 I to jest naprawdę sortowania podstawowego zestawu 20 00:00:56,450 --> 00:00:58,470 hierarchicznej awarii tutaj. 21 00:00:58,470 --> 00:00:59,800 Więc tutaj jest arkusz kalkulacyjny Excel. 22 00:00:59,800 --> 00:01:02,640 I jeśli kiedykolwiek otwarty w tym lub inny podobny program 23 00:01:02,640 --> 00:01:06,780 wiesz, że one tu są rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Są to kolumny. 25 00:01:08,760 --> 00:01:11,790 >> Może tutaj, choć może nie korzystać z tej funkcji strasznie much-- 26 00:01:11,790 --> 00:01:15,370 Będę powiększyć in-- mamy Ta idea arkusza. 27 00:01:15,370 --> 00:01:17,930 Więc może te arkusze, jeśli I na przemian w przód iw tył, 28 00:01:17,930 --> 00:01:21,600 Są różne tabele istnieją w mojej bazy danych. 29 00:01:21,600 --> 00:01:25,210 A jeśli nadal przykład wszystkie sposób, nazwę tej bazy danych 30 00:01:25,210 --> 00:01:26,940 jest Księga 1. 31 00:01:26,940 --> 00:01:28,710 Może mam książki Book 2 i 3. 32 00:01:28,710 --> 00:01:33,270 Więc każdy plik Excel jest bazy danych, każdy arkusz jest stół, 33 00:01:33,270 --> 00:01:39,530 i wewnątrz każdej tabeli Mam Ta idea się z wierszy i kolumn. 34 00:01:39,530 --> 00:01:41,900 >> Więc jak mam pracować z bazą danych? 35 00:01:41,900 --> 00:01:43,630 Jak uzyskać informacje od niej? 36 00:01:43,630 --> 00:01:47,540 Dobrze jest język zwany SQL-- które zwykle wystarczy zadzwonić Sequel-- 37 00:01:47,540 --> 00:01:50,010 i to oznacza dla Structured Query Language. 38 00:01:50,010 --> 00:01:52,981 I jest to język programowania, ale to jest dość ograniczone programowania 39 00:01:52,981 --> 00:01:53,480 język. 40 00:01:53,480 --> 00:01:56,407 To nie całkiem tak jak inni że pracowałem z. 41 00:01:56,407 --> 00:01:58,240 Ale celem tego język programowania 42 00:01:58,240 --> 00:02:01,570 jest do kwerendy bazy danych, aby poprosić o informacje z bazy danych, 43 00:02:01,570 --> 00:02:04,480 znaleźć informacje w bazy danych, i tak dalej. 44 00:02:04,480 --> 00:02:08,449 >> Mamy również w CS50-- i to bardzo Wspólna platforma, to się nazywa MySQL. 45 00:02:08,449 --> 00:02:10,600 To, co możemy wykorzystać w trakcie. 46 00:02:10,600 --> 00:02:12,880 To open source platforma, która ustanawia 47 00:02:12,880 --> 00:02:16,732 tzw relacyjna database-- bazy danych efektywnie. 48 00:02:16,732 --> 00:02:18,440 Nie trzeba się zbyt szczegółowo 49 00:02:18,440 --> 00:02:20,930 co relacyjna baza danych jest. 50 00:02:20,930 --> 00:02:24,650 Ale język SQL jest bardzo biegły w pracy 51 00:02:24,650 --> 00:02:29,760 z MySQL i inne podobne style relacyjnych baz danych. 52 00:02:29,760 --> 00:02:34,010 >> I wiele instalacje MySQL się z czymś 53 00:02:34,010 --> 00:02:37,760 nazywa phpMyAdmin, który jest graficznym użytkownika 54 00:02:37,760 --> 00:02:40,970 interface-- się GUI--, że sprawia, że ​​trochę więcej 55 00:02:40,970 --> 00:02:44,410 przyjazny wykonać użytkownik zapytań do bazy danych, 56 00:02:44,410 --> 00:02:48,980 ponieważ bazy danych są nie tylko używane przez zaawansowanych programistów, prawda? 57 00:02:48,980 --> 00:02:51,510 Czasami są te małe przedsiębiorstwa, 58 00:02:51,510 --> 00:02:53,900 i nie mogą sobie pozwolić na zatrudnić zespół programistów, 59 00:02:53,900 --> 00:02:56,700 ale nadal trzeba przechowywać Informacje zawarte w bazie danych. 60 00:02:56,700 --> 00:02:59,300 >> Coś w phpMyAdmin sprawia, że ​​bardzo łatwe dla kogoś, 61 00:02:59,300 --> 00:03:03,630 kto nigdy nie zaprogramowane, aby podnieść i zapoznać się ze sposobem 62 00:03:03,630 --> 00:03:07,710 do pracy z bazą danych. 63 00:03:07,710 --> 00:03:11,800 Problemem jest to, phpMyAdmin, natomiast to fantastyczne narzędzie do nauki 64 00:03:11,800 --> 00:03:14,850 o bazach danych, jest to instrukcja. 65 00:03:14,850 --> 00:03:18,050 Będziesz musiał zalogować się to i wykonywać polecenia i typ 66 00:03:18,050 --> 00:03:19,910 rzeczy ręcznie. 67 00:03:19,910 --> 00:03:23,160 >> A jak wiemy z naszej Przykładem na programowaniu WWW PHP, 68 00:03:23,160 --> 00:03:26,550 konieczności ręcznego zrobić rzeczy na naszej stronie internetowej, 69 00:03:26,550 --> 00:03:30,970 jeśli chcemy, dynamiczny, aktywny reaguje strona internetowa, może nie jest najlepszym rozwiązaniem. 70 00:03:30,970 --> 00:03:33,980 Chcielibyśmy, aby znaleźć sposób na może zautomatyzować to jakoś. 71 00:03:33,980 --> 00:03:37,864 I SQL pozwoli nam to zrobić. 72 00:03:37,864 --> 00:03:39,780 Więc kiedy będziemy rozpocząć pracę z SQL, 73 00:03:39,780 --> 00:03:41,220 najpierw musimy mieć bazy danych do pracy. 74 00:03:41,220 --> 00:03:42,510 Tworzenie bazy danych jest coś pewnie 75 00:03:42,510 --> 00:03:45,350 zrobi w phpMyAdmin, ponieważ trzeba tylko zrobić to raz, 76 00:03:45,350 --> 00:03:49,690 Składnia i za to jest o wiele prostsze. 77 00:03:49,690 --> 00:03:51,940 Jest to o wiele łatwiejsze, aby to zrobić w graficznym interfejsie 78 00:03:51,940 --> 00:03:53,520 niż pisanie go jako polecenie. 79 00:03:53,520 --> 00:03:55,186 Polecenie może trochę uciążliwe. 80 00:03:55,186 --> 00:03:58,889 Podobnie, tworzenie tabeli może się trochę kłopotliwe, jak również. 81 00:03:58,889 --> 00:04:01,930 A więc rzeczy takie jak tworzenie bazy danych i tworzenia spisu, który jesteś 82 00:04:01,930 --> 00:04:06,270 prawdopodobnie tylko zrobić once-- raz na stole, raz na database-- 83 00:04:06,270 --> 00:04:09,040 to OK, aby zrobić w graficzny interfejs. 84 00:04:09,040 --> 00:04:11,570 W trakcie tworzenie tabeli, będziesz 85 00:04:11,570 --> 00:04:14,840 również określić wszystkie z kolumny, które będą w tej tabeli. 86 00:04:14,840 --> 00:04:18,149 Jakie informacje nie chcesz zapisać w tabeli? 87 00:04:18,149 --> 00:04:24,520 Być może nazwisko i datę urodzenia użytkownika, hasło, numer ID użytkownika, a może 88 00:04:24,520 --> 00:04:26,170 miasto i stan, prawda? 89 00:04:26,170 --> 00:04:30,080 >> I za każdym razem chcemy dodać użytkownika do bazy danych, chcemy dostać wszystkie sześć 90 00:04:30,080 --> 00:04:31,890 z tych elementów informacji. 91 00:04:31,890 --> 00:04:34,840 I robimy, że przez dodanie wiersze do tabeli. 92 00:04:34,840 --> 00:04:37,800 Więc najpierw utworzyć bazę danych, Następnie tworzymy tabelę. 93 00:04:37,800 --> 00:04:40,100 W ramach tworzenia stół, jesteśmy proszeni 94 00:04:40,100 --> 00:04:44,280 określić każdą kolumnę Chcielibyśmy w tej tabeli. 95 00:04:44,280 --> 00:04:47,247 A potem, jak zacząć, aby dodać informacje z bazy 96 00:04:47,247 --> 00:04:49,580 i kwerendy w bazie danych więcej generally-- nie tylko dodając, 97 00:04:49,580 --> 00:04:51,610 ale wszystko inne do-- będziemy do czynienia 98 00:04:51,610 --> 00:04:58,870 z wierszy tabeli, który jest jednym Informacje autora z całego zestawu. 99 00:04:58,870 --> 00:05:03,210 >> Więc każda kolumna SQL jest w stanie przechowywania danych określonego typu danych. 100 00:05:03,210 --> 00:05:06,560 Więc jakby wyeliminować tego Pomysł typów danych w PHP, 101 00:05:06,560 --> 00:05:08,747 ale są tu w SQL. 102 00:05:08,747 --> 00:05:10,080 I jest wiele typów danych. 103 00:05:10,080 --> 00:05:13,420 Oto tylko 20 z nich, ale to nawet nie wszystkie z nich. 104 00:05:13,420 --> 00:05:16,240 Więc mamy pomysły jak INTs-- Integers-- zapewne wiedzą 105 00:05:16,240 --> 00:05:17,760 że ta kolumna może przechowywać liczby całkowite. 106 00:05:17,760 --> 00:05:21,077 I istnieją różnice thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Może nie zawsze trzeba cztery kęsy. 108 00:05:22,660 --> 00:05:26,800 Może musimy osiem bajtów, a więc może korzystać z tych wariacje na liczb całkowitych 109 00:05:26,800 --> 00:05:28,510 być nieco więcej miejsca skuteczny. 110 00:05:28,510 --> 00:05:31,899 Możemy zrobić liczby dziesiętne, mamy może zrobić liczb zmiennoprzecinkowych. 111 00:05:31,899 --> 00:05:32,940 Są bardzo podobne. 112 00:05:32,940 --> 00:05:34,773 Istnieją pewne różnice, i jeśli możesz 113 00:05:34,773 --> 00:05:37,330 lubię patrzeć w górę SQL rodzaj przewodnika, można 114 00:05:37,330 --> 00:05:40,670 Można zobaczyć, co lekkie różnice między nimi. 115 00:05:40,670 --> 00:05:43,250 >> Może chcemy przechowywać informacje o dacie i czasie. 116 00:05:43,250 --> 00:05:47,047 Może jesteśmy śledzenie gdy użytkownik dołączył do naszej strony internetowej, 117 00:05:47,047 --> 00:05:48,880 a więc może chcemy mieć kolumnę, która jest 118 00:05:48,880 --> 00:05:52,820 czas, data lub datownik, że wskazuje, kiedy użytkownik faktycznie 119 00:05:52,820 --> 00:05:54,130 Zarejestrowałem się. 120 00:05:54,130 --> 00:05:56,132 Możemy zrobić geometrie i linestrings. 121 00:05:56,132 --> 00:05:57,340 To jest rzeczywiście bardzo fajne. 122 00:05:57,340 --> 00:06:01,410 Możemy nakreślić Obszar geograficzny, używając 123 00:06:01,410 --> 00:06:05,110 GIS koordynuje działki na powierzchnię. 124 00:06:05,110 --> 00:06:08,580 Więc może faktycznie przechowywać tego rodzaju informacji w kolumnie SQL. 125 00:06:08,580 --> 00:06:11,390 >> Tekst jest po prostu gigantyczne bąble tekstu, może. 126 00:06:11,390 --> 00:06:12,840 ENUMeracje są trochę ciekawe. 127 00:06:12,840 --> 00:06:16,080 Oni naprawdę istnieją w C. My nie mówić o nich, ponieważ nie są one 128 00:06:16,080 --> 00:06:19,110 strasznie powszechnie stosowane, co najmniej CS50. 129 00:06:19,110 --> 00:06:22,680 Ale to jest wyliczany typ danych, które jest w stanie utrzymać ograniczone wartości. 130 00:06:22,680 --> 00:06:25,940 >> Naprawdę dobrym przykładem tutaj jest stworzyć wyliczenia, gdzie siedem 131 00:06:25,940 --> 00:06:29,394 Możliwe wartości to niedziela, poniedziałek, Wtorek środa czwartek piątek, 132 00:06:29,394 --> 00:06:30,060 Sobota, prawda? 133 00:06:30,060 --> 00:06:33,311 Tego typu dane Dzień Tydzień nie istnieje, 134 00:06:33,311 --> 00:06:35,310 ale możemy utworzyć wyliczone typ danych, takich 135 00:06:35,310 --> 00:06:39,400 że kolumna może zawsze tylko trzymać jeden z tych siedmiu możliwych wartości. 136 00:06:39,400 --> 00:06:44,300 Mamy wymienione wszystkie z możliwych wartości. 137 00:06:44,300 --> 00:06:47,630 >> Następnie mamy CHAR i VARCHAR, i mam kolor to zielony 138 00:06:47,630 --> 00:06:49,505 ponieważ jesteśmy w rzeczywistości zajmie sekundę 139 00:06:49,505 --> 00:06:51,950 mówić o różnicy tych dwóch rzeczy. 140 00:06:51,950 --> 00:06:55,780 Więc ZNAK, w przeciwieństwie do C, gdzie ZNAK był pojedynczy znak, 141 00:06:55,780 --> 00:07:00,730 w SQL char dotyczy długość stały ciąg. 142 00:07:00,730 --> 00:07:02,620 I kiedy tworzymy ten Kolumna, w rzeczywistości 143 00:07:02,620 --> 00:07:05,070 Można określić długość łańcucha. 144 00:07:05,070 --> 00:07:08,080 >> Tak więc w tym przykładzie, można powiedzieć CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Oznacza to, że każde Element tej kolumny 146 00:07:11,190 --> 00:07:13,910 składa się z 10 bajtów danych. 147 00:07:13,910 --> 00:07:15,770 Nie mniej nie więcej. 148 00:07:15,770 --> 00:07:21,780 Tak więc, jeśli spróbujemy i umieścić w 15 bit lub element 15 znaków 149 00:07:21,780 --> 00:07:25,340 lub wartość w tej kolumnie, my się tylko pierwsze 10. 150 00:07:25,340 --> 00:07:27,290 Jeśli stawiamy na dwóch Charakter długo wartość, 151 00:07:27,290 --> 00:07:30,700 będziemy mieć dwa znaków, a następnie osiem zerowe ukąszenia. 152 00:07:30,700 --> 00:07:34,990 Nigdy nie będziemy bardziej wydajne niż. 153 00:07:34,990 --> 00:07:37,727 >> VARCHAR jest trochę jak nasze pojęcie łańcucha 154 00:07:37,727 --> 00:07:39,560 że jesteśmy zaznajomieni z od C lub PHP. 155 00:07:39,560 --> 00:07:40,830 Jest to ciąg znaków o zmiennej długości. 156 00:07:40,830 --> 00:07:42,560 I podczas tworzenia kolumna, po prostu 157 00:07:42,560 --> 00:07:44,860 określa maksymalne możliwe długości. 158 00:07:44,860 --> 00:07:49,065 Więc może 99, lub powszechnie 255. 159 00:07:49,065 --> 00:07:50,440 To byłaby maksymalna długość. 160 00:07:50,440 --> 00:07:52,890 I tak, jakbyśmy przechowywania 15 ciąg znaków, 161 00:07:52,890 --> 00:07:56,157 użylibyśmy 15 bajtów, może 16 bajty dla NUL. 162 00:07:56,157 --> 00:07:57,990 Jeśli byliśmy przechowywania trzy ciąg znaków, 163 00:07:57,990 --> 00:08:01,120 użylibyśmy trzy lub cztery bajty. 164 00:08:01,120 --> 00:08:03,050 Ale nie będziemy korzystać z pełnej 99. 165 00:08:03,050 --> 00:08:05,190 >> Więc dlaczego mamy jedno i drugie? 166 00:08:05,190 --> 00:08:08,210 Cóż, jeśli musimy dowiedzieć się, jak długo, coś jest z VARCHAR, 167 00:08:08,210 --> 00:08:10,680 musimy rodzaju iteracyjne w poprzek tak jak to miało miejsce w C 168 00:08:10,680 --> 00:08:12,230 i dowiedzieć się, gdzie się zatrzyma. 169 00:08:12,230 --> 00:08:15,920 Natomiast jeśli wiemy, że wszystko w tej kolumnie jest 10 bajtów, może 170 00:08:15,920 --> 00:08:19,220 wiemy, że informacje, możemy skakać 10 bajtów, 10 bajtów 10 bajtów 10 bajtów, 171 00:08:19,220 --> 00:08:21,790 i zawsze znaleźć początku łańcucha. 172 00:08:21,790 --> 00:08:25,210 >> Więc możemy mieć pewne zmarnowana przestrzeń z CHAR, 173 00:08:25,210 --> 00:08:28,510 ale może jest handel off o lepszą szybkość 174 00:08:28,510 --> 00:08:30,160 w nawigacji bazę danych. 175 00:08:30,160 --> 00:08:32,330 Ale może chcemy Elastyczność VARCHAR 176 00:08:32,330 --> 00:08:36,710 zamiast having-- Jeśli nasz ZNAK było 255, ale większość naszych użytkowników 177 00:08:36,710 --> 00:08:40,537 było wprowadzenie jedynie trzy lub cztery bajty Warto informacji lub trzech lub czterech 178 00:08:40,537 --> 00:08:41,870 znaków o wartości informacji. 179 00:08:41,870 --> 00:08:44,324 >> Ale niektórzy użytkownicy korzystali całe 255, być może 180 00:08:44,324 --> 00:08:45,990 VARCHAR będzie tam bardziej odpowiednie. 181 00:08:45,990 --> 00:08:49,840 Jest to swego rodzaju kompromis, a generalnie dla celów CS50, 182 00:08:49,840 --> 00:08:54,107 nie musisz martwić się zbytnio o czy używasz CHAR lub VARCHAR. 183 00:08:54,107 --> 00:08:57,190 Ale w realnym świecie, te rzeczy mają znaczenia, ponieważ wszystkie z tych kolumn 184 00:08:57,190 --> 00:08:59,300 podjęcia rzeczywistej przestrzeni fizycznej. 185 00:08:59,300 --> 00:09:04,150 I fizycznego miejsca, w Prawdziwy świat, jest na wagę złota. 186 00:09:04,150 --> 00:09:06,800 >> Więc jeszcze jedną uwagę kiedy budujemy tabelę 187 00:09:06,800 --> 00:09:09,840 jest, aby wybrać jedną kolumnę się tak zwany klucz podstawowy. 188 00:09:09,840 --> 00:09:14,350 A kluczem podstawowym jest kolumna gdzie każda wartość jest wyjątkowy. 189 00:09:14,350 --> 00:09:19,980 A to oznacza, że ​​można łatwo wyłowić jeden wiersz po prostu patrząc 190 00:09:19,980 --> 00:09:22,450 na klucz podstawowy tego wiersza. 191 00:09:22,450 --> 00:09:24,580 Tak na przykład, ogólnie z użytkownikami, 192 00:09:24,580 --> 00:09:27,210 nie chcę dwóch użytkowników, którzy mają ten sam numer ID użytkownika. 193 00:09:27,210 --> 00:09:28,960 A więc może masz wiele informacji, 194 00:09:28,960 --> 00:09:30,793 a może dwóch użytkowników może mają ten sam name-- 195 00:09:30,793 --> 00:09:32,650 masz John Smith i John Smith. 196 00:09:32,650 --> 00:09:34,520 To nie musi być problem, ponieważ istnieje wiele osób 197 00:09:34,520 --> 00:09:35,830 w świecie o nazwie John Smith. 198 00:09:35,830 --> 00:09:40,766 Ale mamy tylko jeden numer identyfikacyjny użytkownika 10, jeden użytkownik ID nr 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Nie mamy dwóch użytkowników z taką samą liczbą, 200 00:09:42,640 --> 00:09:46,010 i tak może być numery identyfikacyjne użytkownika byłby to dobry klucz podstawowy. 201 00:09:46,010 --> 00:09:48,610 >> Nie mamy żadnego dublowania, i możemy teraz wyjątkowo 202 00:09:48,610 --> 00:09:52,619 zidentyfikować każdy wiersz, po prostu patrząc na tej kolumnie. 203 00:09:52,619 --> 00:09:55,410 Wybór kluczy podstawowych może faktycznie aby kolejne operacje tabeli 204 00:09:55,410 --> 00:09:59,710 o wiele łatwiejsze, ponieważ można wykorzystać fakt, że niektóre wiersze będzie 205 00:09:59,710 --> 00:10:02,720 być unikalne, lub pewna kolumna z bazy danych lub tabeli 206 00:10:02,720 --> 00:10:06,030 będzie wyjątkowy, aby wybrać spośród poszczególne wiersze. 207 00:10:06,030 --> 00:10:08,790 >> Możesz też mieć wspólną podstawowej klucz, które można znaleźć okazję 208 00:10:08,790 --> 00:10:11,720 w użyciu, co jest po prostu Połączenie dwóch kolumn 209 00:10:11,720 --> 00:10:13,280 na pewno będzie wyjątkowy. 210 00:10:13,280 --> 00:10:16,410 Więc może masz jedną Kolumna to jako i śniadaniem, 211 00:10:16,410 --> 00:10:19,290 jedna kolumna to jeden, dwa, i trzy, ale będziesz tylko kiedykolwiek 212 00:10:19,290 --> 00:10:23,660 mają jeden A1, pojedyncza A2, i tak dalej, i tak dalej. 213 00:10:23,660 --> 00:10:28,980 Ale możesz mieć B2, A C2, lub A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Więc możesz mieć wiele Jako, stwardnienie Śniadaniem, wiele z nich, kilka dwójek, 215 00:10:32,840 --> 00:10:38,567 ale można zawsze tylko mieć single A1, B2, C3, i tak dalej. 216 00:10:38,567 --> 00:10:40,400 Tak jak powiedziałem, SQL jest język programowania, 217 00:10:40,400 --> 00:10:42,024 ale ma dość ograniczone słownictwo. 218 00:10:42,024 --> 00:10:44,880 To nie jest aż tak rozległy, jak C oraz PHP i inne języki 219 00:10:44,880 --> 00:10:46,350 że rozmowy w czasie. 220 00:10:46,350 --> 00:10:49,960 To jest bardziej gadatliwe język, niż to, co jesteśmy 221 00:10:49,960 --> 00:10:52,789 Porozmawiamy o tym w wideo, ponieważ w tym filmie 222 00:10:52,789 --> 00:10:54,830 będziemy mówić o cztery operacje, że my 223 00:10:54,830 --> 00:10:55,720 może wykonywać na stole. 224 00:10:55,720 --> 00:10:56,761 >> Istnieje więcej niż to. 225 00:10:56,761 --> 00:10:58,730 Możemy zrobić więcej niż to, ale dla naszych celów, 226 00:10:58,730 --> 00:11:02,250 jesteśmy na ogół będzie za pomocą tylko cztery operations-- wkładka, 227 00:11:02,250 --> 00:11:05,360 wybrać, aktualizować i usuwać. 228 00:11:05,360 --> 00:11:08,750 I prawdopodobnie można intuicyjnie domyślać co wszystkie cztery z tych rzeczy zrobić. 229 00:11:08,750 --> 00:11:12,520 Ale pójdziemy do kawałka szczegółów na każdym z nich. 230 00:11:12,520 --> 00:11:15,780 >> Więc dla celów tego wideo, załóżmy, 231 00:11:15,780 --> 00:11:18,870 Posiadamy następujące dwa Tabele w jednej bazie danych. 232 00:11:18,870 --> 00:11:23,460 Mamy tabeli o nazwie Użytkownicy, że ma cztery columns-- numer ID, nazwę użytkownika, 233 00:11:23,460 --> 00:11:25,350 hasło, a pełna nazwa. 234 00:11:25,350 --> 00:11:27,430 I mamy drugi tabela w tej samej bazie danych 235 00:11:27,430 --> 00:11:32,129 nazywa Moms, że po prostu przechowuje informacje o podanie nazwy użytkownika i matki. 236 00:11:32,129 --> 00:11:33,920 Tak więc dla wszystkich przykładów, w tym filmie, będziemy 237 00:11:33,920 --> 00:11:37,945 używać tej bazy danych i kolejne aktualizacje do niego. 238 00:11:37,945 --> 00:11:40,070 Więc powiedzmy, że chcemy dodać informacje do tabeli. 239 00:11:40,070 --> 00:11:44,460 To, co robi operacji wstawiania. 240 00:11:44,460 --> 00:11:46,550 W wyjaśnieniu wszystkich te polecenia, będę 241 00:11:46,550 --> 00:11:48,860 dać ogólny szkielet do użycia. 242 00:11:48,860 --> 00:11:51,661 Bo w zasadzie, zapytań będą wyglądać dość podobne, 243 00:11:51,661 --> 00:11:54,660 jesteśmy po prostu będzie się zmieniać nieco różne fragmenty informacji 244 00:11:54,660 --> 00:11:56,750 robić różne rzeczy z tabeli. 245 00:11:56,750 --> 00:11:59,200 >> Więc dla INSERT, szkielet wygląda trochę jak ten. 246 00:11:59,200 --> 00:12:02,230 Chcemy, aby wstawić do konkretnej tabeli. 247 00:12:02,230 --> 00:12:05,290 Następnie mamy otwarty nawias i lista kolumn 248 00:12:05,290 --> 00:12:08,070 które chcemy umieścić wartości w. 249 00:12:08,070 --> 00:12:10,974 Zamknij nawiasach następujące wartości, a następnie 250 00:12:10,974 --> 00:12:13,390 ponownie, wymienić się wartości chcemy umieścić w tabeli. 251 00:12:13,390 --> 00:12:15,950 >> Tak więc przykład ten byłby następujący. 252 00:12:15,950 --> 00:12:19,170 Chcę wstawić do tabeli użytkownicy następujące columns-- 253 00:12:19,170 --> 00:12:21,010 nazwę użytkownika, hasło i pełna nazwa. 254 00:12:21,010 --> 00:12:25,282 Więc nowego wiersza, w którym Kładę w tych trzech kolumn i jesteśmy 255 00:12:25,282 --> 00:12:30,030 zamiar umieścić w wartościach Newman, USMAIL i Newman. 256 00:12:30,030 --> 00:12:32,730 Więc w tym przypadku, jestem kładąc małą Newman 257 00:12:32,730 --> 00:12:38,710 do kolumny podając nazwę użytkownika, hasło USMAIL, a pełna nazwa stolicy N 258 00:12:38,710 --> 00:12:41,940 Newman do kolumny fullname. 259 00:12:41,940 --> 00:12:44,240 >> Więc oto co baza danych Wyglądał jak wcześniej. 260 00:12:44,240 --> 00:12:48,250 Oto, co tabela użytkowników na góry wyglądało zanim to zrobił. 261 00:12:48,250 --> 00:12:50,760 Po wykonujemy to zapytania, mamy to. 262 00:12:50,760 --> 00:12:54,790 Dodaliśmy nowy wiersz do tabeli. 263 00:12:54,790 --> 00:12:56,810 Ale zauważmy to jedno że nie określił, 264 00:12:56,810 --> 00:12:59,880 ale jakoś mam wartość dla, których jest to 12 tutaj. 265 00:12:59,880 --> 00:13:02,820 Nie powiedziałem, że chciałem umieścić numer identyfikacyjny tam. 266 00:13:02,820 --> 00:13:04,900 Chciałem umieścić nazwę użytkownika, hasło, pełna nazwa. 267 00:13:04,900 --> 00:13:06,440 A ja, że ​​to jest w porządku. 268 00:13:06,440 --> 00:13:07,760 >> Ale ja też dostałem ten 12. 269 00:13:07,760 --> 00:13:09,490 Dlaczego dostałem to 12? 270 00:13:09,490 --> 00:13:12,904 Cóż, okazuje się, że podczas definiowania 271 00:13:12,904 --> 00:13:15,570 kolumna, która ma być twój klucz główny, który jest zwykle, 272 00:13:15,570 --> 00:13:16,510 jak powiedziałem, numer identyfikacyjny. 273 00:13:16,510 --> 00:13:18,718 To nie zawsze musi będzie to numer identyfikacyjny, 274 00:13:18,718 --> 00:13:22,380 ale jest to zwykle dobry pomysł, aby być jakaś wartość całkowitą. 275 00:13:22,380 --> 00:13:25,950 Masz możliwość w phpMyAdmin podczas tworzenia bazy danych 276 00:13:25,950 --> 00:13:31,130 lub tabela, aby ustawić, że Kolumna jako auto przyrostu wartości. 277 00:13:31,130 --> 00:13:34,520 >> Która jest naprawdę dobrym pomysłem, gdy pracujesz z klucza podstawowego, 278 00:13:34,520 --> 00:13:39,330 bo chcesz każdą wartość W tej kolumnie jest unikatowy. 279 00:13:39,330 --> 00:13:43,310 A jeśli zapomnimy podać to dla więcej niż jednej osoby, 280 00:13:43,310 --> 00:13:46,240 masz teraz sytuację, w której że kolumna nie jest wyjątkowa. 281 00:13:46,240 --> 00:13:50,200 Masz dwie spacje, więc nie można już jednoznacznie identyfikować column-- 282 00:13:50,200 --> 00:13:54,150 lub nie jest już jednoznacznie można identyfikacji rekordu na podstawie tej kolumny. 283 00:13:54,150 --> 00:13:57,010 To stracił wszystkie jego wartość jako klucz podstawowy. 284 00:13:57,010 --> 00:14:02,010 >> I tak widocznie, co zrobiłem tutaj jest skonfigurowany identyfikator użytkownika 285 00:14:02,010 --> 00:14:07,790 Kolumna do auto przyrostu tak, aby każdy Czas dodać informacje do tabeli, 286 00:14:07,790 --> 00:14:12,220 to automatycznie daje mi wartość dla klucza podstawowego. 287 00:14:12,220 --> 00:14:15,570 Więc nigdy nie można zapomnieć, aby to zrobić, ponieważ baza danych będzie zrobić to za mnie. 288 00:14:15,570 --> 00:14:16,587 Więc to jest miłe. 289 00:14:16,587 --> 00:14:18,670 A więc dlatego mamy 12 tam, bo mam 290 00:14:18,670 --> 00:14:21,772 ustawić, że kolumny w górę do automatycznego przyrostu. 291 00:14:21,772 --> 00:14:23,730 Jeśli dodałem kogoś innego że to będzie 13, jeśli dodany 292 00:14:23,730 --> 00:14:27,890 ktoś inny, że to będzie 14, i tak dalej. 293 00:14:27,890 --> 00:14:30,190 >> Więc po prostu zrobić jeszcze jedną wprowadzenie. 294 00:14:30,190 --> 00:14:34,530 Będziemy wstawić do tabeli moms, w szczególności nazwę użytkownika i matka 295 00:14:34,530 --> 00:14:37,390 kolumnie, wartościami Kramer i Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 I tak mieliśmy to przed. 297 00:14:39,140 --> 00:14:41,800 Po wykonujemy, że Zapytania SQL, mamy to. 298 00:14:41,800 --> 00:14:47,290 Dodaliśmy Kramer i Babs Kramer w tabeli moms. 299 00:14:47,290 --> 00:14:48,350 >> Więc to jest wstawianie. 300 00:14:48,350 --> 00:14:51,850 SELECT jest to, czego używać, aby wyodrębnić informacje z tabeli. 301 00:14:51,850 --> 00:14:54,390 Tak to jest jak mamy informacji z bazy danych. 302 00:14:54,390 --> 00:14:59,589 A więc wybierz polecenia będą bardzo często używane w programowaniu. 303 00:14:59,589 --> 00:15:02,130 Ogólny framework-- Ogólnie szkielet wygląda tak. 304 00:15:02,130 --> 00:15:06,550 Wybierz zestaw kolumn z stół, a następnie opcjonalnie 305 00:15:06,550 --> 00:15:11,090 można określić condition-- lub to, co zwykle nazywamy orzeczenie, 306 00:15:11,090 --> 00:15:13,010 jest zazwyczaj termin używamy w SQL. 307 00:15:13,010 --> 00:15:16,490 >> Ale to w zasadzie co Poszczególne rzędy chcesz uzyskać. 308 00:15:16,490 --> 00:15:19,100 Jeśli chcesz, zamiast się wszystko, sprowadzić, 309 00:15:19,100 --> 00:15:20,060 to gdzie by to zrobić. 310 00:15:20,060 --> 00:15:22,777 A następnie opcjonalnie można również zamówienie według wybranej kolumny. 311 00:15:22,777 --> 00:15:25,860 Więc może chcesz mieć rzeczy posortowane alfabetycznym w oparciu o jedną kolumnę 312 00:15:25,860 --> 00:15:27,540 lub alfabetycznie na podstawie innego. 313 00:15:27,540 --> 00:15:30,610 >> Ponownie, WHERE i ORDER BY są opcjonalne. 314 00:15:30,610 --> 00:15:32,681 Ale oni prawdopodobnie useful-- szczególnie 315 00:15:32,681 --> 00:15:34,680 GDZIE będzie przydatna zawężenia więc nie 316 00:15:34,680 --> 00:15:37,460 uzyskać całą swoją bazę danych i trzeba go przetworzyć, po prostu się 317 00:15:37,460 --> 00:15:39,300 kawałki to, że Ci zależy. 318 00:15:39,300 --> 00:15:44,932 Tak na przykład, może chcę wybrać Numer identyfikacyjny oraz pełna nazwa od użytkowników. 319 00:15:44,932 --> 00:15:46,140 Więc co to może wyglądać? 320 00:15:46,140 --> 00:15:48,270 Więc oto moja tabela użytkowników. 321 00:15:48,270 --> 00:15:51,080 Chcę wybrać idnum i fullname od użytkowników. 322 00:15:51,080 --> 00:15:52,300 Co ja mam dostać? 323 00:15:52,300 --> 00:15:53,580 Mam zamiar się tego. 324 00:15:53,580 --> 00:15:56,930 Nie sprowadzić, więc jestem uzyskanie numeru identyfikacyjnego dla każdego wiersza 325 00:15:56,930 --> 00:16:00,850 a ja jestem coraz pełna wymienić z każdego rzędu. 326 00:16:00,850 --> 00:16:02,210 >> OK. 327 00:16:02,210 --> 00:16:05,640 Co zrobić, jeśli chcę, aby wybrać hasło od użytkowników WHERE-- więc teraz 328 00:16:05,640 --> 00:16:10,370 Dodaję warunek, A predicate-- gdzie idnum jest mniejsza niż 12. 329 00:16:10,370 --> 00:16:13,660 Więc oto moja baza ponownie, mój użytkowników stół szczyt. 330 00:16:13,660 --> 00:16:17,030 Co ja mam dostać, jeśli chcę zaznaczyć, że informacje, hasło, 331 00:16:17,030 --> 00:16:21,550 gdzie identyfikator użytkownika lub idnum jest mniejsza niż 12? 332 00:16:21,550 --> 00:16:24,910 Mam zamiar się tego Informacje z powrotem, prawda? 333 00:16:24,910 --> 00:16:29,170 Zdarza się, że idnum jest 10 mniej niż 12, numer identyfikacyjny 11 mniej niż 12 lat. 334 00:16:29,170 --> 00:16:32,160 Dostaję hasło dla tych wierszy. 335 00:16:32,160 --> 00:16:33,914 To co prosiłem. 336 00:16:33,914 --> 00:16:34,580 A co z tym? 337 00:16:34,580 --> 00:16:39,170 Co zrobić, jeśli chcę wybrać gwiazda z Stół mamusie gdzie nazwa_użytkownika równa Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, wybierz gwiazda jest specjalny rodzaj dzikiej karty tzw 339 00:16:43,780 --> 00:16:45,670 że używamy dostać wszystko. 340 00:16:45,670 --> 00:16:48,620 Tak mówią wybierz nazwa użytkownika matkę, która przecinkami 341 00:16:48,620 --> 00:16:51,060 stało się jedynym dwie kolumny tabeli, 342 00:16:51,060 --> 00:16:53,260 Mogę tylko wybrać gwiazdę i dostać wszystko 343 00:16:53,260 --> 00:16:55,030 gdzie nazwa_użytkownika równa Jerry. 344 00:16:55,030 --> 00:16:59,380 A więc to, co chciałbym dostać czy zrobiłem tego konkretnego zapytania. 345 00:16:59,380 --> 00:17:01,810 >> Teraz, bazy danych są wielkie, ponieważ pozwalają one 346 00:17:01,810 --> 00:17:06,074 nam zorganizować informacji może nieco bardziej efektywnie niż my 347 00:17:06,074 --> 00:17:06,740 może inaczej. 348 00:17:06,740 --> 00:17:10,240 Nie muszą przechowywać co istotne informacja 349 00:17:10,240 --> 00:17:12,230 o użytkowniku, w tej samej tabeli. 350 00:17:12,230 --> 00:17:13,730 Mieliśmy tam dwie tabele. 351 00:17:13,730 --> 00:17:15,734 >> Musimy zapisać Nazwa niesłyszących matki, 352 00:17:15,734 --> 00:17:18,900 a może nie mamy zabezpieczenia społecznego liczba, mamy swoją datę urodzenia. 353 00:17:18,900 --> 00:17:21,819 Że nie zawsze trzeba być w tej samej tabeli. 354 00:17:21,819 --> 00:17:25,339 Tak długo, jak możemy zdefiniować relacje pomiędzy tables-- 355 00:17:25,339 --> 00:17:28,440 i tam, że relacyjnych Termin baza rodzaju pochodzi 356 00:17:28,440 --> 00:17:32,130 w play-- tak długo, jak można zdefiniować relacje między tabelami, 357 00:17:32,130 --> 00:17:35,545 możemy rodzaju compartmentalize lub abstrakcyjne rzeczy, sposób, 358 00:17:35,545 --> 00:17:37,670 gdzie mamy tylko bardzo ważne informacje 359 00:17:37,670 --> 00:17:39,270 dbamy o w tabeli użytkownika. 360 00:17:39,270 --> 00:17:43,220 A potem mamy informacje pomocnicze lub dodatkowych informacji w innych tabelach 361 00:17:43,220 --> 00:17:48,260 że możemy podłączyć z powrotem do głównego użytkownicy tabela w sposób szczególny. 362 00:17:48,260 --> 00:17:52,200 >> Więc tutaj mamy te dwie tabele, ale istnieje związek między nimi, 363 00:17:52,200 --> 00:17:53,010 dobrze? 364 00:17:53,010 --> 00:17:55,070 Wydaje się, że nazwa użytkownika może być coś 365 00:17:55,070 --> 00:17:59,909 że istnieje wspólne między tych dwóch różnych tabel. 366 00:17:59,909 --> 00:18:01,700 I co z tego, jeśli mamy teraz sytuacja, w której mamy 367 00:18:01,700 --> 00:18:06,046 Aby uzyskać pełną nazwę użytkownika przed Stół użytkownika, a ich matki 368 00:18:06,046 --> 00:18:07,170 nazwy z tabeli matki? 369 00:18:07,170 --> 00:18:10,960 Nie mamy sposobu na zdobycie że w obecnej formie, prawda? 370 00:18:10,960 --> 00:18:17,790 Nie ma jednej tabeli, która zawiera zarówno imię, nazwisko i imię matki. 371 00:18:17,790 --> 00:18:20,400 Nie mamy takiej możliwości od tego, co widzieliśmy do tej pory. 372 00:18:20,400 --> 00:18:22,950 >> A więc musimy wprowadzić idea JOIN. 373 00:18:22,950 --> 00:18:24,857 I przyłącza są prawdopodobnie najbardziej complex-- 374 00:18:24,857 --> 00:18:27,940 to naprawdę najbardziej skomplikowana operacja będziemy mówić w filmie. 375 00:18:27,940 --> 00:18:30,040 Są trochę skomplikowane, ale gdy pojawi się zawiesić go, 376 00:18:30,040 --> 00:18:31,248 nie są one rzeczywiście tak źle. 377 00:18:31,248 --> 00:18:32,820 To jest tylko szczególnym przypadkiem SELECT. 378 00:18:32,820 --> 00:18:37,120 Mamy zamiar wybrać zestaw kolumny z tabeli gięcia 379 00:18:37,120 --> 00:18:40,650 w drugiej tabeli na jakiś orzecznika. 380 00:18:40,650 --> 00:18:45,340 >> W tym przypadku, myślę o tym jak this-- Stół z nich jest tu jedno koło, 381 00:18:45,340 --> 00:18:47,530 Stół dwa to kolejny krąg tutaj. 382 00:18:47,530 --> 00:18:49,410 I ta część orzecznik w środku, to 383 00:18:49,410 --> 00:18:51,701 coś jak jeśli myślisz o postaci diagramu Venna, co 384 00:18:51,701 --> 00:18:52,670 oni mają wspólnego? 385 00:18:52,670 --> 00:18:55,960 Chcemy połączyć te dwie tabele w oparciu o to, co ich łączy 386 00:18:55,960 --> 00:19:01,230 i stworzyć hipotetyczny tabeli to połączenie tych dwóch razem. 387 00:19:01,230 --> 00:19:03,480 Więc zobaczymy to w przykładem i być może, że będzie pomóc 388 00:19:03,480 --> 00:19:04,521 usunąć go trochę. 389 00:19:04,521 --> 00:19:09,260 Więc może chcesz wybrać user.fullname i moms.mother 390 00:19:09,260 --> 00:19:13,220 od użytkowników łączących w mamusie tabeli w każdej sytuacji 391 00:19:13,220 --> 00:19:16,790 gdzie kolumna Nazwa użytkownika jest takie samo między nimi. 392 00:19:16,790 --> 00:19:19,240 I to jest nowa składnia tutaj, do tego użytkownika. 393 00:19:19,240 --> 00:19:20,460 i mamusie .. 394 00:19:20,460 --> 00:19:26,697 Jeśli robię wielu tabel razem, można określić tabelę. 395 00:19:26,697 --> 00:19:29,530 Mogę wyróżnić się w szczególności na które na co bardzo nie na dole. 396 00:19:29,530 --> 00:19:33,220 Mogę odróżnić nazwę użytkownika kolumna tabeli użytkowników 397 00:19:33,220 --> 00:19:36,010 z kolumny nazwę użytkownika mamusie tabeli, które są otherwise-- 398 00:19:36,010 --> 00:19:38,070 jeśli tylko, że nazwa użytkownika jest równa nazwa użytkownika, że ​​naprawdę nie ma 399 00:19:38,070 --> 00:19:38,970 znaczy. 400 00:19:38,970 --> 00:19:41,440 Chcemy to zrobić, gdzie pasuje. 401 00:19:41,440 --> 00:19:46,080 >> Tak można określić tabeli i Nazwa kolumny w przypadku sytuacji 402 00:19:46,080 --> 00:19:48,370 gdzie by to było jasne, tego, co mówię. 403 00:19:48,370 --> 00:19:51,880 Więc to wszystko robię nie jestem mówiąc tę ​​kolumnę z tabeli, 404 00:19:51,880 --> 00:19:54,020 i jest bardzo wyraźne. 405 00:19:54,020 --> 00:19:56,810 Więc jeszcze raz, jestem wybranie pełne imię i nazwisko matki 406 00:19:56,810 --> 00:20:00,950 z tabeli użytkowników połączonych ze sobą z tabelą moms w każdej sytuacji 407 00:20:00,950 --> 00:20:05,960 gdzie oni dzielić się column-- dzielą tę nazwę użytkownika pojęcia. 408 00:20:05,960 --> 00:20:08,580 >> Więc tutaj są tabele, które mieliśmy wcześniej. 409 00:20:08,580 --> 00:20:12,210 To jest stan naszego bazy danych, ponieważ istnieje teraz. 410 00:20:12,210 --> 00:20:16,390 Informacje jesteśmy wydobycia jest to początek. 411 00:20:16,390 --> 00:20:19,820 To jest nowa tabela jedziemy stworzyć łącząc je razem. 412 00:20:19,820 --> 00:20:23,585 I zauważyć, że nie jesteśmy podkreślając Wiersz Newmana w tabeli użytkownika, 413 00:20:23,585 --> 00:20:25,960 i nie jesteśmy podkreślając Kramer wiersz w tabeli moms 414 00:20:25,960 --> 00:20:31,250 bo ani jeden istnieje w zarówno sets-- w obu tabelach. 415 00:20:31,250 --> 00:20:36,260 >> Jedyne informacje, które są wspólne między nimi jest Jerry jest w obu tabelach 416 00:20:36,260 --> 00:20:39,100 i gcostanza jest w obu tablicach. 417 00:20:39,100 --> 00:20:42,620 I tak, gdy robimy to SQL JOIN, co get-- i robimy rzeczywiście dostać to. 418 00:20:42,620 --> 00:20:44,830 To coś w rodzaju zmiennej tymczasowej. 419 00:20:44,830 --> 00:20:47,330 To jak hipotetyczny Połączenie dwóch tabelach. 420 00:20:47,330 --> 00:20:49,930 My faktycznie coś jak to, w którym 421 00:20:49,930 --> 00:20:54,730 mamy połączone ze sobą tabel na Informacje, które mają ze sobą wspólnego. 422 00:20:54,730 --> 00:20:58,334 >> Tak więc zauważyć, że users.username i kolumny moms.username, 423 00:20:58,334 --> 00:20:59,250 to jest dokładnie to samo. 424 00:20:59,250 --> 00:21:01,820 To była informacja, że był zgodny z użytkowników 425 00:21:01,820 --> 00:21:02,890 Stół i tabela mamusie. 426 00:21:02,890 --> 00:21:04,270 I tak połączył je razem. 427 00:21:04,270 --> 00:21:06,919 Mamy wyrzucić Kramer, ponieważ on nie istnieje w tabeli użytkowników, 428 00:21:06,919 --> 00:21:09,710 Newman i wyrzucić, ponieważ nie istnieje w tabeli moms. 429 00:21:09,710 --> 00:21:16,450 Więc jest to hipotetyczne połączenie za pomocą operacji JOIN SELECT. 430 00:21:16,450 --> 00:21:21,250 >> A potem szukaliśmy dla imię i nazwisko autora, a matka autora, 431 00:21:21,250 --> 00:21:24,999 a więc jest to informacja, że dostaniemy od ogólnego zapytania 432 00:21:24,999 --> 00:21:26,040 że zrobiliśmy z SELECT. 433 00:21:26,040 --> 00:21:28,873 Więc dołączył do tabel razem i ekstrakcji te dwie kolumny, 434 00:21:28,873 --> 00:21:31,610 a więc to, co mamy. 435 00:21:31,610 --> 00:21:33,370 Ale SQL JOIN rodzaju skomplikowane. 436 00:21:33,370 --> 00:21:36,770 Prawdopodobnie nie zrobi im zbyt wiele, ale po prostu mają jakieś pojęcie o szkielecie 437 00:21:36,770 --> 00:21:41,992 że można użyć do połączenia dwóch stoły razem, jeśli potrzebne do. 438 00:21:41,992 --> 00:21:43,700 Dwa ostatnie są nieco prostsze obiecuję. 439 00:21:43,700 --> 00:21:48,040 Więc aktualizacji, możemy użyć UPDATE zmienić informację w tabeli. 440 00:21:48,040 --> 00:21:53,880 Ogólny format jest UPDATE niektóre stół, jakieś kolumny do pewnej wartości 441 00:21:53,880 --> 00:21:55,540 GDZIE niektóre predykat jest spełniony. 442 00:21:55,540 --> 00:21:57,850 Tak na przykład, możemy chcieć aktualizacji tabeli użytkowników 443 00:21:57,850 --> 00:22:04,400 i ustawić hasło do bla bla, przy czym numer identyfikacyjny 10. 444 00:22:04,400 --> 00:22:06,400 >> Więc w tym przypadku, że jesteśmy aktualizowania tabeli użytkowników. 445 00:22:06,400 --> 00:22:08,275 Numer ID jest 10 dla że pierwszy rząd tam, 446 00:22:08,275 --> 00:22:10,690 i chcemy zaktualizować Hasło do bla bla. 447 00:22:10,690 --> 00:22:12,170 A więc to, co się stanie. 448 00:22:12,170 --> 00:22:13,628 Jest to dość proste, prawda? 449 00:22:13,628 --> 00:22:17,990 To jest po prostu bardzo prosta Modyfikacja tabeli. 450 00:22:17,990 --> 00:22:22,250 >> DELETE jest operacja kiedyś usuwanie danych z tabeli. 451 00:22:22,250 --> 00:22:24,817 DELETE FROM tabela WHERE niektóre predykat jest spełniony. 452 00:22:24,817 --> 00:22:26,900 Chcemy, aby usunąć z użytkowników stół na przykład 453 00:22:26,900 --> 00:22:28,254 gdzie nazwa użytkownika jest Newman. 454 00:22:28,254 --> 00:22:31,420 Można się domyślić, co się stało się tu po wykonujemy że SQL 455 00:22:31,420 --> 00:22:35,790 zapytanie Newman odszedł od stołu. 456 00:22:35,790 --> 00:22:40,460 >> Więc wszystkie te operacje, jak już mówiłem, są bardzo łatwe do zrobienia w phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Jest to bardzo przyjazny interfejs użytkownika. 458 00:22:43,020 --> 00:22:45,930 Ale to nie wymagają ręcznego wysiłku. 459 00:22:45,930 --> 00:22:47,840 Nie chcemy zatrudniać ręcznego wysiłku. 460 00:22:47,840 --> 00:22:51,280 Chcemy, aby nasze programy do zrobić dla nas, prawda? 461 00:22:51,280 --> 00:22:53,190 Więc może chcemy zrobić to programowo. 462 00:22:53,190 --> 00:22:56,410 Chcemy włączyć SQL i mają coś jeszcze zrobić to za nas. 463 00:22:56,410 --> 00:23:02,710 >> Ale to, co widzieliśmy, która pozwala nam programowo coś zrobić? 464 00:23:02,710 --> 00:23:03,690 Widzieliśmy PHP, prawda? 465 00:23:03,690 --> 00:23:05,760 Wprowadza pewne Dynamizm w naszych programach. 466 00:23:05,760 --> 00:23:10,430 I tak, na szczęście, SQL i PHP grać bardzo ładnie razem. 467 00:23:10,430 --> 00:23:13,230 Jest to funkcja w PHP zwane zapytania, które mogą być użyte. 468 00:23:13,230 --> 00:23:15,870 I można przekazać jako parametr lub argument 469 00:23:15,870 --> 00:23:19,210 na zapytanie zapytanie SQL, które chcesz wykonać. 470 00:23:19,210 --> 00:23:23,250 I PHP zrobi to w jego imieniu. 471 00:23:23,250 --> 00:23:25,564 >> Więc jak już podłączony do bazy danych z PHP, 472 00:23:25,564 --> 00:23:26,980 tam dwa prawybory to zrobić. 473 00:23:26,980 --> 00:23:29,230 Jest coś, co nazywa MySQLi i coś zwane PDO. 474 00:23:29,230 --> 00:23:31,063 Nie będziemy się ogromny ilość szczegółów nie. 475 00:23:31,063 --> 00:23:32,957 W CS50 używamy PDO. 476 00:23:32,957 --> 00:23:34,790 Po podłączeniu do bazy danych, można 477 00:23:34,790 --> 00:23:40,980 może następnie dokonać zapytań do bazy danych przekazując zapytania jako argumenty 478 00:23:40,980 --> 00:23:42,730 do funkcji PHP. 479 00:23:42,730 --> 00:23:46,460 A kiedy to zrobisz, możesz przechowywać zestaw wyników w tablicy asocjacyjnej. 480 00:23:46,460 --> 00:23:50,290 >> I wiemy, jak pracować z Tablice asocjacyjne w PHP. 481 00:23:50,290 --> 00:23:52,630 Więc może coś powiedzieć jak this-- $ results-- 482 00:23:52,630 --> 00:23:55,470 to jest w PHP-- równa zapytania. 483 00:23:55,470 --> 00:23:57,660 A następnie wewnątrz z Funkcja kwerendy że argument 484 00:23:57,660 --> 00:24:00,130 że jestem przechodząc do zapytania który wygląda jak SQL. 485 00:24:00,130 --> 00:24:01,160 A w rzeczywistości to jest SQL. 486 00:24:01,160 --> 00:24:05,700 To ciąg kwerendy, które chciałbym jak wykonać w mojej bazie danych. 487 00:24:05,700 --> 00:24:09,250 >> I tak, w kolorze czerwonym, to jest PHP. 488 00:24:09,250 --> 00:24:11,890 Jest to SQL, że jestem integracji z PHP poprzez 489 00:24:11,890 --> 00:24:15,020 to argument do funkcji zapytania. 490 00:24:15,020 --> 00:24:19,640 Chcę wybrać FullName z użytkowników, gdzie numer ID wynosi 10. 491 00:24:19,640 --> 00:24:22,560 A to może po tym, jak już to zrobisz, Mogę powiedzieć coś takiego. 492 00:24:22,560 --> 00:24:25,550 Chcę wydrukować Dzięki za wiadomość zalogowaniu. 493 00:24:25,550 --> 00:24:32,530 >> I chcę go interpolate-- chcę interpolacji $ wyniki FullName. 494 00:24:32,530 --> 00:24:36,280 I tak to w jaki sposób pracować z które asocjacyjna, że ​​wróciłem. 495 00:24:36,280 --> 00:24:39,730 $ wyniki pełna nazwa będzie w zasadzie kończy się drukowanie, 496 00:24:39,730 --> 00:24:42,870 dzięki za zalogowaniu, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 To była pełna nazwa gdzie idnum równa 10. 498 00:24:46,570 --> 00:24:48,850 >> A więc wszystko robię to ja jestem now-- przechowywane 499 00:24:48,850 --> 00:24:52,780 moje zapytanie, wyniki mojej kwerendy i wyniki w tablicy asocjacyjnej, 500 00:24:52,780 --> 00:24:56,330 a pełna nazwa to nazwa kolumna I był już za. 501 00:24:56,330 --> 00:25:01,010 Więc to jest mój klucz do wyników asocjacyjna, że ​​chcę. 502 00:25:01,010 --> 00:25:05,930 Więc Dzięki za zalogowaniu $ wyniki, będzie pełna nazwa wydrukować, będzie trzymać 503 00:25:05,930 --> 00:25:08,654 w prawo od tych kręconych szelki, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 A ja chciałbym wydrukować wiadomości Dzięki za zalogowaniu Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Teraz pewnie nie chcą ciężko Kod takie rzeczy się, prawda? 506 00:25:16,652 --> 00:25:19,860 Może Chcemy zrobić coś takiego druku f, gdzie możemy zastąpić i być może 507 00:25:19,860 --> 00:25:22,443 zbierać różne informacje, czy może mieć proces przeszukiwania 508 00:25:22,443 --> 00:25:23,370 różne informacje. 509 00:25:23,370 --> 00:25:27,920 A więc pytanie, funkcja kwerendy ma to pojęcie rodzaju substytucji 510 00:25:27,920 --> 00:25:32,310 Bardzo podobny do drukowania f procent s i procent c, to znaki zapytania. 511 00:25:32,310 --> 00:25:34,290 >> I możemy użyć pytanie Znaki bardzo analogicznie 512 00:25:34,290 --> 00:25:38,400 wydrukować f zmiennych zastępczych. 513 00:25:38,400 --> 00:25:44,120 Więc może twoja użytkownik zalogowany wcześniej, i zapisaniu ich numer ID użytkownika 514 00:25:44,120 --> 00:25:51,710 w $ _SESSION PHP Super globalnej w kluczowej ID. 515 00:25:51,710 --> 00:25:55,947 Więc może po zalogowaniu $ _SESSION ustawić ID równa się 10, 516 00:25:55,947 --> 00:25:58,280 ekstrapolacji na przykładzie po prostu zobaczył drugą temu. 517 00:25:58,280 --> 00:26:01,960 >> I tak, gdy faktycznie wykonuje to zapytanie wyniki teraz, 518 00:26:01,960 --> 00:26:08,440 to podłączyć 10, lub cokolwiek wartość ID $ _SESSION jest. 519 00:26:08,440 --> 00:26:10,790 I tak, że pozwala nam być nieco bardziej dynamiczne. 520 00:26:10,790 --> 00:26:12,699 Nie będziemy ciężko kodowania rzeczy już. 521 00:26:12,699 --> 00:26:14,490 Jesteśmy zapisywanie informacji gdzieś, a następnie 522 00:26:14,490 --> 00:26:18,924 możemy użyć ponownie te informacje rodzaj uogólnienia, co chcemy zrobić, 523 00:26:18,924 --> 00:26:21,090 i po prostu podłączyć i zmiany zachowanie naszej stronie 524 00:26:21,090 --> 00:26:26,489 na podstawie jakiego numeru ID użytkownika w rzeczywistości jest po ich zalogowany. 525 00:26:26,489 --> 00:26:28,530 Możliwe jest również, choć, które ustawione wyniki 526 00:26:28,530 --> 00:26:30,840 Może składać się z wielu rzędów. 527 00:26:30,840 --> 00:26:33,990 W takim przypadku, trzeba tablica arrays-- 528 00:26:33,990 --> 00:26:35,334 tablicę tablic asocjacyjnych. 529 00:26:35,334 --> 00:26:37,000 A wystarczy iteracji przez nią. 530 00:26:37,000 --> 00:26:41,950 I wiemy, jak do iteracji za pośrednictwem tablicy w PHP, prawda? 531 00:26:41,950 --> 00:26:45,600 Więc tutaj jest chyba najbardziej Kompleks rzeczy widzieliśmy do tej pory. 532 00:26:45,600 --> 00:26:49,640 To rzeczywiście integruje trzy języki razem. 533 00:26:49,640 --> 00:26:52,920 >> Tu, w kolorze czerwonym, to niektóre HTML. 534 00:26:52,920 --> 00:26:56,872 Ja najwyraźniej starting-- to urywek jakiegoś HTML, który mam. 535 00:26:56,872 --> 00:26:59,580 Zaczynam nowy akapit, że mówi moms Seinfeld telewizora. 536 00:26:59,580 --> 00:27:02,350 A potem zaraz potem Zaczynam tabeli. 537 00:27:02,350 --> 00:27:06,060 A następnie po tym, ja jakieś PHP, prawda? 538 00:27:06,060 --> 00:27:08,229 Mam wszystkie tego kodu PHP tam. 539 00:27:08,229 --> 00:27:09,645 Ja najwyraźniej zamiar złożyć zapytanie. 540 00:27:09,645 --> 00:27:14,180 I żeby zrobić kwerendę, zamierzam za pomocą przycisku SELECT matek Z matek. 541 00:27:14,180 --> 00:27:15,970 >> Więc to jest getting-- to SQL. 542 00:27:15,970 --> 00:27:17,300 Więc niebieski jest SQL. 543 00:27:17,300 --> 00:27:19,680 Czerwona widzieliśmy przed chwilą była HTML. 544 00:27:19,680 --> 00:27:21,360 I tu jest zielona PHP. 545 00:27:21,360 --> 00:27:23,400 Więc robię zapytanie do mojej bazy danych, jestem 546 00:27:23,400 --> 00:27:26,040 wybierając wszystkie z matki w tabeli moms. 547 00:27:26,040 --> 00:27:30,710 Nie tylko zawężając go do szczególności wiersz, pytam dla nich wszystkich. 548 00:27:30,710 --> 00:27:33,290 >> Następnie sprawdzić, czy wynik jest nie równe równa false. 549 00:27:33,290 --> 00:27:37,410 To jest po prostu mój sposób na sprawdzenie rodzaju od tego, czy wyniki nie jest równa null, 550 00:27:37,410 --> 00:27:40,260 które widzimy c np. 551 00:27:40,260 --> 00:27:44,000 Zasadniczo jest to po prostu sprawdzić, aby upewnić się, że rzeczywiście dostał dane z powrotem. 552 00:27:44,000 --> 00:27:47,041 Bo nie chcę, aby rozpocząć drukowanie z danymi, jeśli nie miałem żadnych danych. 553 00:27:47,041 --> 00:27:50,690 Następnie dla każdego wyniki W rezultacie foreach składnia z PHP, wszystko robię 554 00:27:50,690 --> 00:27:53,399 drukuje się matki $ wynik. 555 00:27:53,399 --> 00:27:55,940 I tak mam zamiar dostać zestaw wszystkich matek each-- 556 00:27:55,940 --> 00:27:59,980 to tablica stowarzyszeniowej arrays-- i jestem drukowanie 557 00:27:59,980 --> 00:28:03,649 każdy w oddzielnym wierszu tabeli. 558 00:28:03,649 --> 00:28:05,690 I to jest naprawdę ładna dużo wszystko było w porządku. 559 00:28:05,690 --> 00:28:07,750 Wiem, że to trochę trochę tu dzieje 560 00:28:07,750 --> 00:28:13,210 W tym ostatnim przykładzie z tablic arrays-- tablic asocjacyjnych. 561 00:28:13,210 --> 00:28:17,340 Ale to naprawdę nie tylko gotować w SQL do tworzenia zapytania, 562 00:28:17,340 --> 00:28:21,102 Zwykle wybierając już po mamy umieścić informacje w tabeli 563 00:28:21,102 --> 00:28:22,310 a potem po prostu wyciągając go. 564 00:28:22,310 --> 00:28:25,710 >> I to my go wyciągnąć w tym konkretnym przypadku. 565 00:28:25,710 --> 00:28:31,120 Chcemy wydobyć wszystkie jednostki matki z tabeli moms. 566 00:28:31,120 --> 00:28:35,970 Mamy cały zestaw nich, a my chcą iterację i wydrukować 567 00:28:35,970 --> 00:28:37,630 każdy. 568 00:28:37,630 --> 00:28:40,510 Więc jeszcze raz, to prawdopodobnie najbardziej skomplikowany przykład 569 00:28:40,510 --> 00:28:44,510 widzieliśmy, ponieważ jesteśmy mieszania trzy różne języki razem, prawda? 570 00:28:44,510 --> 00:28:50,100 >> Znów mamy tu na czerwono HTML, miesza się z pewnym SQL tutaj w kolorze niebieskim, 571 00:28:50,100 --> 00:28:52,049 pomieszany z PHP na zielono. 572 00:28:52,049 --> 00:28:53,840 Ale wszystko to grać ładnie razem, to 573 00:28:53,840 --> 00:28:57,060 tylko kwestia rozwoju dobre nawyki, dzięki czemu można uzyskać 574 00:28:57,060 --> 00:28:58,780 im pracować razem, jak chcesz. 575 00:28:58,780 --> 00:29:03,790 A jedynym sposobem, aby naprawdę zrobić jest praktyka, praktyka, praktyka. 576 00:29:03,790 --> 00:29:06,740 Jestem Doug Lloyd, to CS50. 577 00:29:06,740 --> 00:29:08,647