1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [Крыстафер Варфаламей] [HARVARD UNIVERSITY] 3 00:00:04,000 --> 00:00:06,000 [Гэта CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Такім чынам, праграмісты выкарыстоўваюць базы дадзеных як інструмент для захоўвання і парадкавання 5 00:00:11,620 --> 00:00:13,620 нашы пастаянныя дадзеныя ў табліцах. 6 00:00:13,620 --> 00:00:18,960 Гэта азначае, што вашыя дадзеныя захоўваюцца на энерганезалежнай медыянаў, такіх як жорсткі дыск, 7 00:00:18,960 --> 00:00:22,940 і нават калі кампутар выключаны, дадзеныя застаюцца некранутымі. 8 00:00:22,940 --> 00:00:29,530 І, як праграмісты, нашы праграмы выкарыстоўваюць базы дадзеных для сцэнарыяў, такіх як захоўванне 9 00:00:29,530 --> 00:00:32,890 інфармацыю пра карыстальнікаў з вэб-формаў, гледзячы інвентара, 10 00:00:32,890 --> 00:00:36,210 або абнаўлення інфармацыі аб тым, якія сайты праглядаў. 11 00:00:37,150 --> 00:00:40,070 Але як жа мы на самай справе ўзаемадзейнічаюць з нашай базы дадзеных, 12 00:00:40,070 --> 00:00:43,150 або тое, што мы выкарыстоўваем для чытання, захоўвання, выдалення, 13 00:00:43,150 --> 00:00:46,070 і абнаўляць нашы дадзеныя ў гэтых табліцах базы дадзеных? 14 00:00:47,280 --> 00:00:49,700 Ну, адказ у тым, што мы выкарыстоўваем спецыяльны тып базы дадзеных мове 15 00:00:49,700 --> 00:00:53,400 , Які ўзаемадзейнічае непасрэдна з нашымі табліцамі базы дадзеных. 16 00:00:53,400 --> 00:00:56,740 Гэта імя з'яўляецца Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Мова структураваных запытаў] 18 00:00:58,740 --> 00:01:00,740 або тое, што я называю SQL. 19 00:01:00,740 --> 00:01:05,100 >> Цяпер [Se-Quel], або SQL, не з'яўляецца мовай праграмавання, 20 00:01:05,100 --> 00:01:08,580 але замест гэтага, гэта мова, які дае стандартны набор каманд 21 00:01:08,580 --> 00:01:13,520 атрымліваць і апрацоўваць дадзеныя з розных сістэм кіравання базамі дадзеных. 22 00:01:13,520 --> 00:01:17,630 Для CS50, мы пойдзем на чатыры асноўныя каманды: 23 00:01:17,630 --> 00:01:21,210 выбіраць, ўстаўляць, абнаўляць і выдаляць. 24 00:01:21,210 --> 00:01:26,230 Акрамя таго, мы будзем выкарыстоўваць інтэрфейс базы дадзеных вэб званы PHPMyAdmin, 25 00:01:26,230 --> 00:01:29,890 якія ўстаноўлены на прыладзе, каб напісаць нашу SQL заявы. 26 00:01:30,830 --> 00:01:33,050 Такім чынам, каб дапамагчы вам запомніць гэтыя каманды, 27 00:01:33,050 --> 00:01:37,080 Я прывёў некаторыя кексы ў шафу, каб дапамагчы з нашымі сцэнарамі. 28 00:01:39,650 --> 00:01:42,210 Скажам, у вас база дадзеных кекс, у 29 00:01:42,210 --> 00:01:44,490 дзе вы захоўваеце ўсю інфармацыю аб вашых кексаў. 30 00:01:44,490 --> 00:01:48,220 Цяпер, базы дадзеных можа ўтрымоўваць мноства табліц 31 00:01:48,220 --> 00:01:50,950 і самі табліцы могуць утрымліваць шмат слупкоў. 32 00:01:50,950 --> 00:01:57,020 Усярэдзіне базы дадзеных нашых кекс, у нас ёсць табліца пад назвай cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Гэтая табліца будзе выкарыстоўвацца для захоўвання ўсёй інфармацыі аб кексаў 34 00:02:00,500 --> 00:02:02,990 што, ну, у вашым шафе. 35 00:02:02,990 --> 00:02:07,770 Стоўбцы, якія знаходзяцца ўнутры вашай табліцы, ўяўляюць сабой атрыбуты кекс. 36 00:02:07,770 --> 00:02:14,560 Напрыклад, калоны cupcake_cupboard з'яўляюцца 37 00:02:14,560 --> 00:02:15,920 Cake ID, CakeType, CakeColor, і CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Гэта лагічны тыпізаваных слупок выкарыстоўваецца, каб вызначыць, торт добра ці не добра. 39 00:02:23,040 --> 00:02:26,560 Мы збіраемся пачаць з напісання аператара выбару. 40 00:02:26,560 --> 00:02:32,160 Вылучыце справаздачнасць выкарыстоўваецца для вымання дадзеных з пэўнай табліцы базы дадзеных. 41 00:02:32,160 --> 00:02:34,890 У гэтым выпадку, мы хочам ведаць усё 42 00:02:34,890 --> 00:02:39,080 аб усіх кексы, якія існуюць у нашым шафе. 43 00:02:39,080 --> 00:02:48,670 Сінтаксіс, каб зрабіць гэта "Выбраць" Space Star, або *, прастора ад прасторы нашага стала, 44 00:02:48,670 --> 00:02:52,050 які cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Давайце пойдзем далей і выканаць гэта. 46 00:02:56,670 --> 00:03:00,140 >> Як мы бачым, усе гэтыя кексы ў нашым шафе. 47 00:03:00,140 --> 00:03:05,110 Важна адзначыць, што *, або зорачку, гэта сімвал падстаноўкі 48 00:03:05,110 --> 00:03:08,830 , Што азначае збор усіх слупкоў некаторай табліцы. 49 00:03:08,830 --> 00:03:13,650 Як правіла, мы можам атрымаць доступ да вызначанага або некалькіх слупках 50 00:03:13,650 --> 00:03:16,950 замяніць * з фактычным імем слупка. 51 00:03:16,950 --> 00:03:21,220 Калі мы хочам некалькі слупкоў, але не ўсе мы можам дасягнуць гэтага 52 00:03:21,220 --> 00:03:25,620 шляхам напісання імёнаў слупкоў размежавання кожным слупку коскі. 53 00:03:25,620 --> 00:03:28,620 Напрыклад, давайце здабываць толькі CakeId і CakeType ў cupcake_cupboard табліцы. 54 00:03:28,620 --> 00:03:38,370 Сінтаксіс, каб зрабіць гэта: SELECT прасторы CakeID коскі 55 00:03:38,370 --> 00:03:44,370 CakeType прасторы ад нашага стала, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Давайце пойдзем далей і выканаць гэта. 57 00:03:49,340 --> 00:03:52,670 І вось, зараз ёсць толькі два слупка мы вызначылі 58 00:03:52,670 --> 00:03:54,670 Для кожнага кекса ў нашым шафе. 59 00:03:54,670 --> 00:03:57,710 Мы таксама можам удасканальваць нашы вынікі запыту, паказаўшы 60 00:03:57,710 --> 00:04:00,910 "Дзе" пункта адразу пасля назвы табліцы. 61 00:04:02,000 --> 00:04:05,410 Напрыклад, як уяўляецца, кекс ў нашым шафе 62 00:04:05,410 --> 00:04:08,660 што гэта, ну, не так ужо і добры погляд. 63 00:04:08,660 --> 00:04:13,950 Давайце высветліць усе кексы ў нашым шафе, якія, ну, не так ужо і прыемныя воку 64 00:04:13,950 --> 00:04:16,110 з дапамогай "Дзе" агаворкі. 65 00:04:16,110 --> 00:04:26,390 Сінтаксіс, каб зрабіць гэта: SELECT * прастору прастору ад прасторы cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 прасторы, дзе прастора нашым ўмоўным калонка, у гэтым выпадку CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 і лагічнае значэнне False. 68 00:04:36,900 --> 00:04:42,750 Важна адзначыць, што калі вы выкарыстоўваеце радкі, вы павінны заключыць яго ў адзінарныя двукоссі. 69 00:04:42,750 --> 00:04:49,620 Гэта дакладна для ўсіх радкоў у SQL, або, у тэрмінах SQL базы дадзеных, сімвалы варыянт 70 00:04:49,620 --> 00:04:51,620 вядомы як Varchar тып дадзеных. 71 00:04:51,620 --> 00:04:57,660 У гэтым выпадку мы выкарыстоўваем Праўда ці Хлусня, якая з'яўляецца лагічнае значэнне, а не радок. 72 00:04:59,120 --> 00:05:00,660 Давайце ісці наперад і выканаць гэтую каманду. 73 00:05:00,660 --> 00:05:05,340 >> І вось, гэта той выпадак, што ў нас 1 шакаладам 74 00:05:05,340 --> 00:05:07,920 Не так добра кекс ў нашым шафе. 75 00:05:09,620 --> 00:05:11,460 Далей, мы збіраемся напісаць заяву ўстаўкі. 76 00:05:11,460 --> 00:05:15,560 Уставіць справаздачнасць выкарыстоўваецца, каб ўставіць або дадаць 77 00:05:15,560 --> 00:05:17,770 дадатковыя радкі дадзеных у табліцы базы дадзеных. 78 00:05:17,770 --> 00:05:23,160 Вяртанне да нашага сцэнары, давайце выкажам здагадку, што мы толькі што зрабілі новы кекс. 79 00:05:25,910 --> 00:05:30,080 Так як мы вельмі арганізавана кекс едакоў, мы будзем мець, каб ўставіць новую кекс 80 00:05:30,080 --> 00:05:32,330 У нашым cupcake_cupboard табліцы. 81 00:05:32,330 --> 00:05:40,690 Сінтаксіс для гэтага складаецца ў наступным: Устаўце ў космас нашага стала, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, прабел (, 83 00:05:46,830 --> 00:05:51,060 і тут мы паказваем імёны слупкоў, падзеленых коскамі, 84 00:05:51,060 --> 00:05:59,790 CakeType падзеленыя коскамі CakeColor CakeIsNice) прасторы. 85 00:05:59,790 --> 00:06:06,540 Пасля гэтага, мы пішам прасторы слова VALUES (і тут 86 00:06:06,540 --> 00:06:12,170 Мы увядзіце значэнне для кожнага слупка, адпаведна, таксама падзеленых коскамі. 87 00:06:12,170 --> 00:06:17,830 Адзінарныя двукоссі, таму што яны ўсё Varchar значэнне мы акружым іх у адзінарныя двукоссі, 88 00:06:17,830 --> 00:06:26,780 Святло 'коска' арахісавае масла Браўна коскі True. 89 00:06:26,780 --> 00:06:30,480 Цяпер важна, каб даць кожнай радку унікальны нумар, каб ідэнтыфікаваць сябе. 90 00:06:30,480 --> 00:06:33,660 Автоинкрементом калонка ўяўляе гэта як 91 00:06:33,660 --> 00:06:37,410  "Няма двух аднолькавых ідэнтыфікатараў можа існаваць у гэтай табліцы." 92 00:06:37,410 --> 00:06:39,480 Давайце пойдзем далей і выконваць. 93 00:06:39,480 --> 00:06:45,380 Там мы ідзем, усё арганізавана. 94 00:06:49,720 --> 00:06:52,100 >> Наступны аператар SQL, што мы будзем пісаць гэта абнаўленне заяве. 95 00:06:52,100 --> 00:06:55,650 Абнаўленне заява можа быць выкарыстана для змены дадзеных у слупку 96 00:06:55,650 --> 00:06:58,440 для любой існуючай радкі ў табліцы базы дадзеных. 97 00:06:59,670 --> 00:07:03,420 Раней у нашым сцэнары, з дапамогай аператара выбару, мы вызначылі кекс 98 00:07:03,420 --> 00:07:08,300 у табліцы нашы cupcake_cupboard, чые CakeIsNice значэнне было ілжывым. 99 00:07:08,300 --> 00:07:12,050 Давайце выкажам здагадку, што ў той час як нашы арахісавае масла кекс быў у духоўцы, 100 00:07:12,050 --> 00:07:15,790 мы зрабілі наш не так добры кекс вельмі добра. 101 00:07:18,020 --> 00:07:22,240 Будучы такім выключна арганізаваны, мы хочам, каб наш кекс з улікам гэтага значэння 102 00:07:22,240 --> 00:07:24,240 У нашым cupcake_cupboard табліцы. 103 00:07:24,240 --> 00:07:28,710 Таму, давайце адновім наш шакалад кекс ў базу дадзеных, каб адлюстраваць гэта. 104 00:07:28,710 --> 00:07:39,720 Сінтаксіс: UPDATE прасторы нашага стала, cupcake_cupboard, касмічныя прасторы SET 105 00:07:39,720 --> 00:07:44,240 слупок, які мы хочам змяніць, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Тады тут мы размяшчаем нашы новыя значэння Праўда прасторы. 107 00:07:49,210 --> 00:07:54,290 Цяпер, паколькі мы не хочам, каб абнавіць усе радкі з гэтым значэннем, 108 00:07:54,290 --> 00:07:57,400 Мы хочам, каб забяспечыць "Дзе" пункт, які будзе вызначыць намі 109 00:07:57,400 --> 00:07:59,830 да дакладнай радкі, якія мы хочам змяніць. 110 00:07:59,830 --> 00:08:03,690 У гэтым выпадку, мы ведаем, што ёсць толькі адзін кекс 111 00:08:03,690 --> 00:08:06,670 , Які мае CakeIsNice значэнне False. 112 00:08:06,670 --> 00:08:11,030 Акрамя таго, мы таксама гарантуем, што мы абнаўляем патрэбныя радкі 113 00:08:11,030 --> 00:08:13,030 з дапамогай «А» пункта. 114 00:08:14,340 --> 00:08:17,270 Мы выкарыстоўваем "і" становішча, каб удасканаліць наш запыт далей. 115 00:08:17,270 --> 00:08:20,380 У гэтым выпадку, таму што мы ведаем, што кекс шакалад, 116 00:08:20,380 --> 00:08:23,160 Мы будзем выкарыстоўваць гэты CakeType калонкі. 117 00:08:23,160 --> 00:08:31,500 Дзе прастору нашым ўмоўным прасторы калонкі CakeIsNice прастору = False, 118 00:08:31,500 --> 00:08:38,330 і прастора CakeType = 'CHOCOLATE ». 119 00:08:38,330 --> 00:08:41,880 Такім чынам, пакласці ўсё гэта разам, гэта абнаўленне гаворыцца ў заяве 120 00:08:41,880 --> 00:08:44,670 знайсці ўсё кексы ў нашай кекс шафа, 121 00:08:44,670 --> 00:08:50,520 і калі ёсць кекс, слупок CakeIsNice утрымоўвае значэнне ХЛУСНЯ 122 00:08:50,520 --> 00:08:54,130 і CakeType утрымоўвае значэнне шакаладу, 123 00:08:54,130 --> 00:08:58,240 Мы хочам, каб абнавіць канкрэтныя CakeIsNice радкоў значэнне True. 124 00:08:58,240 --> 00:09:01,140 Такім чынам, давайце ісці наперад і выканаць інструкцыю. 125 00:09:03,860 --> 00:09:05,860 І зараз, мы арганізавалі. 126 00:09:06,650 --> 00:09:09,220 >> Усе гэтыя размовы пра кексы зрабіў мяне трохі галодным. 127 00:09:09,220 --> 00:09:11,360 Я думаю, што павінна дапамагчы сабе да аднаго. 128 00:09:11,360 --> 00:09:17,670 Але калі б я на самой справе ёсць гэты кекс, я павінен па крайняй меры таксама выдаліць сваё існаванне 129 00:09:17,670 --> 00:09:19,670  cupcake_cupboard нашага стала. 130 00:09:20,650 --> 00:09:22,590 Для гэтага мы будзем выкарыстоўваць кнопку "Выдаліць" заяву. 131 00:09:22,590 --> 00:09:27,400 "Delete" заява можа быць выкарыстана, каб выдаліць усе ці некаторыя радкі з табліцы. 132 00:09:27,400 --> 00:09:29,920 Калі вы хочаце выдаліць некаторыя пэўныя радкі з табліцы, 133 00:09:29,920 --> 00:09:34,360 Затым вы павінны падаць "Дзе" пункт, такім чынам паказаўшы калонкі 134 00:09:34,360 --> 00:09:37,660 якія павінны быць унікальнымі ў радок, якую вы хочаце выдаліць. 135 00:09:37,660 --> 00:09:47,370 Гэта сінтаксіс: DELETE прасторы ад касмічнага наш стол, cupcake_cupboard, прастору. 136 00:09:47,370 --> 00:09:51,760 Цяпер, у гэты момант, калі вы знаходзіцеся так далёка ў сваёй заяве выдалення 137 00:09:51,760 --> 00:09:54,240 Вы хочаце быць вельмі асцярожным. 138 00:09:54,240 --> 00:09:59,970 Напрыклад, калі я хачу выканаць гэты запыт як ёсць, без прадастаўлення некаторых "Дзе" пункта 139 00:09:59,970 --> 00:10:04,500 Я б страціць усе дадзеныя ў гэтай табліцы cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 а таму, што я ўжо ведаю, што мой торт ідэнтыфікатары ўнікальныя, я буду выкарыстоўваць 141 00:10:09,590 --> 00:10:12,410 Чырвоная ID торт Velvet для майго "Дзе" агаворкі. 142 00:10:14,550 --> 00:10:20,670 Дзе прастору нашай калоне, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Таму што гэта цэлае значэнне няма неабходнасці, каб акружыць яе ў адзінарныя двукоссі. 144 00:10:25,010 --> 00:10:27,020 Такім чынам, давайце выканаць інструкцыю. 145 00:10:33,560 --> 00:10:35,990 Ну, цяпер, калі мы знішчылі існавання гэтага кекса 146 00:10:35,990 --> 00:10:40,360 cupcake_cupboard нашага стала, у нас ёсць толькі адно левае: 147 00:10:41,680 --> 00:10:43,680 Зрабіць гэта знікае. 148 00:10:43,680 --> 00:10:46,990 Я Крыстафера Варфаламея. Гэта CS50.