1 00:00:00,000 --> 00:00:03,493 >> [Музички] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 Даг LLOYD: Во нашите видеа на теми веб развој, 4 00:00:07,100 --> 00:00:10,560 ние го спомена концептот на база на податоци за неколку пати, нели? 5 00:00:10,560 --> 00:00:12,700 База на податоци, така си веројатно запознаени со од 6 00:00:12,700 --> 00:00:15,780 велат дека со Microsoft Excel или Google Spreadsheets. 7 00:00:15,780 --> 00:00:20,650 Тоа е навистина само една организирана сет на маси, редови и колони. 8 00:00:20,650 --> 00:00:23,140 >> И базата на податоци е местото каде што нашата веб продавници 9 00:00:23,140 --> 00:00:26,760 информации кои се важни за нашата веб страница за да работи правилно. 10 00:00:26,760 --> 00:00:30,150 Повторно, многу чест пример тука е чување на корисничко име и лозинка 11 00:00:30,150 --> 00:00:32,824 во базата на податоци, така што кога корисникот се најавува на нашата веб-страница, 12 00:00:32,824 --> 00:00:36,690 базата на податоци може да биде достапен за да ја видите ако постои тој корисник во базата на податоци. 13 00:00:36,690 --> 00:00:39,260 И ако тие се, проверете дали лозинката е точна. 14 00:00:39,260 --> 00:00:43,420 И ако нивните лозинката е точна, тогаш можеме да им даде што и да страница 15 00:00:43,420 --> 00:00:45,370 тие се бара. 16 00:00:45,370 --> 00:00:48,590 >> Па ти си најверојатно, повторно, познати со оваа идеја од Excel или Google 17 00:00:48,590 --> 00:00:49,430 Табеларни пресметки. 18 00:00:49,430 --> 00:00:52,980 Имаме бази на податоци, маси, редови и колони. 19 00:00:52,980 --> 00:00:56,450 И тоа е навистина вид од основните сет 20 00:00:56,450 --> 00:00:58,470 на хиерархиски дефект тука. 21 00:00:58,470 --> 00:00:59,800 Па еве табела Excel. 22 00:00:59,800 --> 00:01:02,640 И ако некогаш сте се отвори ова или друга слична програма 23 00:01:02,640 --> 00:01:06,780 знаете дека овие тука се rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Овие се колони. 25 00:01:08,760 --> 00:01:11,790 >> Можеби долу тука, иако може да се Не користите оваа функција ужасно much-- 26 00:01:11,790 --> 00:01:15,370 Јас ќе зумирате in-- имаме оваа идеја од листот. 27 00:01:15,370 --> 00:01:17,930 Па можеби и овие листови, ако Се менува и назад, 28 00:01:17,930 --> 00:01:21,600 се различни табели кои постои во мојата база на податоци. 29 00:01:21,600 --> 00:01:25,210 И ако продолжиме со примерот на сите Патем, името на оваа база на податоци 30 00:01:25,210 --> 00:01:26,940 е Книга 1. 31 00:01:26,940 --> 00:01:28,710 Можеби имам и книга 2 Книга 3. 32 00:01:28,710 --> 00:01:33,270 Така што секоја датотека Excel е база на податоци, секој лист е на маса, 33 00:01:33,270 --> 00:01:39,530 и во внатрешноста на секоја маса имам оваа идеја на редови и колони. 34 00:01:39,530 --> 00:01:41,900 >> Па како можам да работам со оваа база на податоци? 35 00:01:41,900 --> 00:01:43,630 Како можам да добијам информации од него? 36 00:01:43,630 --> 00:01:47,540 Па има јазик наречен SQL-- кој обично само повик Sequel-- 37 00:01:47,540 --> 00:01:50,010 и таа се залага за Структурно јазик за пребарување. 38 00:01:50,010 --> 00:01:52,981 И тоа е програмски јазик, но тоа е прилично ограничена програмирање 39 00:01:52,981 --> 00:01:53,480 јазик. 40 00:01:53,480 --> 00:01:56,407 Тоа не е доста како и другите кои ги имам работено со. 41 00:01:56,407 --> 00:01:58,240 Но, целта на овој програмски јазик 42 00:01:58,240 --> 00:02:01,570 е да се пребарува базата на податоци, за да се побара информации од базата на податоци, 43 00:02:01,570 --> 00:02:04,480 најдете информации во база на податоци, и така натаму. 44 00:02:04,480 --> 00:02:08,449 >> Ние, исто така, во CS50-- и тоа е многу заедничка платформа, се вика MySQL. 45 00:02:08,449 --> 00:02:10,600 Тоа е она што ние ги користиме во текот. 46 00:02:10,600 --> 00:02:12,880 Тоа е софтвер со отворен код платформа која воспоставува 47 00:02:12,880 --> 00:02:16,732 т.н. релациона database-- база на податоци, ефективно. 48 00:02:16,732 --> 00:02:18,440 Ние не треба да се добие во премногу детали 49 00:02:18,440 --> 00:02:20,930 на она што е релациона база на податоци. 50 00:02:20,930 --> 00:02:24,650 Но јазикот SQL е многу вешти во кои работат 51 00:02:24,650 --> 00:02:29,760 со MySQL и други слични стилови на релациони бази на податоци. 52 00:02:29,760 --> 00:02:34,010 >> И многу инсталации на MySQL, доаѓаат со нешто 53 00:02:34,010 --> 00:02:37,760 наречен phpMyAdmin, која е графички кориснички 54 00:02:37,760 --> 00:02:40,970 interface-- на GUI-- дека го прави малку повеќе 55 00:02:40,970 --> 00:02:44,410 лесен за да се изврши база на податоци пребарувања, 56 00:02:44,410 --> 00:02:48,980 бази на податоци, бидејќи не се користат само со напредни програмери, нели? 57 00:02:48,980 --> 00:02:51,510 Понекогаш постојат овие мали бизниси, 58 00:02:51,510 --> 00:02:53,900 и тие не можат да си дозволат да ангажира тим од програмери, 59 00:02:53,900 --> 00:02:56,700 но тие се уште треба да ги чувате информации во базата на податоци. 60 00:02:56,700 --> 00:02:59,300 >> Нешто како phpMyAdmin го прави многу лесно за некој 61 00:02:59,300 --> 00:03:03,630 кој никогаш не е програмиран пред да ги собереш и да се запознаат со тоа како 62 00:03:03,630 --> 00:03:07,710 за работа со бази на податоци. 63 00:03:07,710 --> 00:03:11,800 Проблемот е, phpMyAdmin, додека тоа е фантастична алатка за учење 64 00:03:11,800 --> 00:03:14,850 за бази на податоци, тоа е прирачник. 65 00:03:14,850 --> 00:03:18,050 Ви се случува да треба да се логирате во тоа и извршување на команди и тип 66 00:03:18,050 --> 00:03:19,910 работи во рачно. 67 00:03:19,910 --> 00:03:23,160 >> И како што знаеме од нашето пример на PHP веб програмирање, 68 00:03:23,160 --> 00:03:26,550 мора да се направи рачно работите на нашата веб страница, 69 00:03:26,550 --> 00:03:30,970 ако сакаме динамична, активни одзив сајт, можеби не е најдобар пристап. 70 00:03:30,970 --> 00:03:33,980 Ние би сакале да се најде начин да можеби автоматизира овој некако. 71 00:03:33,980 --> 00:03:37,864 И SQL ќе ни овозможи да го направите тоа. 72 00:03:37,864 --> 00:03:39,780 Значи, кога ќе си оди за да почне да работи со SQL, 73 00:03:39,780 --> 00:03:41,220 ние прво треба да се имаат база на податоци за работа со. 74 00:03:41,220 --> 00:03:42,510 Креирање на база на податоци вие веројатно нешто 75 00:03:42,510 --> 00:03:45,350 ќе го направи во phpMyAdmin, бидејќи вие само ќе треба да го прават тоа еднаш, 76 00:03:45,350 --> 00:03:49,690 и синтакса за тоа е многу повеќе јасна. 77 00:03:49,690 --> 00:03:51,940 Тоа е многу полесно да го направи тоа во графички кориснички интерфејс 78 00:03:51,940 --> 00:03:53,520 отколку што пишување надвор како наредба. 79 00:03:53,520 --> 00:03:55,186 Командата може да се добие малку незгодни. 80 00:03:55,186 --> 00:03:58,889 Слично на тоа, создавајќи табела може се доста тежок, како и. 81 00:03:58,889 --> 00:04:01,930 И така работи како создавање база на податоци и создавање на маса, која сте 82 00:04:01,930 --> 00:04:06,270 веројатно само ќе направи once-- еднаш по маса, еднаш во database-- 83 00:04:06,270 --> 00:04:09,040 тоа е во ред да се направи тоа во графички интерфејс. 84 00:04:09,040 --> 00:04:11,570 Во процесот на создавање на маса, ќе 85 00:04:11,570 --> 00:04:14,840 исто така, мора да наведете сите на колоните кои ќе бидат во таа табела. 86 00:04:14,840 --> 00:04:18,149 Каков вид на информации што го направи сакате да го зачувате на табелата? 87 00:04:18,149 --> 00:04:24,520 Можеби корисничкото име и датум на раѓање, лозинка, корисничко ID број, а можеби 88 00:04:24,520 --> 00:04:26,170 градот и државата, нели? 89 00:04:26,170 --> 00:04:30,080 >> И за секој пат кога ние сакаме да додадете корисник на базата на податоци, ние сакаме да ги добиете сите шест 90 00:04:30,080 --> 00:04:31,890 на оние делови од информации. 91 00:04:31,890 --> 00:04:34,840 И тоа го правиме со додавање редови на масата. 92 00:04:34,840 --> 00:04:37,800 Па ние прво да се создаде база на податоци, тогаш ние се создаде маса. 93 00:04:37,800 --> 00:04:40,100 Како дел од создавањето маса, ние се бара 94 00:04:40,100 --> 00:04:44,280 да се определи секоја колона дека ние би сакале во оваа табела. 95 00:04:44,280 --> 00:04:47,247 И тогаш ќе почнеме да се додаде информации во базата на податоци 96 00:04:47,247 --> 00:04:49,580 и пребарување базата на податоци повеќе generally-- не само додавање, 97 00:04:49,580 --> 00:04:51,610 но се друго ние do-- ќе бидеме занимаваат 98 00:04:51,610 --> 00:04:58,870 со редови на маса, која е една информации на корисници од целиот сет. 99 00:04:58,870 --> 00:05:03,210 >> Така што секој SQL колона е способен за одржување на податоци на одреден тип на податоци. 100 00:05:03,210 --> 00:05:06,560 Па ние вид на елиминиран овој Идејата на типови на податоци во PHP, 101 00:05:06,560 --> 00:05:08,747 но тие се врати тука во SQL. 102 00:05:08,747 --> 00:05:10,080 И има многу типови на податоци. 103 00:05:10,080 --> 00:05:13,420 Еве само 20 од нив, но тоа не е дури и сите од нив. 104 00:05:13,420 --> 00:05:16,240 Па ние имаме идеи како INTs-- Integers-- ние веројатно знаете 105 00:05:16,240 --> 00:05:17,760 дека оваа колона може да се одржи цели броеви. 106 00:05:17,760 --> 00:05:21,077 И постојат варијации thereon-- Smallint, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Можеби ние не секогаш се потребни четири каса. 108 00:05:22,660 --> 00:05:26,800 Можеби и ние треба осум бајти, и така ние да ги користите овие варијации на цели броеви 109 00:05:26,800 --> 00:05:28,510 да се биде малку повеќе простор ефикасен. 110 00:05:28,510 --> 00:05:31,899 Ние можеме да правиме децимални броеви, ние може да го направи со подвижна запирка броеви. 111 00:05:31,899 --> 00:05:32,940 Овие се прилично слични. 112 00:05:32,940 --> 00:05:34,773 Постојат некои разлики, и ако би 113 00:05:34,773 --> 00:05:37,330 сакал да се погледне до SQL вид на водич, 114 00:05:37,330 --> 00:05:40,670 може да се види она што на мало разлики меѓу нив. 115 00:05:40,670 --> 00:05:43,250 >> Можеби сакаме да ги чувате информации во врска со датум и време. 116 00:05:43,250 --> 00:05:47,047 Можеби ние сме следење на кога корисникот ќе се приклучи на нашата веб страница, 117 00:05:47,047 --> 00:05:48,880 и така можеби сакаме да има колона која е 118 00:05:48,880 --> 00:05:52,820 време датум или уверение дека покажува кога корисникот всушност 119 00:05:52,820 --> 00:05:54,130 регистрираш. 120 00:05:54,130 --> 00:05:56,132 Ние можеме да правиме геометрии и linestrings. 121 00:05:56,132 --> 00:05:57,340 Ова е всушност прилично кул. 122 00:05:57,340 --> 00:06:01,410 Ние би можеле да планирам со географска област користење 123 00:06:01,410 --> 00:06:05,110 ГИС координати да заговор излезе на површина. 124 00:06:05,110 --> 00:06:08,580 Па, всушност, може да се сместат тој вид на информации во SQL колона. 125 00:06:08,580 --> 00:06:11,390 >> Текстот е само гигант грутки на текст, можеби. 126 00:06:11,390 --> 00:06:12,840 ENUMs се вид на интересни. 127 00:06:12,840 --> 00:06:16,080 Тие навистина постојат во C. Ние не се зборува за нив, бидејќи тие не се 128 00:06:16,080 --> 00:06:19,110 ужасно вообичаено се користат, барем CS50. 129 00:06:19,110 --> 00:06:22,680 Но, тоа е набројани тип на податоци, која е способен за одржување ограничени вредности. 130 00:06:22,680 --> 00:06:25,940 >> А навистина добар пример за тоа би било да се создаде enum каде седум 131 00:06:25,940 --> 00:06:29,394 можни вредности се недела, понеделник, Вторник, среда, четврток, петок, 132 00:06:29,394 --> 00:06:30,060 Сабота, нели? 133 00:06:30,060 --> 00:06:33,311 Кој тип на податок ден на Недела не постои, 134 00:06:33,311 --> 00:06:35,310 но би можеле да се создаде набројани тип на податоци како 135 00:06:35,310 --> 00:06:39,400 дека таа колона може само некогаш се одржи еден од оние седум можни вредности. 136 00:06:39,400 --> 00:06:44,300 Ние сме попишани сите од можните вредности. 137 00:06:44,300 --> 00:06:47,630 >> Тогаш имаме знак и VARCHAR, и јас сум во боја овие зелени 138 00:06:47,630 --> 00:06:49,505 затоа што сме, всушност, случува да се земе втора 139 00:06:49,505 --> 00:06:51,950 да се зборува за разликата помеѓу овие две нешта. 140 00:06:51,950 --> 00:06:55,780 Па char, за разлика од C каде CHAR беше еден лик, 141 00:06:55,780 --> 00:07:00,730 во SQL знак се однесува на фиксна должина на стрингот. 142 00:07:00,730 --> 00:07:02,620 И кога ќе се создаде овој колона, ние, всушност, 143 00:07:02,620 --> 00:07:05,070 може да се определи должината на стрингот. 144 00:07:05,070 --> 00:07:08,080 >> Така што во овој пример, би можеле да речеме CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Тоа значи дека секој елемент на таа колона 146 00:07:11,190 --> 00:07:13,910 ќе се состои од 10 бајти на информации. 147 00:07:13,910 --> 00:07:15,770 Ни повеќе ни помалку. 148 00:07:15,770 --> 00:07:21,780 Значи, ако ние се обидуваме да ги ставите во 15 малку или елемент 15 карактер 149 00:07:21,780 --> 00:07:25,340 или вредноста во оваа колумна, ние сме само се добие првите 10. 150 00:07:25,340 --> 00:07:27,290 Ако се стави во две карактер долго вредност, 151 00:07:27,290 --> 00:07:30,700 ние ќе треба да имаат два знаци, а потоа осум null каса. 152 00:07:30,700 --> 00:07:34,990 Ние никогаш нема да бидат поефикасни од тоа. 153 00:07:34,990 --> 00:07:37,727 >> А VARCHAR е вид на како нашиот поим за низа 154 00:07:37,727 --> 00:07:39,560 дека ние сме запознаени со од C или од PHP. 155 00:07:39,560 --> 00:07:40,830 Тоа е стринг променлива должина. 156 00:07:40,830 --> 00:07:42,560 И кога ќе се создаде оваа колумна, само 157 00:07:42,560 --> 00:07:44,860 одредите максималниот можен должини. 158 00:07:44,860 --> 00:07:49,065 Па можеби и 99, или најчесто 255. 159 00:07:49,065 --> 00:07:50,440 Што ќе биде максималната должина. 160 00:07:50,440 --> 00:07:52,890 И така да сме биле чување 15 карактер стринг, 161 00:07:52,890 --> 00:07:56,157 ние ќе го користи 15 бајти, можеби 16 бајти за ништовни терминатор. 162 00:07:56,157 --> 00:07:57,990 Ако бевме складирање на три карактер стринг, 163 00:07:57,990 --> 00:08:01,120 ние ќе го користи три или четири бајти. 164 00:08:01,120 --> 00:08:03,050 Но ние нема да го користите целиот 99. 165 00:08:03,050 --> 00:08:05,190 >> Па зошто некој би ги имаме и двете? 166 00:08:05,190 --> 00:08:08,210 Па, ако ние треба да дознаам како додека нешто не е со VARCHAR, 167 00:08:08,210 --> 00:08:10,680 ние треба да се вид на iterate низ неа, како што направивме во C 168 00:08:10,680 --> 00:08:12,230 и дознаам каде не застане. 169 00:08:12,230 --> 00:08:15,920 Со оглед на тоа ако се знае дека сè во оваа колумна е 10 бајти, можеби 170 00:08:15,920 --> 00:08:19,220 ние знаеме дека информации, ние може да скокаат 10 бајти, 10 бајти, 10 бајти, 10 бајти, 171 00:08:19,220 --> 00:08:21,790 и секогаш го најде почетокот на стрингот. 172 00:08:21,790 --> 00:08:25,210 >> Па ние може да има некои потроши простор со char, 173 00:08:25,210 --> 00:08:28,510 но можеби има трговска исклучување на се има подобра брзина 174 00:08:28,510 --> 00:08:30,160 во навигацијата низ базата на податоци. 175 00:08:30,160 --> 00:08:32,330 Но можеби сакаме флексибилност на VARCHAR 176 00:08:32,330 --> 00:08:36,710 наместо having-- Ако нашите CHAR беше 255, но повеќето од нашите корисници 177 00:08:36,710 --> 00:08:40,537 беа само со внесување на три или четири бајти во вредност од информации или три или четири 178 00:08:40,537 --> 00:08:41,870 ликови во вредност од информации. 179 00:08:41,870 --> 00:08:44,324 >> Но некои корисници беа користење целата 255, можеби 180 00:08:44,324 --> 00:08:45,990 VARCHAR посоодветно би било таму. 181 00:08:45,990 --> 00:08:49,840 Тоа е вид на пласирам, и главно за потребите на CS50, 182 00:08:49,840 --> 00:08:54,107 вие не треба да се грижи премногу за без разлика дали имате потреба при користење на знак или VARCHAR. 183 00:08:54,107 --> 00:08:57,190 Но, во реалниот свет, овие работи не е важно, бидејќи сите овие колони 184 00:08:57,190 --> 00:08:59,300 ги преземат вистински физички простор. 185 00:08:59,300 --> 00:09:04,150 И физичкиот простор, во реалниот свет, доаѓа на премија. 186 00:09:04,150 --> 00:09:06,800 >> Па еден друг надоместок кога ќе градиме маса 187 00:09:06,800 --> 00:09:09,840 е да се избере една колона за да биде она што се нарекува примарен клуч. 188 00:09:09,840 --> 00:09:14,350 И примарен клуч е колона каде што секој вредноста не е единствен. 189 00:09:14,350 --> 00:09:19,980 А тоа значи дека можете лесно одберам еден ред само со гледање 190 00:09:19,980 --> 00:09:22,450 на примарниот клуч на тој ред. 191 00:09:22,450 --> 00:09:24,580 Така на пример, може генерално, со корисници, 192 00:09:24,580 --> 00:09:27,210 не сакаат двајца корисници кои имаат ист кориснички ID број. 193 00:09:27,210 --> 00:09:28,960 И така можеби имаш многу информации, 194 00:09:28,960 --> 00:09:30,793 а можеби и два корисниците можат ги имаат истите name-- 195 00:09:30,793 --> 00:09:32,650 имаш Џон Смит и Џон Смит. 196 00:09:32,650 --> 00:09:34,520 Тоа не е секогаш проблем, бидејќи повеќе луѓе 197 00:09:34,520 --> 00:09:35,830 во светот по име Џон Смит. 198 00:09:35,830 --> 00:09:40,766 Но само матичен број еден корисник 10, еден кориснички ID број 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Ние немаме два корисници со истиот број, 200 00:09:42,640 --> 00:09:46,010 па можеби и кориснички ID броеви ќе биде добра примарен клуч. 201 00:09:46,010 --> 00:09:48,610 >> Ние немаме било дуплирање, а ние сега можат уникатно 202 00:09:48,610 --> 00:09:52,619 идентификуваат секој ред само со разгледување на таа колона. 203 00:09:52,619 --> 00:09:55,410 Избор примарни клучеви, всушност може да направат натамошни работи за маса 204 00:09:55,410 --> 00:09:59,710 многу полесно, бидејќи можете да потпора на фактот дека одредени редови ќе 205 00:09:59,710 --> 00:10:02,720 да биде уникатен, или одредена колона Вашата база на податоци или на маса 206 00:10:02,720 --> 00:10:06,030 ќе биде уникатен за да изберете на определени редови. 207 00:10:06,030 --> 00:10:08,790 >> Можете исто така да имаат заедничка примарна клуч, кој можете да го најдете повод 208 00:10:08,790 --> 00:10:11,720 да се користи, што е само еден комбинација на две колони, кои 209 00:10:11,720 --> 00:10:13,280 е загарантирана да биде уникатен. 210 00:10:13,280 --> 00:10:16,410 Па можеби имате еден колона дека како и БС, 211 00:10:16,410 --> 00:10:19,290 една колона тоа е еден, два, и три, но ќе ги само некогаш 212 00:10:19,290 --> 00:10:23,660 имаат еден А1, еден А2, и така натаму и така натаму. 213 00:10:23,660 --> 00:10:28,980 Но може да имаат Б2, а C2, или A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 За да можете да имате повеќе Како, повеќе БС, повеќе од нив, повеќе twos, 215 00:10:32,840 --> 00:10:38,567 но вие може само некогаш имаат еден А1, В2, В3, и така натаму. 216 00:10:38,567 --> 00:10:40,400 Значи како што реков, SQL е програмски јазик, 217 00:10:40,400 --> 00:10:42,024 но тоа има доста ограничен вокабулар. 218 00:10:42,024 --> 00:10:44,880 Тоа не е толку експанзивна како Ц и PHP и други јазици 219 00:10:44,880 --> 00:10:46,350 кои ние зборуваме во курсот. 220 00:10:46,350 --> 00:10:49,960 Тоа е повеќе на опширниот јазик отколку она што ние сме 221 00:10:49,960 --> 00:10:52,789 ќе зборуваме за тоа во овој видео, затоа што во овој видео 222 00:10:52,789 --> 00:10:54,830 ние ќе треба да се зборува за четири операции кои ги 223 00:10:54,830 --> 00:10:55,720 може да се изврши на маса. 224 00:10:55,720 --> 00:10:56,761 >> Постојат повеќе од ова. 225 00:10:56,761 --> 00:10:58,730 Можеме да направиме повеќе од тоа, но за нашите цели, 226 00:10:58,730 --> 00:11:02,250 ние сме генерално ќе биде со користење само четири операции-вметнете, 227 00:11:02,250 --> 00:11:05,360 изберете, ажурирање и бришење. 228 00:11:05,360 --> 00:11:08,750 А вие веројатно може да се погоди интуитивно она што сите овие елементи се направи. 229 00:11:08,750 --> 00:11:12,520 Но, ние ќе одиме во малку на детали за секој од нив. 230 00:11:12,520 --> 00:11:15,780 >> Така и за целите на оваа видео, да претпоставиме 231 00:11:15,780 --> 00:11:18,870 Ги имаме следниве две табели во единствена база на податоци. 232 00:11:18,870 --> 00:11:23,460 Имаме маса наречена Корисниците што има четири columns-- матичен број, корисничко име, 233 00:11:23,460 --> 00:11:25,350 лозинка и полно име. 234 00:11:25,350 --> 00:11:27,430 И ние имаме втора табелата во истата база на податоци 235 00:11:27,430 --> 00:11:32,129 наречен мајки кои едноставно продавници информации за корисничко име и мајка. 236 00:11:32,129 --> 00:11:33,920 Значи за сите примери Во ова видео, ние ќе 237 00:11:33,920 --> 00:11:37,945 биде со користење на оваа база на податоци и следните ажурирања на него. 238 00:11:37,945 --> 00:11:40,070 Па да речеме ние сакаме да додадете информации на табелата. 239 00:11:40,070 --> 00:11:44,460 Тоа е она што на операцијата вметнете го прави тоа. 240 00:11:44,460 --> 00:11:46,550 Во објаснувањето на сите овие команди, јас ќе одам 241 00:11:46,550 --> 00:11:48,860 да ви даде општа скелет за користење. 242 00:11:48,860 --> 00:11:51,661 Затоа што во основа, пребарувања ќе изгледаат прилично слични, 243 00:11:51,661 --> 00:11:54,660 ние сме само ќе треба да се менува малку различни парчиња на информации 244 00:11:54,660 --> 00:11:56,750 да направите различни нешта со масата. 245 00:11:56,750 --> 00:11:59,200 >> Значи за Insert, скелетот изгледа слично на ова. 246 00:11:59,200 --> 00:12:02,230 Ние сакаме да се вметне во одредена маса. 247 00:12:02,230 --> 00:12:05,290 Тогаш имаме отворена заграда како и листа на колони 248 00:12:05,290 --> 00:12:08,070 дека ние сакаме да се стави во вредности. 249 00:12:08,070 --> 00:12:10,974 Затвори загради, следните вредности, а потоа 250 00:12:10,974 --> 00:12:13,390 еднаш, ќе се листа од вредностите ние сакаме да се стави на маса. 251 00:12:13,390 --> 00:12:15,950 >> Така пример за ова ќе биде следниот. 252 00:12:15,950 --> 00:12:19,170 Сакам да се вметне во табелата корисници на следниве columns-- 253 00:12:19,170 --> 00:12:21,010 корисничко име, лозинка и fullname. 254 00:12:21,010 --> 00:12:25,282 Па нов ред во која јас сум ставање во тие три колони и ние сме 255 00:12:25,282 --> 00:12:30,030 случува да се стави во вредностите Њуман, USMAIL и Њуман. 256 00:12:30,030 --> 00:12:32,730 Значи во овој случај, јас сум ставање на мали Newman 257 00:12:32,730 --> 00:12:38,710 во колона корисничко име, лозинка USMAIL и целосното име капитал N 258 00:12:38,710 --> 00:12:41,940 Њумен во колона fullname. 259 00:12:41,940 --> 00:12:44,240 >> Значи тука е она на базата на податоци изгледаше како порано. 260 00:12:44,240 --> 00:12:48,250 Тука е она што корисниците табела на Топ изгледала пред да го направи ова. 261 00:12:48,250 --> 00:12:50,760 Откако ќе се изврши оваа барањето, ќе го добиеме ова. 262 00:12:50,760 --> 00:12:54,790 Додадовме нов ред во табелата. 263 00:12:54,790 --> 00:12:56,810 Но, забележуваат тоа една работа дека јас не прецизираше, 264 00:12:56,810 --> 00:12:59,880 но некако имам вредност за што е ова 12-во право тука. 265 00:12:59,880 --> 00:13:02,820 Јас не реков дека јас сакав да стави матичен број во таму. 266 00:13:02,820 --> 00:13:04,900 Сакав да се стави корисничко име, лозинка, fullname. 267 00:13:04,900 --> 00:13:06,440 И го сторив тоа, тоа е во ред. 268 00:13:06,440 --> 00:13:07,760 >> Но, јас, исто така, доби оваа 12. 269 00:13:07,760 --> 00:13:09,490 Зошто да се добие оваа 12? 270 00:13:09,490 --> 00:13:12,904 Па, излегува дека кога ќе се дефинираат 271 00:13:12,904 --> 00:13:15,570 колона кој ќе биде вашиот примарен клуч, што е обично, 272 00:13:15,570 --> 00:13:16,510 како што реков, идентификациски број. 273 00:13:16,510 --> 00:13:18,718 Тоа не е секогаш нужно ќе биде идентификациски број, 274 00:13:18,718 --> 00:13:22,380 но тоа е обично е добра идеја да се биде некој вид на целобројна вредност. 275 00:13:22,380 --> 00:13:25,950 Имате опција во phpMyAdmin кога сте создавање на вашата база на податоци 276 00:13:25,950 --> 00:13:31,130 или вашата маса за да го поставите тој колона на пример автоматски ја зголемува. 277 00:13:31,130 --> 00:13:34,520 >> Што е навистина добра идеја кога си работат со примарен клуч, 278 00:13:34,520 --> 00:13:39,330 затоа што сакаш секој вредност во таа колона да биде уникатна. 279 00:13:39,330 --> 00:13:43,310 И ако сте заборавиле да го одредите тоа за повеќе од едно лице, 280 00:13:43,310 --> 00:13:46,240 сега го имате ситуација каде таа колона веќе не е единствена. 281 00:13:46,240 --> 00:13:50,200 Имате две празни места, па да не можат да веќе уникатно го идентификуваат column-- 282 00:13:50,200 --> 00:13:54,150 или ако повеќе не уникатно може идентификуваат ред врз основа на таа колона. 283 00:13:54,150 --> 00:13:57,010 Тоа е изгубена сите свои вредност како примарен клуч. 284 00:13:57,010 --> 00:14:02,010 >> И така очигледно она што го сторив тука е конфигуриран ID на корисникот 285 00:14:02,010 --> 00:14:07,790 колона за автоматско зголемување, така што секој време го додадете информации на маса, 286 00:14:07,790 --> 00:14:12,220 тој автоматски ќе ми дадеш вредност за примарниот клуч. 287 00:14:12,220 --> 00:14:15,570 Па јас никогаш не може да го заборави да го направи тоа, бидејќи базата на податоци ќе го направи тоа за мене. 288 00:14:15,570 --> 00:14:16,587 Значи, тоа е вид на убаво. 289 00:14:16,587 --> 00:14:18,670 И така тоа е причината зошто ние се 12 во таму, бидејќи јас сум 290 00:14:18,670 --> 00:14:21,772 постави таа колона до авто прираст. 291 00:14:21,772 --> 00:14:23,730 Кога би додала некој друг тоа би било 13, кога би додала 292 00:14:23,730 --> 00:14:27,890 некој друг тоа би било 14, и така натаму. 293 00:14:27,890 --> 00:14:30,190 >> Па да се направи уште еден вметнување. 294 00:14:30,190 --> 00:14:34,530 Ние ќе се вметне во табелата за мајки, во Поточно, на корисничко име и мајка 295 00:14:34,530 --> 00:14:37,390 колона, вредностите Крамер и Бабс Крамер. 296 00:14:37,390 --> 00:14:39,140 И така го имавме тоа порано. 297 00:14:39,140 --> 00:14:41,800 Откако ќе се изврши на тој SQL пребарување, имаме ова. 298 00:14:41,800 --> 00:14:47,290 Додадовме Крамер и Бабс Крамер табелата за мајки. 299 00:14:47,290 --> 00:14:48,350 >> Значи тоа е вметнување. 300 00:14:48,350 --> 00:14:51,850 ИЗБЕРЕТЕ е она што ние ги користиме за да се извлече информации од табелата. 301 00:14:51,850 --> 00:14:54,390 Значи ова е како да се добие информации од базата на податоци. 302 00:14:54,390 --> 00:14:59,589 И така да изберете команди се случува да бидат многу често се користат во програмирање. 303 00:14:59,589 --> 00:15:02,130 Општата framework-- на општи скелет изгледа вака. 304 00:15:02,130 --> 00:15:06,550 Изберете множество на колоните од маса, а потоа евентуално 305 00:15:06,550 --> 00:15:11,090 можете да наведете еден или condition-- Она што ние обично го нарекуваме прирокот, 306 00:15:11,090 --> 00:15:13,010 обично е термин што го користиме во SQL. 307 00:15:13,010 --> 00:15:16,490 >> Но, тоа е во основа она што Особено редови сакате да добиете. 308 00:15:16,490 --> 00:15:19,100 Ако сакате да се, наместо на добивање сè, тесни тоа долу, 309 00:15:19,100 --> 00:15:20,060 ова е местото каде што ќе го направи тоа. 310 00:15:20,060 --> 00:15:22,777 А потоа Евентуално, може, исто така, нарачате на одредена колона. 311 00:15:22,777 --> 00:15:25,860 Па можеби ќе сакате да се работи подредени по азбучен ред врз основа на една колона 312 00:15:25,860 --> 00:15:27,540 или по азбучен ред врз основа на друг. 313 00:15:27,540 --> 00:15:30,610 >> Повторно, каде и Подреди по се опционални. 314 00:15:30,610 --> 00:15:32,681 Но, тие, најверојатно, ќе биде useful-- особено 315 00:15:32,681 --> 00:15:34,680 Каде ќе биде корисно да се стесните така да не 316 00:15:34,680 --> 00:15:37,460 добиеш целата база на податоци назад и мора да го обработи, можеш само да 317 00:15:37,460 --> 00:15:39,300 парчиња од тоа што ти е гајле за тоа. 318 00:15:39,300 --> 00:15:44,932 Така на пример, јас можеби ќе сакате да го изберете ID број и fullname од корисниците. 319 00:15:44,932 --> 00:15:46,140 Значи она што би можело тоа да изгледа? 320 00:15:46,140 --> 00:15:48,270 Значи тука е мојата маса корисници. 321 00:15:48,270 --> 00:15:51,080 Сакам да изберете idnum и fullname од корисниците. 322 00:15:51,080 --> 00:15:52,300 Што сум јас ќе добијам? 323 00:15:52,300 --> 00:15:53,580 Одам да го добивате ова. 324 00:15:53,580 --> 00:15:56,930 Јас не го стесните, па јас сум добивање матичен број за секој ред 325 00:15:56,930 --> 00:16:00,850 и јас сум добивање на целосна име од секој ред. 326 00:16:00,850 --> 00:16:02,210 >> ВО РЕД. 327 00:16:02,210 --> 00:16:05,640 Што ако сакам да изберете лозинка од корисниците WHERE-- па сега 328 00:16:05,640 --> 00:16:10,370 Јас сум додавајќи состојба, односно predicate-- каде што idnum е помал од 12. 329 00:16:10,370 --> 00:16:13,660 Значи тука е мојата база на податоци, повторно, мојата маса корисници врвот. 330 00:16:13,660 --> 00:16:17,030 Што сум јас ќе добијам ако сакате да го изберете таа информација, лозинка, 331 00:16:17,030 --> 00:16:21,550 каде корисничко име или idnum е помал од 12? 332 00:16:21,550 --> 00:16:24,910 Одам да се добие оваа информации назад, нели? 333 00:16:24,910 --> 00:16:29,170 Тоа се случува дека idnum е 10, што е помалку од 12, матичен број 11 помалку од 12. 334 00:16:29,170 --> 00:16:32,160 Јас сум добивање на лозинката за оние редови. 335 00:16:32,160 --> 00:16:33,914 Тоа е она што побара. 336 00:16:33,914 --> 00:16:34,580 Што со тоа? 337 00:16:34,580 --> 00:16:39,170 Што ако сакам да го изберете ѕвезда од мајки масата каде корисничко име е еднакво Џери? 338 00:16:39,170 --> 00:16:43,780 OK, одберете ѕвезда е специјална вид на вајлд карта т.н. 339 00:16:43,780 --> 00:16:45,670 кои се користат да се добие сè. 340 00:16:45,670 --> 00:16:48,620 Па тие кажуваат одберете Корисничко име запирка мајка, која 341 00:16:48,620 --> 00:16:51,060 се случи да биде само две колони на оваа табела, 342 00:16:51,060 --> 00:16:53,260 Јас само може да изберете ѕвезда и да добијат се што 343 00:16:53,260 --> 00:16:55,030 каде корисничко име е еднаква на Џери. 344 00:16:55,030 --> 00:16:59,380 И така тоа е она што јас ќе ја добие ако сум направил тоа конкретно прашање. 345 00:16:59,380 --> 00:17:01,810 >> Сега, бази на податоци се одлично, бидејќи тие ви дозволуваат 346 00:17:01,810 --> 00:17:06,074 ни да ги организира информациите можеби малку поефикасно отколку ние 347 00:17:06,074 --> 00:17:06,740 инаку би можеле да. 348 00:17:06,740 --> 00:17:10,240 Ние не мора да ги чувате секој значаен дел од информациите 349 00:17:10,240 --> 00:17:12,230 за корисник на иста маса. 350 00:17:12,230 --> 00:17:13,730 Имавме две маси таму. 351 00:17:13,730 --> 00:17:15,734 >> Ние треба да ги чувате име на мајката на сите, 352 00:17:15,734 --> 00:17:18,900 а можеби и ние немаме за социјално осигурување број, имаме датум на раѓање. 353 00:17:18,900 --> 00:17:21,819 Кои не секогаш треба за да биде во иста маса. 354 00:17:21,819 --> 00:17:25,339 Колку што ние може да се дефинира односи меѓу tables-- 355 00:17:25,339 --> 00:17:28,440 и тоа е каде што релациона Терминот доаѓа вид на база на податоци 356 00:17:28,440 --> 00:17:32,130 во play-- колку што можеме да го дефинираме односи меѓу маси, 357 00:17:32,130 --> 00:17:35,545 можеме да се вид на compartmentalize или апстрактни нешта на некој начин, 358 00:17:35,545 --> 00:17:37,670 каде што имаме само на навистина важни информации 359 00:17:37,670 --> 00:17:39,270 ние се грижиме за на маса на корисникот. 360 00:17:39,270 --> 00:17:43,220 И тогаш имаме дополнителни информации или дополнителни информации во другите маси 361 00:17:43,220 --> 00:17:48,260 дека ние може да се поврзе назад на главната маса на корисниците на одреден начин. 362 00:17:48,260 --> 00:17:52,200 >> Значи тука имаме овие две табели, но има врска помеѓу нив, 363 00:17:52,200 --> 00:17:53,010 нели? 364 00:17:53,010 --> 00:17:55,070 Се чини како корисничко име може да биде нешто 365 00:17:55,070 --> 00:17:59,909 која постои заедничко помеѓу овие две различни маси. 366 00:17:59,909 --> 00:18:01,700 Па што ако ние сега имаме ситуација каде што 367 00:18:01,700 --> 00:18:06,046 сакате да се добие целосното име на корисникот од маса на корисникот, и нивната мајка 368 00:18:06,046 --> 00:18:07,170 именува од трпезата на мајката? 369 00:18:07,170 --> 00:18:10,960 Ние немаме начин да се добие кои, како што стои, нели? 370 00:18:10,960 --> 00:18:17,790 Не постои една табела која содржи и со полно име и презиме на мајка. 371 00:18:17,790 --> 00:18:20,400 Немаме таа опција од она што сум го видел досега. 372 00:18:20,400 --> 00:18:22,950 >> И така што мораме да се воведе идејата за да се придружи. 373 00:18:22,950 --> 00:18:24,857 И се приклучува веројатно најмногу complex-- 374 00:18:24,857 --> 00:18:27,940 тоа е навистина повеќето сложена операција ние ќе треба да се зборува за во видеото. 375 00:18:27,940 --> 00:18:30,040 Тие се малку комплицирано, но откако ќе го добиете висат од него, 376 00:18:30,040 --> 00:18:31,248 тие, всушност, не се толку лош. 377 00:18:31,248 --> 00:18:32,820 Тоа е само посебен случај на одбереш. 378 00:18:32,820 --> 00:18:37,120 Ние ќе треба да изберете множество на колони од табелата се приклучи 379 00:18:37,120 --> 00:18:40,650 во втората табела на некои предикат. 380 00:18:40,650 --> 00:18:45,340 >> Во овој случај, се размислува за тоа како this-- маса еден е еден круг овде, 381 00:18:45,340 --> 00:18:47,530 табела две е уште еден круг овде. 382 00:18:47,530 --> 00:18:49,410 И основните казниви дел во средината, тоа е 383 00:18:49,410 --> 00:18:51,701 вид на како ако мислите за како Венов дијаграм, она што 384 00:18:51,701 --> 00:18:52,670 тие имаат заедничко? 385 00:18:52,670 --> 00:18:55,960 Ние сакаме да ги поврзат овие две табели врз основа на она што им е заедничко 386 00:18:55,960 --> 00:19:01,230 и да се создаде овој хипотетички маса тоа е спојувањето на двете заедно. 387 00:19:01,230 --> 00:19:03,480 Па ќе видиме ова во пример а можеби и тоа ќе ви помогнеме 388 00:19:03,480 --> 00:19:04,521 тоа се расчисти малку. 389 00:19:04,521 --> 00:19:09,260 Па можеби ќе сакате да го изберете user.fullname и moms.mother 390 00:19:09,260 --> 00:19:13,220 од корисниците се приклучи во маса мајки во секоја ситуација 391 00:19:13,220 --> 00:19:16,790 каде колоната корисничко име е иста помеѓу нив. 392 00:19:16,790 --> 00:19:19,240 И ова е нова синтакса за овде, на овој корисник. 393 00:19:19,240 --> 00:19:20,460 и мајки .. 394 00:19:20,460 --> 00:19:26,697 Ако јас го правам повеќе табели заедно, јас може да се определи масата. 395 00:19:26,697 --> 00:19:29,530 Јас може да се направи разлика, особено на дека на на самото дно таму. 396 00:19:29,530 --> 00:19:33,220 Јас може да се направи разлика на корисничко име колона од табелата на корисници 397 00:19:33,220 --> 00:19:36,010 од колона име на мајки маса, која се otherwise-- 398 00:19:36,010 --> 00:19:38,070 ако ние само рече корисничко име е еднаква на корисничко име, што воопшто не 399 00:19:38,070 --> 00:19:38,970 значи ништо. 400 00:19:38,970 --> 00:19:41,440 Ние сакаме да го направи тоа, каде што тие се совпаѓаат. 401 00:19:41,440 --> 00:19:46,080 >> За да можам да се определи на маса и на името на колоната во случај на ситуација 402 00:19:46,080 --> 00:19:48,370 каде што ќе биде јасно она што јас го зборувам. 403 00:19:48,370 --> 00:19:51,880 Значи тоа е сите што го правам не постои сигурен сум велејќи дека оваа колумна од оваа табела, 404 00:19:51,880 --> 00:19:54,020 и да се биде многу експлицитен. 405 00:19:54,020 --> 00:19:56,810 Значи, повторно, јас сум со избирање на целосно име и презиме и име на мајката 406 00:19:56,810 --> 00:20:00,950 од корисниците табела поврзани заедно со табелата за мајки во секоја ситуација 407 00:20:00,950 --> 00:20:05,960 каде што тие го споделат тоа column-- тие го споделат тоа корисничко име поим. 408 00:20:05,960 --> 00:20:08,580 >> Значи тука се маси имавме порано. 409 00:20:08,580 --> 00:20:12,210 Ова е состојбата на нашата база на податоци како што постои во моментов. 410 00:20:12,210 --> 00:20:16,390 Информации ние сме вадење ова е да се започне со. 411 00:20:16,390 --> 00:20:19,820 Ова е новиот табелата ние си оди да се создаде комбинирање на овие заедно. 412 00:20:19,820 --> 00:20:23,585 И ќе забележите дека ние не сме истакнување Ред Њуман во табелата на корисникот, 413 00:20:23,585 --> 00:20:25,960 и ние не сме истакнување Ред Крамер во табелата на мајки 414 00:20:25,960 --> 00:20:31,250 бидејќи ниту една постои во двете sets-- во двете табели. 415 00:20:31,250 --> 00:20:36,260 >> Единствените информации што е заедничко меѓу нив е Џери е во двете табели 416 00:20:36,260 --> 00:20:39,100 и gcostanza е и во двете табели. 417 00:20:39,100 --> 00:20:42,620 И така, кога ние го ПРИДРУЖЕТЕ SQL, она што ние get-- и да правиме, всушност, го добивате ова. 418 00:20:42,620 --> 00:20:44,830 Тоа е вид на привремена променлива. 419 00:20:44,830 --> 00:20:47,330 Тоа е како хипотетички Спојувањето на двете маси. 420 00:20:47,330 --> 00:20:49,930 Ние всушност се добие нешто како овој, каде што 421 00:20:49,930 --> 00:20:54,730 ние сме споени заедно во табелите на информации дека тие имаат заедничко. 422 00:20:54,730 --> 00:20:58,334 >> Така забележуваме дека users.username и moms.username колона, 423 00:20:58,334 --> 00:20:59,250 тоа е сосема ист. 424 00:20:59,250 --> 00:21:01,820 Тоа беше информацијата дека беше во согласност од корисниците 425 00:21:01,820 --> 00:21:02,890 маса и маса на мајки. 426 00:21:02,890 --> 00:21:04,270 И така ние ги спои заедно. 427 00:21:04,270 --> 00:21:06,919 Ние отфрлените Крамер, бидејќи тој не постои во табелата на корисници, 428 00:21:06,919 --> 00:21:09,710 и ние отфрлените Њуман, бидејќи тој не постои во табелата за мајки. 429 00:21:09,710 --> 00:21:16,450 Значи ова е хипотетичко спојување користејќи го ПРИДРУЖЕТЕ операција на SELECT. 430 00:21:16,450 --> 00:21:21,250 >> А потоа ние го барате целосно име и презиме на корисникот и мајка на корисникот, 431 00:21:21,250 --> 00:21:24,999 па така ова е информацијата дека ние ќе ја добие од целокупната пребарување 432 00:21:24,999 --> 00:21:26,040 што го направивме со SELECT. 433 00:21:26,040 --> 00:21:28,873 Значи ние се приклучи на масите и ние извлечена овие две колони, 434 00:21:28,873 --> 00:21:31,610 и така тоа е она што ние ќе ја добие. 435 00:21:31,610 --> 00:21:33,370 Но SQL се придружува еден вид на комплицирани. 436 00:21:33,370 --> 00:21:36,770 Вие веројатно нема да ги прават премногу, но само имаат некоја идеја на скелетот 437 00:21:36,770 --> 00:21:41,992 дека можете да го користите да се спојат две табели заедно ако е потребно да. 438 00:21:41,992 --> 00:21:43,700 Последните две се малку поедноставно ветувам. 439 00:21:43,700 --> 00:21:48,040 Па ажурирање, можеме да користиме Ажурирање за промена на информации во табела. 440 00:21:48,040 --> 00:21:53,880 На општ формат е да ажурирање некој маса, го поставите на некои колоната за некои вредност 441 00:21:53,880 --> 00:21:55,540 Каде што некои прирокот е задоволен. 442 00:21:55,540 --> 00:21:57,850 Така на пример, ние можеби ќе сакате да се ажурира корисниците табела 443 00:21:57,850 --> 00:22:04,400 и да го поставите лозинка за да ала ала, каде ID број е 10. 444 00:22:04,400 --> 00:22:06,400 >> Значи во овој случај, ние сме ажурирање на корисниците табела. 445 00:22:06,400 --> 00:22:08,275 Бројот проект е 10 за дека првиот ред таму, 446 00:22:08,275 --> 00:22:10,690 и ние сакаме да ги ажурирате лозинка на ала-чевли. 447 00:22:10,690 --> 00:22:12,170 И така тоа е она што ќе се случи. 448 00:22:12,170 --> 00:22:13,628 Тоа е прилично јасна, така? 449 00:22:13,628 --> 00:22:17,990 Тоа е само еден многу едноставен модификација на масата. 450 00:22:17,990 --> 00:22:22,250 >> DELETE е работата што се користи за да се отстрани информации од табелата. 451 00:22:22,250 --> 00:22:24,817 Избриши од табелата, каде што некои прирокот е задоволен. 452 00:22:24,817 --> 00:22:26,900 Ние сакаме да ги избришете од маса на корисниците на пример 453 00:22:26,900 --> 00:22:28,254 каде корисничко име е Њуман. 454 00:22:28,254 --> 00:22:31,420 Што веројатно може да се погоди она што се случува да се се случи тука откако ќе се изврши дека SQL 455 00:22:31,420 --> 00:22:35,790 Барањето, Њуман е нема од табелата. 456 00:22:35,790 --> 00:22:40,460 >> Така што сите овие операции, како што рековме, се многу лесно да се направи во phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Тоа е многу лесен за користење интерфејс. 458 00:22:43,020 --> 00:22:45,930 Но, тоа бара рачно напор. 459 00:22:45,930 --> 00:22:47,840 Ние не сакаме да се вработат рачен напор. 460 00:22:47,840 --> 00:22:51,280 Ние сакаме нашите програми за да се стори тоа за нас, нели? 461 00:22:51,280 --> 00:22:53,190 Значи, ние можеби ќе сакате да се направи овој програмски. 462 00:22:53,190 --> 00:22:56,410 Сакаме да ги инкорпорираме SQL и да имаат нешто друго да го стори тоа за нас. 463 00:22:56,410 --> 00:23:02,710 >> Но, она што не сме виделе кој им овозможува на ни да програмски направи нешто? 464 00:23:02,710 --> 00:23:03,690 Видовме PHP, нели? 465 00:23:03,690 --> 00:23:05,760 Се воведува некои динамика во нашите програми. 466 00:23:05,760 --> 00:23:10,430 И така за среќа, SQL и PHP да игра многу убаво заедно. 467 00:23:10,430 --> 00:23:13,230 Има функција во PHP повика на прашањето, кој може да се користи. 468 00:23:13,230 --> 00:23:15,870 И можете да го помине како параметар или аргументот 469 00:23:15,870 --> 00:23:19,210 за пребарување на пребарување SQL дека вие би сакале да се изврши. 470 00:23:19,210 --> 00:23:23,250 И PHP ќе го направиме тоа во ваше име. 471 00:23:23,250 --> 00:23:25,564 >> Значи, откако сте поврзани до вашата база на податоци со PHP, 472 00:23:25,564 --> 00:23:26,980 има две прелиминарни избори ќе го направите ова. 473 00:23:26,980 --> 00:23:29,230 Има нешто што се нарекува MySQLi и нешто што се нарекува ЗНП. 474 00:23:29,230 --> 00:23:31,063 Ние нема да одиме во огромен износот детали таму. 475 00:23:31,063 --> 00:23:32,957 Во CS50 ние ги користиме ЗНП. 476 00:23:32,957 --> 00:23:34,790 По кој сте поврзани на вашата база на податоци, 477 00:23:34,790 --> 00:23:40,980 тогаш може да направи вашата база на податоци пребарувања со полагање на пребарувања како аргументи 478 00:23:40,980 --> 00:23:42,730 во PHP функции. 479 00:23:42,730 --> 00:23:46,460 И кога ќе го направите тоа, ќе ја запази резултати наведени во асоцијативна низа. 480 00:23:46,460 --> 00:23:50,290 >> И знаеме како да се работи со асоцијативни низи во PHP. 481 00:23:50,290 --> 00:23:52,630 Па јас може да се каже нешто како this-- $ results-- 482 00:23:52,630 --> 00:23:55,470 ова е во PHP-- еднаква пребарување. 483 00:23:55,470 --> 00:23:57,660 А потоа и во внатрешноста на функција за пребарување дека аргументот 484 00:23:57,660 --> 00:24:00,130 дека јас сум полагање да се пребарува што личи на SQL. 485 00:24:00,130 --> 00:24:01,160 И во фактот што е SQL. 486 00:24:01,160 --> 00:24:05,700 Тоа е стринг пребарувањето што јас би сакал да се изврши на мојата база на податоци. 487 00:24:05,700 --> 00:24:09,250 >> И така во црвено, ова е PHP. 488 00:24:09,250 --> 00:24:11,890 Ова е SQL дека сум интегрирање во PHP, со тоа што 489 00:24:11,890 --> 00:24:15,020 тоа аргументот на функцијата за пребарување. 490 00:24:15,020 --> 00:24:19,640 Сакам да изберете од fullname корисници, каде што ID број е еднакво на 10. 491 00:24:19,640 --> 00:24:22,560 А потоа можеби и откако јас го направиле тоа, Јас може да се каже нешто како ова. 492 00:24:22,560 --> 00:24:25,550 Сакам да се печати од Благодарение порака за најавување. 493 00:24:25,550 --> 00:24:32,530 >> И јас тоа го сакаат interpolate-- сакам да интерполирам $ резултати fullname. 494 00:24:32,530 --> 00:24:36,280 И така тоа е како јас работам со кои асоцијативна низа што ја добив назад. 495 00:24:36,280 --> 00:24:39,730 $ резултати fullname би во основа заврши печатење, 496 00:24:39,730 --> 00:24:42,870 Ви благодариме за пријавување, Џери Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Тоа беше целосно име каде idnum еднакво на 10. 498 00:24:46,570 --> 00:24:48,850 >> И така сите што го правам е јас сум now-- јас се чуваат 499 00:24:48,850 --> 00:24:52,780 мојата пребарување, резултатите од моето пребарување и резултати во асоцијативна низа, 500 00:24:52,780 --> 00:24:56,330 и fullname е името на колоната јас бев добивање на. 501 00:24:56,330 --> 00:25:01,010 Значи, тоа е мојот клуч во резултатите асоцијативна низа што сакам. 502 00:25:01,010 --> 00:25:05,930 Така Ви благодариме за пријавување, $ резултати, fullname ќе се печати, ќе се држи 503 00:25:05,930 --> 00:25:08,654 право во помеѓу овие кадрава протези, Џери Seinfeld. 504 00:25:08,654 --> 00:25:11,820 А јас ќе се допаѓа да се печати пораката Ви благодариме за најавување Џери Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Сега, ние не би требало да е тешко код такви работи во, нели? 506 00:25:16,652 --> 00:25:19,860 Ние би сакале да се направи нешто како печатење ѓ, каде што може да ја замени и можеби 507 00:25:19,860 --> 00:25:22,443 собираат различни информации, или можеби имаат процес за пребарување 508 00:25:22,443 --> 00:25:23,370 различни информации. 509 00:25:23,370 --> 00:25:27,920 И така на прашањето, го бараш функција има овој поим на кој вид на супституции 510 00:25:27,920 --> 00:25:32,310 многу сличен на печатите ѓ проценти ОК и в проценти, што е знак прашалник. 511 00:25:32,310 --> 00:25:34,290 >> И можеме да го користиме прашање ознаки многу аналогно 512 00:25:34,290 --> 00:25:38,400 да се печати ⇩ за замена на променливи. 513 00:25:38,400 --> 00:25:44,120 Па можеби вашето корисничко најавени претходно, и сте го зачувале нивниот матичен број на корисникот 514 00:25:44,120 --> 00:25:51,710 во $ _SESSION на PHP супер глобална во клучниот проект. 515 00:25:51,710 --> 00:25:55,947 Па можеби и откако тие ќе се најавите, ќе се постави $ _SESSION проект изнесува 10, 516 00:25:55,947 --> 00:25:58,280 екстраполација од примерот ние само видов пред една секунда. 517 00:25:58,280 --> 00:26:01,960 >> И така, кога ние всушност извршување ова анализирање на резултатите сега, 518 00:26:01,960 --> 00:26:08,440 тоа ќе го приклучиш во 10, или што Проект вредноста на $ _SESSION е. 519 00:26:08,440 --> 00:26:10,790 И така што ни овозможува да се да биде малку повеќе динамичен. 520 00:26:10,790 --> 00:26:12,699 Ние не сме хард кодирање работи во повеќе. 521 00:26:12,699 --> 00:26:14,490 Ние сме заштеда на информации некаде и потоа 522 00:26:14,490 --> 00:26:18,924 можеме да ги користат тие информации да се повторно вид на генерализира она што ние сакаме да се направи, 523 00:26:18,924 --> 00:26:21,090 и само plug-in-и промени однесувањето на нашата страница 524 00:26:21,090 --> 00:26:26,489 врз основа на она матичен број на корисникот всушност е откако ќе влезете во системот. 525 00:26:26,489 --> 00:26:28,530 Исто така е можно, сепак, со кои се вашите резултати 526 00:26:28,530 --> 00:26:30,840 Може да се состои од повеќе редови. 527 00:26:30,840 --> 00:26:33,990 Во кој случај, мора да низа на arrays-- 528 00:26:33,990 --> 00:26:35,334 низа на асоцијативни низи. 529 00:26:35,334 --> 00:26:37,000 А вие само треба да iterate преку неа. 530 00:26:37,000 --> 00:26:41,950 И знаеме како да iterate преку низа во PHP, нели? 531 00:26:41,950 --> 00:26:45,600 Значи тука е веројатно најголемиот комплекс нешто што сум го видел досега. 532 00:26:45,600 --> 00:26:49,640 Тоа всушност се интегрира три јазици заедно. 533 00:26:49,640 --> 00:26:52,920 >> Тука во црвено, ова е некои HTML. 534 00:26:52,920 --> 00:26:56,872 Јас сум очигледно starting-- ова е програмка на некои HTML дека имам. 535 00:26:56,872 --> 00:26:59,580 Јас сум почнуваат нов став кој вели мајки на Seinfeld телевизорот. 536 00:26:59,580 --> 00:27:02,350 А потоа веднаш потоа Јас сум почнуваат маса. 537 00:27:02,350 --> 00:27:06,060 А потоа по што, јас имаат некои PHP, нели? 538 00:27:06,060 --> 00:27:08,229 Ги имам сите на овој PHP код во таму. 539 00:27:08,229 --> 00:27:09,645 Јас сум очигледно ќе направите пребарување. 540 00:27:09,645 --> 00:27:14,180 И да се направи за пребарување, јас ќе одам да биде користење изберете мајки од мајки. 541 00:27:14,180 --> 00:27:15,970 >> Па ова е getting-- ова е SQL. 542 00:27:15,970 --> 00:27:17,300 Па на сината е SQL. 543 00:27:17,300 --> 00:27:19,680 Црвениот видовме пред вториот беше на HTML. 544 00:27:19,680 --> 00:27:21,360 И зелените тука е PHP. 545 00:27:21,360 --> 00:27:23,400 Па јас сум правење на пребарување во мојата база на податоци, јас сум 546 00:27:23,400 --> 00:27:26,040 избирање на сите на мајки во табелата за мајки. 547 00:27:26,040 --> 00:27:30,710 Не само да го стеснување одредување на одредени ред, јас барам за сите нив. 548 00:27:30,710 --> 00:27:33,290 >> Јас тогаш проверете дали резултатот е не еднаквите еднакво на лажни. 549 00:27:33,290 --> 00:27:37,410 Ова е само мојот начин на проверка на вид на, ако резултатите не е еднаков на нула, 550 00:27:37,410 --> 00:27:40,260 дека ние ќе се види в пример. 551 00:27:40,260 --> 00:27:44,000 Во суштина ова е само проверка за да се направи сигурни дека тоа всушност доби податоци назад. 552 00:27:44,000 --> 00:27:47,041 Затоа што не сакам да започнете со печатење од податоците, ако јас не добивам никакви податоци. 553 00:27:47,041 --> 00:27:50,690 Тогаш за секоја резултати како резултат на foreach синтаксата од PHP, сите што го правам 554 00:27:50,690 --> 00:27:53,399 е печатење на $ резултат мајки. 555 00:27:53,399 --> 00:27:55,940 И така јас ќе одам да добиете сет на сите мајки на each-- 556 00:27:55,940 --> 00:27:59,980 тоа е низа на асоцијативниот arrays-- и јас сум со печатење 557 00:27:59,980 --> 00:28:03,649 секој од нив како нејзин ред на табела. 558 00:28:03,649 --> 00:28:05,690 И тоа е навистина убава колку што има на него. 559 00:28:05,690 --> 00:28:07,750 Знам дека е малку малку се случува овде 560 00:28:07,750 --> 00:28:13,210 во овој последен пример со низи од arrays-- низи на асоцијативни низи. 561 00:28:13,210 --> 00:28:17,340 Но, според него е само вари долу во SQL да се прават на барањето, 562 00:28:17,340 --> 00:28:21,102 обично по изборот Ние веќе стави информации во табелата, 563 00:28:21,102 --> 00:28:22,310 а потоа само се тргнуваше. 564 00:28:22,310 --> 00:28:25,710 >> И тоа е ќе се повлече во конкретниов случај. 565 00:28:25,710 --> 00:28:31,120 Ние би екстракт од сите поединечни мајките од трпезата на мајки. 566 00:28:31,120 --> 00:28:35,970 Добивме на цела низа на нив, и ние сакаат да iterate преку и печатење 567 00:28:35,970 --> 00:28:37,630 секое. 568 00:28:37,630 --> 00:28:40,510 Значи, повторно, ова е веројатно најкомплицираните пример 569 00:28:40,510 --> 00:28:44,510 ние сме виделе, бидејќи ние сме мешање на три различни јазици заедно, нели? 570 00:28:44,510 --> 00:28:50,100 >> Повторно, имаме HTML тука во црвено, меша со некои SQL тука во сина, 571 00:28:50,100 --> 00:28:52,049 меша со некои PHP во зелена боја. 572 00:28:52,049 --> 00:28:53,840 Но, сите овие се игра убаво заедно, тоа е 573 00:28:53,840 --> 00:28:57,060 само прашање на развивање добри навики, така што ќе може да се добие 574 00:28:57,060 --> 00:28:58,780 нив да работат заедно за начинот на кој сакате. 575 00:28:58,780 --> 00:29:03,790 И единствениот начин да се навистина дека е да вежбате, пракса, пракса. 576 00:29:03,790 --> 00:29:06,740 Јас сум Даг Лојд, ова е CS50. 577 00:29:06,740 --> 00:29:08,647