1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [CHRISTOPHER Bartłomieja] [Harvard University] 3 00:00:04,000 --> 00:00:06,000 [Jest to CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Tak, programiści baz danych jako narzędzie do przechowywania i porządkowania 5 00:00:11,620 --> 00:00:13,620 nasze trwałe dane w tabelach. 6 00:00:13,620 --> 00:00:18,960 Oznacza to, że dane są przechowywane na nielotnych median, takich jak dysk twardy, 7 00:00:18,960 --> 00:00:22,940 i nawet gdy komputer jest wyłączony, dane są wciąż nienaruszone. 8 00:00:22,940 --> 00:00:29,530 I, jak programistów, nasze programy wykorzystują bazy danych w sytuacjach, takich jak przechowywanie 9 00:00:29,530 --> 00:00:32,890 Informacje użytkownika z formularzy internetowych, patrząc inwentaryzacji, 10 00:00:32,890 --> 00:00:36,210 lub aktualizacji informacji o stronach wyświetlane. 11 00:00:37,150 --> 00:00:40,070 Ale jak właściwie współdziałać z naszej bazy danych, 12 00:00:40,070 --> 00:00:43,150 lub co możemy użyć do odczytu, zapisać, usunąć, 13 00:00:43,150 --> 00:00:46,070 i zaktualizować nasze dane w tych tabelach bazy danych? 14 00:00:47,280 --> 00:00:49,700 Cóż, odpowiedź jest taka, że ​​możemy użyć specjalnego typu języka bazy danych 15 00:00:49,700 --> 00:00:53,400 który oddziałuje bezpośrednio z naszych tabel bazodanowych. 16 00:00:53,400 --> 00:00:56,740 Jego nazwa jest Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 lub co nazywam SQL. 19 00:01:00,740 --> 00:01:05,100 >> Teraz [Se-Quel] lub SQL, nie jest on językiem programowania, 20 00:01:05,100 --> 00:01:08,580 ale zamiast tego, jest to język, który zapewnia standardowy zestaw poleceń 21 00:01:08,580 --> 00:01:13,520 do pobierania i przetwarzania danych pochodzących z różnych systemów zarządzania bazami danych. 22 00:01:13,520 --> 00:01:17,630 Dla celów CS50, pójdziemy na cztery podstawowe komendy: 23 00:01:17,630 --> 00:01:21,210 SELECT, INSERT, aktualizować i usuwać. 24 00:01:21,210 --> 00:01:26,230 Ponadto, będziemy wykorzystywać interfejs WWW bazy danych o nazwie phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 którym zainstalowany na urządzeniu, aby napisać nasze SQL. 26 00:01:30,830 --> 00:01:33,050 Tak więc, aby pomóc w zapamiętaniu tych poleceń, 27 00:01:33,050 --> 00:01:37,080 Przyniosłem trochę babeczki w szafie do pomocy w naszych scenariuszach. 28 00:01:39,650 --> 00:01:42,210 Powiedzmy, że masz cupcake bazę danych, 29 00:01:42,210 --> 00:01:44,490 gdzie przechowywać wszystkie informacje o cupcakes. 30 00:01:44,490 --> 00:01:48,220 Teraz, bazy danych może zawierać wiele tabel 31 00:01:48,220 --> 00:01:50,950 i stoły same mogą zawierać wiele kolumn. 32 00:01:50,950 --> 00:01:57,020 Wewnątrz naszego Cupcake bazie danych mamy tabelę o nazwie cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Tabela ta będzie używana do przechowywania wszystkich informacji o babeczki 34 00:02:00,500 --> 00:02:02,990 które są, dobrze, w swojej szafce. 35 00:02:02,990 --> 00:02:07,770 Kolumny, które są w środku tabeli reprezentują atrybuty cupcake. 36 00:02:07,770 --> 00:02:14,560 Na przykład, są cupcake_cupboard kolumnach 37 00:02:14,560 --> 00:02:15,920 Ciasto ID, CakeType, CakeColor i CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Ta wartość, wpisywanych kolumna jest używana do określenia, czy ciasto jest dobre, czy nie miłe. 39 00:02:23,040 --> 00:02:26,560 Mamy zamiar zacząć pisanie SELECT. 40 00:02:26,560 --> 00:02:32,160 SELECT są używane do pobierania danych konkretnego tabeli bazy danych. 41 00:02:32,160 --> 00:02:34,890 W tym scenariuszu, chcemy wiedzieć wszystko 42 00:02:34,890 --> 00:02:39,080 o wszystkie babeczki, które istnieją w naszej szafie. 43 00:02:39,080 --> 00:02:48,670 Składnia to zrobić "Wybierz", Space Star, lub *, miejsce z przestrzeni naszego stolika, 44 00:02:48,670 --> 00:02:52,050 który jest cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Idziemy dalej i wykonać to. 46 00:02:56,670 --> 00:03:00,140 >> Jak widać, to wszystko w naszej szafie babeczki. 47 00:03:00,140 --> 00:03:05,110 Ważne jest, aby pamiętać, że *, lub gwiazdkę, to dziki charakter karta 48 00:03:05,110 --> 00:03:08,830 że oznacza zebranie wszystkich kolumn jakiejś tabeli. 49 00:03:08,830 --> 00:03:13,650 Normalnie, możemy uzyskać dostęp do konkretnego kolumnę lub kolumny 50 00:03:13,650 --> 00:03:16,950 zastępując * z rzeczywistą nazwę kolumny. 51 00:03:16,950 --> 00:03:21,220 Jeśli chcemy wielu kolumn, ale nie wszystkie, można to osiągnąć 52 00:03:21,220 --> 00:03:25,620 pisząc nazwy kolumn rozgraniczających każdą kolumnę przecinkiem. 53 00:03:25,620 --> 00:03:28,620 Na przykład, niech tylko pobierać CakeId i CakeType w tabeli cupcake_cupboard. 54 00:03:28,620 --> 00:03:38,370 Składnia to zrobić: SELECT miejsce przecinek CakeID 55 00:03:38,370 --> 00:03:44,370 CakeType przestrzeń z naszej tabeli, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Idziemy dalej i wykonać to. 57 00:03:49,340 --> 00:03:52,670 A tutaj, teraz tylko dwie kolumny to określone 58 00:03:52,670 --> 00:03:54,670 dla każdego ciastko w naszej szafie. 59 00:03:54,670 --> 00:03:57,710 Możemy również udoskonalić nasze wyniki kwerendy, określając 60 00:03:57,710 --> 00:04:00,910 "Gdzie" klauzula zaraz po nazwie tabeli. 61 00:04:02,000 --> 00:04:05,410 Na przykład, wydaje się, że w naszym szafie Cupcake 62 00:04:05,410 --> 00:04:08,660 to jest dobrze, nie tak ładne. 63 00:04:08,660 --> 00:04:13,950 Miejmy dowiedzieć wszystkie babeczki w naszej szafie, które są, dobrze, nie tak ładne 64 00:04:13,950 --> 00:04:16,110 używając "Where" klauzula. 65 00:04:16,110 --> 00:04:26,390 Składnia to zrobić: SELECT * przestrzeń od przestrzeni kosmicznej cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 miejsca, gdzie przestrzeń naszą warunkową kolumnę, w tym przypadku CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 i logiczną wartość False. 68 00:04:36,900 --> 00:04:42,750 Ważne jest, aby pamiętać, że jeśli używasz strun, należy ująć go w pojedynczych cudzysłowach. 69 00:04:42,750 --> 00:04:49,620 Odnosi się to do wszystkich ciągów w SQL, lub w zakresie baz danych SQL, wariant znaków 70 00:04:49,620 --> 00:04:51,620 znany jako varchar typ danych. 71 00:04:51,620 --> 00:04:57,660 W tym przypadku używamy True lub False, co jest wartością logiczną, a nie string. 72 00:04:59,120 --> 00:05:00,660 Idziemy dalej i wykonać to polecenie. 73 00:05:00,660 --> 00:05:05,340 >> I oto, to jest tak, że mamy 1 czekoladę 74 00:05:05,340 --> 00:05:07,920 nie tak miłe ciastko w naszej szafie. 75 00:05:09,620 --> 00:05:11,460 Następnie jedziemy do napisania INSERT. 76 00:05:11,460 --> 00:05:15,560 INSERT używane są do wstawiania lub dodać 77 00:05:15,560 --> 00:05:17,770 dodatkowe wiersze danych do tabeli bazy danych. 78 00:05:17,770 --> 00:05:23,160 Wracając nasz scenariusz, załóżmy, że mamy po prostu się zupełnie nową babeczkę. 79 00:05:25,910 --> 00:05:30,080 Ponieważ jesteśmy bardzo zorganizowana zjadacze Cupcake, będziemy musieli wprowadzić tę nową babeczkę 80 00:05:30,080 --> 00:05:32,330 w naszej tabeli cupcake_cupboard. 81 00:05:32,330 --> 00:05:40,690 Składnia to zrobić w ten sposób: Wstaw przestrzeń w przestrzeń naszego stolika, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, przestrzeni (, 83 00:05:46,830 --> 00:05:51,060 i tu określić kolumny nazwisk, oddzielone przecinkami, 84 00:05:51,060 --> 00:05:59,790 Przecinek CakeType CakeColor przecinek CakeIsNice) przestrzeń. 85 00:05:59,790 --> 00:06:06,540 Następnie piszemy przestrzeń VALUES słowa (i tu 86 00:06:06,540 --> 00:06:12,170 możemy wpisać wartość dla każdej kolumny, odpowiednio, również oddzielone przecinkami. 87 00:06:12,170 --> 00:06:17,830 Pojedynczy cudzysłów, ponieważ są one wszystkie wartości varchar my otoczyć je w pojedynczych cudzysłowach, 88 00:06:17,830 --> 00:06:26,780 Masło orzechowe "przecinek" jasnobrązowy "przecinek True. 89 00:06:26,780 --> 00:06:30,480 Teraz ważne jest, aby dać każdemu wierszowi unikalny numer do identyfikacji. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing kolumny zapewnia to jako 91 00:06:33,660 --> 00:06:37,410  "Nie ma dwóch takich samych identyfikatorów może kiedykolwiek istnieć w tabeli." 92 00:06:37,410 --> 00:06:39,480 Idziemy dalej i wykonać. 93 00:06:39,480 --> 00:06:45,380 Nie idziemy, wszystko zorganizowane. 94 00:06:49,720 --> 00:06:52,100 >> Następny SQL, że będziemy pisać jest instrukcja aktualizacji. 95 00:06:52,100 --> 00:06:55,650 UPDATE można modyfikować dane w kolumnie 96 00:06:55,650 --> 00:06:58,440 dla każdego istniejącego wiersza w tabeli bazy danych. 97 00:06:59,670 --> 00:07:03,420 Wcześniej w naszym scenariuszu za pomocą instrukcji SELECT, zidentyfikowaliśmy Cupcake 98 00:07:03,420 --> 00:07:08,300 W ramach naszej cupcake_cupboard stole, której wartość CakeIsNice było fałszywe. 99 00:07:08,300 --> 00:07:12,050 Załóżmy, że podczas gdy nasz Cupcake masło orzechowe było w piecu, 100 00:07:12,050 --> 00:07:15,790 zrobiliśmy nasz nie-tak-nice Cupcake bardzo ładne. 101 00:07:18,020 --> 00:07:22,240 Będąc tak wyjątkowo zorganizowana, chcemy, aby nasz Cupcake odzwierciedlać tę wartość 102 00:07:22,240 --> 00:07:24,240 w naszej tabeli cupcake_cupboard. 103 00:07:24,240 --> 00:07:28,710 Dlatego niech aktualizujemy ciastko czekoladowe w bazie danych, aby to odzwierciedlić. 104 00:07:28,710 --> 00:07:39,720 Składnia jest następująca: space UPDATE nasz stół, cupcake_cupboard, space spacja SET 105 00:07:39,720 --> 00:07:44,240 kolumny, które chcemy zmienić, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 To tutaj możemy umieścić naszą nową wartością prawdziwą przestrzeń. 107 00:07:49,210 --> 00:07:54,290 Teraz, ponieważ nie chcemy, aby zaktualizować wszystkie wiersze z tej wartości, 108 00:07:54,290 --> 00:07:57,400 chcemy zapewnić "gdzie" klauzulę, że będzie z nami ustalenia punktów 109 00:07:57,400 --> 00:07:59,830 dokładnie do wiersza, który chcemy zmodyfikować. 110 00:07:59,830 --> 00:08:03,690 W tym przypadku wiadomo, że jest tylko jedna Cupcake 111 00:08:03,690 --> 00:08:06,670 które ma CakeIsNice wartość False. 112 00:08:06,670 --> 00:08:11,030 Co więcej, będziemy również zapewnić, że jesteśmy aktualizacji poprawny wiersz 113 00:08:11,030 --> 00:08:13,030 za pomocą "i" klauzuli. 114 00:08:14,340 --> 00:08:17,270 Używamy "i" klauzuli udoskonalić nasze zapytanie dalej. 115 00:08:17,270 --> 00:08:20,380 W tym przypadku, ponieważ wiemy, że ciastko jest czekolada, 116 00:08:20,380 --> 00:08:23,160 będziemy używać tego CakeType kolumnę. 117 00:08:23,160 --> 00:08:31,500 Gdzie przestrzeń nasza kolumna CakeIsNice warunkowe space space = False, 118 00:08:31,500 --> 00:08:38,330 i przestrzeń CakeType = 'CHOCOLATE. 119 00:08:38,330 --> 00:08:41,880 Tak więc, wprowadzenie go wszyscy razem, to oświadczenie aktualizacja mówi 120 00:08:41,880 --> 00:08:44,670 znaleźć wszystkie babeczki ciastko w naszej szafie, 121 00:08:44,670 --> 00:08:50,520 i jeśli jest ciastko, którego kolumna CakeIsNice zawiera wartość FALSE 122 00:08:50,520 --> 00:08:54,130 i CakeType zawiera czekolada wartości, 123 00:08:54,130 --> 00:08:58,240 chcemy zaktualizować konkretnych CakeIsNice wierszy wartość True. 124 00:08:58,240 --> 00:09:01,140 Więc idziemy do przodu i wykonanie instrukcji. 125 00:09:03,860 --> 00:09:05,860 A teraz, jesteśmy zorganizowani. 126 00:09:06,650 --> 00:09:09,220 >> Całe to gadanie o babeczki uczynił mnie nieco głodny. 127 00:09:09,220 --> 00:09:11,360 Myślę, że powinienem pomóc sobie do jednego. 128 00:09:11,360 --> 00:09:17,670 Ale gdybym rzeczywiście jeść to ciastko, powinienem przynajmniej także usunąć swoje istnienie 129 00:09:17,670 --> 00:09:19,670  z naszego stołu cupcake_cupboard. 130 00:09:20,650 --> 00:09:22,590 Aby to zrobić, będziemy korzystać z "Delete" oświadczenie. 131 00:09:22,590 --> 00:09:27,400 "Delete" oświadczenie może być stosowany do usuwania niektórych lub wszystkich wierszy z tabeli. 132 00:09:27,400 --> 00:09:29,920 Jeśli chcesz usunąć jakiś specyficzny wiersz z tabeli, 133 00:09:29,920 --> 00:09:34,360 Następnie należy podać "gdzie" klauzulę, określając w ten sposób kolumnę 134 00:09:34,360 --> 00:09:37,660 który powinien być unikalny dla wiersza, który chcesz usunąć. 135 00:09:37,660 --> 00:09:47,370 To jest składnia: DELETE przestrzeń od przestrzeni nasz stół, cupcake_cupboard, przestrzeń. 136 00:09:47,370 --> 00:09:51,760 Teraz, w tym momencie, gdy jesteś tak daleko w swoim oświadczeniu delete 137 00:09:51,760 --> 00:09:54,240 chcesz być bardzo ostrożni. 138 00:09:54,240 --> 00:09:59,970 Na przykład, jeśli chcę uruchomić tę kwerendę, jak to jest bez podania jakiś "gdzie" klauzulę 139 00:09:59,970 --> 00:10:04,500 Stracę wszystkie dane w tej tabeli cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 ale dlatego, że ja już wiem, że moje ciasto Identyfikatory są unikalne, użyję 141 00:10:09,590 --> 00:10:12,410 Red Velvet cake ID dla mojego "gdzie" klauzuli. 142 00:10:14,550 --> 00:10:20,670 Gdzie przestrzeń nasza kolumna CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Ponieważ jest to liczba całkowita, nie ma potrzeby, aby otoczyć ją apostrofami. 144 00:10:25,010 --> 00:10:27,020 No to wykonanie instrukcji. 145 00:10:33,560 --> 00:10:35,990 Dobrze, że teraz mamy otarł istnienie tego ciastko 146 00:10:35,990 --> 00:10:40,360 z naszego stołu cupcake_cupboard, mamy tylko jedna rzecz: 147 00:10:41,680 --> 00:10:43,680 Sprawiają, że znikają. 148 00:10:43,680 --> 00:10:46,990 Jestem Christopher Bartłomiej. To CS50.