1 00:00:00,000 --> 00:00:02,405 >> [მუსიკის დაკვრა] 2 00:00:02,405 --> 00:00:10,439 3 00:00:10,439 --> 00:00:11,980 დავით Malan ყველა უფლება, ეს არის CS50. 4 00:00:11,980 --> 00:00:13,740 ეს არის ბოლომდე კვირაში რვა. 5 00:00:13,740 --> 00:00:15,887 და დღეს, ჩვენ დავიწყებთ შეავსოთ რამდენიმე ცალი 6 00:00:15,887 --> 00:00:17,720 როდესაც საქმე შენობა რამ ინტერნეტში. 7 00:00:17,720 --> 00:00:20,020 ასე რომ, გავიხსენოთ, რომ ორშაბათს ჩვენ გაატაროთ ბევრი დრო 8 00:00:20,020 --> 00:00:22,530 on PHP, რომელიც ამ დინამიური პროგრამირების ენა, რომელიც 9 00:00:22,530 --> 00:00:26,872 საშუალებას გვაძლევს გამომავალი, სხვა რამ, HTML და სხვა მსგავსი შინაარსის 10 00:00:26,872 --> 00:00:27,830 ის, რომ ჩვენ გვინდა, რომ. 11 00:00:27,830 --> 00:00:30,871 მაგრამ ჩვენ ნამდვილად არ შევხედე, თუ როგორ ჩვენ ვაპირებთ, რომ შეინახოთ ნებისმიერი ინფორმაცია. 12 00:00:30,871 --> 00:00:34,477 მართლაც, თითქმის არც ერთი სუპერ საინტერესო საიტები თქვენ ეწვევა დღეს 13 00:00:34,477 --> 00:00:36,560 გარკვეული სახის მონაცემთა ბაზაში უკან ბოლომდე, არა? 14 00:00:36,560 --> 00:00:39,540 Facebook თქმა ინახავს უამრავი მონაცემები ყველა ჩვენგანი და Gmail მაღაზიები 15 00:00:39,540 --> 00:00:40,210 თქვენი ელ. 16 00:00:40,210 --> 00:00:44,150 >> ასე რომ, ბევრი სხვა საიტებზე არ არის მხოლოდ სტატიკური შიგთავსი, რომ საინფორმაციო. 17 00:00:44,150 --> 00:00:45,640 ეს, ფაქტობრივად, დინამიური რამდენიმე გზა. 18 00:00:45,640 --> 00:00:48,480 თქვენ შეყვანის, ეს განახლებები გვერდებზე სხვა ადამიანი. 19 00:00:48,480 --> 00:00:50,620 თქვენ მიიღებთ შეტყობინებას, თქვენ გააგზავნით შეტყობინებები, და სხვ. 20 00:00:50,620 --> 00:00:54,250 ასე რომ, დღეს, დავაკვირდებით ზე საფუძვლების პროექტი 21 00:00:54,250 --> 00:00:57,330 რომ თქვენ ჩაყვინთვის შევიდა შემდეგი კვირას, CS50 ფინანსთა, რომელიც 22 00:00:57,330 --> 00:01:00,509 რეალურად აპირებს თქვენ აშენება რაღაც არა C, მაგრამ PHP. 23 00:01:00,509 --> 00:01:02,550 ნახვა, რომელიც გამოიყურება ცოტა რაღაც მსგავსი 24 00:01:02,550 --> 00:01:05,810 რომელიც საშუალებას იყიდოს და გაყიდოს აქციები, რომლებიც, ფაქტობრივად, 25 00:01:05,810 --> 00:01:09,044 აპირებს დაეყრდნოს რეალურ დროში საფონდო მონაცემების Yahoo Finance. 26 00:01:09,044 --> 00:01:11,960 ასე რომ, საბოლოო ჯამში, თქვენ გაქვთ ილუზია თავს და მომხმარებლები 27 00:01:11,960 --> 00:01:14,550 რომ თქვენ რეალურად ყიდვის და გაყიდვის აქციები და მიღების თითქმის რეალურ დროში 28 00:01:14,550 --> 00:01:16,800 განახლება, მართვის პორტფელი, რაც 29 00:01:16,800 --> 00:01:20,310 აპირებს მოითხოვოს, რომელსაც, საბოლოო ჯამში, მონაცემთა ბაზის მომხმარებლებს. 30 00:01:20,310 --> 00:01:23,330 >> ასე რომ, თქვენი სიტყვებით მით უმეტეს, თუ თქვენ არ 31 00:01:23,330 --> 00:01:25,670 სუპერ იცნობს კომპიუტერული მეცნიერება და მონაცემთა ბაზა, რა 32 00:01:25,670 --> 00:01:30,790 იცით ბაზაში იყოს ახლა, ამ nontechnical თვალსაზრისით? 33 00:01:30,790 --> 00:01:32,300 რა არის ეს? 34 00:01:32,300 --> 00:01:36,882 როგორ დაახასიათებდით მას რომ roommate ან მეგობარი? 35 00:01:36,882 --> 00:01:40,100 >> აუდიტორია: [INAUDIBLE] ინფორმაცია [INAUDIBLE] 36 00:01:40,100 --> 00:01:44,430 >> დავით Malan: ასე, სია, ინფორმაცია, ან store-- ინფორმაციის ჩამონათვალი 37 00:01:44,430 --> 00:01:47,160 რომ დაგვჭირდება შესანახად რაღაც, როგორიცაა შესახებ. 38 00:01:47,160 --> 00:01:50,190 და რას წევრებს არ აქვთ მათთან დაკავშირებული? 39 00:01:50,190 --> 00:01:53,160 თუ თქვენ შესახებ Facebook ან Gmail, რა მახასიათებლები 40 00:01:53,160 --> 00:01:54,940 რომ ყველა ჩვენგანი წევრებს არ აქვთ? 41 00:01:54,940 --> 00:01:58,530 მსგავსად, რა შეიძლება იყოს ზოგიერთი სვეტის ცხრილების, რომელსაც ჩვენ 42 00:01:58,530 --> 00:01:59,390 მიანიშნა, ბოლო დროს? 43 00:01:59,390 --> 00:02:01,140 იმის გამო, რომ ერთხელ, შეგიძლიათ ვფიქრობ, რომ მონაცემთა ბაზაში 44 00:02:01,140 --> 00:02:05,810 მართლაც, როგორც ლამაზი Excel ფაილი ან Google ცხრილების ან Apple ნომრები ფაილი. 45 00:02:05,810 --> 00:02:08,280 >> ასე რომ, რა ფიქრობთ როდესაც ფიქრობთ მომხმარებელი? 46 00:02:08,280 --> 00:02:11,290 რა კავშირი აქვთ მათ? 47 00:02:11,290 --> 00:02:11,790 რა არის ეს? 48 00:02:11,790 --> 00:02:12,470 >> აუდიტორია: სახელი. 49 00:02:12,470 --> 00:02:13,303 >> DAVID Malan: სახელი. 50 00:02:13,303 --> 00:02:16,840 ასე რომ, თუ სახელი, ისევე როგორც დავით Malan იქნება სახელი ზოგიერთი შესახებ. 51 00:02:16,840 --> 00:02:17,980 რა ამჯამად მომხმარებლის გაქვთ? 52 00:02:17,980 --> 00:02:18,770 >> აუდიტორია: პირადობის მოწმობა. 53 00:02:18,770 --> 00:02:19,561 >> DAVID Malan: ID. 54 00:02:19,561 --> 00:02:23,320 ასე რომ, როგორც პირადობის მოწმობის ნომერი, როგორც თქვენი ჰარვარდის ID ან Yale წმინდა ID ან მოსწონს. 55 00:02:23,320 --> 00:02:24,923 რა შეიძლება მომხმარებლის გაქვთ? 56 00:02:24,923 --> 00:02:25,890 >> აუდიტორია: პაროლი. 57 00:02:25,890 --> 00:02:29,240 >> დავით Malan: დაგავიწყდათ, შესაძლოა, მისამართი, შესაძლოა, ტელეფონის ნომერი, იქნებ 58 00:02:29,240 --> 00:02:30,050 ელექტრონული ფოსტის მისამართი. 59 00:02:30,050 --> 00:02:32,640 ასე რომ, აქ კონა სფეროებში და ეს შეიძლება სახის კონტროლიდან 60 00:02:32,640 --> 00:02:34,760 სწრაფად, როგორც კი დაიწყება ხვდებიან, OH, მოდით შესანახად ეს 61 00:02:34,760 --> 00:02:36,190 და მოდით შესანახად და რომ. 62 00:02:36,190 --> 00:02:37,657 >> მაგრამ, თუ ჩვენ რეალურად ამის გაკეთება? 63 00:02:37,657 --> 00:02:39,740 ასე რომ, კიდევ ერთხელ, გონებრივი მოდელი უნდა ჰქონდეს დღეს, როგორც ჩვენ 64 00:02:39,740 --> 00:02:42,320 ჩაყვინთვის შევიდა ფაქტობრივი SQL, სტრუქტურირებული შეკითხვის ენა, 65 00:02:42,320 --> 00:02:44,186 მონაცემთა ბაზა, რომელიც ასე გამოიყურება. 66 00:02:44,186 --> 00:02:45,310 ეს უბრალოდ რიგები და სვეტები. 67 00:02:45,310 --> 00:02:48,309 და თქვენ წარმოიდგინეთ, Google ცხრილები ან ნებისმიერი რაოდენობის სხვა პროგრამებს. 68 00:02:48,309 --> 00:02:52,130 მაგრამ რა არის გასაღები MySQL, რომელიც არის მონაცემთა ბაზის პროგრამული უზრუნველყოფა, ჩვენ ვაპირებთ გამოვიყენოთ, 69 00:02:52,130 --> 00:02:54,920 თავისუფლად ღიად available-- Facebook მიზნებისათვის 70 00:02:54,920 --> 00:02:59,200 და ნებისმიერი რაოდენობის სხვა websites-- მონაცემთა ბაზის ინახავს რამ relationally. 71 00:02:59,200 --> 00:03:01,770 და რელატიური მონაცემთა ბაზაში მხოლოდ იმას ნიშნავს, ერთ-ერთი, რომელიც სიტყვასიტყვით 72 00:03:01,770 --> 00:03:03,672 ინახავს მისი მონაცემების რიგები და სვეტები. 73 00:03:03,672 --> 00:03:04,630 ეს იმდენად მარტივია, რომ. 74 00:03:04,630 --> 00:03:07,230 >> ასე რომ, თუნდაც რაღაც Oracle, რომ თქვენ ალბათ ზოგადად მსმენია 75 00:03:07,230 --> 00:03:08,271 არის რელატიური მონაცემთა ბაზაში. 76 00:03:08,271 --> 00:03:10,929 და ქვეშ Hood, მაღაზიები მონაცემების რიგები და სვეტები. 77 00:03:10,929 --> 00:03:12,970 და Oracle ედავება თქვენ ბევრი ფული უნდა გავაკეთოთ, რომ, 78 00:03:12,970 --> 00:03:15,550 ხოლო MySQL ბრალდებით თქვენ არაფერი იგივე. 79 00:03:15,550 --> 00:03:18,790 ასე რომ, SQL აპირებს მოგვცეს მინიმუმ ოთხი ოპერაციებში. 80 00:03:18,790 --> 00:03:23,190 შესაძლებლობა აირჩიოთ მონაცემებს, როგორიცაა წაკითხული მონაცემები, ჩადეთ, წაშლის, განახლება და მონაცემები. 81 00:03:23,190 --> 00:03:25,525 სხვა სიტყვებით, ეს არის ნამდვილად ოთხი ძირითადი ოპერაციების 82 00:03:25,525 --> 00:03:28,950 რომ ვაპირებთ საშუალებას მოგვცემს, რომ შეიცვალოს პერსონალის იმ რიგები და სვეტები. 83 00:03:28,950 --> 00:03:33,250 >> ინსტრუმენტი, რომელიც ჩვენ ვიყენებთ დღეს განსაკუთრებით ვისწავლოთ SQL და ითამაშოს ეს 84 00:03:33,250 --> 00:03:34,627 კიდევ ერთხელ მოუწოდა PHP MyAdmin. 85 00:03:34,627 --> 00:03:35,460 ეს არის ვებ დაფუძნებული ინსტრუმენტი. 86 00:03:35,460 --> 00:03:38,200 სულ შემთხვევითი, რომ დაწერილი PHP. 87 00:03:38,200 --> 00:03:42,400 მაგრამ ის აპირებს მოგვცეს გრაფიკული ინტერფეისი, ასე რომ ჩვენ შეგვიძლია რეალურად 88 00:03:42,400 --> 00:03:46,054 შექმნა ამ რიგები და სვეტები და მაშინ გაიგო, რომ მათი მეშვეობით კოდი. 89 00:03:46,054 --> 00:03:47,970 ასე რომ, მოდით ახლა დაიწყება რას ვფიქრობ, გულწრფელად 90 00:03:47,970 --> 00:03:51,000 სახის fun პროცესი მშენებლობის უკან ბოლომდე საიტებზე, 91 00:03:51,000 --> 00:03:54,580 ნაწილები, რომ წევრებს არ ვხედავ, მაგრამ აუცილებლად ზრუნავს, 92 00:03:54,580 --> 00:03:56,170 იმიტომ, რომ ის საკმაოდ მონაცემები აპირებს. 93 00:03:56,170 --> 00:03:59,570 ასე რომ, მსგავსი C და ცოტა ნაკლები, როგორიცაა PHP, 94 00:03:59,570 --> 00:04:04,954 SQL ან მონაცემთა ბაზა, რომელიც მხარს უჭერს SQL, აქვს მინიმუმ ამ მონაცემთა ტიპები 95 00:04:04,954 --> 00:04:05,870 და მტევნების სხვები. 96 00:04:05,870 --> 00:04:08,107 CHAR, Varchar, INT, BIGINT, ათობითი და წამების. 97 00:04:08,107 --> 00:04:09,940 და იქ მთელი bunch სხვა თვისებები, 98 00:04:09,940 --> 00:04:11,940 მაგრამ მოდით ეს მიერ გზა ფაქტობრივი მაგალითია. 99 00:04:11,940 --> 00:04:16,450 >> მე ვაპირებ წასვლას CS50 IDE სადაც წინასწარ, მე შესული სისტემაში 100 00:04:16,450 --> 00:04:19,372 და მე ასევე ეწვია URL for ეს ინსტრუმენტი მოუწოდა PHP MyAdmin. 101 00:04:19,372 --> 00:04:22,580 და პრობლემა მითითებული შვიდი, ჩვენ გეტყვით, ზუსტად თუ როგორ უნდა მიიღოს ამ ინტერფეისი 102 00:04:22,580 --> 00:04:23,200 ისევე. 103 00:04:23,200 --> 00:04:25,640 ზედა მარცხენა კუთხეში, შეამჩნია ის ამბობს ლექცია. 104 00:04:25,640 --> 00:04:27,610 და ეს მხოლოდ იმას ნიშნავს, რომ წინასწარ, მე შევქმენი 105 00:04:27,610 --> 00:04:31,360 ცარიელი მონაცემთა ბაზაში მოუწოდა ლექცია რომ არ აქვს ცხრილები ამაზე. 106 00:04:31,360 --> 00:04:32,600 არ არის რიგები და სვეტები. 107 00:04:32,600 --> 00:04:34,308 იმის გამო, რომ პირველი რაც ჩვენ ვაპირებთ გავაკეთოთ 108 00:04:34,308 --> 00:04:37,100 არის დაიწყოს, რათა შეიქმნას მაგიდა რომ აპირებს შესანახად ჩვენს მომხმარებლებს. 109 00:04:37,100 --> 00:04:39,100 >> ასე რომ, სიტყვასიტყვით მეტი აქ უფლება, მე ვარ 110 00:04:39,100 --> 00:04:42,070 ვაპირებ გითხრათ მონაცემთა ბაზა მინდა მაგიდა სახელწოდებით მომხმარებელი. 111 00:04:42,070 --> 00:04:44,845 ასე რომ, ეს არის, როგორც ფაილი, რომელიც მე მინდა შესანახად ყველა ჩემი მონაცემები. 112 00:04:44,845 --> 00:04:45,720 და რამდენი სვეტების? 113 00:04:45,720 --> 00:04:47,740 ისე, მოდით შეინახოს იგი მარტივი ახლა. 114 00:04:47,740 --> 00:04:51,855 მე უბრალოდ მინდა შესანახად, როგორიცაა სახელი და სახელი შესახებ. 115 00:04:51,855 --> 00:04:53,020 ჩვენ დავიწყებთ მცირე. 116 00:04:53,020 --> 00:04:55,370 ასე რომ, მინდა ორი სვეტით სულ. 117 00:04:55,370 --> 00:04:57,360 და მე ვაპირებ წავიდეთ წინ და დააჭირეთ ღილაკს Go. 118 00:04:57,360 --> 00:04:59,210 და მაშინ, ამ სვეტები, რაც მე ვაპირებ 119 00:04:59,210 --> 00:05:04,576 გავაკეთოთ, თუ ამ ინტერნეტ cooperates-- ყველა უფლება, 120 00:05:04,576 --> 00:05:05,950 ასე რომ, ჩვენ ვაპირებთ, რომ ცდილობენ, რომ ერთხელ. 121 00:05:05,950 --> 00:05:09,180 მე ვაპირებ, რომ შევქმნათ მაგიდა სახელწოდებით მომხმარებელი ორი სვეტით, დააჭირეთ წადი, OK. 122 00:05:09,180 --> 00:05:10,520 ახლა ჩვენ მივიღეთ ეს მართლაც სწრაფი. 123 00:05:10,520 --> 00:05:12,065 დიდი მადლობა, ძალიან კარგად გაკეთდეს. 124 00:05:12,065 --> 00:05:14,440 ყველა უფლება, ასე რომ ჩვენ გვინდა ამ სვეტების ეწოდოს? 125 00:05:14,440 --> 00:05:16,080 >> ასე რომ, ერთი იქნება მოუწოდა ნიკი. 126 00:05:16,080 --> 00:05:19,480 ასე რომ, მე ვხედავ აქ და ინტერფეისი გულწრფელად იღებს პატარა მახინჯი, საბოლოო ჯამში, 127 00:05:19,480 --> 00:05:21,270 ერთხელ თქვენ დაიწყოს აკრეფით ყველა ეს მონაცემები. 128 00:05:21,270 --> 00:05:27,450 მაგრამ რა ლამაზი არის, რომ ერთგვარი პარადოქსულია, მე შექმნაში სვეტები, 129 00:05:27,450 --> 00:05:29,977 მაგრამ ინსტრუმენტი აქვს სულელურად ჩაუყარა მათ რიგები 130 00:05:29,977 --> 00:05:31,560 ასე, რომ მე შეგიძლიათ გამართოთ ამ სვეტები. 131 00:05:31,560 --> 00:05:33,550 ასე რომ, აქ ორი ბლანკები იქ ქვეშ სახელი. 132 00:05:33,550 --> 00:05:36,180 ერთ-ერთი ასეთი სფეროებში მე გვინდა, რომ ე.წ. ნიკი, 133 00:05:36,180 --> 00:05:38,000 და სხვა სფეროში მინდა მოვუწოდო სახელი. 134 00:05:38,000 --> 00:05:40,340 >> და ახლა მე უნდა აირჩიოს მონაცემთა ტიპები ამ საკითხზე. 135 00:05:40,340 --> 00:05:42,330 ასე რომ, ხოლო Excel და Google ცხრილები, 136 00:05:42,330 --> 00:05:45,531 თუ გვინდა, სვეტი, თქვენ ფაქტიურად მხოლოდ ჩაწერეთ სახელი ან ნიკი, დააჭიროთ. 137 00:05:45,531 --> 00:05:48,030 იქნებ, რათა ის თამამი სახე მხოლოდ სიწმინდე, მაგრამ ეს არის ის. 138 00:05:48,030 --> 00:05:50,140 თქვენ არ დააკონკრეტა სახის სვეტები. 139 00:05:50,140 --> 00:05:53,790 ახლა Google ცხრილები ან Excel, შეიძლება მიუთითოს, თუ როგორ მონაცემები გაწეული. 140 00:05:53,790 --> 00:05:58,120 თქვენ შეიძლება წავიდეს ფორმატი მენიუს და შეგიძლიათ მიუთითოთ ნახოთ ეს, როგორც დოლარის ნიშანი, 141 00:05:58,120 --> 00:05:59,900 ჩანს, ამ, როგორც მცურავი წერტილი ღირებულება. 142 00:05:59,900 --> 00:06:01,990 >> ასე რომ, ეს მსგავსი სულისკვეთებით რომ ის, რაც ჩვენ შესახებ უნდა გააკეთოს, 143 00:06:01,990 --> 00:06:04,740 მაგრამ ეს რეალურად აპირებს აიძულოს მონაცემები უნდა იყოს გარკვეული ტიპის. 144 00:06:04,740 --> 00:06:07,750 ახლა, მიუხედავად იმისა, რომ ერთი წუთით წინ მე განაცხადა, რომ მხოლოდ რამდენიმე მონაცემთა ტიპები, 145 00:06:07,750 --> 00:06:11,120 იქ ფაქტიურად მთელი ბევრი, და ისინი 146 00:06:11,120 --> 00:06:12,910 სხვადასხვა ხარისხით სპეციფიკას. 147 00:06:12,910 --> 00:06:14,970 და როგორც განზე, თქვენ კი ამის ლამაზი რამ 148 00:06:14,970 --> 00:06:17,520 როგორიცაა შენახვის geometries შიგნით მონაცემთა ბაზაში. 149 00:06:17,520 --> 00:06:19,250 თქვენ შეგიძლიათ ჩაწეროთ რამ როგორიცაა GPS კოორდინატები 150 00:06:19,250 --> 00:06:22,420 და რეალურად, მათემატიკურად, რაოდენობა, რომლებიც ახლოს სხვები. 151 00:06:22,420 --> 00:06:24,128 მაგრამ ჩვენ ვაპირებთ შენარჩუნება ეს სუპერ მარტივი 152 00:06:24,128 --> 00:06:26,800 და ახვიდეთ აქ, ყველა ე.წ. string ტიპის. 153 00:06:26,800 --> 00:06:29,240 >> ასე რომ, აქ არის სიაში მთელი bunch of პარამეტრები. 154 00:06:29,240 --> 00:06:32,740 CHAR, Varchar, TINYTEXT, MEDIUMTEXT, LONGTEXT. 155 00:06:32,740 --> 00:06:34,110 და ეს არის ერთგვარი აბსოლუტური. 156 00:06:34,110 --> 00:06:37,610 და სამწუხაროდ, გარკვეულწილად პარადოქსულად ჟღერდეს C, 157 00:06:37,610 --> 00:06:40,120 char არის ნამდვილად არ CHAR. 158 00:06:40,120 --> 00:06:44,170 თუ, თქვენ შეიტანეთ მონაცემთა ბაზაში რომ თქვენი მონაცემები ტიპის CHAR, 159 00:06:44,170 --> 00:06:47,390 ეს ნიშნავს, რომ დიახ, ეს არის CHAR, მაგრამ ეს ერთი ან მეტი სიმბოლო. 160 00:06:47,390 --> 00:06:49,630 და თქვენ უნდა მიუთითოთ რამდენი სიმბოლო გსურთ. 161 00:06:49,630 --> 00:06:51,636 ასე რომ, რა არის ტიპიური სიგრძე სახელი? 162 00:06:51,636 --> 00:06:52,760 არსებობს ლიმიტი, როგორც წესი? 163 00:06:52,760 --> 00:06:53,920 >> აუდიტორია: [INAUDIBLE] 164 00:06:53,920 --> 00:06:55,050 >> დავით Malan: 16 იქნებ? 165 00:06:55,050 --> 00:06:55,990 ასე რომ. 166 00:06:55,990 --> 00:06:57,948 თქვენ იცით, რომ უკან დღეს, ეს უნდა იყოს რვა. 167 00:06:57,948 --> 00:07:00,289 ზოგჯერ ეს 16, ზოგჯერ ეს კიდევ უფრო მეტი. 168 00:07:00,289 --> 00:07:02,080 ასე რომ, ეს არ ნიშნავს, მომეცი ერთი CHAR. 169 00:07:02,080 --> 00:07:04,730 ეს იმას ნიშნავს, რომ მე უნდა მიუთითოთ ხანგრძლივობა სფეროში, 170 00:07:04,730 --> 00:07:07,402 და ახლა შეიძლება ითქვას რაღაც 16. 171 00:07:07,402 --> 00:07:08,610 და იქ ვაჭრობის აქ. 172 00:07:08,610 --> 00:07:11,360 ასე რომ, ჩვენ ვხედავთ მომენტში ეს იმას ნიშნავს, ერთი, 173 00:07:11,360 --> 00:07:14,620 ყოველ სახელი უნდა იყოს 16 სიმბოლოს. 174 00:07:14,620 --> 00:07:18,720 მაგრამ დაველოდოთ წუთში, M-A-L-A-N. თუ ეს ჩემი სახელი და მე მარტო ხუთ, 175 00:07:18,720 --> 00:07:23,070 რას ვთავაზობ, რომ მონაცემთა ბაზაში უნდა გავაკეთოთ, დანარჩენ 11 სიმბოლო, რომ 176 00:07:23,070 --> 00:07:24,471 მე დაცულია ფართი? 177 00:07:24,471 --> 00:07:25,220 რას იზამდით? 178 00:07:25,220 --> 00:07:26,480 >> აუდიტორია: [INAUDIBLE] 179 00:07:26,480 --> 00:07:27,160 >> დავით Malan: ჰო, უბრალოდ მათ ყველა null. 180 00:07:27,160 --> 00:07:28,290 მარკა მათ ფართები. 181 00:07:28,290 --> 00:07:30,816 მაგრამ, ალბათ, null, ასე რომ ბევრი წარმატებული zeros. 182 00:07:30,816 --> 00:07:33,190 ასე რომ, ერთი მხრივ, ჩვენ გვაქვს ახლა დარწმუნებული ვარ, რომ ჩემი სახელი 183 00:07:33,190 --> 00:07:34,780 არ შეიძლება 16-ზე მეტი სიმბოლო. 184 00:07:34,780 --> 00:07:37,590 და მეორე მხარე, რომელიც არის იმ შემთხვევაში, თუ მე მქონდა ნამდვილად გრძელი სახელი 185 00:07:37,590 --> 00:07:39,940 და სასურველი მართლაც დიდი მომხმარებლის სახელი როგორც ზოგიერთი თქვენ 186 00:07:39,940 --> 00:07:44,840 ბიჭები შეიძლება ჰქონდეს, რომ კოლეჯის ან განთავსებულია Yale.edu, თქვენ არ აქვს ერთი. 187 00:07:44,840 --> 00:07:47,177 ასე რომ, რეალურად, თუ თქვენ ოდესმე დარეგისტრირებული ნახვა 188 00:07:47,177 --> 00:07:49,385 და თქვენ დაიყვირა განაცხადა, თქვენი პაროლი არის ძალიან დიდი ხნის 189 00:07:49,385 --> 00:07:52,710 ან თქვენი სახელი არის ძალიან გრძელი, ეს არის უბრალოდ იმიტომ, რომ პროგრამისტი, როდესაც 190 00:07:52,710 --> 00:07:55,500 კონფიგურაციის მისი მონაცემთა ბაზა, გადაწყდა, რომ ამ სფეროში იქნება 191 00:07:55,500 --> 00:07:57,150 არ უნდა აღემატებოდეს ამ სიგრძეზე. 192 00:07:57,150 --> 00:08:00,580 >> ყველა უფლება, ასე რომ, თუ ჩვენ გაგრძელება სახელი? 193 00:08:00,580 --> 00:08:05,240 რამდენ ხანს უნდა ტიპიური ადამიანის სახელი იყოს? 194 00:08:05,240 --> 00:08:07,492 რამდენი პერსონაჟი, 16? 195 00:08:07,492 --> 00:08:09,450 მე გამოცნობა შეგვეძლო მოვძებნოთ ვინმე ამ ოთახში 196 00:08:09,450 --> 00:08:13,210 სადაც მისი პირველი პლუს ბოლო სახელი უმეტეს 16 სიმბოლოს. 197 00:08:13,210 --> 00:08:14,850 ასე რომ, რა არის უკეთესი, რომ 17? 198 00:08:14,850 --> 00:08:17,040 18? 199 00:08:17,040 --> 00:08:18,830 25? 200 00:08:18,830 --> 00:08:20,350 დიდი? 201 00:08:20,350 --> 00:08:20,980 30? 202 00:08:20,980 --> 00:08:21,855 >> აუდიტორია: [INAUDIBLE] 203 00:08:21,855 --> 00:08:23,700 დავით Malan: 5000, ღმერთო ჩემო. 204 00:08:23,700 --> 00:08:26,309 ასე რომ, ეს, ალბათ, ღირსეული ზედა ზღვარი, უნდა ვთქვა. 205 00:08:26,309 --> 00:08:28,350 აქ ჩვენ სახის რათა განაჩენი ზარი. 206 00:08:28,350 --> 00:08:30,400 ისევე როგორც, არ არსებობს სწორი პასუხი აქ. 207 00:08:30,400 --> 00:08:32,740 Infinite არ არის გამორიცხული, იმიტომ, რომ ჩვენ საბოლოოდ 208 00:08:32,740 --> 00:08:34,781 გვექნება ჩვენ აპირებს ამოიწურა მეხსიერება. 209 00:08:34,781 --> 00:08:36,909 ასე რომ, ჩვენ უნდა მიიღოს გადაწყვეტილება ზარის რაღაც მომენტში. 210 00:08:36,909 --> 00:08:41,010 >> ძალიან ხშირი იქნება, მაგალითად, გამოიყენოს და ნება მომეცით დააკონკრეტა CHAR აქ 211 00:08:41,010 --> 00:08:46,050 როგორც ადრე 255 იყო ფაქტიურად ზედა ზღვარი ამ მონაცემთა ბაზის პროგრამული უზრუნველყოფა 212 00:08:46,050 --> 00:08:46,700 წლის წინ. 213 00:08:46,700 --> 00:08:48,575 ასე რომ, ბევრი ადამიანები უბრალოდ, ვამბობთ, ჯარიმა. 214 00:08:48,575 --> 00:08:49,420 255 არის ლიმიტი. 215 00:08:49,420 --> 00:08:50,620 მოდით უბრალოდ გამოიყენოთ მაქსიმალურად. 216 00:08:50,620 --> 00:08:51,870 და ეს არის საკმაოდ სასაცილოა. 217 00:08:51,870 --> 00:08:55,060 მსგავსად, თუ თქვენ აკრეფით ვინმეს ასახელებს 200 plus გმირები, 218 00:08:55,060 --> 00:08:56,140 რომ ცოტა სასაცილოა. 219 00:08:56,140 --> 00:08:59,624 >> მაგრამ გახსოვდეთ, რომ ASCII არ არის მხოლოდ სისტემის სიმბოლო. 220 00:08:59,624 --> 00:09:01,540 ასე რომ, განსაკუთრებით ბევრი აზიური ენები 221 00:09:01,540 --> 00:09:04,248 იქ, სადაც გმირები არ შეგვიძლია, გამოხატონ კლავიშები, როგორც ჩემი აშშ 222 00:09:04,248 --> 00:09:08,209 კლავიატურის, ზოგიერთი პერსონაჟი რეალურად დასჭირდეს 16 ბიტი ნაცვლად რვა ბიტი. 223 00:09:08,209 --> 00:09:10,250 ასე რომ, ეს, ფაქტობრივად, არ არის, რომ დაუსაბუთებელი 224 00:09:10,250 --> 00:09:12,250 რომ ჩვენ გვჭირდება მეტი სივრცეში, თუ ჩვენ გვინდა, რომ შეესაბამება 225 00:09:12,250 --> 00:09:16,252 დიდი გმირები, ვიდრე ძალიან აშშ centric ვინც ჩვენ იმას განიხილავს. 226 00:09:16,252 --> 00:09:17,460 ასე რომ, ჩვენ გვჭირდება გარკვეული ზედა ზღვარი. 227 00:09:17,460 --> 00:09:21,470 მე არ ვიცი, რა საუკეთესო ერთი, მაგრამ 255 ზოგადად, საერთო ერთი. 228 00:09:21,470 --> 00:09:22,700 25 გრძნობს დაბალია. 229 00:09:22,700 --> 00:09:23,857 16, 32 გრძნობს დაბალია. 230 00:09:23,857 --> 00:09:25,690 მე err მხარეს რაღაც უმაღლესი. 231 00:09:25,690 --> 00:09:27,330 მაგრამ არსებობს ვაჭრობის, როგორც ყოველთვის. 232 00:09:27,330 --> 00:09:31,902 რა არის, ალბათ, ცხადია, სავაჭრო გამორთვა დაჯავშნა 255 სიმბოლო 233 00:09:31,902 --> 00:09:33,360 ყველას სახელით ჩემს მონაცემთა ბაზაში? 234 00:09:33,360 --> 00:09:34,230 >> აუდიტორია: [INAUDIBLE] 235 00:09:34,230 --> 00:09:34,510 >> დავით Malan: რა არის ეს? 236 00:09:34,510 --> 00:09:35,430 >> აუდიტორია: [INAUDIBLE] 237 00:09:35,430 --> 00:09:37,138 >> დავით Malan: ეს არის ბევრი მეხსიერება, არა? 238 00:09:37,138 --> 00:09:42,280 M-A-L-A-N. მე უბრალოდ გადაყრილი 250 გმირები მხოლოდ შესანახად ჩემი სახელი 239 00:09:42,280 --> 00:09:46,000 დაცვითი, მხოლოდ იმ შემთხვევაში ვინმე კლასში აქვს ძალიან გრძელი სახელი. 240 00:09:46,000 --> 00:09:47,940 ეს, როგორც ჩანს, გაუმართლებელი იდგა. 241 00:09:47,940 --> 00:09:52,040 >> ასე რომ, გამოდის, რომ SQL, ამ მონაცემთა ბაზაში ენის, 242 00:09:52,040 --> 00:09:55,480 რეალურად მხარს უჭერს რაღაც მოუწოდა Varchar, ან ცვლადი CHAR. 243 00:09:55,480 --> 00:09:59,390 და ეს არის სახის ლამაზი, რომ ამ გაძლევთ საშუალებას არ არის ფიქსირებული 244 00:09:59,390 --> 00:10:01,900 სიგანე, არამედ, ცვლადი სიგანე. 245 00:10:01,900 --> 00:10:05,060 და უფრო კონკრეტულად, მაქსიმალური სიგანე სფეროში. 246 00:10:05,060 --> 00:10:08,901 ასე რომ, ეს იმას ნიშნავს, რომ სახელი არ შეიძლება იყოს არაუმეტეს 250 სიმბოლო, 247 00:10:08,901 --> 00:10:10,150 მაგრამ ეს, რა თქმა უნდა ნაკლები. 248 00:10:10,150 --> 00:10:11,733 და მონაცემთა ბაზის იქნება ჭკვიანი. 249 00:10:11,733 --> 00:10:14,860 თუ თქვენ დააყენა M-A-L-A-N, ეს მხოლოდ აპირებს გამოიყენოს ხუთ, 250 00:10:14,860 --> 00:10:18,120 შესაძლოა, ექვსი bytes მოსწონს გადმოკიდული null ხასიათი, 251 00:10:18,120 --> 00:10:23,330 და არ ატარებენ დამატებით 249 ან 250 bytes ზედმეტად. 252 00:10:23,330 --> 00:10:27,380 >> ასე რომ, ეს, როგორც ჩანს, მე უნდა არ დაიწყო ეს ამბავი. 253 00:10:27,380 --> 00:10:29,140 მაგრამ იქ ყოველთვის იდგა. 254 00:10:29,140 --> 00:10:33,024 ასე რომ, ერთი მხრივ, სახელი მე მითითებული უნდა იყოს მყარი კოდირებული 16, 255 00:10:33,024 --> 00:10:34,940 და შესაძლოა, რომ არ იყო უფლება ზარი, შესაძლოა, 256 00:10:34,940 --> 00:10:40,040 არის, მაგრამ რატომ არ უნდა გამოვიყენოთ VARCHARs ყველაფერი? 257 00:10:40,040 --> 00:10:42,020 >> ის არსებობს ერთი მიზეზი. 258 00:10:42,020 --> 00:10:46,200 რატომ არ იყენებენ VARCHARs ყველა სფეროში რომლის სიგრძე არ ვიცი წინასწარ 259 00:10:46,200 --> 00:10:48,180 თუ ეს, როგორც ჩანს, დიდი რამ, არა? 260 00:10:48,180 --> 00:10:50,482 გამოიყენეთ მხოლოდ იმდენი სივრცე, როგორც თქვენ უნდა მდე ამ ლიმიტი? 261 00:10:50,482 --> 00:10:51,271 >> აუდიტორია: ნელია. 262 00:10:51,271 --> 00:10:52,146 დავით Malan: Speller? 263 00:10:52,146 --> 00:10:53,120 აუდიტორია: ხდის ნელია? 264 00:10:53,120 --> 00:10:53,970 დავით Malan: ოჰ, ეს ნელა. 265 00:10:53,970 --> 00:10:55,720 კარგი, რომ თითქმის ყოველთვის პასუხი, გულწრფელად. 266 00:10:55,720 --> 00:10:56,520 ისევე როგორც, რა იდგა? 267 00:10:56,520 --> 00:10:58,570 ეს არც ღირს მეტი სივრცე ან ღირს მეტი დრო. 268 00:10:58,570 --> 00:11:00,111 ასე რომ, ამ შემთხვევაში, ეს შეიძლება იყოს ნელი. 269 00:11:00,111 --> 00:11:00,920 რატომ? 270 00:11:00,920 --> 00:11:05,830 >> აუდიტორია: [INAUDIBLE] განსაზღვრის [INAUDIBLE]. 271 00:11:05,830 --> 00:11:06,640 >> დავით Malan: კარგი. 272 00:11:06,640 --> 00:11:09,670 ასე რომ, თქვენ შეიძლება გავიხსენოთ, თუნდაც PSED5, სათამაშო თქვენი მიდგომა 273 00:11:09,670 --> 00:11:12,750 ლექსიკონი, თუ თქვენ უნდა გამოყოს მეხსიერება დინამიურად შენარჩუნება 274 00:11:12,750 --> 00:11:14,630 მზარდი ბუფერული, რომ შეიძლება რეალურად იყოს ნელი. 275 00:11:14,630 --> 00:11:16,963 თუ თქვენ გაქვთ მოვუწოდო malloc ქვეშ hood და შესაძლოა 276 00:11:16,963 --> 00:11:19,610 ის, რაც MySQL აკეთებს, ასე რომ აუცილებლად, რომ შეიძლება იყოს საქმე. 277 00:11:19,610 --> 00:11:22,430 და თუ ფიქრობთ გზა უკან PSet-- ან თუნდაც 278 00:11:22,430 --> 00:11:26,340 კვირის ორი, როდესაც ჩვენ გავაკეთეთ რამ, როგორიცაა ორობითი ძებნა ან თუნდაც ხაზოვანი ძებნა, 279 00:11:26,340 --> 00:11:30,690 ერთი ლამაზი რამ ყველა სიტყვა მონაცემთა ბაზაში ან ყველა სიტყვა სვეტი 280 00:11:30,690 --> 00:11:33,690 უკვე ზუსტად იგივე სიგრძე, მაშინაც კი, თუ მთელი bunch of იმ პერსონაჟების 281 00:11:33,690 --> 00:11:37,390 არის ცარიელი, არის ის, რომ თქვენ შეგიძლიათ გამოიყენოთ წვდომის თქვენი მონაცემები, არა? 282 00:11:37,390 --> 00:11:40,310 >> თუ იცით, რომ ყოველ სიტყვა 16 სიმბოლო მოშორებით, 283 00:11:40,310 --> 00:11:46,460 თქვენ შეგიძლიათ გამოიყენოთ კურსორი არითმეტიკა, ასე საუბარი, და მერე ჩვენთვის 16, 32, 48, 64, 284 00:11:46,460 --> 00:11:49,589 და თქვენ შეგიძლიათ ხტომა მყისიერად გამოყენებით არითმეტიკული 285 00:11:49,589 --> 00:11:51,130 რომელიმე სიტყვა თქვენს მონაცემთა ბაზაში. 286 00:11:51,130 --> 00:11:54,280 ვინაიდან თუ ის Varchar, რას ნაცვლად უნდა გავაკეთოთ? 287 00:11:54,280 --> 00:11:55,960 >> [სატელეფონო ზარი] 288 00:11:55,960 --> 00:11:58,680 >> თუ ეს Varchar, თქვენ ვერ გამოიყენებს წვდომის. 289 00:11:58,680 --> 00:12:01,341 რა უნდა ვეძებოთ და გავაკეთოთ? 290 00:12:01,341 --> 00:12:01,840 ჰო? 291 00:12:01,840 --> 00:12:03,240 >> აუდიტორია: [INAUDIBLE] 292 00:12:03,240 --> 00:12:04,310 >> დავით Malan: შეხედეთ მეშვეობით whole-- კვალი 293 00:12:04,310 --> 00:12:06,518 მთელი სია რას ეძებს, სავარაუდოდ? 294 00:12:06,518 --> 00:12:08,356 რა განსაკუთრებული მნიშვნელობა? 295 00:12:08,356 --> 00:12:09,230 აუდიტორია: [INAUDIBLE] 296 00:12:09,230 --> 00:12:11,105 დავით Malan: ვეძებთ იმ null terminators 297 00:12:11,105 --> 00:12:13,637 რომ დემარკაციის გამოყოფის სიტყვა. 298 00:12:13,637 --> 00:12:15,720 ასე რომ, კიდევ ერთხელ, იდგა და იქ არ არის სწორი პასუხი. 299 00:12:15,720 --> 00:12:18,380 მაგრამ ეს არის, სადაც, განსაკუთრებით როდესაც თქვენი მომხმარებლები უნდა იყოს ბევრი 300 00:12:18,380 --> 00:12:21,700 და თქვენი დატვირთვის თქვენს სერვერზე, რაოდენობის ხალხი გამოყენებით იგი იღებს მაღალი, 301 00:12:21,700 --> 00:12:23,650 ეს არის რეალურად nontrivial გადაწყვეტილებები. 302 00:12:23,650 --> 00:12:26,640 ასე რომ, ჩვენ შეიძლება დატოვონ ეს, როგორც ეს, მაგრამ მოდით გადახვევა ქვემოთ მარჯვნივ 303 00:12:26,640 --> 00:12:27,332 აქ. 304 00:12:27,332 --> 00:12:30,290 ახლა, იქ რამდენიმე სვეტები სადაც ჩვენ უნდა მიიღოს გადაწყვეტილება ზარი. 305 00:12:30,290 --> 00:12:35,170 რა აზრი დაუშვას მომხმარებლის სახელი, მომხმარებლის სახელი ან მომხმარებლის 306 00:12:35,170 --> 00:12:36,370 სახელი, უნდა იყოს null? 307 00:12:36,370 --> 00:12:37,610 რომ არის, უბრალოდ ცარიელი. 308 00:12:37,610 --> 00:12:40,360 გრძნობს ცოტა nonsensical, ასე რომ მე არ აპირებს შეამოწმოთ იმ ყუთები. 309 00:12:40,360 --> 00:12:42,670 მაგრამ აღმოჩნდება, რომ ძალიან მონაცემთა ბაზა, შეიძლება ითქვას, 310 00:12:42,670 --> 00:12:44,620 ვინმე შესაძლოა აქვს მნიშვნელობა. 311 00:12:44,620 --> 00:12:47,180 ეს სვეტი არ აქვს რეალურად იყოს იქ. 312 00:12:47,180 --> 00:12:48,570 >> ახლა, იქ ამ drop მენიუში. 313 00:12:48,570 --> 00:12:50,810 და შენიშნავს, მე მაინც პირველ რიგში იქ, 314 00:12:50,810 --> 00:12:52,520 ასე რომ, მე ვსაუბრობ სახელი ახლა. 315 00:12:52,520 --> 00:12:56,290 და აღმოჩნდება, რომ მონაცემთა ბაზაში, განსხვავებით მარტივი უბრალო ცხრილების, 316 00:12:56,290 --> 00:12:58,520 აქვს ძლიერი თვისებები მოუწოდა ინდექსები. 317 00:12:58,520 --> 00:13:02,600 და ინდექსი არის გზა ვეუბნებოდი მონაცემთა ბაზის წინასწარ, რომ ადამიანის 318 00:13:02,600 --> 00:13:03,900 ვარ ჭკვიანია, ვიდრე თქვენ. 319 00:13:03,900 --> 00:13:10,430 >> მე ვიცი, რა სახის შეკითხვებს, აირჩიეთ ან ჩადეთ ან წაშლა ან განახლება, 320 00:13:10,430 --> 00:13:13,182 რომ ჩემი კოდი აპირებს დასრულდება მდე აკეთებს ამ მონაცემთა ბაზაში. 321 00:13:13,182 --> 00:13:14,390 მე მინდა, რომ ძალიან ბევრი მონაცემები. 322 00:13:14,390 --> 00:13:15,681 მინდა ჩადეთ ბევრი მონაცემები. 323 00:13:15,681 --> 00:13:17,530 მე მინდა, რომ მუდმივად წაშლა ბევრი მონაცემები. 324 00:13:17,530 --> 00:13:21,520 თუ ვიცი, რომ მე ვაპირებ წვდომის სფეროში, როგორიცაა ნიკი ბევრი, 325 00:13:21,520 --> 00:13:24,770 შემიძლია წინასწარ გითხრათ მონაცემთა ბაზა, მე ვიცი, მეტი, ვიდრე თქვენ, 326 00:13:24,770 --> 00:13:29,220 და მე მინდა, რომ ბრძანება, რომ თქვენ უნდა ინდექსი ამ სფეროში. 327 00:13:29,220 --> 00:13:33,200 სად ინდექსირებას სფეროში ან სვეტი იმას ნიშნავს, რომ მონაცემთა ბაზაში წინასწარ 328 00:13:33,200 --> 00:13:37,040 უნდა სესხის გარკვეული იდეების, ისევე, კვირაში ოთხი და ხუთი და ექვსი ეხლა CS50 329 00:13:37,040 --> 00:13:39,240 და რეალურად დაამყარონ რაღაც ორობითი ძებნა 330 00:13:39,240 --> 00:13:41,560 ხე ან რამე ზოგადად მოუწოდა B ხე 331 00:13:41,560 --> 00:13:43,410 , რომ თქვენ ვისწავლოთ in კლასის მოსწონს CS124 332 00:13:43,410 --> 00:13:46,710 ჰარვარდის, რომელიც ალგორითმები კლასი, ან ნებისმიერი რაოდენობის სხვა ადგილებში. 333 00:13:46,710 --> 00:13:49,570 >> მონაცემთა ბაზა და ჭკვიანი ადამიანები, რომლებიც განახორციელეს 334 00:13:49,570 --> 00:13:53,880 გაერკვნენ, თუ როგორ შესანახად რომ მაგიდასთან ინფორმაცია 335 00:13:53,880 --> 00:13:57,061 მეხსიერებაში ისე, რომ ჩხრეკა და სხვა ოპერაციები სუპერ სწრაფი. 336 00:13:57,061 --> 00:13:58,060 თქვენ არ გაქვთ ამის გაკეთება. 337 00:13:58,060 --> 00:14:00,640 თქვენ არ განახორციელოს ხაზოვანი ძებნა ან ორობითი ძებნა 338 00:14:00,640 --> 00:14:03,300 ან შერწყმა დალაგების ან შერჩევის დალაგების, რომ არც ერთი. 339 00:14:03,300 --> 00:14:06,590 მონაცემთა ბაზის აკეთებს იგი თქვენთვის თუ მეტყვით ეს წინასწარ ინდექსი ამ სფეროში. 340 00:14:06,590 --> 00:14:09,100 >> და თქვენ შეგიძლიათ ნახოთ ძალიან, არსებობს ზოგიერთი სხვა მახასიათებლები 341 00:14:09,100 --> 00:14:11,010 ჩვენ შეგვიძლია გითხრათ ბაზის აღსასრულებლად. 342 00:14:11,010 --> 00:14:16,431 რას შეიძლება ნიშნავდეს, თუ აირჩიოს უნიკალური ამ მენიუში, უბრალოდ ინტუიციურად? 343 00:14:16,431 --> 00:14:16,930 ჰო? 344 00:14:16,930 --> 00:14:17,889 >> აუდიტორია: [INAUDIBLE] 345 00:14:17,889 --> 00:14:19,930 დავით Malan: ჰო, სახელი უნდა იყოს უნიკალური. 346 00:14:19,930 --> 00:14:23,330 არის თუ არა ეს კარგია თუ ცუდი რამ მონაცემთა ბაზა, რომელიც ნახვა წევრებს? 347 00:14:23,330 --> 00:14:24,965 თუ სახელისა იყოს უნიკალური? 348 00:14:24,965 --> 00:14:25,880 ჰო, ალბათ. 349 00:14:25,880 --> 00:14:27,800 თუ ის, რაც სფეროში ვიყენებთ შესვლა, 350 00:14:27,800 --> 00:14:31,867 თქვენ ნამდვილად არ გვინდა, რომ ადამიანი, რომელსაც იგივე შეგრძნებას და იგივე სახელი. 351 00:14:31,867 --> 00:14:33,700 ასე რომ, ჩვენ შეიძლება ჰქონდეს მონაცემთა ბაზის აღსასრულებლად, რომ ასე 352 00:14:33,700 --> 00:14:37,880 რომ ახლა ჩემი PHP კოდი ან ნებისმიერ ენაზე, მე არ მაქვს, მაგალითად, შეამოწმეთ 353 00:14:37,880 --> 00:14:41,490 აუცილებლად აკეთებს ეს სახელი არსებობს, სანამ მე სხვამ რეგისტრაცია? 354 00:14:41,490 --> 00:14:46,690 მონაცემთა ბაზა არ დავუშვებთ ორი ადამიანი დაასახელა დავით და Malans რეგისტრაცია ამ შემთხვევაში. 355 00:14:46,690 --> 00:14:50,030 >> და როგორც განზე, მიუხედავად იმისა, რომ ამ მენიუ მხოლოდ გაძლევთ აირჩიოთ ერთი, 356 00:14:50,030 --> 00:14:54,550 უნიკალური ინდექსი არის ერთი, რომ ინდექსირებული for სუპერ სწრაფი შესრულება, 357 00:14:54,550 --> 00:14:56,100 მაგრამ ის ასევე ახორციელებს უნიკალურობა. 358 00:14:56,100 --> 00:14:58,850 და ჩვენ დავბრუნდებით, თუ რა დანარჩენი ორი ნიშნავს, რაღაც მომენტში. 359 00:14:58,850 --> 00:15:00,930 იმავდროულად, თუ მე ჩემი მეორე ზედიზედ, რომელიც 360 00:15:00,930 --> 00:15:06,230 არის მომხმარებლის სახელი, უნდა დავაზუსტო რომ სახელი უნდა იყოს უნიკალური? 361 00:15:06,230 --> 00:15:09,550 არა, იმიტომ, რომ თქვენ შეიძლება, რა თქმა უნდა ფლობის, რომ არ არსებობს ორი დავით 362 00:15:09,550 --> 00:15:11,050 Malans ამ ოთახში, სავარაუდოდ. 363 00:15:11,050 --> 00:15:14,290 მაგრამ თუ ჩვენ განსხვავებული სახელი აირჩიოთ, ჩვენ შეიძლება აუცილებლად უნდა შეჯახება. 364 00:15:14,290 --> 00:15:16,130 >> გაიხსენეთ hash მაგიდები და ასე შემდეგ. 365 00:15:16,130 --> 00:15:18,604 ასე რომ, ჩვენ ნამდვილად არ გვინდა, რათა სახელი სფეროში უნიკალურია. 366 00:15:18,604 --> 00:15:21,270 ასე რომ, ჩვენ უბრალოდ აპირებს დატოვოს რომ როგორც dash, ტირე, ტირე, არაფერი. 367 00:15:21,270 --> 00:15:22,660 და მე ვაპირებ დატოვოს ყველაფერი მარტო. 368 00:15:22,660 --> 00:15:25,035 მართლაც, ამ სფეროში ჩვენ არ აინტერესებს. 369 00:15:25,035 --> 00:15:27,830 და როდესაც მზად ვარ, შენახვა, თუ ინტერნეტ თანამშრომლობს, 370 00:15:27,830 --> 00:15:35,032 მე დააჭირეთ Save და ძალიან, ძალიან, ძალიან ნელა -ს მონაცემთა ბაზის გადაარჩინა. 371 00:15:35,032 --> 00:15:37,240 ახლა დავბრუნდი ამ ინტერფეისი, რომელიც მართლაც, 372 00:15:37,240 --> 00:15:38,680 აბსოლუტური ერთი შეხედვით. 373 00:15:38,680 --> 00:15:42,450 მაგრამ ყველა მე ვაპირებ ამის დაჭერით სიტყვა მომხმარებელი ზედა მარცხენა. 374 00:15:42,450 --> 00:15:47,630 მე ვაპირებ აქ, დააკლიკეთ მომხმარებელი, და ჩვეულებრივ, იგი 375 00:15:47,630 --> 00:15:50,180 აქვს შესრულებული ზოგიერთი SQL, მაგრამ უფრო, რომ ამ მომენტში. 376 00:15:50,180 --> 00:15:52,654 აქ მხოლოდ შემაჯამებელი რა გავაკეთე. 377 00:15:52,654 --> 00:15:55,320 და არ ინერვიულოთ, რომ ხედავთ ვთქვათ, ლათინური და შვედეთის აქ. 378 00:15:55,320 --> 00:16:00,490 ეს არის მხოლოდ ნაგულისხმები პარამეტრები, რადგან MySQL თავდაპირველად, 379 00:16:00,490 --> 00:16:04,000 ან PHP MyAdmin, ერთი ორი მოხდა უნდა ჩაიწეროს გარკვეული შვედური ენა. 380 00:16:04,000 --> 00:16:06,100 მაგრამ ეს შეუსაბამო ჩვენს შემთხვევაში აქ. 381 00:16:06,100 --> 00:16:08,280 >> ყველა უფლება, რატომ არის ეს ყველა საინტერესო? 382 00:16:08,280 --> 00:16:13,050 თურმე, შემიძლია ჩაწეროთ მონაცემები მონაცემთა ბაზის წერილობით კოდი. 383 00:16:13,050 --> 00:16:15,940 და მე წავიდეთ წინ და ჩემი ფაილი აქ, მე 384 00:16:15,940 --> 00:16:19,000 ვაპირებ წავიდეთ წინ და პრეტენზია მოსწონს ამ სახაზო რომ მონაცემთა ბაზაში, რომელიც 385 00:16:19,000 --> 00:16:23,040 ეს არ არის იმ მომენტში, მაგრამ ეს იქნება, როდესაც ჩვენ ვიღებთ პრობლემა მითითებული შვიდი. 386 00:16:23,040 --> 00:16:25,640 და მე ვაპირებ წავიდეთ წინ და შეასრულოს ფუნქცია მოუწოდა შეკითხვაზე, 387 00:16:25,640 --> 00:16:28,730 რომელიც ჩვენ მოგაწვდით პრობლემა შვიდი განაწილების კოდი, რომელიც 388 00:16:28,730 --> 00:16:31,490 სჭირდება მინიმუმ ერთი არგუმენტი, რომელიც მხოლოდ სიმებიანი. 389 00:16:31,490 --> 00:16:33,460 სიმებიანი SQL კოდი. 390 00:16:33,460 --> 00:16:36,700 ასე რომ, თქვენ უნდა ვისწავლოთ თუ როგორ უნდა წერენ სტრუქტურირებული შეკითხვის ენა. 391 00:16:36,700 --> 00:16:41,270 >> თუ მინდა ჩადეთ ახალი row ჩემს მონაცემთა ბაზის იმიტომ, რომ ვიღაცას წარმოდგენილი 392 00:16:41,270 --> 00:16:47,600 ფორმა, ჩემს კოდი, მე ფაქტიურად წერენ INSERT INTO მომხმარებლებს შემდეგი 393 00:16:47,600 --> 00:16:52,800 მიმართულებებით: სახელი, მძიმე, სახელი, ფასეულობები, 394 00:16:52,800 --> 00:16:57,480 და ახლა მე უნდა ჩაწეროთ რაღაც Malan და გაცემა, 395 00:16:57,480 --> 00:17:01,490 unquote დავით Malan. და ახლა თუნდაც იმ უცნობ SQL, 396 00:17:01,490 --> 00:17:07,830 რატომ ვარ მე გამოყენებით ერთჯერადი შეთავაზებები შიგნით ამ მწვანე სიმებიანი? 397 00:17:07,830 --> 00:17:10,790 398 00:17:10,790 --> 00:17:13,040 რა შეიძლება იყოს ამის მიზეზი აქ? 399 00:17:13,040 --> 00:17:14,609 >> გაითვალისწინეთ, რომ მე ვარ ერთ-ერთი მისაღები ორ ენაზე. 400 00:17:14,609 --> 00:17:18,099 შეკითხვის არის PHP ფუნქცია, მაგრამ ის არგუმენტი. 401 00:17:18,099 --> 00:17:21,740 და ეს არგუმენტი აქვს, რომ თავად იყოს დაწერილი სხვა ენაზე ე.წ. 402 00:17:21,740 --> 00:17:23,500 SQL, სტრუქტურირებული შეკითხვის ენა. 403 00:17:23,500 --> 00:17:27,940 ასე რომ, ყველაფერი, რაც მე ახლახან ხაზგასმით აქ 404 00:17:27,940 --> 00:17:30,380 არის ამ ენის მოუწოდა SQL. 405 00:17:30,380 --> 00:17:36,290 ასე რომ, რა არის ერთჯერადი შეთავაზებები, ისევე როგორც სწრაფი საღი აზრის ქვითარი? 406 00:17:36,290 --> 00:17:37,324 წავიდეთ წინ. 407 00:17:37,324 --> 00:17:37,990 ისინი სიმები. 408 00:17:37,990 --> 00:17:41,590 ასე რომ, ციტირებით unquote Malan და გაცემა, unquote დავით Malan სიმები. 409 00:17:41,590 --> 00:17:45,210 და მხოლოდ ფიქრი, ინტუიციურად ახლა, იცის, რა იცით ამის შესახებ C და PHP, 410 00:17:45,210 --> 00:17:50,220 რატომ არ გააკეთებს, რომელიც მე, როგორც წესი, მეორადი ორმაგი შეთავაზებები strings? 411 00:17:50,220 --> 00:17:52,310 რატომ არ სურს ამის გაკეთება? 412 00:17:52,310 --> 00:17:52,810 ჰო? 413 00:17:52,810 --> 00:17:53,685 >> აუდიტორია: [INAUDIBLE] 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 დავით Malan: ზუსტად. 416 00:17:57,570 --> 00:17:59,653 იმის გამო, რომ მე უკვე გამოყენებით ორმაგი შეთავაზებები გზაზე 417 00:17:59,653 --> 00:18:01,929 გარეთ არგუმენტი to PHP ფუნქცია, 418 00:18:01,929 --> 00:18:03,470 მე უბრალოდ ის აღრეული თარჯიმანი. 419 00:18:03,470 --> 00:18:04,860 ეს არ ვიცი, ამ ერთად წავიდეთ? 420 00:18:04,860 --> 00:18:05,735 ნუ ეს წავიდეთ ერთად? 421 00:18:05,735 --> 00:18:06,810 ნუ ეს წავიდეთ ერთად? 422 00:18:06,810 --> 00:18:08,070 ასე რომ, მე ალტერნატიული ნაცვლად. 423 00:18:08,070 --> 00:18:11,784 >> ან მე ვერ რაიმე ამის მსგავსი, წარმატებული ციტირებით ან წარმატებული ციტირებით. 424 00:18:11,784 --> 00:18:14,200 გულწრფელად ვამბობ, რომ უბრალოდ იწყებს ძალიან unreadable და მახინჯი. 425 00:18:14,200 --> 00:18:16,790 მაგრამ ეს მიღწევა იგივე შედეგი, ისევე. 426 00:18:16,790 --> 00:18:19,760 >> ასე რომ, თუ მე უნდა შეასრულოს ეს შეკითხვის ახლა, მოდით, ვნახოთ, რა მოხდება. 427 00:18:19,760 --> 00:18:22,740 მე ვაპირებ წავიდეთ წინ არის და საკმაოდ ვიდრე შეასრულოს PHP კოდი, რომელიც 428 00:18:22,740 --> 00:18:24,610 არის სადაც თქვენ ითამაშოთ პრობლემა მითითებული შვიდი, 429 00:18:24,610 --> 00:18:27,200 მე ვაპირებ ნაცვლად წასვლა PHP MyAdmin. 430 00:18:27,200 --> 00:18:29,770 და მე ხელით აპირებს წასვლა SQL tab, 431 00:18:29,770 --> 00:18:31,580 და ნება მომეცით მიუახლოვდით ინტერფეისი. 432 00:18:31,580 --> 00:18:34,007 და მე ვაპირებ ჩასვით რაც მე უბრალოდ აკრეფილი. 433 00:18:34,007 --> 00:18:36,090 და ფერი კოდირება აქვს შეიცვალა ცოტა, ახლა, 434 00:18:36,090 --> 00:18:38,750 მხოლოდ იმიტომ, რომ პროგრამის ფორმატის რამ ცოტა განსხვავებულად. 435 00:18:38,750 --> 00:18:41,960 მაგრამ შეამჩნია, რომ ყველა მე ვაკეთებ არის მე განაცხადა, ჩადეთ მომხმარებელი. 436 00:18:41,960 --> 00:18:45,790 მე მითითებული, მაშინ, მძიმით გამოყოფილი parenthesized სია ორ 437 00:18:45,790 --> 00:18:48,850 სფეროებში, რომ მინდა ჩადეთ და მაშინ მე სიტყვასიტყვით განაცხადა ღირებულებები 438 00:18:48,850 --> 00:18:51,510 მოჰყვა კიდევ ერთი paren, და შემდეგ ორი ღირებულებები 439 00:18:51,510 --> 00:18:53,520 მინდა დანამატი, და ახლა კარგი ღონისძიება, 440 00:18:53,520 --> 00:18:55,010 მე დააყენა მძიმით დასასრულს. 441 00:18:55,010 --> 00:18:56,570 ასე რომ, ეს არ არის C. ეს არ არის PHP. 442 00:18:56,570 --> 00:18:59,970 ეს არის SQL, და მე ჩავსვავ ამ ვებ დაფუძნებული ინტერფეისი, რომელიც არის 443 00:18:59,970 --> 00:19:02,710 უბრალოდ აპირებს მიადევნე თვალი, როგორც კი დააჭირეთ წადი, 444 00:19:02,710 --> 00:19:08,060 შეასრულოს ამ მოთხოვნის შესახებ მონაცემთა ბაზაში გაშვებული შიგნით CS50 IDE. 445 00:19:08,060 --> 00:19:09,470 >> ასე რომ, ეს არის კარგი. 446 00:19:09,470 --> 00:19:12,520 ყურადღება მიაქციეთ, რომ განაცხადა ერთ გრაფაში შეიყვანეს, წავიდა სუპერ სწრაფი, 447 00:19:12,520 --> 00:19:15,190 0,0054 წამი ჩადეთ რომ მონაცემები. 448 00:19:15,190 --> 00:19:16,610 ასე, რომ ჟღერს საკმაოდ ჯანმრთელი. 449 00:19:16,610 --> 00:19:19,350 ეს reformatted ჩემს შეკითხვაზე ჩემთვის აქ მხოლოდ იმიტომ, რომ ის 450 00:19:19,350 --> 00:19:21,730 ერთგვარი ფერი კოდირებული ვერსია. 451 00:19:21,730 --> 00:19:24,540 მაგრამ ახლა თუ მე დააწკაპუნეთ იხილე შეამჩნევთ, რომ, მაშინაც კი, 452 00:19:24,540 --> 00:19:29,070 მიუხედავად იმისა, რომ იქ ბევრი clutter on ეკრანზე, ჩემი მაგიდა ახლა აქვს ორი რიგები. 453 00:19:29,070 --> 00:19:30,700 >> ასე რომ, ნება მომეცით წავიდეთ წინ და ნუ სხვა. 454 00:19:30,700 --> 00:19:33,760 იმის ნაცვლად, რომ, ნება მომეცით წასვლა SQL tab ერთხელ. 455 00:19:33,760 --> 00:19:40,723 და ამ დროს მე ჩადეთ რაღაც Rob და მისი სახელი იქნება Rob Bowden. 456 00:19:40,723 --> 00:19:42,330 Bowden. 457 00:19:42,330 --> 00:19:44,040 მოდით დააჭირეთ Save. 458 00:19:44,040 --> 00:19:46,140 Oops, საკმაოდ ტურიზმი. 459 00:19:46,140 --> 00:19:48,890 >> დაწკაპეთ იხილე კიდევ ერთხელ, და ახლა შეამჩნია, მე მაქვს ორი რიგები. 460 00:19:48,890 --> 00:19:52,390 ასე რომ, ეს არის მხოლოდ გზა უფრო რთული გზა გახსნას Google ცხრილები 461 00:19:52,390 --> 00:19:54,010 და მხოლოდ აკრეფით ზედიზედ შევიდა სვეტი. 462 00:19:54,010 --> 00:19:57,070 მაგრამ რა არის მთავარი ის არის, რომ ჩვენ ახლა აქვს სინტაქსის 463 00:19:57,070 --> 00:20:00,220 , რომელიც დაწერა კოდი ისე, რომ საბოლოო ჯამში, ჩვენ შეიძლება რეალურად 464 00:20:00,220 --> 00:20:01,790 დაკავდით და ეს. 465 00:20:01,790 --> 00:20:05,380 შეგახსენებთ, რომ PHP მხარს უჭერს სუპერ გლობალური ცვლადები. 466 00:20:05,380 --> 00:20:08,415 >> რა არის შიგნით დოლარის მოაწეროს ხაზგასმა მიიღონ PHP? 467 00:20:08,415 --> 00:20:10,290 ავიღეთ შევხედოთ ერთი ან ორი მარტივი მაგალითები. 468 00:20:10,290 --> 00:20:15,640 და pset6, მახსოვს, თქვენ გაქვთ მიესალმები dot PHP, რომელიც იყენებს ამ ცვლადი. 469 00:20:15,640 --> 00:20:17,870 რა მიდის იქ? 470 00:20:17,870 --> 00:20:21,015 ან რა არის ეს? 471 00:20:21,015 --> 00:20:22,522 ცოტა ხმამაღალი. 472 00:20:22,522 --> 00:20:23,790 >> აუდიტორია: [INAUDIBLE] 473 00:20:23,790 --> 00:20:25,030 >> დავით Malan: ეს არის თოვლის სათესლე მასივი, რომელიც 474 00:20:25,030 --> 00:20:27,714 არის მხოლოდ ლამაზი გზა ნათქვამია, რომ მასივი, რომელსაც აქვს გასაღები ღირებულება წყვილი. 475 00:20:27,714 --> 00:20:28,880 და გასაღებები არ არის რიცხვითი. 476 00:20:28,880 --> 00:20:30,420 ისინი სიტყვა ან სიმები. 477 00:20:30,420 --> 00:20:32,750 და კონკრეტულად, რა არიან ისეთებიც, გასაღები ღირებულება წყვილი? 478 00:20:32,750 --> 00:20:35,110 სად მოდის? 479 00:20:35,110 --> 00:20:35,620 ბოდიში? 480 00:20:35,620 --> 00:20:36,994 >> აუდიტორია: [INAUDIBLE] 481 00:20:36,994 --> 00:20:37,660 დავით Malan: არ არის? 482 00:20:37,660 --> 00:20:40,700 სად ის ძირითადი ღირებულება წყვილი მოდის? 483 00:20:40,700 --> 00:20:42,490 ამბობენ, რომ კიდევ ერთხელ? 484 00:20:42,490 --> 00:20:44,610 ისევ? 485 00:20:44,610 --> 00:20:46,472 ვარ მხოლოდ ერთი მოსმენა რაღაც? 486 00:20:46,472 --> 00:20:47,810 >> [სიცილის] 487 00:20:47,810 --> 00:20:49,042 >> ეს უფლება, არა? 488 00:20:49,042 --> 00:20:50,435 >> აუდიტორია: [INAUDIBLE] 489 00:20:50,435 --> 00:20:52,560 დავით Malan: ჰო, ისინი მოდის შეკითხვის სიმებიანი. 490 00:20:52,560 --> 00:20:55,380 ასე რომ, თუ გადახვევა დროს, როდესაც ჩვენ ითამაშა Google 491 00:20:55,380 --> 00:20:59,600 და ჩვენ წავიდა Google.com slash ძიება კითხვის ნიშნის რ შეადგენს კატა, 492 00:20:59,600 --> 00:21:03,550 თუ მე უნდა დააჭიროთ და თუ Google განხორციელდა PHP, 493 00:21:03,550 --> 00:21:07,017 PHP კოდი, რომელიც Google დაწერა ექნება ხელმისაწვდომობის დოლარის ნიშანი 494 00:21:07,017 --> 00:21:11,600 ხაზს უსვამს GET შიგნით, რომელიც არის გასაღები მოუწოდა Q და მნიშვნელობა 495 00:21:11,600 --> 00:21:17,680 მოუწოდა კატა, რომ მას შეუძლია შემდეგ გამოიყენოთ გამოყენებული უნდა გააკეთოს ფაქტობრივი ძიება. 496 00:21:17,680 --> 00:21:20,860 >> ასე რომ, რეალურად, რა მე ვაპირებ ახლა არის დაბრუნდეს ჩემი PHP კოდი 497 00:21:20,860 --> 00:21:23,140 რომ თქვენ კვლავ უფრო მეტი ამ pset7. 498 00:21:23,140 --> 00:21:25,440 და ნაცვლად ჩართვის მძიმე კოდირებული ღირებულებები, რომელიც 499 00:21:25,440 --> 00:21:27,630 არ ჩანს, როგორც ძალიან დინამიური ნახვა, 500 00:21:27,630 --> 00:21:30,680 მე ვაპირებ მოგცემთ teaser, რა თქვენი ფაქტობრივი კოდი ყველაფერს გააკეთებს. 501 00:21:30,680 --> 00:21:32,854 თქვენ დააყენა ორი კითხვის ნიშნები მოსწონს ეს. 502 00:21:32,854 --> 00:21:34,270 მე არ ვიცი, რა სახელი არის. 503 00:21:34,270 --> 00:21:37,390 მე არ ვიცი, რა სახელი იქნება, 504 00:21:37,390 --> 00:21:39,470 მაგრამ მე ვიცი, მე არ შემიძლია მიიღონ მათ დინამიურად ვითარდება. 505 00:21:39,470 --> 00:21:43,420 >> ასე რომ, თუ კოდი ჩვენ წერილობით ახლა არის კოდი გაშვებული Google- ის სერვერები, 506 00:21:43,420 --> 00:21:46,940 ან, თუ ეს მიესალმები dot PHP, რომელსაც გააჩნია pset6, 507 00:21:46,940 --> 00:21:48,650 მე ვაპირებ გაივლის შეკითხვის ფუნქცია 508 00:21:48,650 --> 00:21:51,450 ისევე printf, ორი სხვა არგუმენტები. 509 00:21:51,450 --> 00:21:57,120 მთავარი, ციტირებით unquote სახელი, და კიდევ, ციტირებით unquote სახელი. 510 00:21:57,120 --> 00:22:00,720 და ახლა, შეამჩნია რა ზოგადი სტრუქტურა აქ. 511 00:22:00,720 --> 00:22:03,320 მაქვს მარცხენა მხარეს ზარი, 512 00:22:03,320 --> 00:22:05,480 ამ ფუნქციის მოუწოდა შეკითხვის PHP. 513 00:22:05,480 --> 00:22:08,160 მე მაინც აქვს, როგორც პირველი არგუმენტი, უბრალოდ სიმებიანი ტექსტი. 514 00:22:08,160 --> 00:22:11,000 >> მაგრამ, რომ სიმებიანი ტექსტი ენაზე მოუწოდა SQL. 515 00:22:11,000 --> 00:22:12,616 და გულწრფელად, ეს არ არის დიდი ენაზე. 516 00:22:12,616 --> 00:22:14,990 ჩვენ მხოლოდ ვაპირებ ვისაუბრო ოფიციალურად დღეს, ნამდვილად. 517 00:22:14,990 --> 00:22:17,031 და მაშინ პრობლემა მითითებული შვიდი, იქ შედარებით 518 00:22:17,031 --> 00:22:18,800 რამდენიმე თვისებები, რომ ჩვენ აპირებს ბერკეტები. 519 00:22:18,800 --> 00:22:22,530 კითხვის ნიშნები, თუმცა, იმას ნიშნავს, რომ დანამატის მნიშვნელობა აქ და plug სხვა მნიშვნელობა 520 00:22:22,530 --> 00:22:23,130 აქ. 521 00:22:23,130 --> 00:22:26,010 და შეამჩნია, მე გამოტოვებული რა მთელი quote-- რა 522 00:22:26,010 --> 00:22:30,470 it-- გარშემო ციტატა აღნიშნავს ამ დროს. 523 00:22:30,470 --> 00:22:34,930 მე გამოტოვებული ციტატა ნიშნების გარშემო კითხვის ნიშნის, 524 00:22:34,930 --> 00:22:36,410 ვწუხვარ, ამ დროს გარშემო. 525 00:22:36,410 --> 00:22:38,870 >> ასე რომ, რა არის ლამაზი ამ კითხვის ნიშნის ფუნქცია, რომელიც 526 00:22:38,870 --> 00:22:42,830 PHP ტენდენცია მხარი დაუჭიროს, Ruby და Python და სხვა ენებზე, 527 00:22:42,830 --> 00:22:45,730 ეს მხოლოდ იმას ნიშნავს plug ზოგიერთ ვაფასებთ აქ და თქვენ იცით, რა? 528 00:22:45,730 --> 00:22:48,300 თქვენ გაერკვნენ, თუ არა გამოიყენოს ერთჯერადი შეთავაზებები და ორმაგი შეთავაზებები. 529 00:22:48,300 --> 00:22:50,966 არ შემეხო იმ ინტელექტუალურად უინტერესო დეტალები. 530 00:22:50,966 --> 00:22:53,780 მაგრამ, დარწმუნდით, რომ ეს სწორი ისე, რომ ჩემი კოდი, საბოლოო ჯამში, 531 00:22:53,780 --> 00:22:57,010 ოპერატიული და უსაფრთხო, რომელიც ექნება მნიშვნელობა, სანამ ხანგრძლივი. 532 00:22:57,010 --> 00:23:00,460 >> ახლა, რამდენი არგუმენტები საერთო, უბრალოდ იყოს მკაფიო, არის შეკითხვის ფუნქცია აყვანა? 533 00:23:00,460 --> 00:23:05,240 534 00:23:05,240 --> 00:23:07,581 ყველას მინდა ხმას მეტი, ვიდრე ორი? 535 00:23:07,581 --> 00:23:08,080 სამი? 536 00:23:08,080 --> 00:23:10,001 რა თქმა უნდა, რატომ? 537 00:23:10,001 --> 00:23:10,920 რატომ სამი? 538 00:23:10,920 --> 00:23:12,305 >> აუდიტორია: [INAUDIBLE] 539 00:23:12,305 --> 00:23:13,180 დავით Malan: ზუსტად. 540 00:23:13,180 --> 00:23:14,610 პირველი ნაწილი არის სიმებიანი. 541 00:23:14,610 --> 00:23:18,640 მეორე არგუმენტი არის დოლარის ნიშანი ხაზს უსვამს GET bracket სახელი. 542 00:23:18,640 --> 00:23:21,950 და მესამე არგუმენტი არის იგივე, მაგრამ მხოლოდ სახელი. 543 00:23:21,950 --> 00:23:24,590 სხვა სიტყვებით, ახლა თუ მქონდა ვებ ფორმა 544 00:23:24,590 --> 00:23:27,149 რომ ჰქონდა ტექსტი სფეროებში, ერთი მომხმარებლის სახელი, 545 00:23:27,149 --> 00:23:29,690 ერთი მისი სახელი, უბრალოდ, ისევე როგორც თქვენ ხედავთ ნახვა 546 00:23:29,690 --> 00:23:32,120 როდესაც თქვენ დარეგისტრირდეთ ზოგიერთი ნახვა, ეს შეიძლება 547 00:23:32,120 --> 00:23:35,450 იყოს კოდი უკან ბოლომდე, რომ რეალურად აკეთებს ჩასმა ახლა 548 00:23:35,450 --> 00:23:37,220 მონაცემთა ბაზაში. 549 00:23:37,220 --> 00:23:40,870 >> ახლა პირიქით, მოდით სწრაფი ნაბიჯია. 550 00:23:40,870 --> 00:23:43,840 დავუშვათ შესახებ არის ხე და გსურთ 551 00:23:43,840 --> 00:23:48,860 წერენ PHP კოდი, რომელიც ამოწმებს თუ არა პირი, რომელიც მხოლოდ შესული სისტემაში 552 00:23:48,860 --> 00:23:52,250 ფაქტიურად შესახებ, თქვენ შეგიძლიათ გამოყენება საკმაოდ მარტივია სინტაქსი. 553 00:23:52,250 --> 00:23:55,832 შეიძლება ითქვას, SELECT, ვთქვათ, ვარსკვლავი, სადაც ვარსკვლავი ნიშნავს ყველაფერს. 554 00:23:55,832 --> 00:23:57,540 მე არ ვიცი, რა გსურთ, ასე რომ უბრალოდ მომეცი 555 00:23:57,540 --> 00:24:01,585 ყველა სვეტები მაგიდა მოუწოდა წევრებს, სადაც, და ეს არის ლამაზი. 556 00:24:01,585 --> 00:24:03,710 აირჩიეთ მხარს უჭერს რა არის ე.წ. შემასმენელს, რომელიც 557 00:24:03,710 --> 00:24:06,630 მოსწონს გზა შესარჩევი რა გსურთ. 558 00:24:06,630 --> 00:24:10,590 სად სახელი უდრის ციტირებით unquote Malan. 559 00:24:10,590 --> 00:24:13,680 ასე რომ აქ ძალიან, მე ჩართული შიგნით არგუმენტი 560 00:24:13,680 --> 00:24:16,110 to PHP ფუნქცია, ხაზი SQL კოდი. 561 00:24:16,110 --> 00:24:18,680 და რომ SQL კოდი ეს დრო არის ფაქტიურად აპირებს 562 00:24:18,680 --> 00:24:21,790 მოძებნოთ ციტირებით unquote Malan. 563 00:24:21,790 --> 00:24:24,420 >> ახლა, რომ ეს არ არის ყველა, რომ სასარგებლო, ამიტომ მე ვაპირებ გაფართოებული რომ 564 00:24:24,420 --> 00:24:28,650 და მე ვაპირებ გაიტანა ეს წვერი Brady, და წავიდეთ 565 00:24:28,650 --> 00:24:30,990 და plug-in ნაცვლად კითხვის ნიშნის აქ. 566 00:24:30,990 --> 00:24:33,290 ასე რომ, უბრალოდ უნდა იყოს მკაფიო, რა უნდა ჩემი მეორე არგუმენტი 567 00:24:33,290 --> 00:24:37,480 უნდა თუ ვინმე უბრალოდ შესული და მე გსურთ შეამოწმოთ, თუ იგი ფაქტიურად 568 00:24:37,480 --> 00:24:39,265 ხარ? 569 00:24:39,265 --> 00:24:40,140 აუდიტორია: [INAUDIBLE] 570 00:24:40,140 --> 00:24:40,890 დავით Malan: ჰო. 571 00:24:40,890 --> 00:24:44,120 მესმის დოლარის ნიშანი ხაზგასმა GET ციტირებით unquote სახელი. 572 00:24:44,120 --> 00:24:50,040 და რომ უნდა დამიბრუნდება ნებისმიერ რიგში ჩემს მონაცემთა ბაზაში 573 00:24:50,040 --> 00:24:51,986 რომ აქვს მომხმარებლის სახელი Malan. 574 00:24:51,986 --> 00:24:54,860 ახლა, იმედია, მე ვაპირებ, რომ მიიღოთ უკან ნულოვანი თუ Malan ის არასოდეს ყოფილა აქ, 575 00:24:54,860 --> 00:24:56,290 ან ერთი, თუ მას აქვს. 576 00:24:56,290 --> 00:24:59,026 მე არ უნდა დავუბრუნდეთ ორი ან სამი ან ოთხი. 577 00:24:59,026 --> 00:24:59,526 რატომ? 578 00:24:59,526 --> 00:25:00,220 >> აუდიტორია: [INAUDIBLE] 579 00:25:00,220 --> 00:25:01,120 >> დავით Malan: მე ვთქვი, უნიკალური, არა? 580 00:25:01,120 --> 00:25:01,750 უბრალო მიზეზის გამო. 581 00:25:01,750 --> 00:25:04,030 იმის გამო, რომ მე ვთქვი, ის მიიღო იყოს უნიკალური, უბრალოდ ლოგიკურად, 582 00:25:04,030 --> 00:25:07,940 თქვენ შეგიძლიათ მხოლოდ ნულოვანი ან ერთი Malans ამ კონკრეტულ მონაცემთა ბაზის ცხრილში. 583 00:25:07,940 --> 00:25:10,965 ახლა, როგორც განზე, უბრალოდ, ასე რომ თქვენ ვნახე მას, მიუხედავად იმისა, რომ მე შენარჩუნება გამოყენებით GET 584 00:25:10,965 --> 00:25:14,350 და მიუხედავად იმისა, pset6 გამოიყენება მხოლოდ კიდევ, თქვენ, რა თქმა უნდა POST. 585 00:25:14,350 --> 00:25:17,212 და გავიხსენოთ, რომ პოსტი სხვა ტექნიკა წარდგენის ინფორმაცია 586 00:25:17,212 --> 00:25:19,170 ფორმა, მაგრამ ეს არ გამოჩნდება URL. 587 00:25:19,170 --> 00:25:22,690 ეს ცოტა უფრო უსაფრთხო რა თქმა უნდა, რამ, როგორიცაა სახელები და პაროლები, 588 00:25:22,690 --> 00:25:25,210 რომელიც pset7 რომელიც, ფაქტობრივად, გულისხმობს. 589 00:25:25,210 --> 00:25:28,130 >> ასე რომ, მოდით გავაკეთოთ ეს PHP MyAdmin და ვნახოთ, რა მოხდება. 590 00:25:28,130 --> 00:25:30,020 მე ვაპირებ წასვლა MySQL tab. 591 00:25:30,020 --> 00:25:34,450 და შენიშნავს, რომ ნაგულისხმევი მნიშვნელობა PHP MyAdmin, უბრალოდ ცდილობენ იყოს სასარგებლო, 592 00:25:34,450 --> 00:25:37,050 არის ასარჩევად ვარსკვლავი წევრებს, სადაც ერთ-ერთი. 593 00:25:37,050 --> 00:25:39,430 ისე, ერთი ყოველთვის მართალია, ასე რომ ეს სულელური ეფექტური 594 00:25:39,430 --> 00:25:40,400 უბრალოდ აირჩიეთ ყველაფერი. 595 00:25:40,400 --> 00:25:42,691 მაგრამ მე ვაპირებ, რომ იყოს პატარა უფრო pedantic და ხელით 596 00:25:42,691 --> 00:25:45,920 აკრიფოთ გარეთ SELECT ვარსკვლავი მომხმარებლებს. 597 00:25:45,920 --> 00:25:48,294 >> ახლა ტექნიკურად, თქვენ შეგიძლიათ შეთავაზება სახელი მაგიდები. 598 00:25:48,294 --> 00:25:50,460 ეს იშვიათი, რომ თქვენ უნდა, მაგრამ შეამჩნია, რომ ეს არ არის 599 00:25:50,460 --> 00:25:52,240 თქვენი ნორმალური შეთავაზებები აშშ-კლავიატურაზე. 600 00:25:52,240 --> 00:25:54,760 ეს არის ე.წ. backtick, რომელიც არის ზოგადად ზედა მარცხენა 601 00:25:54,760 --> 00:25:56,000 კუთხეში თქვენს კლავიატურაზე. 602 00:25:56,000 --> 00:25:58,500 მაგრამ ეს იშვიათი, რომ თქვენ რეალურად უნდა გადაიტვირთოთ, რომ, 603 00:25:58,500 --> 00:25:59,950 ასე რომ მე უბრალოდ გამომრჩეს მათ მაინც. 604 00:25:59,950 --> 00:26:02,280 ასე რომ, ახლა ნება მომეცით წავიდეთ წინ და მოხვდა წასვლა. 605 00:26:02,280 --> 00:26:06,616 და რამდენი რიგები უნდა მივიღო უკან, როდესაც მე აირჩიეთ ვარსკვლავი წევრებს? 606 00:26:06,616 --> 00:26:08,407 >> აუდიტორია: [INAUDIBLE] 607 00:26:08,407 --> 00:26:09,990 დავით Malan: სტრიქონების რაოდენობა, დარწმუნებული ვარ. 608 00:26:09,990 --> 00:26:12,390 მაგრამ რამდენი ამ კონკრეტული ამბავი ახლა? 609 00:26:12,390 --> 00:26:14,640 ორი, რადგან არ იყო მე და იყო Rob. 610 00:26:14,640 --> 00:26:19,370 ასე რომ, თუ მე დააწკაპუნეთ წადი, მე ვხედავ ვიზუალურად, რომ მე მიღებული თავში, მართლაც, ორ რიგები. 611 00:26:19,370 --> 00:26:22,060 არსებობს ბევრი clutter შესახებ ეკრანზე, მაგრამ მე მხოლოდ ორ რიგები. 612 00:26:22,060 --> 00:26:28,580 ამის საპირისპიროდ, თუ მე ეს კიდევ ერთხელ და ნუ SELECT ვარსკვლავი მომხმარებლებს, სადაც სახელი 613 00:26:28,580 --> 00:26:31,840 უდრის ციტირებით unquote Malan, ახლა თუ მე დააწკაპუნეთ წადი, 614 00:26:31,840 --> 00:26:33,970 მე მხოლოდ აპირებს დაბრუნებას ერთი მწკრივი. 615 00:26:33,970 --> 00:26:36,499 და ბოლოს, თუ მე მსგავსი რამ, ვფიქრობ, 616 00:26:36,499 --> 00:26:38,290 რომ მე არ აინტერესებს მიღების ყველაფერი, 617 00:26:38,290 --> 00:26:41,020 რომელიც არის ერთგვარი უაზრო ახლა, იმიტომ, რომ იქ მხოლოდ ორი სვეტით. 618 00:26:41,020 --> 00:26:43,103 ეს იმას არ ნიშნავს რომ მე ვარ შერჩევის დიდი რაოდენობით მონაცემები. 619 00:26:43,103 --> 00:26:46,720 დავუშვათ, რომ წავიდეთ წინ და არ SELECT სახელი 620 00:26:46,720 --> 00:26:51,990 მომხმარებლების, სადაც სახელი ტოლია Malan, რა ლამაზი SQL პატიოსნად, 621 00:26:51,990 --> 00:26:54,290 არის ის, რომ ნამდვილად არ რას გეტყვით, რომ ამის გაკეთება. 622 00:26:54,290 --> 00:26:57,550 ეს არის საკმაოდ ლაკონური, მაგრამ თქვენ ფაქტიურად უბრალოდ ვამბობ, რომ ის, რაც თქვენ გსურთ. 623 00:26:57,550 --> 00:27:01,130 აირჩიეთ სახელი წევრებს, სადაც სახელი ტოლია Malan. 624 00:27:01,130 --> 00:27:03,440 და ეს ნამდვილად ის არის, რომ გამოკვეთილ. 625 00:27:03,440 --> 00:27:08,410 ასე რომ, ახლა თუ მე მოხვდა წადი, რამდენი რიგები ვარ აპირებს დაბრუნებას? 626 00:27:08,410 --> 00:27:10,770 ერთ-ერთი, იმიტომ, რომ ეს მხოლოდ Malan, იმედია. 627 00:27:10,770 --> 00:27:13,100 ან ნულოვანი თუ ის არ არის არსებობს, მაგრამ ერთი მაქსიმალურად. 628 00:27:13,100 --> 00:27:17,610 >> და რამდენი სვეტების დავიბრუნებ? 629 00:27:17,610 --> 00:27:18,450 რამდენი სვეტების? 630 00:27:18,450 --> 00:27:20,658 ამჯერად, მე უბრალოდ აპირებს მიიღოს ერთი იმიტომ, რომ მე არ 631 00:27:20,658 --> 00:27:22,380 აირჩიეთ ვარსკვლავი, რომელიც ყველაფერს. 632 00:27:22,380 --> 00:27:27,900 ახლა მე შერჩევისას მხოლოდ სახელი, ამიტომ მე უბრალოდ დავუბრუნდეთ ერთი სვეტი და ერთი ზედიზედ. 633 00:27:27,900 --> 00:27:31,730 და ეს გამოიყურება ერთგვარი სათანადოდ სასაცილოა, უბრალოდ ეძებს super 634 00:27:31,730 --> 00:27:33,060 პატარა მოსწონს ეს. 635 00:27:33,060 --> 00:27:34,290 ასე რომ, რა ხდება რეალურად? 636 00:27:34,290 --> 00:27:36,890 როდესაც თქვენ შეასრულოს SQL შეკითხვის გამოყენებით აირჩიეთ, 637 00:27:36,890 --> 00:27:38,700 რა თქვენ მისაღებად უკან მონაცემთა ბაზიდან 638 00:27:38,700 --> 00:27:42,970 ჰგავს დროებითი მაგიდა რიგები და სვეტები, შესაძლოა, 639 00:27:42,970 --> 00:27:46,260 მაგრამ, რომ გამომრჩეს, რომ არაფერი არ იყო რეალურად მიერ შერჩეულ თქვენ. 640 00:27:46,260 --> 00:27:49,010 ასე რომ, ეს იგივეა, თუ ვინმეს ჰქონდა დიდი ცხრილების ყველა სტუდენტები 641 00:27:49,010 --> 00:27:51,610 რეგისტრირებული გარკვეული სტუდენტი ჯგუფი, და თქვენ ამბობთ, 642 00:27:51,610 --> 00:27:55,097 მომეცი ყველა პირველკურსელთა, რომლებიც უკვე რეგისტრირებული ჩვენი სტუდენტური ჯგუფი, რა 643 00:27:55,097 --> 00:27:56,930 თქვენი კოლეგა სტუდენტი ჯგუფი შეიძლება გავაკეთოთ 644 00:27:56,930 --> 00:27:58,430 არის, რომ მათ შეეძლოთ მხოლოდ გადასცემს თქვენ მთელი ცხრილების. 645 00:27:58,430 --> 00:27:59,742 ეს იგივეა, თითქოს ამბობდა აირჩიეთ ვარსკვლავი. 646 00:27:59,742 --> 00:28:02,200 და ეს ცოტა შემაშფოთებელი თუ თქვენ მხოლოდ სურდა პირველკურსელთა. 647 00:28:02,200 --> 00:28:05,640 ასე რომ, თუ თქვენ ნაცვლად განაცხადა, აირჩიეთ ვარსკვლავი მონაცემთა ბაზის ცხრილში 648 00:28:05,640 --> 00:28:08,470 სადაც წლის უდრის ციტირებით unquote freshman, 649 00:28:08,470 --> 00:28:10,810 ეს თითქოს თქვენს მეგობარს სტუდენტი ჯგუფი 650 00:28:10,810 --> 00:28:13,770 ფაქტიურად ხაზგასმული და გადაწერა მხოლოდ პირველკურსელთა რიგები, 651 00:28:13,770 --> 00:28:16,780 გაკრული მათ ახალი Google ცხრილების ან Excel ფაილი, 652 00:28:16,780 --> 00:28:18,860 და გადასცა თქვენ უკან შედეგად ფაილი მხოლოდ. 653 00:28:18,860 --> 00:28:21,710 ეს არის ის, რომ აპირებს on კონცეპტუალურად აქ. 654 00:28:21,710 --> 00:28:23,920 >> და ბოლოს, ჩვენ შეგვიძლია გავაკეთოთ ზოგიერთი საკმაოდ ლამაზი რამ 655 00:28:23,920 --> 00:28:26,560 შენახვის რამ, როგორიცაა სახელები და პაროლები და ასე შემდეგ. 656 00:28:26,560 --> 00:28:30,310 მაგრამ, თურმე, ჩვენ უნდა გავაკეთოთ ცოტა განსხვავებულად, ვიდრე ეს. 657 00:28:30,310 --> 00:28:34,750 ეს არ არის, რომ ჭკვიანი მხოლოდ შესანახად სახელი და პაროლი. 658 00:28:34,750 --> 00:28:37,790 ვიღაცამ ადრე, მე ვფიქრობ, აქ, შესთავაზა ID. 659 00:28:37,790 --> 00:28:40,787 ახლა ID შეიძლება იყოს, როგორც ჰარვარდის ID ან იელის წმინდა ID, 660 00:28:40,787 --> 00:28:42,870 მაგრამ ეს შეიძლება იყოს უფრო მარტივი ამ მომენტისთვის ჩვენს ბაზაში შემთხვევაში. 661 00:28:42,870 --> 00:28:45,120 მართლაც, საერთო საქმე არის კიდევ ერთი სვეტი. 662 00:28:45,120 --> 00:28:46,953 და მე ვაპირებ წასვლა წინ და შეცვალონ ჩემი მაგიდა. 663 00:28:46,953 --> 00:28:49,521 და თუ თქვენ ითამაშოს გარშემო ამ ინტერფეისით pset7, 664 00:28:49,521 --> 00:28:51,770 თქვენ ნახავთ, რომ თქვენ შეგიძლიათ ნახოთ ამ ღილაკს აქ და დაამატოთ 665 00:28:51,770 --> 00:28:53,750 სფეროში დასაწყისში მაგიდაზე. 666 00:28:53,750 --> 00:28:56,720 და ახლა თუ მე დააწკაპუნეთ წადი, ის აპირებს მომეცი ერთი იმ ფორმით 667 00:28:56,720 --> 00:28:57,600 ადრე. 668 00:28:57,600 --> 00:29:00,170 მე ვაპირებ, რომ დაამატოთ სფეროში მოუწოდა ID. 669 00:29:00,170 --> 00:29:03,070 და მე ვაპირებ, რომ მას რიცხვითი ტიპის. 670 00:29:03,070 --> 00:29:05,362 >> მე მაქვს მთელი bunch ღირებულებათა Numerics. 671 00:29:05,362 --> 00:29:08,677 მე უბრალოდ აპირებს აირჩიოს INT და არ ინერვიულოთ შესახებ განსხვავებული ზომის. 672 00:29:08,677 --> 00:29:10,510 მე არ უნდა მიუთითოთ სიგრძე და მნიშვნელობა, 673 00:29:10,510 --> 00:29:13,710 იმიტომ, რომ ეს იქნება 32 ბიტი არ აქვს მნიშვნელობა რა. 674 00:29:13,710 --> 00:29:16,070 ატრიბუტები, ჩვენ არ ვხედავთ, ადრე. 675 00:29:16,070 --> 00:29:18,410 ნებისმიერი ინტერესი ნებისმიერ ამ მენიუ ვარიანტი ამ დროს? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 Int? 678 00:29:23,745 --> 00:29:24,620 რას შესთავაზოს? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 არ არის? 681 00:29:28,445 --> 00:29:29,570 რაიმე ამ აზრი? 682 00:29:29,570 --> 00:29:30,536 ჰო. 683 00:29:30,536 --> 00:29:31,900 ჰო, ხელმოუწერელი, არა? 684 00:29:31,900 --> 00:29:35,930 >> საერთოდ, თუ ჩვენ ვაპირებთ, რათა ყველას უნიკალური ნომერი, რომელიც 685 00:29:35,930 --> 00:29:38,200 არის, სადაც ეს ამბავი აპირებს, მე ნამდვილად მხოლოდ მინდა 686 00:29:38,200 --> 00:29:41,919 ადამიანს ჰქონდეს ნომერი, როგორც ნულოვანი და ერთი და ორი და სამი და ოთხი. 687 00:29:41,919 --> 00:29:43,710 მე არ უნდა გაუმკლავდეთ უარყოფითი ნომრები. 688 00:29:43,710 --> 00:29:45,210 უბრალოდ, როგორც ჩანს, როგორც გაუმართლებელი სირთულის. 689 00:29:45,210 --> 00:29:48,470 მინდა ოთხი მილიარდი შესაძლო მნიშვნელობებია, ოთხი მილიარდი შესაძლო მნიშვნელობებია, 690 00:29:48,470 --> 00:29:50,699 ასე რომ მე უბრალოდ გაორმაგდა სიმძლავრე ჩემი INT. 691 00:29:50,699 --> 00:29:53,490 როგორც განზე, თუ გვინდა, რომ ეხებოდეს ეს რაღაც Facebook, 692 00:29:53,490 --> 00:29:56,190 უკან ერთგვარი ჩემი დღე, როდესაც Facebook პირველად გამოვიდა, 693 00:29:56,190 --> 00:29:59,510 მე მჯერა, რაც იყო გამოყენებით მათი MySQL მონაცემთა ბაზის 694 00:29:59,510 --> 00:30:02,856 შესანახად მომხმარებლის იდენტიფიკატორი, იყო მხოლოდ INT. 695 00:30:02,856 --> 00:30:05,230 მაგრამ, რა თქმა უნდა, არსებობს ბევრი რეალური ადამიანი მსოფლიოში. 696 00:30:05,230 --> 00:30:07,438 არსებობს უამრავი ყალბი Facebook ანგარიშები მსოფლიოში. 697 00:30:07,438 --> 00:30:11,701 ასე რომ, საბოლოოდ, Facebook overflowed ზომა INT, ოთხი მილიარდი 698 00:30:11,701 --> 00:30:12,200 მნიშვნელობა. 699 00:30:12,200 --> 00:30:15,032 სწორედ ამიტომ, თუ გადავხედავთ გარშემო და იქ საიტები 700 00:30:15,032 --> 00:30:16,740 რომ შემიძლია გითხრათ, რა თქვენი უნიკალური ID არის. 701 00:30:16,740 --> 00:30:19,781 და თუ თქვენ არასოდეს აირჩია მომხმარებლის სახელი Facebook, თქვენ ნახავთ თქვენი უნიკალური ID. 702 00:30:19,781 --> 00:30:23,080 მე ვფიქრობ, რომ ეს ნახვა dot PHP კითხვის ნიშნის ID უდრის რაღაც. 703 00:30:23,080 --> 00:30:27,210 ეს არის რაღაც დიდი INT, ან ხანგრძლივი ხანგრძლივი თუ გნებავთ, 704 00:30:27,210 --> 00:30:29,700 რომელიც არის 64-bit მნიშვნელობა ან რამე შედარებით. 705 00:30:29,700 --> 00:30:33,620 >> ასე რომ, თუნდაც რეალურ სამყაროში გავაკეთოთ ეს საკითხები, საბოლოო ჯამში, ზოგჯერ აქვს. 706 00:30:33,620 --> 00:30:37,600 და აღმოჩნდება, რომ აქ, თუ მე ვაძლევთ ყველა ჩემი მომხმარებლებს უნიკალური ID, 707 00:30:37,600 --> 00:30:41,750 მინდა იყოს სუპერ სიცოცხლისუნარიანობა და მინიმალურად, რათა ამ სფეროში უნიკალურია. 708 00:30:41,750 --> 00:30:44,750 მაგრამ აღმოჩნდება, რომ არსებობს ერთი ნაჭერი ნომენკლატურა დღესაც 709 00:30:44,750 --> 00:30:46,470 რომ არის პირველადი გასაღები. 710 00:30:46,470 --> 00:30:49,800 თუ თქვენ დიზაინისა მონაცემთა ბაზაში მაგიდა და თქვენ იცით, წინასწარ 711 00:30:49,800 --> 00:30:55,580 რომ ერთ-ერთი გრაფა, რომ მაგიდასთან უნდა და ცალსახად იდენტიფიცირება რიგები 712 00:30:55,580 --> 00:30:58,500 მაგიდა, გსურთ დააკონკრეტა და გითხრათ, მონაცემთა ბაზა, 713 00:30:58,500 --> 00:31:00,250 ეს არის ჩემი პირველადი გასაღები. 714 00:31:00,250 --> 00:31:02,110 ამას შეიძლება ეგზ სხვა სფეროებში, 715 00:31:02,110 --> 00:31:06,330 მაგრამ მე გეუბნებით მონაცემთა ბაზა, რომელიც ამ ჩემი დაწყებითი, ჩემი ყველაზე მნიშვნელოვანი სფეროში, 716 00:31:06,330 --> 00:31:08,420 რომ გარანტირებული იყოს უნიკალური. 717 00:31:08,420 --> 00:31:09,660 >> ახლა, ეს, როგორც ჩანს, გადაჭარბებული. 718 00:31:09,660 --> 00:31:13,830 მე ახლა ვთავაზობთ, რომ ჩვენ რჩეულებში დაჭერით Save აქ, 719 00:31:13,830 --> 00:31:17,210 სფეროში called-- და მე ვაპირებ წავიდეთ წინ და დააჭირეთ AI, 720 00:31:17,210 --> 00:31:19,720 ჩვენ დავბრუნდებით რომ ამ მომენტში, შენახვა. 721 00:31:19,720 --> 00:31:22,540 მე ვთავაზობ, ახლა რომ ჩემი მაგიდა გამოიყურება. 722 00:31:22,540 --> 00:31:26,305 მაქვს INT სფეროში მოუწოდა ID, არის char სფეროში მოუწოდა ნიკი, 723 00:31:26,305 --> 00:31:31,100 Varchar სფეროში მოუწოდა სახელი, მაგრამ ID, თუ ის პირველადი და, შესაბამისად, უნიკალური, 724 00:31:31,100 --> 00:31:33,760 რატომ უბრალოდ დაკარგავთ შემოგვაქვს რა 725 00:31:33,760 --> 00:31:39,140 ეფექტურად მეორე უნიკალური სფეროში მოუწოდა ID, რომ არის INT? 726 00:31:39,140 --> 00:31:41,980 >> ნიკი იხსენებენ, იყო უკვე უნიკალური, ჩვენ ვთქვით. 727 00:31:41,980 --> 00:31:45,350 ასე რომ, უბრალოდ ლოგიკურად, თქვენ არ უნდა ნებისმიერი მონაცემთა ბაზაში გამოცდილება მიზეზი 728 00:31:45,350 --> 00:31:47,570 ამ გზით, თუ რატომ შეიძლება მე არ გააცნო 729 00:31:47,570 --> 00:31:50,065 int როგორც ჩემი უნიკალური იდენტიფიკატორი ისევე? 730 00:31:50,065 --> 00:31:52,740 731 00:31:52,740 --> 00:31:53,930 რა ამას ამბობენ, კიდევ ერთხელ? 732 00:31:53,930 --> 00:31:55,580 >> აუდიტორია: [INAUDIBLE] 733 00:31:55,580 --> 00:31:59,534 >> დავით Malan: შემთხვევითი ხელმისაწვდომობის ადვილია, რატომ? 734 00:31:59,534 --> 00:32:00,410 >> აუდიტორია: [INAUDIBLE] 735 00:32:00,410 --> 00:32:02,367 დავით Malan: ჰო, ეს უბრალოდ წვდომის ნომრები. 736 00:32:02,367 --> 00:32:04,750 ასე რომ, თუ თქვენ ფიქრობთ, რომ ეს ნამდვილად მაგიდა, როგორიცაა მასივი, 737 00:32:04,750 --> 00:32:07,690 ახლა მე მაქვს უნიკალური იდენტიფიკატორები რომ მე შემიძლია ხტომა გარშემო. 738 00:32:07,690 --> 00:32:11,520 და სჯობს, რომ ჯერ კიდევ არის ის, რომ რამდენად დიდი არის int იქნება ისევ? 739 00:32:11,520 --> 00:32:14,450 740 00:32:14,450 --> 00:32:15,800 32 ბიტი ან ოთხი ბაიტი. 741 00:32:15,800 --> 00:32:17,750 >> რამდენად დიდი არის ჩემი სახელი იქნება? 742 00:32:17,750 --> 00:32:20,310 743 00:32:20,310 --> 00:32:21,990 მაქსიმალურად? 744 00:32:21,990 --> 00:32:22,880 16 ბაიტი. 745 00:32:22,880 --> 00:32:26,080 >> ასე რომ, თუ თქვენ ნამდვილად ზრუნავენ შესრულება თქვენი კოდი, 746 00:32:26,080 --> 00:32:31,390 ვფიქრობ, უკან Pset5, რომ თქვენ გსურთ მოძიება ოთხი ბაიტი ღირებულება ან 16 747 00:32:31,390 --> 00:32:32,240 byte ღირებულება, არა? 748 00:32:32,240 --> 00:32:33,810 ეს ნამდვილად არ არის ისეთი მარტივი, როგორც, რომ. 749 00:32:33,810 --> 00:32:38,060 თქვენ უნდა გავაკეთოთ ოთხჯერ იმდენი მუშაობა მოძებნოთ სახელისა, რადგან იმ 750 00:32:38,060 --> 00:32:38,830 16 ბაიტი. 751 00:32:38,830 --> 00:32:41,320 ასე რომ, თქვენ უნდა სიტყვასიტყვით შევადარებთ ყველა 16 ბაიტი უნდა იყოს 752 00:32:41,320 --> 00:32:43,140 დარწმუნებული ვარ, დიახ, ეს არის სახელი მინდა. 753 00:32:43,140 --> 00:32:46,610 ვინაიდან ამისთვის INT, თქვენ შეგიძლიათ ამის გაკეთება მხოლოდ ოთხი ბაიტი. 754 00:32:46,610 --> 00:32:49,212 >> და როგორც განზე მათთვის დაინტერესებული კომპიუტერული ტექნიკა, 755 00:32:49,212 --> 00:32:52,420 გამოდის, რომ თქვენ შეუძლია მოერგოს რაღაც int ან 32-bit ღირებულების რაღაც 756 00:32:52,420 --> 00:32:55,330 ეწოდება რეესტრში კომპიუტერი CPU, რაც იმას ნიშნავს, სუპერ, 757 00:32:55,330 --> 00:32:58,400 სუპერ სწრაფი, თუნდაც ყველაზე დაბალი დონე კომპიუტერის ტექნიკა. 758 00:32:58,400 --> 00:33:00,530 ასე რომ, არსებობს მხოლოდ უპირატესობა გარშემო. 759 00:33:00,530 --> 00:33:01,530 ასე რომ, რას ნიშნავს ეს? 760 00:33:01,530 --> 00:33:04,850 სინამდვილეში, როდესაც თქვენ დიზაინისა მონაცემთა ბაზის ცხრილში, თითქმის ყველა დროის 761 00:33:04,850 --> 00:33:07,170 აპირებთ თუ არა გაქვთ მხოლოდ მონაცემების აინტერესებს, 762 00:33:07,170 --> 00:33:09,280 არამედ რაღაც უნიკალური იდენტიფიკატორი 763 00:33:09,280 --> 00:33:11,280 იმიტომ, რომ ეს აპირებს მოდით გავაკეთოთ სხვა რამ. 764 00:33:11,280 --> 00:33:13,160 და მოდით მოგზაურობა დასრულდა ერთი პრობლემა აქ. 765 00:33:13,160 --> 00:33:15,990 >> ვარაუდობენ, რომ წევრებს არ აქვთ მხოლოდ სახელისა და სახელები, 766 00:33:15,990 --> 00:33:19,540 მაგრამ მათ აქვთ რამ, როგორიცაა ქალაქებში და სახელმწიფოებს და საფოსტო კოდები, მინიმუმ 767 00:33:19,540 --> 00:33:20,432 აქ, აშშ. 768 00:33:20,432 --> 00:33:22,390 ასე რომ, მე ვაპირებ წავიდეთ წინ და მხოლოდ მაშინ შეიძლება ითქვას, 769 00:33:22,390 --> 00:33:26,180 მომეცი კიდევ სამი სვეტები ბოლოს მაგიდასთან. 770 00:33:26,180 --> 00:33:28,900 და ეს იქნება ქალაქი, ეს იქნება სახელმწიფო, 771 00:33:28,900 --> 00:33:30,400 და ეს იქნება Zip. 772 00:33:30,400 --> 00:33:32,710 >> ახლა City, რა ტიპის მონაცემები უნდა იყოს ეს, ალბათ? 773 00:33:32,710 --> 00:33:35,460 774 00:33:35,460 --> 00:33:35,989 Varchar? 775 00:33:35,989 --> 00:33:37,780 მე არ ვიცი, რა გრძელი სახელი ქალაქში. 776 00:33:37,780 --> 00:33:40,571 სადღაც ამერიკაში, იქ ალბათ ზოგიერთი ridiculously გრძელი სიტყვა, 777 00:33:40,571 --> 00:33:43,605 ასე რომ, მოდით უბრალოდ წავიდეთ ერთად 255, გარკვეულწილად ისტორიულად ან თვითნებურად. 778 00:33:43,605 --> 00:33:44,730 სახელმწიფო, თუ რა უნდა გავაკეთოთ? 779 00:33:44,730 --> 00:33:48,380 780 00:33:48,380 --> 00:33:50,367 გადაწყვეტილება ზარის, არა? 781 00:33:50,367 --> 00:33:51,700 რა არის ალბათ ყველაზე ეფექტური? 782 00:33:51,700 --> 00:33:53,500 რამდენი გმირები? 783 00:33:53,500 --> 00:33:55,950 შესაძლოა მხოლოდ ორი, შევძლებთ თუ არა მიიღოს away მასთან აკეთებს მხოლოდ, 784 00:33:55,950 --> 00:33:58,250 როგორიცაა, MA მასაჩუსეტსის და სხვ. 785 00:33:58,250 --> 00:34:00,520 ასე რომ, მე ვაპირებ წავიდეთ CHAR ღირებულება ორი. 786 00:34:00,520 --> 00:34:03,080 >> Zip კოდი საინტერესო ერთი. 787 00:34:03,080 --> 00:34:06,679 ჩვენ აქ 02138, ისე, რომ ვარაუდობს, ჩვენ უნდა გამოვიყენოთ რა? 788 00:34:06,679 --> 00:34:07,470 ეს არის INT, არა? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 INT, INT, მოკლე? 791 00:34:12,800 --> 00:34:14,521 შემოკლებული იმუშავებს. 792 00:34:14,521 --> 00:34:15,020 არ არის? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 CHAR ან ხუთი, მაგრამ მინდა INT. 795 00:34:20,870 --> 00:34:23,710 რატომ დააყენებს უკან int? 796 00:34:23,710 --> 00:34:26,820 დამარწმუნებს ამ. 797 00:34:26,820 --> 00:34:29,210 რა არის სულელური შესახებ INT, ჩემი იდეა? 798 00:34:29,210 --> 00:34:29,871 ჰო. 799 00:34:29,871 --> 00:34:31,199 >> აუდიტორია: დასჭირდეს მეტი მეხსიერება. 800 00:34:31,199 --> 00:34:32,909 >> დავით Malan: დასჭირდეს მეტი მეხსიერება. 801 00:34:32,909 --> 00:34:35,310 ოთხი ბაიტი, მაგრამ თქვენ სთავაზობს ZIP კოდი 802 00:34:35,310 --> 00:34:39,000 ხუთ bytes ან ვინმე იყო, როგორც CHAR, რომელიც იგრძნობა eh, რომ ნამდვილად არ არის 803 00:34:39,000 --> 00:34:39,620 იმ შემთხვევაში. 804 00:34:39,620 --> 00:34:40,489 >> ისე, სახალისო ამბავი. 805 00:34:40,489 --> 00:34:43,179 წლების წინ, როცა მე გამოიყენოს Microsoft Outlook ჩემი ელექტრონული ფოსტის, 806 00:34:43,179 --> 00:34:45,150 მე საბოლოოდ სურდა გადავიდეს Gmail. 807 00:34:45,150 --> 00:34:48,949 ასე რომ, მე ექსპორტზე ყველა ჩემი კონტაქტების Outlook, როგორც CSV ფაილი. 808 00:34:48,949 --> 00:34:50,699 მძიმით გამოყოფილი მნიშვნელობები, რომელიც მხოლოდ იმას ნიშნავდა, მე 809 00:34:50,699 --> 00:34:54,060 ჰქონდა ყველა ჩემს მეგობრებს სახელები და ბოლო სახელები და ტელეფონის ნომრები და საფოსტო კოდები 810 00:34:54,060 --> 00:34:54,747 და ყველა რომ. 811 00:34:54,747 --> 00:34:56,580 და მერე გააკეთა შეცდომა გახსნის it up 812 00:34:56,580 --> 00:34:58,640 Excel, რომელიც არის ცხრილების პროგრამას, რომელიც 813 00:34:58,640 --> 00:35:00,289 ესმის CSV ფაილი, როგორც ჩვენ ვნახეთ. 814 00:35:00,289 --> 00:35:03,080 მაგრამ შემდეგ, მე უნდა მოხვდა, როგორიცაა, Command ან კონტროლის S ერთ მომენტში. 815 00:35:03,080 --> 00:35:06,250 და Excel, როგორც ჩანს, იმ დროს, ჰქონდა მხატვრული რომლის დროსაც ნებისმიერ დროს 816 00:35:06,250 --> 00:35:08,100 დაინახა ნომერი, ის ცდილობდა იყოს სასარგებლო. 817 00:35:08,100 --> 00:35:11,610 და თუ ნომერი დაიწყო zeros, რომ ის უბრალოდ მოშორება მათ. 818 00:35:11,610 --> 00:35:13,420 რატომ გვჭირდება წამყვანი zeros მთელი რიცხვები? 819 00:35:13,420 --> 00:35:15,140 ისინი უაზრო, მათემატიკურად. 820 00:35:15,140 --> 00:35:17,530 ისინი არ არის უაზრო წელს აშშ საფოსტო სისტემა. 821 00:35:17,530 --> 00:35:19,954 ასე რომ, მე მქონდა წლების განმავლობაში, ამ დღეს, მე მაინც 822 00:35:19,954 --> 00:35:22,370 მეგობრები, როდესაც იშვიათი შემთხვევაა, რომ მე უნდა ვინმეს 823 00:35:22,370 --> 00:35:24,078 ამ დღეებში, მე მაინც ვხედავ, რომ მე 824 00:35:24,078 --> 00:35:26,767 აქვს მეგობარს კემბრიჯში, Massachusetts, 2138. 825 00:35:26,767 --> 00:35:29,350 და ეს არის შემაშფოთებელი, თუ თქვენ ცდილობს დასალაგებლად პროგრამულად 826 00:35:29,350 --> 00:35:30,975 გენერირება კონვერტების ან უბრალოდ jot მას. 827 00:35:30,975 --> 00:35:33,599 და ეს იმიტომ, რომ ამ მიზეზით, მე აირჩია არასწორი მონაცემები ტიპის. 828 00:35:33,599 --> 00:35:34,490 ასე რომ, მე მიყვარს თქვენი იდეა. 829 00:35:34,490 --> 00:35:35,650 მოდით გამოიყენოთ CHAR სფეროში. 830 00:35:35,650 --> 00:35:38,340 ხუთი პერსონაჟი, გარდა არ არის კუთხეში შემთხვევაში. 831 00:35:38,340 --> 00:35:42,220 თუ თქვენ ჯერ კიდევ ფოსტის გაგზავნა, ზოგჯერ zip კოდები ამ დღეებში, 832 00:35:42,220 --> 00:35:45,360 ისინი, ისევე, პლუს ოთხი. 833 00:35:45,360 --> 00:35:48,200 ასე რომ, ჩვენ უნდა დეფისი და შემდეგ ჩვენ გვჭირდება კიდევ ოთხი ნომრები. 834 00:35:48,200 --> 00:35:50,330 ასე რომ იყოს პატიოსანი, მას შეეძლო წასვლა სხვადასხვა გზები. 835 00:35:50,330 --> 00:35:52,371 >> ახლა, მე ვაპირებ შენარჩუნება ეს მარტივი და მე მხოლოდ 836 00:35:52,371 --> 00:35:54,780 ვაპირებ ვთქვა, რომ ეს არის ხუთ CHAR მნიშვნელობა და ჩვენ 837 00:35:54,780 --> 00:35:56,739 აპირებს გამოტოვოთ მთელი dash პლუს ოთხი. 838 00:35:56,739 --> 00:35:58,280 მაგრამ ეს არის სახის tradeoffs. 839 00:35:58,280 --> 00:36:00,196 და შეგიძლიათ წარმოიდგინოთ, რომ იგივე პრობლემები, რომლებიც წარმოიქმნება 840 00:36:00,196 --> 00:36:01,860 ტელეფონის ნომრები ან სხვა სფეროებში. 841 00:36:01,860 --> 00:36:04,350 >> და ახლა, ეს არის რეალურად სულელური გზა დაცემას. 842 00:36:04,350 --> 00:36:08,000 დავუშვათ, როგორც Rob და მე და ჰანა და მარია და [? Davon?] და ენდი 843 00:36:08,000 --> 00:36:12,820 და სხვა პერსონალის ყველა ცხოვრობს კემბრიჯი, მასაჩუსეტსი, 02138. 844 00:36:12,820 --> 00:36:17,970 ეს რეალურად იგრძნობს, სულელური, რომ მე ვარ და დასძინა, რომ ჩემი მომხმარებლებს მაგიდა, ქალაქი, სახელმწიფო, 845 00:36:17,970 --> 00:36:18,630 და zip. 846 00:36:18,630 --> 00:36:20,980 რატომ? 847 00:36:20,980 --> 00:36:21,960 >> აუდიტორია: [INAUDIBLE] 848 00:36:21,960 --> 00:36:22,918 >> დავით Malan: ამბობენ, რომ კიდევ ერთხელ? 849 00:36:22,918 --> 00:36:24,310 აუდიტორია: [INAUDIBLE] 850 00:36:24,310 --> 00:36:25,850 >> დავით Malan: ისინი ყოველთვის აპირებს წავიდეთ ერთად, არა? 851 00:36:25,850 --> 00:36:28,660 როდესაც აღმოჩნდება, რომ, ჩვენ უნდა ვიფიქროთ, ეს იყო შემთხვევა, სანამ ჩვენ ამომწურავად 852 00:36:28,660 --> 00:36:30,570 ჩხრეკა მთელი აშშ, და აღმოჩნდება, რომ არსებობს 853 00:36:30,570 --> 00:36:32,653 ზოგიერთი შეუსაბამობა სადაც მრავალი ქალაქებში აქვს 854 00:36:32,653 --> 00:36:35,060 იგივე zip, რომელიც არის უცნაური. 855 00:36:35,060 --> 00:36:40,580 მაგრამ, თუ ჩვენ ითვალისწინებს ახლა რომ 02138 ყოველთვის კემბრიჯი, მასაჩუსეტსი, 856 00:36:40,580 --> 00:36:44,910 რატომ მთელს მსოფლიოში, რომ თქვენ შესანახად თქვენს მონაცემთა ბაზაში კემბრიჯის და სამაგისტრო და 02138 857 00:36:44,910 --> 00:36:49,357 ჩემთვის და Hannah და რობ და ამისთვის [? Davon?] და სხვები, რომლებიც ცხოვრობენ 858 00:36:49,357 --> 00:36:51,190 აქ Cambridge, ეს შესანიშნავად გადაჭარბებული. 859 00:36:51,190 --> 00:36:54,480 >> ჩვენ უნდა მიიღოს დაშორებით მხოლოდ შენახვის, რა? 860 00:36:54,480 --> 00:36:55,610 უბრალოდ zip კოდი. 861 00:36:55,610 --> 00:36:58,660 მაგრამ შემდეგ, თუ ჩვენ ვინახავთ მხოლოდ ZIP კოდი, მე მინდა, ალბათ, 862 00:36:58,660 --> 00:37:02,160 ჩემი ნახვა უნდა იცოდეს, სადაც 02138 არის. 863 00:37:02,160 --> 00:37:03,910 ასე რომ, მე უნდა კიდევ ერთი მაგიდა. 864 00:37:03,910 --> 00:37:04,697 და რომ კარგადაა. 865 00:37:04,697 --> 00:37:07,530 და სინამდვილეში, ეს არის ერთ-ერთი დიზაინი პროცესების დიზაინისა მაგიდები 866 00:37:07,530 --> 00:37:11,472 ის, რომ თქვენ ამის გაკეთება pset7, ისევე, რომლის დროსაც გსურთ ფაქტორი საერთო მონაცემები. 867 00:37:11,472 --> 00:37:14,430 ისევე, როგორც ჩვენ უკვე ფაქტორინგული საერთო კოდი და ფაქტორინგი საერთო 868 00:37:14,430 --> 00:37:17,380 სტილის CSS, აქ ძალიან მონაცემთა ბაზაში, 869 00:37:17,380 --> 00:37:21,180 თუ მე მხოლოდ უნდა 02138 ცალსახად იდენტიფიცირება ვინმეს მშობლიურ, 870 00:37:21,180 --> 00:37:25,020 არ შესანახად კემბრიჯის, მასობრივი ყველა darn შესახებ თქვენს მაგიდასთან. 871 00:37:25,020 --> 00:37:29,770 >> ამის ნაცვლად, აქვს ცალკე მაგიდა სახელწოდებით Zips, რომ რა უნდა სვეტები? 872 00:37:29,770 --> 00:37:33,490 ალბათ ID სფეროში, უბრალოდ იმიტომ, რომ პრინციპები, ჩვენ ვსაუბრობთ ახლა. 873 00:37:33,490 --> 00:37:35,720 ალბათ zip სფეროში 02138. 874 00:37:35,720 --> 00:37:38,400 და მერე, ალბათ, სხვა რა სვეტები? 875 00:37:38,400 --> 00:37:42,950 ქალაქი და სახელმწიფო, მაგრამ მხოლოდ ერთი ზედიზედ 02138, ერთი რიგის 02139, 876 00:37:42,950 --> 00:37:44,772 ერთი რიგის 90210. 877 00:37:44,772 --> 00:37:46,730 და ეს არის ფაქტიურად ყველა საფოსტო კოდები ვიცი. 878 00:37:46,730 --> 00:37:49,012 >> ახლა, რა შეგიძლიათ გააკეთოთ? 879 00:37:49,012 --> 00:37:51,220 ეს არის პრობლემატური, რადგან ახლა მაქვს ორ მაგიდას. 880 00:37:51,220 --> 00:37:54,660 ასე რომ, ჩემი წევრებს, ძირითადად, სწორედ აქ, მაგრამ მათი ქალაქი სახელმწიფო საინფორმაციო არის 881 00:37:54,660 --> 00:37:55,390 აქეთ. 882 00:37:55,390 --> 00:37:58,635 ასე რომ, თურმე ერთად SQL, არსებობს რეალურად გზას შეუერთდება ინფორმაციით, 883 00:37:58,635 --> 00:38:00,470 და თქვენ ხედავთ, ამ PSet. 884 00:38:00,470 --> 00:38:03,000 >> მაგრამ აღმოჩნდება, რომ თქვენ შეგიძლიათ რაღაც მოსწონს ეს. 885 00:38:03,000 --> 00:38:10,501 SELECT ვარსკვლავი მომხმარებლებს, შემოგვიერთდით zip არქივის ON მომხმარებლის dot zip ტოლია zip არქივის dot zip. 886 00:38:10,501 --> 00:38:13,360 რომელიც არის პატარა wordy, მართლაც, მაგრამ ეს მხოლოდ 887 00:38:13,360 --> 00:38:17,590 ნიშნავს აირჩიეთ ყველაფერს პროცესს ჩემი მომხმარებლებს მაგიდა 888 00:38:17,590 --> 00:38:19,580 და ჩემი zip არქივის მაგიდასთან. 889 00:38:19,580 --> 00:38:22,120 შეუერთდებიან ერთი სფეროში აქვთ სვეტი. 890 00:38:22,120 --> 00:38:24,780 ასე რომ, ფაქტიურად თავისსავე ასე, და მომეცი უკან 891 00:38:24,780 --> 00:38:27,360 ახალი დროებითი მაგიდა რომ არის ფართო, რომ უფრო დიდი, 892 00:38:27,360 --> 00:38:29,450 რომ აქვს ყველა სვეტების ორივე მათგანი. 893 00:38:29,450 --> 00:38:33,510 და რომ, უბრალოდ, იქნება სინტაქსი აკეთებს რაღაც მსგავსი. 894 00:38:33,510 --> 00:38:35,540 >> ასე რომ, არ არის ეს წინ, მაგრამ იქ 895 00:38:35,540 --> 00:38:38,950 უნდა იყოს სხვა დიზაინის გადაწყვეტილებები თქვენ უნდა მიიღოს, არა მხოლოდ ინდექსები 896 00:38:38,950 --> 00:38:40,550 არამედ გაშვებული შევიდა გამოწვევებს. 897 00:38:40,550 --> 00:38:43,360 ფაქტობრივად, არ არსებობს გამოწვევა ნებისმიერი მონაცემთა ბაზაში დიზაინი 898 00:38:43,360 --> 00:38:47,930 რომლის დროსაც ზოგჯერ ორი ადამიანი დაგვჭირდება წვდომის იგივე რიგები მონაცემთა ბაზა 899 00:38:47,930 --> 00:38:48,530 მაგიდა. 900 00:38:48,530 --> 00:38:51,450 ასე რომ, ეს არის ის, რასაც ჩვენ გამოგიგზავნით ექმნებათ pset7 ისევე. 901 00:38:51,450 --> 00:38:54,686 >> მაგრამ მე მინდა შევხედოთ ერთი თავდასხმა, რომ შესაძლებელი იყო SQL. 902 00:38:54,686 --> 00:38:56,560 რა არის ზოგიერთი პრობლემა, რომელიც შეიძლება წარმოიშვას? 903 00:38:56,560 --> 00:38:58,170 ასე რომ, თქვენ ექმნებათ ამ pset7. 904 00:38:58,170 --> 00:39:01,874 და ჩვენ გეტყვით, აშკარა, თუ რა კოდირების გადაწყვეტა ამ პრობლემის არის. 905 00:39:01,874 --> 00:39:04,790 მაგრამ თუ თქვენ მიიღოს უმაღლესი დონის კლასი, განსაკუთრებით ოპერაციული სისტემები, 906 00:39:04,790 --> 00:39:06,950 თქვენ აპირებს ექმნებათ საკითხი Atomicity, 907 00:39:06,950 --> 00:39:10,080 პრობლემა ცდილობს გააკეთოს მრავალი რამ ერთდროულად 908 00:39:10,080 --> 00:39:11,000 შეუწყვეტლად. 909 00:39:11,000 --> 00:39:14,560 >> და მეგონა, მე მინდა წარმოგიდგინოთ ამ იდეა pset7 მეტაფორა 910 00:39:14,560 --> 00:39:18,160 რომ გავიგე, თავს Margo Seltzer ის CS164 ოპერაციული სისტემები 911 00:39:18,160 --> 00:39:18,990 კლასი წლის წინ. 912 00:39:18,990 --> 00:39:22,230 დავუშვათ, რომ თქვენ ერთი ამ საერთო საცხოვრებელში მაცივრები თქვენი საცხოვრებელი ოთახი ან სახლი, 913 00:39:22,230 --> 00:39:24,474 და თქვენ გაქვთ რეალური მიდრეკილება რძე. 914 00:39:24,474 --> 00:39:27,140 ასე რომ, თქვენ მოვიდა სახლში კატეგორიები ერთ დღეს, თქვენ გახსნა მაცივარი. 915 00:39:27,140 --> 00:39:27,620 ოჰ, რა იგი. 916 00:39:27,620 --> 00:39:28,870 არ არსებობს რძის მაცივარი. 917 00:39:28,870 --> 00:39:32,470 ასე რომ, თქვენ დახურეთ მაცივარი, კარის ჩაკეტვა, დაიბლოკოს თქვენი საერთო საცხოვრებელი, 918 00:39:32,470 --> 00:39:34,770 ფეხით გარშემო კუთხეში რომ CVS, მიიღონ ხაზი, 919 00:39:34,770 --> 00:39:36,312 და დაიწყოს შემოწმების out ზოგიერთი რძე. 920 00:39:36,312 --> 00:39:38,978 და ის აპირებს, ხოლო, იმიტომ, რომ ეს რა თვითმმართველობის checkout 921 00:39:38,978 --> 00:39:40,570 მრიცხველები სამუდამოდ გამოიყენოს მაინც. 922 00:39:40,570 --> 00:39:41,950 ასე რომ, იმავდროულად, თქვენი roommate მოდის სახლში. 923 00:39:41,950 --> 00:39:43,470 იგი ნამდვილად უყვარს რძე, ასევე. 924 00:39:43,470 --> 00:39:45,520 ისინი მოვიდეს საცხოვრებელი ოთახი, გავხსნათ მაცივარი, oh, darn ეს. 925 00:39:45,520 --> 00:39:46,490 არ არსებობს უფრო მეტი რძე. 926 00:39:46,490 --> 00:39:49,040 >> ასე რომ, მას ასევე მიდის გარშემო კუთხეში. 927 00:39:49,040 --> 00:39:51,670 მაგრამ ახლა, მას შემდეგ, რაც იქ, როგორც ორი ან სამი ან ოთხი CVSes მიმდებარე ტერიტორიაზე, 928 00:39:51,670 --> 00:39:53,800 ისინი არ უნდა წავიდეს ერთი სხვადასხვა პირობა მოედანზე. 929 00:39:53,800 --> 00:39:55,830 ასე რომ, ახლა, რამდენიმე წუთში შემდეგ, როგორც თქვენ 930 00:39:55,830 --> 00:39:58,060 მოვა სახლში და ugh, უარესი პრობლემა ოდესმე. 931 00:39:58,060 --> 00:40:00,967 ახლა თქვენ გაქვთ ძალიან ბევრი რძე იმიტომ, რომ ის აპირებს წავიდეს მაწონი. 932 00:40:00,967 --> 00:40:03,050 და გსურთ რძე, მაგრამ თქვენ არ მიყვარს რძე. 933 00:40:03,050 --> 00:40:06,730 >> ახლა, ეს იყო ძვირი შეცდომა, რადგან, როგორც თქვენ 934 00:40:06,730 --> 00:40:09,870 მიიღო გადაწყვეტილება ეფუძნება სახელმწიფო ზოგიერთი ცვლადის რომ 935 00:40:09,870 --> 00:40:12,660 იყო პროცესში იცვლება თუ არა, 936 00:40:12,660 --> 00:40:14,560 ინიციატორი აპირებს მიიღოს რძე. 937 00:40:14,560 --> 00:40:17,785 ასე რომ, რა არის, ალბათ, ადამიანის გამოსავალი, რომ პრობლემა? 938 00:40:17,785 --> 00:40:18,660 აუდიტორია: [INAUDIBLE] 939 00:40:18,660 --> 00:40:19,430 დავით Malan: დატოვე შენიშვნა, არა? 940 00:40:19,430 --> 00:40:21,850 ყოველთვის დატოვონ შენიშვნა, თუ თქვენ იცნობს, რომ შოუ. 941 00:40:21,850 --> 00:40:23,100 დიახ, არსებობს ორი ჩვენგანი. 942 00:40:23,100 --> 00:40:25,940 ასე რომ, ყოველთვის დატოვონ შენიშვნა, ან ფაქტიურად ჩაკეტვა მაცივარი 943 00:40:25,940 --> 00:40:28,602 გარკვეული სახის ბოქლომი ან რაღაც ზე ზევით, როგორიცაა, რომ. 944 00:40:28,602 --> 00:40:31,310 მაგრამ ეს რეალურად იქნება მთავარი პრობლემა მონაცემთა ბაზის დიზაინი, 945 00:40:31,310 --> 00:40:34,710 განსაკუთრებით მაშინ, როდესაც თქვენ შეიძლება ჰქონდეს სხვადასხვა ბრაუზერები, მრავალი ლაპტოპები, 946 00:40:34,710 --> 00:40:37,450 მრავალჯერადი მომხმარებლებს ყველა ცდილობს განაახლოთ ინფორმაცია ერთდროულად. 947 00:40:37,450 --> 00:40:40,590 განსაკუთრებით მგრძნობიარე ინფორმაცია ფინანსური ინფორმაცია, 948 00:40:40,590 --> 00:40:43,350 რომლის დროსაც ერთად სავაჭრო ნახვა როგორც თქვენ მშენებლობის, 949 00:40:43,350 --> 00:40:47,270 თუ თქვენ გსურთ შეამოწმოთ რამდენად ფული თქვენ და თუ თქვენ გაქვთ საკმარისი, 950 00:40:47,270 --> 00:40:48,490 ყიდვა ზოგიერთი საფონდო? 951 00:40:48,490 --> 00:40:50,899 >> მაგრამ რა, თუ ვინმე სხვა ვინც აქვს ერთობლივი ანგარიში თქვენ 952 00:40:50,899 --> 00:40:52,690 იმავდროულად ცდილობს ყიდვა ზოგიერთი საფონდო? 953 00:40:52,690 --> 00:40:55,190 ასე რომ, იგი შემოწმების ანგარიშის ბალანსი, როგორც თქვენ 954 00:40:55,190 --> 00:40:57,540 დავუბრუნდეთ იგივე პასუხი, არ არსებობს რძე. 955 00:40:57,540 --> 00:41:00,580 ან ორივე თქვენ დავუბრუნდეთ პასუხი, თქვენ გაქვთ $ 100 ანგარიშზე. 956 00:41:00,580 --> 00:41:04,680 როგორც თქვენ ცდილობენ, რომ გადაწყვეტილება ყიდვა ერთი წილი ზოგიერთი კომპანია საფონდო. 957 00:41:04,680 --> 00:41:06,130 >> და ახლა, რა ხდება? 958 00:41:06,130 --> 00:41:07,140 თქვენ გაქვთ ორი აქციები? 959 00:41:07,140 --> 00:41:08,420 თქვენ არ გაქვთ აქციები? 960 00:41:08,420 --> 00:41:10,320 პრობლემები, როგორიცაა, რომელიც შეიძლება წარმოიშვას. 961 00:41:10,320 --> 00:41:11,755 ასე რომ, ჩვენ ექმნებათ, რომ. 962 00:41:11,755 --> 00:41:14,630 SQL ინექცია თავდასხმები, საბედნიეროდ, არის რაღაც ჩვენ დაგეხმაროთ, 963 00:41:14,630 --> 00:41:17,430 მაგრამ ეს არის atrociously საერთო ამ დღეებში მაინც. 964 00:41:17,430 --> 00:41:18,680 ასე რომ, ეს არის მაგალითი. 965 00:41:18,680 --> 00:41:21,290 მე არ აცხადებს, რომ ჰარვარდის PIN სისტემა 966 00:41:21,290 --> 00:41:23,130 დაუცველი ამ კონკრეტულ თავდასხმა. 967 00:41:23,130 --> 00:41:24,160 ჩვენ შევეცადეთ. 968 00:41:24,160 --> 00:41:26,120 მაგრამ, თქვენ იცით, რომ ჩვენ აქვს სფეროში მოსწონს ეს. 969 00:41:26,120 --> 00:41:29,620 და იელის წმინდა ID აქვს მსგავსი ეძებს ეკრანზე ამ დღეებში. 970 00:41:29,620 --> 00:41:33,190 და აღმოჩნდება, რომ, შესაძლოა, PIN სისტემაში ხორციელდება PHP. 971 00:41:33,190 --> 00:41:37,050 >> და თუ ეს ვიყავით ეს not-- ისინი შეიძლება აქვს კოდი, რომელიც ასე გამოიყურება. 972 00:41:37,050 --> 00:41:38,210 მათ აქვთ ორი ცვლადი. 973 00:41:38,210 --> 00:41:42,495 მომეცი სახელი და პაროლი პოსტი სუპერ გლობალური ცვლადი 974 00:41:42,495 --> 00:41:43,970 რომ ჩვენ ვისაუბრეთ ადრე. 975 00:41:43,970 --> 00:41:47,310 იქნებ ჰარვარდის აქვს შეკითხვის როგორც SELECT ვარსკვლავი მომხმარებლები 976 00:41:47,310 --> 00:41:50,005 სადაც სახელი უტოლდება, რომ და პაროლი შეადგენს, რომ. 977 00:41:50,005 --> 00:41:51,880 და შენიშნავს, რომ მე მხოლოდ ჩართვის ის გამოყენებით 978 00:41:51,880 --> 00:41:55,050 Curly გაუწიოს notation სხვა დღეს, რაც იმას ნიშნავს, უბრალოდ შეაერთედ მნიშვნელობა 979 00:41:55,050 --> 00:41:55,550 აქ. 980 00:41:55,550 --> 00:41:57,449 მე არ გამოყენებით კითხვის ნიშნის ტექნიკით. 981 00:41:57,449 --> 00:41:59,240 მე არ მაქვს არანაირი მეორე ან მესამე არგუმენტები. 982 00:41:59,240 --> 00:42:02,350 მე უბრალოდ სიტყვასიტყვით მშენებლობის სიმებიანი თავს. 983 00:42:02,350 --> 00:42:04,930 >> პრობლემა, თუმცა, ის არის, რომ თუ ვინმე მინდა scroob, 984 00:42:04,930 --> 00:42:09,020 რომელიც არის მინიშნება ფილმი, ჟურნალი ერთად რაღაც მსგავსი, 985 00:42:09,020 --> 00:42:11,250 და მე ამოღებულ წერტილები რომელიც, როგორც წესი დაფაროს 986 00:42:11,250 --> 00:42:14,370 პაროლები, რა, თუ იგი არ არის განსაკუთრებით მუქარის 987 00:42:14,370 --> 00:42:18,860 და მისი დაგავიწყდათ იქნებ არის 12345, თითო ფილმი სახელწოდებით "Spaceballs" 988 00:42:18,860 --> 00:42:21,970 მაგრამ მან კრიტიკულად ტიპები ერთ პასუხის შემდეგ ხუთი, 989 00:42:21,970 --> 00:42:24,790 მაშინ ფაქტიურად, სიტყვა ან სივრცეში, და შემდეგ ციტირებით 990 00:42:24,790 --> 00:42:29,160 unquote ერთი უდრის პასუხის ერთი, მაგრამ შეამჩნია ის გამოტოვებული რა? 991 00:42:29,160 --> 00:42:32,700 ის გამოტოვებული პასუხის მარჯვენა და ის გამოტოვებული პასუხის მარცხენა. 992 00:42:32,700 --> 00:42:35,170 >> იმიტომ, რომ თუ ეს თავდამსხმელი scroob ის პრეზუმფციის 993 00:42:35,170 --> 00:42:38,160 ის არის, რომ ხალხი, ვინც წერდა ამ PHP კოდი არ იყო იმდენად ნათელი, 994 00:42:38,160 --> 00:42:42,990 შესაძლოა, ისინი მხოლოდ გარკვეული ერთი მოჰყავს გარშემო ინტერპოლაცია 995 00:42:42,990 --> 00:42:45,210 ცვლადი in curly braces? 996 00:42:45,210 --> 00:42:48,620 ასე რომ, შესაძლოა, მას სახის სრული მათი აზრის 997 00:42:48,620 --> 00:42:53,290 მათთვის, მაგრამ ისე, რომ აპირებს დაე კალენდარი შევიდა PIN სისტემა. 998 00:42:53,290 --> 00:42:55,310 სხვა სიტყვებით, ვფიქრობ, რომ ეს არის კოდი 999 00:42:55,310 --> 00:42:57,140 და ახლა ჩვენ შეაერთედ რა scroob აკრეფილი. 1000 00:42:57,140 --> 00:42:58,770 და ეს წითელი, იმიტომ, რომ ეს ცუდია. 1001 00:42:58,770 --> 00:43:01,310 >> და ძირითადი ტექსტი არის ის, რაც აკრეფილი, 1002 00:43:01,310 --> 00:43:05,510 scroob შეეძლო Trick ჰარვარდის სერვერზე შევიდა აშენებს SQL query 1003 00:43:05,510 --> 00:43:07,440 სიმებიანი რომ ასე გამოიყურება. 1004 00:43:07,440 --> 00:43:11,760 პაროლი უდრის 12345 ან ერთი უდრის. 1005 00:43:11,760 --> 00:43:14,820 შედეგი, რომელიც, ლოგიკურად, არის, რომ ეს იქნება შეხვიდეთ scroob 1006 00:43:14,820 --> 00:43:18,360 იმ შემთხვევაში, თუ მისი პაროლი 12345 ან თუ ერთი ტოლობის 1007 00:43:18,360 --> 00:43:22,660 ერთ-ერთი, რომელიც რა თქმა უნდა, ყოველთვის ასეა, რაც იმას ნიშნავს, scroob ყოველთვის იღებს. 1008 00:43:22,660 --> 00:43:26,060 >> ასე რომ, გზა დაფიქსირება ამ, როგორც ბევრი შემთხვევა, 1009 00:43:26,060 --> 00:43:28,140 იქნება წერა დაცვას. 1010 00:43:28,140 --> 00:43:30,390 იმისათვის, რომ გამოიყენოთ რაღაც ჩვენი ფაქტობრივი შეკითხვის ფუნქცია, რომელიც 1011 00:43:30,390 --> 00:43:33,980 დაინახავთ pset7, სადაც ჩვენ შეაერთედ რაღაც კითხვის ნიშნები აქ. 1012 00:43:33,980 --> 00:43:35,980 და სილამაზე შეკითხვის ფუნქცია, რომ ჩვენ 1013 00:43:35,980 --> 00:43:40,010 გაძლევთ არის ის იცავს ამ ე.წ. SQL ინექცია თავდასხმები, სადაც 1014 00:43:40,010 --> 00:43:44,260 ვინმე არის tricking თქვენი კოდი შევიდა ინექციური საკუთარი SQL კოდი. 1015 00:43:44,260 --> 00:43:47,380 იმის გამო, რომ ის, რაც შეკითხვის ფუნქცია ჩვენ მოგაწვდით რეალურად გააკეთებს, 1016 00:43:47,380 --> 00:43:51,270 თუ თქვენ იყენებთ კითხვის ნიშნის სინტაქსი და მეორე და მესამე არგუმენტი აქ, 1017 00:43:51,270 --> 00:43:54,590 არის რას დავამატოთ შეტანის, რომ მომხმარებელს გათვალისწინებული? 1018 00:43:54,590 --> 00:43:56,060 ისინი წარმატებული მოჰყავს. 1019 00:43:56,060 --> 00:43:58,590 >> ასე რომ, ეს escapes ნებისმიერი პოტენციურად საშიში გმირები. 1020 00:43:58,590 --> 00:44:01,000 ეს გამოიყურება უცნაური ახლა, მაგრამ ეს არ არის დაუცველი 1021 00:44:01,000 --> 00:44:03,260 იმიტომ, რომ ეს არ არის შეცვლა ლოგიკა აღარ 1022 00:44:03,260 --> 00:44:06,470 იმიტომ, რომ მთელი პაროლი ახლა ერთი გაცემა, რომელიც არ არის, 1023 00:44:06,470 --> 00:44:07,596 ფაქტობრივად, scroob პაროლი. 1024 00:44:07,596 --> 00:44:09,845 ასე რომ, არსებობს გარკვეული ხუმრობები ამ წლების განმავლობაში. 1025 00:44:09,845 --> 00:44:12,570 ასე რომ, ეს იყო გადაღებული ფოტო ზოგიერთი geek ავტოსადგომზე 1026 00:44:12,570 --> 00:44:16,620 რომლის დროსაც თქვენ ალბათ იცით, რომ ზოგიერთ ქალაქებში სახელმწიფოები და ცდილობენ სკანირების თქვენი ლიცენზია 1027 00:44:16,620 --> 00:44:19,460 დისკო ანგარიშსწორება თქვენ ან ბილეთი თქვენ თუ თქვენ გავლა გარეშე, ისევე, 1028 00:44:19,460 --> 00:44:20,660 E-Z Pass რამ. 1029 00:44:20,660 --> 00:44:24,490 ასე რომ, ამ პირის წინააღმდეგ, რომ, შესაძლოა, ადამიანები, წერილობით E-Z Pass სისტემა 1030 00:44:24,490 --> 00:44:28,240 არ იყო ასე ნათელი, და შესაძლოა, ისინი უბრალოდ concatenated ერთად სიმებიანი, 1031 00:44:28,240 --> 00:44:32,190 ისე, რომ მას არ შეეძლო ბოროტად არა მხოლოდ შეავსოთ მათი აზრის, 1032 00:44:32,190 --> 00:44:35,150 მაგრამ რეალურად შეასრულოს ცუდი ბრძანება, რომელიც ჩვენ არ არის ნახსენები არ არის, 1033 00:44:35,150 --> 00:44:36,380 მაგრამ თქვენ ალბათ შეუძლია გამოიცნოს. 1034 00:44:36,380 --> 00:44:39,820 რომ გარდა წაშლა და ჩადეთ და განახლება და შერჩევა, 1035 00:44:39,820 --> 00:44:43,370 არსებობს ასევე სიტყვით მოუწოდა წვეთი, რომელიც ფაქტიურად შლის ყველაფერი 1036 00:44:43,370 --> 00:44:45,300 მონაცემთა ბაზა, რომელიც განსაკუთრებით ცუდი. 1037 00:44:45,300 --> 00:44:48,760 >> ჩვენ შეგვიძლია ზომით ეს თუ ეს არის პატარა მკაცრი ვხედავთ. 1038 00:44:48,760 --> 00:44:52,300 ეს, ახლა, არის ცნობილი მულტფილმი რომ შესანიშნავად ჭკვიანი ახლა 1039 00:44:52,300 --> 00:44:53,145 და გასაგები. 1040 00:44:53,145 --> 00:45:00,880 1041 00:45:00,880 --> 00:45:04,750 >> [სიცილის] 1042 00:45:04,750 --> 00:45:05,910 >> ჰო, მაგარი. 1043 00:45:05,910 --> 00:45:06,800 კეთილი geeking out. 1044 00:45:06,800 --> 00:45:08,800 ასე რომ, ეს, მაშინ, SQL ინექცია თავდასხმები. 1045 00:45:08,800 --> 00:45:13,050 და ისინი ისე ადვილია, რათა თავიდან ავიცილოთ გამოყენებით სწორი კოდი ან უფლება ბიბლიოთეკები. 1046 00:45:13,050 --> 00:45:15,947 და დაინახავთ pset7, რომ ის ამიტომ, ჩვენ გაძლევთ შეკითხვის ფუნქცია. 1047 00:45:15,947 --> 00:45:17,780 ასე რომ, რამდენიმე teasers რომ გვეგონა ჩვენ გვინდა 1048 00:45:17,780 --> 00:45:19,930 გაძლევთ აქ ჩვენს დარჩენილი წუთების ერთად. 1049 00:45:19,930 --> 00:45:24,030 ასე რომ, როგორც გახსოვთ, კვირაში ნულოვანი, ჩვენ გააცნო ამ ორი ნათურებით, რომელიც 1050 00:45:24,030 --> 00:45:26,610 კარგია, არა მხოლოდ იმიტომ, ისინი საკმაოდ და ფერადი, 1051 00:45:26,610 --> 00:45:29,450 არამედ იმიტომ, რომ ისინი მხარს უჭერენ რაღაც მოუწოდა API, განაცხადის 1052 00:45:29,450 --> 00:45:31,980 ინტერფეისი და ამ CS50 ჯერჯერობით, ჩვენ გვაქვს 1053 00:45:31,980 --> 00:45:34,440 ძირითადად GET და POST, მაგრამ აღმოჩნდება, 1054 00:45:34,440 --> 00:45:37,390 არსებობს სხვა HTTP ზმნები, როგორიცაა PUT. 1055 00:45:37,390 --> 00:45:39,430 >> და სინამდვილეში, ეს იყო სლაიდ კვირაში ნულოვანი 1056 00:45:39,430 --> 00:45:44,930 რომლის მიხედვითაც, თუ წერთ კოდი, რომელიც აგზავნის a la pset6 HTTP მოთხოვნის, რომ 1057 00:45:44,930 --> 00:45:49,647 ასე გამოიყურება ეს ბლოკი ტექსტი ბოლოში, რომელსაც JSON, 1058 00:45:49,647 --> 00:45:52,230 ან JavaScript Object ნოტაცია რომ ჩვენ ვსაუბრობთ მომავალ კვირას, 1059 00:45:52,230 --> 00:45:57,030 შეგიძლიათ ჩართოთ ან გამორთოთ ან იცვლება ფერი განათება, როგორც იმ. 1060 00:45:57,030 --> 00:46:00,480 ასე რომ, თუ CS50 ასევე აქვს გარდა ზოგიერთი იმ ნათურები აქ New Haven 1061 00:46:00,480 --> 00:46:02,480 თუ გსურთ სესხის მათ საბოლოო პროექტები, 1062 00:46:02,480 --> 00:46:04,370 ასევე ზოგიერთი Microsoft Bands, რომლებიც მოსწონს 1063 00:46:04,370 --> 00:46:07,619 საათები, რომ თქვენ აცვიათ გარშემო მაჯის რომ ასეთივე აქვს API ასე რომ თქვენ 1064 00:46:07,619 --> 00:46:10,040 შეგიძლიათ დაწეროთ თქვენი პროგრამული უზრუნველყოფა მათთვის. 1065 00:46:10,040 --> 00:46:12,490 >> ჩვენ გვყავს ანგარიში Apple- ის iOS კოდი ისე, 1066 00:46:12,490 --> 00:46:15,510 იმ შემთხვევაში, თუ თქვენ გაქვთ Apple Watch ან iPhone ან iPad და iPod, 1067 00:46:15,510 --> 00:46:17,707 თქვენ შეგიძლიათ დაწეროთ კოდი, რომელიც რეალურად გადის იმ. 1068 00:46:17,707 --> 00:46:19,540 ჩვენ გვაქვს მთელი bunch საქართველოს Arduinos, რომლებიც 1069 00:46:19,540 --> 00:46:22,010 პატარა კომპიუტერები გარეშე შემთხვევა, არსებითად, 1070 00:46:22,010 --> 00:46:25,240 რომელიც შეგიძლიათ დაკავშირება მეშვეობით USB, როგორც წესი, საკუთარი Mac ან PC, 1071 00:46:25,240 --> 00:46:28,810 დაწერა კოდი, რომელიც ეშვება ამ ფიზიკური მოწყობილობა, რომელიც ხშირად აქვთ სენსორები მათ 1072 00:46:28,810 --> 00:46:30,790 ასე რომ თქვენ შეგიძლიათ ურთიერთქმედება რეალურ სამყაროში. 1073 00:46:30,790 --> 00:46:32,860 ჩვენ გვაქვს მთელი bunch საქართველოს Leap Motion მოწყობილობები, 1074 00:46:32,860 --> 00:46:36,500 რომლებიც USB მოწყობილობები Macs და კომპიუტერები, აქ და კიდევ ერთხელ, New Haven. 1075 00:46:36,500 --> 00:46:40,080 და თუ თქვენ დააკავშირებს მას თქვენს Mac, თქვენ შეგიძლიათ რეალურად აკონტროლოთ თქვენი კომპიუტერის 1076 00:46:40,080 --> 00:46:42,550 წერილობით პროგრამული უზრუნველყოფა რომ მეშვეობით ინფრაწითელი სხივების, 1077 00:46:42,550 --> 00:46:46,360 გათვლით, სადაც თქვენი ადამიანის ხელში არიან, კი არ ეხება თქვენს კლავიატურაზე. 1078 00:46:46,360 --> 00:46:49,135 გვეგონა ჩვენ ავღნიშნო გაუზიაროს სწრაფი ერთი შეხედვით ეს, მაგალითად. 1079 00:46:49,135 --> 00:46:51,428 >> [მუსიკის დაკვრა] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 ასე რომ, ჩვენ გვაქვს მთელი რამოდენიმე ეს ყველაფერი, 1082 00:47:57,590 --> 00:48:01,040 ძალიან, მოუწოდა Myo arm შემსრულებლები რომელიც დააყენა მეტი მხარის ზემოთ დაიკავეს 1083 00:48:01,040 --> 00:48:04,595 და შემდეგ შეგიძლიათ აკონტროლოთ უძრავი მსოფლიოს ან ვირტუალურ სამყაროში მოსწონს ეს. 1084 00:48:04,595 --> 00:48:06,471 >> [მუსიკის დაკვრა] 1085 00:48:06,471 --> 00:49:17,580 1086 00:49:17,580 --> 00:49:20,920 ან, ასევე გვაქვს Google მუყაო, რომელიც სიტყვასიტყვით, ისევე, 1087 00:49:20,920 --> 00:49:24,841 მუყაოს ყუთში თქვენ შეეძლო თქვენი სახე, მაგრამ slide თქვენი ტელეფონი შევიდა 1088 00:49:24,841 --> 00:49:27,590 ასე, რომ თქვენ დააყენა მინის თქვენი ტელეფონი მართლაც ახლოს თქვენს თვალში. 1089 00:49:27,590 --> 00:49:30,190 და Google მუყაო საკმაოდ იაფი $ 10 ან $ 20. 1090 00:49:30,190 --> 00:49:32,230 და მას აქვს პატარა ლინზები რომ ოდნავ ცვლის 1091 00:49:32,230 --> 00:49:35,900 იმიჯი ეკრანზე თქვენი ადამიანის თვალები გადმოგცეთ გრძნობა სიღრმე 1092 00:49:35,900 --> 00:49:39,550 ასე რომ თქვენ რეალურად აქვს 3D გარემოს წინაშე. 1093 00:49:39,550 --> 00:49:42,927 ჩვენ ასევე გვაქვს Samsung Gear, რომელიც არის უფრო ძვირი ვერსია, 1094 00:49:42,927 --> 00:49:46,010 მაგრამ ეს შეიძლება ასეთივე ლღობას წელს Android ტელეფონი და მოგცემთ იმის ილუზია, 1095 00:49:46,010 --> 00:49:48,309 of-- ან მისცეს გამოცდილება ვირტუალური რეალობა. 1096 00:49:48,309 --> 00:49:50,850 და ჩვენი საბოლოო ორი წუთი, გვეგონა ჩვენ გვინდა ცდილობენ ამის გაკეთება. 1097 00:49:50,850 --> 00:49:55,250 თუ შემიძლია პროექტის რა კოლტონი აქვს აქ მხოლოდ whet თქვენი მადა, 1098 00:49:55,250 --> 00:49:58,442 ნება მომეცით წავიდეთ წინ და სახიფათოა up დიდ ეკრანზე აქ. 1099 00:49:58,442 --> 00:49:59,400 მიადევნე თვალი მოკვლა განათება. 1100 00:49:59,400 --> 00:50:02,290 კოლტონი, გინდათ წავიდეთ წინ და ამით თქვენს მობილურ ერთი წუთით 1101 00:50:02,290 --> 00:50:05,171 და მოდის მეტი შუა ეტაპზე? 1102 00:50:05,171 --> 00:50:07,420 და არ გსურთ project-- ეს არის ის, რაც კოლტონი ხედავს. 1103 00:50:07,420 --> 00:50:10,560 >> ახლა, Wi-Fi აქ არის არ არის იმდენად ძლიერი ამ მოწყობილობის 1104 00:50:10,560 --> 00:50:13,870 რომ ეს არის სუპერ მყარი, მაგრამ კოლტონი ფაქტიურად 1105 00:50:13,870 --> 00:50:15,710 ამ ჯადოსნური ფუტურისტულ ადგილი. 1106 00:50:15,710 --> 00:50:16,796 მან მხოლოდ ხედავს ერთი იმიჯი. 1107 00:50:16,796 --> 00:50:19,920 თქვენ ხედავს მისი მარცხენა და მარჯვენა თვალის რომ მისი ტვინის stitching ერთად 1108 00:50:19,920 --> 00:50:22,260 სამ განზომილებიანი გარემოს სახეზე. 1109 00:50:22,260 --> 00:50:24,319 ის უბრალოდ შერჩეული მენიუ ვარიანტი აქ. 1110 00:50:24,319 --> 00:50:27,360 ასე რომ, კიდევ ერთხელ, ის ეცვა ამ ყურსასმენის ერთად Samsung ტელეფონი, რომ არის 1111 00:50:27,360 --> 00:50:29,080 უკაბელო პროექტირება ჩვენი ოვერჰედის. 1112 00:50:29,080 --> 00:50:30,349 ახლა თქვენ მარსზე, ვფიქრობ? 1113 00:50:30,349 --> 00:50:31,140 COLTON: მე ასე ვფიქრობ. 1114 00:50:31,140 --> 00:50:32,181 მე არ ვარ დარწმუნებული [INAUDIBLE]. 1115 00:50:32,181 --> 00:50:34,250 [სიცილის] 1116 00:50:34,250 --> 00:50:36,374 >> დავით Malan: თურმე Mars აქვს ამ მენიუები. 1117 00:50:36,374 --> 00:50:41,590 >> COLTON: [INAUDIBLE] ზოგიერთი cool ადგილები, თუ ჩვენ გვინდა წასვლა, რომელთა მიზანია: 1118 00:50:41,590 --> 00:50:43,330 >> დავით Malan: სად გვინდა წასვლა? 1119 00:50:43,330 --> 00:50:45,837 >> COLTON: [INAUDIBLE] 1120 00:50:45,837 --> 00:50:48,170 დავით Malan: მოდით ვნახოთ სადაც კოლტონი აღების ახლა. 1121 00:50:48,170 --> 00:50:48,961 COLTON: [INAUDIBLE] 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> დავით Malan: ასე, რომ იქ ამდენი სხვადასხვა ადგილას შეგიძლიათ მიიღოს თავს. 1124 00:50:56,380 --> 00:51:00,590 არსებობს FAPIs მეშვეობით, რომელიც შეგიძლიათ წერენ თამაშები და ურთიერთობებზე, 1125 00:51:00,590 --> 00:51:01,950 აწარმოებს, საბოლოო ჯამში, ტელეფონით. 1126 00:51:01,950 --> 00:51:03,908 ასე რომ, თქვენ ნამდვილად წერა მობილური ტელეფონი app. 1127 00:51:03,908 --> 00:51:06,380 თუმცა, პროგრამული უზრუნველყოფა და გრაფიკული შესაძლებლობები, 1128 00:51:06,380 --> 00:51:08,765 ახლა კოლტონი არის ამ პატარა კოტეჯი. 1129 00:51:08,765 --> 00:51:10,515 და რისკის აბსოლუტური თავს, 1130 00:51:10,515 --> 00:51:13,330 კოლტონი და მე გამყარებაში გარშემო ხოლო ბოლოს კლასის დღეს აქ 1131 00:51:13,330 --> 00:51:14,300 თუ გსურთ ამუშავება და ითამაშოს. 1132 00:51:14,300 --> 00:51:16,350 და ჩვენ, რათა მათ მომდევნო კვირას, ისევე. 1133 00:51:16,350 --> 00:51:18,420 გარეშე, ado ეს არის ის დღეს. 1134 00:51:18,420 --> 00:51:21,990 ჩვენ დავინახავთ, თქვენ მომავალ კვირას. 1135 00:51:21,990 --> 00:51:24,140 >> [მუსიკა - Ragga TWINS "ცუდი კაცი"] 1136 00:51:24,140 --> 00:55:23,146