[Powered by Google Translate] [SQL] [Крыстафер Варфаламей] [HARVARD UNIVERSITY] [Гэта CS50] [CS50 TV] Такім чынам, праграмісты выкарыстоўваюць базы дадзеных як інструмент для захоўвання і парадкавання нашы пастаянныя дадзеныя ў табліцах. Гэта азначае, што вашыя дадзеныя захоўваюцца на энерганезалежнай медыянаў, такіх як жорсткі дыск, і нават калі кампутар выключаны, дадзеныя застаюцца некранутымі. І, як праграмісты, нашы праграмы выкарыстоўваюць базы дадзеных для сцэнарыяў, такіх як захоўванне інфармацыю пра карыстальнікаў з вэб-формаў, гледзячы інвентара, або абнаўлення інфармацыі аб тым, якія сайты праглядаў. Але як жа мы на самай справе ўзаемадзейнічаюць з нашай базы дадзеных, або тое, што мы выкарыстоўваем для чытання, захоўвання, выдалення, і абнаўляць нашы дадзеныя ў гэтых табліцах базы дадзеных? Ну, адказ у тым, што мы выкарыстоўваем спецыяльны тып базы дадзеных мове , Які ўзаемадзейнічае непасрэдна з нашымі табліцамі базы дадзеных. Гэта імя з'яўляецца Structured Query Language, [Мова структураваных запытаў] або тое, што я называю SQL. Цяпер [Se-Quel], або SQL, не з'яўляецца мовай праграмавання, але замест гэтага, гэта мова, які дае стандартны набор каманд атрымліваць і апрацоўваць дадзеныя з розных сістэм кіравання базамі дадзеных. Для CS50, мы пойдзем на чатыры асноўныя каманды: выбіраць, ўстаўляць, абнаўляць і выдаляць. Акрамя таго, мы будзем выкарыстоўваць інтэрфейс базы дадзеных вэб званы PHPMyAdmin, якія ўстаноўлены на прыладзе, каб напісаць нашу SQL заявы. Такім чынам, каб дапамагчы вам запомніць гэтыя каманды, Я прывёў некаторыя кексы ў шафу, каб дапамагчы з нашымі сцэнарамі. Скажам, у вас база дадзеных кекс, у дзе вы захоўваеце ўсю інфармацыю аб вашых кексаў. Цяпер, базы дадзеных можа ўтрымоўваць мноства табліц і самі табліцы могуць утрымліваць шмат слупкоў. Усярэдзіне базы дадзеных нашых кекс, у нас ёсць табліца пад назвай cupcake_cupboard. Гэтая табліца будзе выкарыстоўвацца для захоўвання ўсёй інфармацыі аб кексаў што, ну, у вашым шафе. Стоўбцы, якія знаходзяцца ўнутры вашай табліцы, ўяўляюць сабой атрыбуты кекс. Напрыклад, калоны cupcake_cupboard з'яўляюцца Cake ID, CakeType, CakeColor, і CakeIsNice. Гэта лагічны тыпізаваных слупок выкарыстоўваецца, каб вызначыць, торт добра ці не добра. Мы збіраемся пачаць з напісання аператара выбару. Вылучыце справаздачнасць выкарыстоўваецца для вымання дадзеных з пэўнай табліцы базы дадзеных. У гэтым выпадку, мы хочам ведаць усё аб усіх кексы, якія існуюць у нашым шафе. Сінтаксіс, каб зрабіць гэта "Выбраць" Space Star, або *, прастора ад прасторы нашага стала, які cupcake_cupboard. Давайце пойдзем далей і выканаць гэта. Як мы бачым, усе гэтыя кексы ў нашым шафе. Важна адзначыць, што *, або зорачку, гэта сімвал падстаноўкі , Што азначае збор усіх слупкоў некаторай табліцы. Як правіла, мы можам атрымаць доступ да вызначанага або некалькіх слупках замяніць * з фактычным імем слупка. Калі мы хочам некалькі слупкоў, але не ўсе мы можам дасягнуць гэтага шляхам напісання імёнаў слупкоў размежавання кожным слупку коскі. Напрыклад, давайце здабываць толькі CakeId і CakeType ў cupcake_cupboard табліцы. Сінтаксіс, каб зрабіць гэта: SELECT прасторы CakeID коскі CakeType прасторы ад нашага стала, cupcake_cupboard. Давайце пойдзем далей і выканаць гэта. І вось, зараз ёсць толькі два слупка мы вызначылі Для кожнага кекса ў нашым шафе. Мы таксама можам удасканальваць нашы вынікі запыту, паказаўшы "Дзе" пункта адразу пасля назвы табліцы. Напрыклад, як уяўляецца, кекс ў нашым шафе што гэта, ну, не так ужо і добры погляд. Давайце высветліць усе кексы ў нашым шафе, якія, ну, не так ужо і прыемныя воку з дапамогай "Дзе" агаворкі. Сінтаксіс, каб зрабіць гэта: SELECT * прастору прастору ад прасторы cupcake_cupboard прасторы, дзе прастора нашым ўмоўным калонка, у гэтым выпадку CakeIsNice =, і лагічнае значэнне False. Важна адзначыць, што калі вы выкарыстоўваеце радкі, вы павінны заключыць яго ў адзінарныя двукоссі. Гэта дакладна для ўсіх радкоў у SQL, або, у тэрмінах SQL базы дадзеных, сімвалы варыянт вядомы як Varchar тып дадзеных. У гэтым выпадку мы выкарыстоўваем Праўда ці Хлусня, якая з'яўляецца лагічнае значэнне, а не радок. Давайце ісці наперад і выканаць гэтую каманду. І вось, гэта той выпадак, што ў нас 1 шакаладам Не так добра кекс ў нашым шафе. Далей, мы збіраемся напісаць заяву ўстаўкі. Уставіць справаздачнасць выкарыстоўваецца, каб ўставіць або дадаць дадатковыя радкі дадзеных у табліцы базы дадзеных. Вяртанне да нашага сцэнары, давайце выкажам здагадку, што мы толькі што зрабілі новы кекс. Так як мы вельмі арганізавана кекс едакоў, мы будзем мець, каб ўставіць новую кекс У нашым cupcake_cupboard табліцы. Сінтаксіс для гэтага складаецца ў наступным: Устаўце ў космас нашага стала, cupcake_cupboard, прабел (, і тут мы паказваем імёны слупкоў, падзеленых коскамі, CakeType падзеленыя коскамі CakeColor CakeIsNice) прасторы. Пасля гэтага, мы пішам прасторы слова VALUES (і тут Мы увядзіце значэнне для кожнага слупка, адпаведна, таксама падзеленых коскамі. Адзінарныя двукоссі, таму што яны ўсё Varchar значэнне мы акружым іх у адзінарныя двукоссі, Святло 'коска' арахісавае масла Браўна коскі True. Цяпер важна, каб даць кожнай радку унікальны нумар, каб ідэнтыфікаваць сябе. Автоинкрементом калонка ўяўляе гэта як  "Няма двух аднолькавых ідэнтыфікатараў можа існаваць у гэтай табліцы." Давайце пойдзем далей і выконваць. Там мы ідзем, усё арганізавана. Наступны аператар SQL, што мы будзем пісаць гэта абнаўленне заяве. Абнаўленне заява можа быць выкарыстана для змены дадзеных у слупку для любой існуючай радкі ў табліцы базы дадзеных. Раней у нашым сцэнары, з дапамогай аператара выбару, мы вызначылі кекс у табліцы нашы cupcake_cupboard, чые CakeIsNice значэнне было ілжывым. Давайце выкажам здагадку, што ў той час як нашы арахісавае масла кекс быў у духоўцы, мы зрабілі наш не так добры кекс вельмі добра. Будучы такім выключна арганізаваны, мы хочам, каб наш кекс з улікам гэтага значэння У нашым cupcake_cupboard табліцы. Таму, давайце адновім наш шакалад кекс ў базу дадзеных, каб адлюстраваць гэта. Сінтаксіс: UPDATE прасторы нашага стала, cupcake_cupboard, касмічныя прасторы SET слупок, які мы хочам змяніць, CakeIsNice =. Тады тут мы размяшчаем нашы новыя значэння Праўда прасторы. Цяпер, паколькі мы не хочам, каб абнавіць усе радкі з гэтым значэннем, Мы хочам, каб забяспечыць "Дзе" пункт, які будзе вызначыць намі да дакладнай радкі, якія мы хочам змяніць. У гэтым выпадку, мы ведаем, што ёсць толькі адзін кекс , Які мае CakeIsNice значэнне False. Акрамя таго, мы таксама гарантуем, што мы абнаўляем патрэбныя радкі з дапамогай «А» пункта. Мы выкарыстоўваем "і" становішча, каб удасканаліць наш запыт далей. У гэтым выпадку, таму што мы ведаем, што кекс шакалад, Мы будзем выкарыстоўваць гэты CakeType калонкі. Дзе прастору нашым ўмоўным прасторы калонкі CakeIsNice прастору = False, і прастора CakeType = 'CHOCOLATE ». Такім чынам, пакласці ўсё гэта разам, гэта абнаўленне гаворыцца ў заяве знайсці ўсё кексы ў нашай кекс шафа, і калі ёсць кекс, слупок CakeIsNice утрымоўвае значэнне ХЛУСНЯ і CakeType утрымоўвае значэнне шакаладу, Мы хочам, каб абнавіць канкрэтныя CakeIsNice радкоў значэнне True. Такім чынам, давайце ісці наперад і выканаць інструкцыю. І зараз, мы арганізавалі. Усе гэтыя размовы пра кексы зрабіў мяне трохі галодным. Я думаю, што павінна дапамагчы сабе да аднаго. Але калі б я на самой справе ёсць гэты кекс, я павінен па крайняй меры таксама выдаліць сваё існаванне  cupcake_cupboard нашага стала. Для гэтага мы будзем выкарыстоўваць кнопку "Выдаліць" заяву. "Delete" заява можа быць выкарыстана, каб выдаліць усе ці некаторыя радкі з табліцы. Калі вы хочаце выдаліць некаторыя пэўныя радкі з табліцы, Затым вы павінны падаць "Дзе" пункт, такім чынам паказаўшы калонкі якія павінны быць унікальнымі ў радок, якую вы хочаце выдаліць. Гэта сінтаксіс: DELETE прасторы ад касмічнага наш стол, cupcake_cupboard, прастору. Цяпер, у гэты момант, калі вы знаходзіцеся так далёка ў сваёй заяве выдалення Вы хочаце быць вельмі асцярожным. Напрыклад, калі я хачу выканаць гэты запыт як ёсць, без прадастаўлення некаторых "Дзе" пункта Я б страціць усе дадзеныя ў гэтай табліцы cupcake_cupboard, а таму, што я ўжо ведаю, што мой торт ідэнтыфікатары ўнікальныя, я буду выкарыстоўваць Чырвоная ID торт Velvet для майго "Дзе" агаворкі. Дзе прастору нашай калоне, CakeID = 1. Таму што гэта цэлае значэнне няма неабходнасці, каб акружыць яе ў адзінарныя двукоссі. Такім чынам, давайце выканаць інструкцыю. Ну, цяпер, калі мы знішчылі існавання гэтага кекса cupcake_cupboard нашага стала, у нас ёсць толькі адно левае: Зрабіць гэта знікае. Я Крыстафера Варфаламея. Гэта CS50.