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 DAVID مالان: كل الحق، وهذا هو 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 على 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 الفيسبوك يخزن بالتأكيد الكثير من البيانات حول كل واحد منا و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 الذهاب إلى الاستفادة من الوقت الحقيقي بيانات المخزون من ياهو المالية. 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 هل تعرف قاعدة بيانات لتكون في الوقت الراهن، حيث غير تقني؟ 33 00:01:30,790 --> 00:01:32,300 ما هذا؟ 34 00:01:32,300 --> 00:01:36,882 كيف تصف ذلك إلى الحجرة أو صديق؟ 35 00:01:36,882 --> 00:01:40,100 >> الحضور: (غير مسموع) المعلومات (غير مسموع) 36 00:01:40,100 --> 00:01:44,430 >> DAVID مالان: إذن، قائمة من المعلومات، أو 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 إذا كنت من مستخدمي في الفيسبوك أو جوجل، ما هي خصائص 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 حقا كملف اكسل يتوهم أو جوجل جدول بيانات أو أبل ملف أرقام. 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 >> الحضور: A الاسم. 49 00:02:12,470 --> 00:02:13,303 >> DAVID مالان: A الاسم. 50 00:02:13,303 --> 00:02:16,840 حتى إذا كان اسم، مثل، ديفيد مالان سيكون اسم بعض المستخدمين. 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 مالان: معرف. 54 00:02:19,561 --> 00:02:23,320 لذلك، مثل رقم الهوية، مثل هارفارد بك ID الخاص بك أو ييل صافي 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 >> DAVID مالان: كلمة مرور، ربما ل عنوان، وربما رقم الهاتف، ربما 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 بسرعة بمجرد بدء تحقيق، أوه، دعونا تخزين هذه 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 ويمكنك أن تتخيل جوجل جداول البيانات أو أي عدد من البرامج الأخرى. 68 00:02:48,309 --> 00:02:52,130 ولكن ما هو مفتاح عن الخلية، وهو برنامج قواعد البيانات ونحن في طريقنا للاستخدام، 69 00:02:52,130 --> 00:02:54,920 لعلنا بحرية available-- استخدامات الفيسبوك 70 00:02:54,920 --> 00:02:59,200 انها وأي عدد من websites-- الآخر قاعدة بيانات تخزن أشياء علائقي. 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 >> لذلك، حتى شيء مثل أوراكل التي كنت قد سمعت عموما 75 00:03:07,230 --> 00:03:08,271 هي قاعدة بيانات علائقية. 76 00:03:08,271 --> 00:03:10,929 وتحت غطاء محرك السيارة، فإنه مخازن البيانات في الصفوف والأعمدة. 77 00:03:10,929 --> 00:03:12,970 وأوراكل تتهم لكم الكثير من المال للقيام بذلك، 78 00:03:12,970 --> 00:03:15,550 في حين أن رسوم الخلية لكم شيئا لنفسه. 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 نوع العملية متعة بناء النهاية الخلفية من المواقع، 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، العشرى، وDATETIME. 97 00:04:08,107 --> 00:04:09,940 وهناك ككل باقة من الميزات الأخرى، 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 ل هذه الأداة تسمى 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 لذلك، وهذا هو مثل الملف الذي I تريد تخزين كافة البيانات الخاصة بي في. 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 وانا ذاهب الى المضي قدما وانقر فوق انتقال. 118 00:04:57,360 --> 00:04:59,210 وبعد ذلك، لهذه الأعمدة، ما أنا ذاهب 119 00:04:59,210 --> 00:05:04,576 لdo-- إذا كان هذا الانترنت 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 لذلك، كل ما أراه here-- واجهة يحصل بصراحة قبيحة قليلا في نهاية المطاف، 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 وأحد هذه الحقول I أريد أن يسمى اسم المستخدم، 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 وجوجل جداول البيانات، 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 الآن في جوجل جداول البيانات أو إكسل، كنت قد تحدد كيف يتم تقديم البيانات. 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 الآن، على الرغم من قبل لحظة I وقال هناك أنواع البيانات فقط بضع، 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 مثل هندستها التخزين داخل قاعدة بيانات. 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 وتصل إلى هنا، كل ما يسمى أنواع السلسلة. 153 00:06:26,800 --> 00:06:29,240 >> لذلك، وهنا لائحة من مجموعة كاملة من الخيارات. 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 >> الحضور: (غير مسموع) 164 00:06:53,920 --> 00:06:55,050 >> DAVID مالان: 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 >> الحضور: (غير مسموع) 179 00:07:26,480 --> 00:07:27,160 >> DAVID مالان: نعم، فقط جعل كل منهم لاغية. 180 00:07:27,160 --> 00:07:28,290 جعلها مسافات. 181 00:07:28,290 --> 00:07:30,816 ولكن ربما لاغية، وذلك على الكثير من الأصفار مائل. 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 >> الحضور: (غير مسموع) 203 00:08:21,855 --> 00:08:23,700 DAVID مالان: 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 لانهائي من غير الممكن تماما، لأننا في نهاية المطاف 208 00:08:32,740 --> 00:08:34,781 الذهاب إلى have-- نحن الذهاب إلى نفاد الذاكرة. 209 00:08:34,781 --> 00:08:36,909 لذلك، علينا أن جعل دعوة الحكم في مرحلة ما. 210 00:08:36,909 --> 00:08:41,010 >> شائعة جدا سيكون، على سبيل المثال، لuse-- واسمحوا لي أن تحديد CHAR هنا 211 00:08:41,010 --> 00:08:46,050 كما before-- 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 حرف زائد، 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 الأحرف أكبر من الولايات المتحدة ذاتها تلك التي تركز قمنا تميل إلى مناقشة. 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 وأود أن يخطئ على الجانب شيء أعلى. 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 >> الحضور: (غير مسموع) 235 00:09:34,230 --> 00:09:34,510 >> DAVID مالان: ما هذا؟ 236 00:09:34,510 --> 00:09:35,430 >> الحضور: (غير مسموع) 237 00:09:35,430 --> 00:09:37,138 >> DAVID مالان: إنها الكثير من الذاكرة، أليس كذلك؟ 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 ربما ستة بايت مثل حرف فارغة زائدة، 251 00:10:18,120 --> 00:10:23,330 وليس إنفاق مبلغ إضافي 249 أو 250 بايت دون داع. 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 DAVID مالان: الإملاء؟ 263 00:10:52,146 --> 00:10:53,120 الحضور: يجعلها أبطأ؟ 264 00:10:53,120 --> 00:10:53,970 DAVID مالان: أوه، أنها أبطأ. 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 >> الحضور: (غير مسموع) تحديد (غير مسموع). 271 00:11:05,830 --> 00:11:06,640 >> DAVID مالان: جيد. 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 تحت غطاء محرك السيارة، وربما 276 00:11:16,963 --> 00:11:19,610 هذا ما تقوم به الخلية، لذلك بالتأكيد يمكن أن يكون عليه الحال. 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 يجري بالضبط نفس الطول، حتى إذا في مجمله مجموعة من تلك الأحرف 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 >> الحضور: (غير مسموع) 292 00:12:03,240 --> 00:12:04,310 >> DAVID مالان: انظروا من خلال التتبع 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 الحضور: (غير مسموع) 296 00:12:09,230 --> 00:12:11,105 DAVID مالان: أبحث لالإنهاء فارغة 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 هذه هي في الواقع قرارات غير بديهي. 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 الاسم، لاغيا؟ 307 00:12:36,370 --> 00:12:37,610 وهذا هو، فقط فارغة. 308 00:12:37,610 --> 00:12:40,360 يشعر معنى لها قليلا، لذلك أنا لن تحقق تلك الصناديق. 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 >> الآن، هناك هذه القائمة المنسدلة. 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 ان كنت تعلم في مثل 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 >> الحضور: (غير مسموع) 345 00:14:17,889 --> 00:14:19,930 DAVID مالان: نعم، اسم المستخدم يجب أن يكون فريدا. 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 فهرس فريد هو واحد هذا فهرسة لأداء بسرعة فائقة، 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 لا، لأنك يمكن بالتأكيد have-- هناك أي اثنين ديفيد 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 >> فكر في العودة إلى تجزئة الجداول وما شابه ذلك. 365 00:15:16,130 --> 00:15:18,604 لذلك، ونحن بالتأكيد لا نريد لجعل حقل اسم فريدة من نوعها. 366 00:15:18,604 --> 00:15:21,270 لذلك، نحن ذاهبون لمجرد ترك كما أن اندفاع، اندفاعة، اندفاعة، لا شيء. 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 I انقر فوق حفظ، وجدا، جدا، جدا ببطء لا قاعدة البيانات الحصول على حفظها. 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 تلك ليست سوى الافتراضي الإعدادات، لأن الخلية أصلا، 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 >> إذا كنت ترغب في إدراج صف جديد في بلدي قاعدة بيانات لأنه قد قدم شخص ما 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 والان انا بحاجة لإدراج شيء من هذا القبيل مالان، والاقتباس، 395 00:16:57,480 --> 00:17:01,490 نهاية الاقتباس "ديفيد مالان". والان حتى بالنسبة لأولئك غير مألوفة مع 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 لذلك، الاقتباس، نهاية الاقتباس مالان والاقتباس، نهاية الاقتباس ديفيد مالان هي السلاسل. 409 00:17:41,590 --> 00:17:45,210 ومجرد التفكير بشكل حدسي الآن، معرفة ما تعرفه عن C وPHP، 410 00:17:45,210 --> 00:17:50,220 لماذا لم أفعل هذا، وأنا عادة التنصيص مستعملة السلاسل؟ 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 >> الحضور: (غير مسموع) 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 DAVID مالان: بالضبط. 416 00:17:57,570 --> 00:17:59,653 لأنني بالفعل باستخدام التنصيص على الطريق 417 00:17:59,653 --> 00:18:01,929 خارج من ذي الحجة إلى وظيفة 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 بصراحة، الذي يبدأ فقط ل الحصول على قراءتها جدا وقبيحة. 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، 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 لقد المحددة، ثم، في فاصلة فصل قائمة بالأقواس الاثنين 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 تنفيذ هذا الاستعلام في قاعدة البيانات تشغيل داخل IDE CS50. 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 انها إخراجها الاستعلام بلدي بالنسبة لي هنا فقط لرؤيته 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 رغم أن هناك الكثير من فوضى على الشاشة، مائدتي لديها الآن صفين. 453 00:19:29,070 --> 00:19:30,700 >> لذلك، اسمحوا لي أن نمضي قدما ونفعل آخر. 454 00:19:30,700 --> 00:19:33,760 بدلا من ذلك، اسمحوا لي انتقل إلى علامة التبويب SQL مرة أخرى. 455 00:19:33,760 --> 00:19:40,723 وهذه المرة سوف تضاف شيء من هذا القبيل سوف تسلب واسمه يكون روب بودين. 456 00:19:40,723 --> 00:19:42,330 بودين. 457 00:19:42,330 --> 00:19:44,040 دعونا انقر فوق حفظ. 458 00:19:44,040 --> 00:19:46,140 عفوا، ليس الذهاب. 459 00:19:46,140 --> 00:19:48,890 >> انقر فوق استعراض مرة أخرى، و تلاحظ الآن لدي صفين. 460 00:19:48,890 --> 00:19:52,390 لذلك، وهذا هو مجرد وسيلة أكثر تعقيدا طريق الانفتاح جوجل جداول البيانات 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، أذكر لديك مرحبا نقطة 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 A بصوت أعلى قليلا. 472 00:20:22,522 --> 00:20:23,790 >> الحضور: (غير مسموع) 473 00:20:23,790 --> 00:20:25,030 >> DAVID مالان: إنها الثلوج بذرة المصفوفة، التي 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 >> الحضور: (غير مسموع) 481 00:20:36,994 --> 00:20:37,660 DAVID مالان: لا؟ 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 >> الحضور: (غير مسموع) 489 00:20:50,435 --> 00:20:52,560 DAVID مالان: نعم، هم تأتي من سلسلة الاستعلام. 490 00:20:52,560 --> 00:20:55,380 لذا، إذا كنت الترجيع في وقت ل عندما لعبنا مع جوجل 491 00:20:55,380 --> 00:20:59,600 وانتقلنا إلى Google.com مائل بحث علامة استفهام ف يساوي القطط، 492 00:20:59,600 --> 00:21:03,550 إذا كان لي أن هاهنا، وإذا نفذت جوجل في PHP، 493 00:21:03,550 --> 00:21:07,017 كود PHP ان غوغل كتب سيكون لديك الوصول إلى علامة الدولار 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 انا ذاهب الى ان نعطيكم دعابة من ما هو الرمز الفعلي ستفعل. 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 >> لذلك، إذا كان رمز أننا الكتابة الآن رمز يعمل على خوادم جوجل، 506 00:21:43,420 --> 00:21:46,940 أو إذا كان هذا هو مرحبا نقطة 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 GET، الاقتباس، نهاية الاقتباس اسم المستخدم، ويحصل، واقتبس، اسم نهاية الاقتباس. 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 علامات استفهام، على الرغم من أن يعني ذلك سد العجز في قيمة هنا والمكونات في قيمة أخرى 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 يميل إلى دعم، وروبي الثعبان وغيرها من اللغات، 527 00:22:42,830 --> 00:22:45,730 هذا يعني فقط المكونات في بعض قيمة هنا وأنت تعرف لماذا؟ 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 >> الحضور: (غير مسموع) 539 00:23:12,305 --> 00:23:13,180 DAVID مالان: بالضبط. 540 00:23:13,180 --> 00:23:14,610 الجزء الأول هو السلسلة. 541 00:23:14,610 --> 00:23:18,640 الحجة الثانية هي علامة الدولار تؤكد GET قوس اسم المستخدم. 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 حيث يساوي اسم المستخدم الاقتباس، نهاية الاقتباس مالان. 559 00:24:10,590 --> 00:24:13,680 حتى هنا أيضا، لقد جزءا لا يتجزأ من داخل الحجة 560 00:24:13,680 --> 00:24:16,110 إلى وظيفة PHP، سطر من التعليمات البرمجية SQL. 561 00:24:16,110 --> 00:24:18,680 وهذا الرمز SQL هذا الوقت يجري حرفيا 562 00:24:18,680 --> 00:24:21,790 للبحث عن الاقتباس، نهاية الاقتباس مالان. 563 00:24:21,790 --> 00:24:24,420 >> الآن هذا ليس كل شيء أن من المفيد، لذلك أنا ذاهب لتخطي ذلك 564 00:24:24,420 --> 00:24:28,650 وانا ذاهب الى وضع بعيدا هذا غيض من برادي، وتذهب 565 00:24:28,650 --> 00:24:30,990 وبدلا من ذلك سد العجز في علامة استفهام هنا. 566 00:24:30,990 --> 00:24:33,290 لذلك، لمجرد أن يكون واضحا، ما ينبغي حجتي الثانية 567 00:24:33,290 --> 00:24:37,480 يمكن إذا كان شخص ما قد يسجل فقط في وI نريد للتحقق مما إذا كان هو أو هي في الواقع 568 00:24:37,480 --> 00:24:39,265 مستخدم؟ 569 00:24:39,265 --> 00:24:40,140 الحضور: (غير مسموع) 570 00:24:40,140 --> 00:24:40,890 DAVID مالان: نعم. 571 00:24:40,890 --> 00:24:44,120 أسمع الدولار علامة تسطير احصل على اقتباس، اسم المستخدم نهاية الاقتباس. 572 00:24:44,120 --> 00:24:50,040 والتي يجب أن تعود لي أي من الصفوف في قاعدة البيانات الخاصة بي 573 00:24:50,040 --> 00:24:51,986 أن يكون لديك اسم مستخدم من مالان. 574 00:24:51,986 --> 00:24:54,860 الآن نأمل، وانا ذاهب للحصول على العودة صفر إذا لم يكن لمالان هنا، 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 >> الحضور: (غير مسموع) 579 00:25:00,220 --> 00:25:01,120 >> DAVID مالان: قلت فريدة من نوعها، أليس كذلك؟ 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 تستخدم فقط GET، هل يمكن أن يكون ما بعد بالتأكيد. 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 انا ذاهب للذهاب إلى علامة التبويب الخلية. 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 ولكن انا ذاهب ليكون قليلا أكثر متحذلق ويدويا 596 00:25:42,691 --> 00:25:45,920 اكتب من نجمة اختر من المستخدمين. 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 >> الحضور: (غير مسموع) 607 00:26:08,407 --> 00:26:09,990 DAVID مالان: عدد الصفوف، بالتأكيد. 608 00:26:09,990 --> 00:26:12,390 ولكن كم في هذا قصة ملموسة الآن؟ 609 00:26:12,390 --> 00:26:14,640 اثنين، لأن هناك لي، وكان هناك روب. 610 00:26:14,640 --> 00:26:19,370 لذلك، إذا كنت انقر فوق انتقال، وأرى أن بصريا لقد حصلت مرة أخرى، في الواقع، صفين. 611 00:26:19,370 --> 00:26:22,060 هناك الكثير من الفوضى على الشاشة، ولكن لا أرى سوى صفين. 612 00:26:22,060 --> 00:26:28,580 على النقيض من ذلك، إذا كنت تفعل هذا مرة أخرى والقيام نجمة اختر من المستخدمين، حيث اسم المستخدم 613 00:26:28,580 --> 00:26:31,840 يساوي الاقتباس، نهاية الاقتباس مالان، والآن إذا كنت اضغط العودة، 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 لنفترض أنني والمضي قدما في لا اختيار اسم من 620 00:26:46,720 --> 00:26:51,990 المستخدمين، حيث يساوي اسم المستخدم مالان، ما هو لطيف حول 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 اختر اسم من المستخدمين حيث اسم المستخدم يساوي مالان. 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 واحدة، لأنه مجرد مالان، ونأمل. 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 ويبدو نوعا من نحو مناسب مثير للسخرية، مجرد النظر السوبر 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 حيث يساوي العام الاقتباس، طالبة نهاية الاقتباس، 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 الجديدة جدول بيانات أو ملف إكسل، 652 00:28:16,780 --> 00:28:18,860 وسلمت لكم مرة أخرى على الناتج الملف فقط. 653 00:28:18,860 --> 00:28:21,710 هذا كل ما يحدث على المفهوم هنا. 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 شخص ما في وقت سابق، وأعتقد أن إلى هنا، اقترح معرف. 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 >> لدي مجموعة كاملة من القيم العددية. 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 بوصفها جانبا، إذا كنت تريد أن تتصل هذا إلى شيء مثل الفيسبوك، 692 00:29:53,490 --> 00:29:56,190 مرة أخرى في نوع من بلدي اليوم عندما الفيسبوك جاء لأول مرة، 693 00:29:56,190 --> 00:29:59,510 أعتقد أن ما كانوا استخدام في قاعدة البيانات الخاصة بهم الخلية 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 هناك الكثير من وهمية الفيسبوك حسابات في العالم. 697 00:30:07,438 --> 00:30:11,701 وذلك في نهاية المطاف، الفيسبوك فاضت حجم من 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 وإذا كنت لم اختار اسم المستخدم في الفيسبوك، سترى ID الفريد الخاص بك. 702 00:30:19,781 --> 00:30:23,080 اعتقد انها PHP دوت الشخصية ID علامة استفهام يساوي شيئا. 703 00:30:23,080 --> 00:30:27,210 التي هي الآن شيء من هذا القبيل كبيرة INT، أو طويلة طويلة اذا صح التعبير، 704 00:30:27,210 --> 00:30:29,700 الذي هو قيمة 64 بت أو شيء مماثل. 705 00:30:29,700 --> 00:30:33,620 >> لذلك، وحتى في العالم الحقيقي تفعل هذه قضايا في نهاية المطاف يهم في بعض الأحيان. 706 00:30:33,620 --> 00:30:37,600 واتضح هنا، إذا أنا إعطاء جميع المستخدمين بلدي هوية فريدة من نوعها، 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 وإنني أقترح الآن أننا إضافة، بالضغط هنا حفظ، 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 هي بالفعل ثاني فريدة من نوعها دعا حقل معرف هذا و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 ما أقول this-- مرة أخرى؟ 732 00:31:53,930 --> 00:31:55,580 >> الحضور: (غير مسموع) 733 00:31:55,580 --> 00:31:59,534 >> DAVID مالان: عشوائية وصول أسهل، لماذا؟ 734 00:31:59,534 --> 00:32:00,410 >> الحضور: (غير مسموع) 735 00:32:00,410 --> 00:32:02,367 DAVID مالان: نعم، انها مجرد الحصول على الأرقام. 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 قيمة بايت، أليس كذلك؟ 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 بت في شيء 756 00:32:52,420 --> 00:32:55,330 دعا سجل في الكمبيوتر وحدة المعالجة المركزية، مما يعني أنها عظمى، 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 وهذا سيكون البريدي. 772 00:33:30,400 --> 00:33:32,710 >> الآن أنواع مدينة، ما هي البيانات يجب أن يكون هذا، ربما؟ 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 في مكان ما في أمريكا، هناك ربما بعض كلمة طويلة للغاية، 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 ربما اثنين فقط، اذا كنا نستطيع تفلت من مجرد القيام، 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 >> الرمز البريدي هو مثير للاهتمام. 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 >> DAVID مالان: خذ المزيد من الذاكرة. 801 00:34:32,909 --> 00:34:35,310 أربعة بايت، ولكن كنت اقتراح الرمز البريدي 802 00:34:35,310 --> 00:34:39,000 خمسة بايت أو كان شخص ما بأنه CHAR، الذي يشعر وكأنه إيه، وهذا ليس حقا 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 وبعد ذلك قدم خطأ من فتحه 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 ولكن بعد ذلك، لا بد لي من ضرب، مثل، قيادة أو تحكم S عند نقطة واحدة. 815 00:35:03,080 --> 00:35:06,250 وإكسل على ما يبدو في ذلك الوقت كان ميزة حيث أي وقت 816 00:35:06,250 --> 00:35:08,100 شهدت عددا، فإنه حاول أن تكون مفيدة. 817 00:35:08,100 --> 00:35:11,610 وإذا بدأ هذا العدد مع الأصفار، فإنه سيكون مجرد التخلص منها. 818 00:35:11,610 --> 00:35:13,420 لماذا تحتاج الرائدة الأصفار على الأعداد الصحيحة؟ 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 لذلك، لقد كان لسنوات I، حتى يومنا هذا، ما زلت 822 00:35:19,954 --> 00:35:22,370 لدي أصدقاء أنه عندما حالة نادرة أنني بحاجة لشخص ما 823 00:35:22,370 --> 00:35:24,078 معالجة هذه الأيام، أنا لا تزال ترى أن I 824 00:35:24,078 --> 00:35:26,767 لديك صديق في كامبريدج، ماساتشوستس، 2138. 825 00:35:26,767 --> 00:35:29,350 وانه مزعج إذا كنت محاولة لفرز من برمجيا 826 00:35:29,350 --> 00:35:30,975 توليد المغلفات أو مجرد ذرة عليه. 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 إذا كنت لا تزال إرسال البريد، الرمز البريدي أحيانا رموز هذه الأيام، 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 الذهاب لتخطي اندفاعة كاملة بالإضافة إلى أربعة. 838 00:35:56,739 --> 00:35:58,280 ولكن هذه هي أنواع المفاضلات. 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 افترض كل من روب وأنا وهانا وماريا و[؟ 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 والرمز البريدي. 846 00:36:18,630 --> 00:36:20,980 لماذا ا؟ 847 00:36:20,980 --> 00:36:21,960 >> الحضور: (غير مسموع) 848 00:36:21,960 --> 00:36:22,918 >> DAVID مالان: قل مرة أخرى؟ 849 00:36:22,918 --> 00:36:24,310 الحضور: (غير مسموع) 850 00:36:24,310 --> 00:36:25,850 >> DAVID مالان: انهم دائما الذهاب إلى يسيران جنبا إلى جنب، أليس كذلك؟ 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 نفس الرمز البريدي، والذي هو غريب. 855 00:36:35,060 --> 00:36:40,580 ولكن، إذا كان لنا أن تنص في الوقت الراهن أن 02138 هو دائما كامبريدج، ماساشوستس، 856 00:36:40,580 --> 00:36:44,910 لماذا في العالم سيكون لكم تخزين في قاعدة البيانات الخاصة بك كامبريدج وMA 02138 و 857 00:36:44,910 --> 00:36:49,357 بالنسبة لي ولهانا وروب و ل[؟ Davon؟] وبالنسبة للآخرين الذين يعيشون 858 00:36:49,357 --> 00:36:51,190 هنا في كامبريدج، انها زائدة عن الحاجة تماما. 859 00:36:51,190 --> 00:36:54,480 >> يجب علينا الابتعاد مع مجرد تخزين ماذا؟ 860 00:36:54,480 --> 00:36:55,610 فقط الرمز البريدي. 861 00:36:55,610 --> 00:36:58,660 ولكن بعد ذلك، إذا كنا تخزين فقط الرمز البريدي، وأنا لا يريدون، على الأرجح، 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 لا تخزن كامبريدج، ماساشوستس لل كل مستخدم الرتق في الجدول الخاص بك. 871 00:37:25,020 --> 00:37:29,770 >> بدلا من ذلك، لديك جدول منفصل يسمى الكود البريدية التي يجب أن يكون ما الأعمدة؟ 872 00:37:29,770 --> 00:37:33,490 ربما حقل ID، لمجرد، ل المبادئ التي نتحدث عنها الآن. 873 00:37:33,490 --> 00:37:35,720 ربما حقل الرمز البريدي 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 نجمة اختر من المستخدمين، JOIN الكود البريدية ON المستخدمين دوت البريدي يساوي الكود البريدية دوت البريدي. 886 00:38:10,501 --> 00:38:13,360 الذي هو القليل من الالفاظ، باعتراف الجميع، ولكن هذا فقط 887 00:38:13,360 --> 00:38:17,590 يعني حدد كل شيء من عملية اتخاذ بلدي الجدول المستخدمين 888 00:38:17,590 --> 00:38:19,580 والجدول الكود البريدية بلدي. 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 علمت نفسي في مارجو أنظمة التشغيل 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 والبدء في سحب بعض الحليب. 920 00:39:36,312 --> 00:39:38,978 وانها سوف يستغرق بعض الوقت، لأن تلك الخروج النفس لعنة 921 00:39:38,978 --> 00:39:40,570 عدادات تأخذ إلى الأبد لاستخدام على أي حال. 922 00:39:40,570 --> 00:39:41,950 لذلك وفي الوقت نفسه، الحجرة الخاصة بك تأتي المنزل. 923 00:39:41,950 --> 00:39:43,470 انه أو انها حقا يحب الحليب أيضا. 924 00:39:43,470 --> 00:39:45,520 أنها تأتي في غرفة النوم، فتح الثلاجة، أوه، الرتق. 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 العودة الى الوطن وهتاف اشمئزاز، أسوأ مشكلة من أي وقت مضى. 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 الحضور: (غير مسموع) 939 00:40:18,660 --> 00:40:19,430 DAVID مالان: ترك ملاحظة، أليس كذلك؟ 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 ولكن هذه هي بوحشية شائعة هذه الأيام لا يزال. 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 >> وإذا كان were-- انها 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 ربما هارفارد لديها استفسار مثل نجمة اختر من المستخدمين 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 التدوين متعرج من الآخر اليوم، وهو ما يعني مجرد سد العجز في قيمة 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 واحد يساوي نهاية الاقتباس الاقتباس واحد، لكن لاحظ أنه أغفل ماذا؟ 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 من متغير في الأقواس المعقوفة؟ 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 يمكن خداع الخادم هارفارد إلى بناء استعلام SQL 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 شخص ما خداع التعليمات البرمجية في حقن له أو لها كود 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 >> لذلك، فإنه يهرب أي يحتمل شخصيات خطرة. 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 لذلك، كان هذا صورة تم التقاطها بعض المهوس في موقف للسيارات 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 باس. 1029 00:44:20,660 --> 00:44:24,490 لذلك، هذا الشخص يفترض أنه ربما الشعب كتابة نظام E-Z ممر 1030 00:44:24,490 --> 00:44:28,240 لم تكن مشرقة جدا، وربما لأنهم فقط متصلا معا سلسلة، 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 بها. 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 لذلك، وزوجين من المضايقون أننا نظن أننا سوف 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 حيث إذا كنت كتابة التعليمات البرمجية التي ترسل على غرار PSet6 طلب HTTP التي 1057 00:45:44,930 --> 00:45:49,647 يشبه هذا مع هذا جزء من النص في الجزء السفلي، وهو ما يسمى JSON، 1058 00:45:49,647 --> 00:45:52,230 أو جافا سكريبت تدوين كائن أننا سوف نتحدث عن الأسبوع القادم، 1059 00:45:52,230 --> 00:45:57,030 يمكنك تشغيل أو إيقاف أو تغيير لون أضواء مثل هؤلاء. 1060 00:45:57,030 --> 00:46:00,480 حتى إذا كان لديها CS50 أيضا بالإضافة إلى بعض تلك المصابيح هنا في نيو هيفن 1061 00:46:00,480 --> 00:46:02,480 إذا كنت ترغب في الاقتراض منها للمشاريع النهائية، 1062 00:46:02,480 --> 00:46:04,370 أيضا بعض مايكروسوفت العصابات، التي هي مثل 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 >> لدينا حساب مع كود أبل دائرة الرقابة الداخلية بحيث 1066 00:46:12,490 --> 00:46:15,510 أنه إذا كان لديك ووتش أبل أو اي فون أو آي باد أو آي بود، 1067 00:46:15,510 --> 00:46:17,707 يمكنك كتابة التعليمات البرمجية التي يعمل في الواقع على تلك. 1068 00:46:17,707 --> 00:46:19,540 لدينا مجموعة كاملة من Arduinos، والتي هي 1069 00:46:19,540 --> 00:46:22,010 أجهزة الكمبيوتر متناهية الصغر بدون الحالات، أساسا، 1070 00:46:22,010 --> 00:46:25,240 أنه يمكنك الاتصال عبر USB، عادة الخاصة ماك أو جهاز الكمبيوتر الخاص بك، 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 لدينا مجموعة كاملة أجهزة ليب موشن، 1074 00:46:32,860 --> 00:46:36,500 التي هي USB لأجهزة ماكينتوش وأجهزة أجهزة الكمبيوتر، وهنا مرة أخرى، في نيو هافن. 1075 00:46:36,500 --> 00:46:40,080 وإذا كنت توصيله إلى جهاز ماكنتوش، يمكنك التحكم في الواقع جهاز الكمبيوتر الخاص بك 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 أيضا، دعا ميو شارات الذي وضع أكثر من ساعدك 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 أو، لدينا أيضا بعض جوجل من الورق المقوى، الذي هو حرفيا، مثل، 1087 00:49:20,920 --> 00:49:24,841 صندوق من الورق المقوى كنت قد وضعت على جهاز الوجه، ولكن الشريحة في هاتفك إلى ذلك 1088 00:49:24,841 --> 00:49:27,590 بحيث يمكنك وضع الزجاج الخاص بك الهاتف قريبة جدا من عينيك. 1089 00:49:27,590 --> 00:49:30,190 وجوجل هي كرتون رخيصة جدا في 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 لدينا أيضا بعض سامسونج جير، الذي هو إصدار أغلى من ذلك، 1094 00:49:42,927 --> 00:49:46,010 ولكن هذا يمكن أن تنزلق على نحو مماثل في الروبوت الهاتف وتعطيك الوهم 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 اذا كان يمكنني توقع ما قد كولتون هنا فقط لشحذ شهيتك، 1098 00:49:55,250 --> 00:49:58,442 اسمحوا لي أن نمضي قدما ورمي على الشاشة الكبيرة هنا. 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 >> الآن، وخدمة الواي فاي في هنا ليست قوية جدا لهذا الجهاز 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 كنت ترى عينه اليمنى واليسرى أن دماغه يتم خياطة معا 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 وهكذا مرة أخرى، وقال انه يرتدي هذه السماعة مع هاتف سامسونج عليه هذا 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 لست متأكدا (غير مسموع). 1115 00:50:32,181 --> 00:50:34,250 [ضحك] 1116 00:50:34,250 --> 00:50:36,374 >> DAVID مالان: تبين المريخ ديه هذه القوائم. 1117 00:50:36,374 --> 00:50:41,590 >> COLTON: (غير مسموع) بعض بارد الأماكن إذا كنا نريد أن يذهب to-- 1118 00:50:41,590 --> 00:50:43,330 >> DAVID مالان: أين نريد أن نذهب؟ 1119 00:50:43,330 --> 00:50:45,837 >> COLTON: (غير مسموع) 1120 00:50:45,837 --> 00:50:48,170 DAVID مالان: ودعنا نرى حيث أخذ في كولتون لنا الآن. 1121 00:50:48,170 --> 00:50:48,961 COLTON: (غير مسموع) 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> DAVID مالان: لذا، هناك الكثير من الأماكن المختلفة التي يمكن أن تتخذ لنفسك. 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 لذلك، كنت حقا فقط كتابة التطبيق الهاتف المحمول. 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 دون مزيد، اللغط هذا كل شيء لهذا اليوم. 1134 00:51:18,420 --> 00:51:21,990 سنرى في الأسبوع القادم. 1135 00:51:21,990 --> 00:51:24,140 >> [MUSIC - RAGGA توأم، "رجلا سيئا"] 1136 00:51:24,140 --> 00:55:23,146