1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [Кристофер BARTHOLOMEW] [Универзитетот Харвард] 3 00:00:04,000 --> 00:00:06,000 [Ова е CS50] [CS50 ТВ] 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 Тоа е име е структуриран јазик за пребарување, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 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 Донесов некои cupcakes во плакарот за да им помогне со нашите сценарија. 28 00:01:39,650 --> 00:01:42,210 Велат дека имате база на Cupcake е, 29 00:01:42,210 --> 00:01:44,490 каде што ги чува сите информации за вашата cupcakes. 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, ние имаме маса наречена cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Оваа табела ќе се користи за чување на сите информации за cupcakes 34 00:02:00,500 --> 00:02:02,990 кои се, добро, во вашиот шкаф. 35 00:02:02,990 --> 00:02:07,770 На колони кои се внатре вашата маса претставуваат атрибути на cupcake. 36 00:02:07,770 --> 00:02:14,560 На пример, колумни cupcake_cupboard се 37 00:02:14,560 --> 00:02:15,920 Торта проект, CakeType, CakeColor и CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Ова рационален-внесе колона се користи за да се утврди дали тортата е убаво или не е убаво. 39 00:02:23,040 --> 00:02:26,560 Ние ќе започне со пишување на SELECT изјава. 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 за сите cupcakes кои постојат во нашата плакарот. 43 00:02:39,080 --> 00:02:48,670 Синтаксата да го направите ова е "Избери" простор ѕвезда, или *, простор од вселената нашата маса, 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 >> Како што можете да видите, овие се сите cupcakes во нашата плакарот. 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 Синтаксата да го направите ова е: Избери простор 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 за секој cupcake во нашиот плакар. 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 На пример, таму се чини дека е cupcake во нашиот плакар 62 00:04:05,410 --> 00:04:08,660 што е, добро, не толку убав. 63 00:04:08,660 --> 00:04:13,950 Да дознаам сите cupcakes во нашиот плакар кои се, добро, не толку убав 64 00:04:13,950 --> 00:04:16,110 со помош на "Каде" клаузула. 65 00:04:16,110 --> 00:04:26,390 Синтаксата да го направите ова е: Избери простор * простор од простор cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 простор каде што просторот нашите условен колона, во овој случај CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 и логичка вредност на неточно. 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 не толку убаво cupcake во нашиот плакар. 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 Посетување на нашите сценарио, да претпоставиме дека ние сме само направи сосема нов cupcake. 79 00:05:25,910 --> 00:05:30,080 Бидејќи ние сме добро организирани cupcake јадат, ние ќе треба да го вметнете овој нов cupcake 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 По ова, ние го напишете зборот ВРЕДНОСТИ простор (и тука 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 Светло кафена "запирка" путер од кикирики 'запирка Точно. 89 00:06:26,780 --> 00:06:30,480 Сега, важно е да им даде на секој ред единствен број да се идентификуваат. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing колона обезбедува ова како 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 Претходно во нашата сценарио, користејќи изберете изјава, ние идентификувани cupcake 98 00:07:03,420 --> 00:07:08,300 во табелата нашите cupcake_cupboard во чие CakeIsNice вредност беше лажно. 99 00:07:08,300 --> 00:07:12,050 Да претпоставиме дека додека нашите путер од кикирики cupcake беше во рерната, 100 00:07:12,050 --> 00:07:15,790 ние ги направивме нашите не-толку-убав cupcake многу убаво. 101 00:07:18,020 --> 00:07:22,240 Се толку исклучително организирани, ние го сакаме нашиот cupcake за да ја одрази оваа вредност 102 00:07:22,240 --> 00:07:24,240 во нашата cupcake_cupboard табела. 103 00:07:24,240 --> 00:07:28,710 Затоа, ајде да ажурирање на нашите чоколадо cupcake во базата на податоци да го отсликува ова. 104 00:07:28,710 --> 00:07:39,720 Синтаксата е: Ажурирање простор нашата маса, cupcake_cupboard, простор СЕТ простор 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 Во овој случај, ние знаеме дека постои само еден cupcake 111 00:08:03,690 --> 00:08:06,670 кој има CakeIsNice вредноста на неточно. 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 Во овој случај, затоа што знаеме дека cupcake е чоколадо, 116 00:08:20,380 --> 00:08:23,160 ние ќе го искористите овој CakeType колона. 117 00:08:23,160 --> 00:08:31,500 Каде што просторот нашите условен колона простор CakeIsNice простор = Неточно, 118 00:08:31,500 --> 00:08:38,330 и просторот CakeType = 'чоколадо. " 119 00:08:38,330 --> 00:08:41,880 Значи, тоа ставање сите заедно, ова ажурирање на информациите вели 120 00:08:41,880 --> 00:08:44,670 најдете сите cupcakes во нашата cupcake шкаф, 121 00:08:44,670 --> 00:08:50,520 и ако постои cupcake, чија колумна 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 >> Сето ова зборува за cupcakes ме направи малку гладен. 127 00:09:09,220 --> 00:09:11,360 Мислам дека треба да си помогнат еден. 128 00:09:11,360 --> 00:09:17,670 Но, ако јас всушност јадете овој cupcake, јас треба барем исто така, отстранување на своето постоење 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 "Избриши" изјава може да се користи за отстранување на сите или некои редови од табелата. 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 Црвениот сомот торта проект за мојата "Каде" клаузула. 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 Па, сега дека ние сме избриша постоењето на овој cupcake 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.