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