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 لويد: في أشرطة الفيديو لدينا على موضوعات التنمية على شبكة الإنترنت، 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 أو جداول البيانات جوجل. 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 >> لذلك ربما كنت، مرة أخرى، على دراية مع هذه الفكرة من إكسل أو جوجل 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 حتى هنا جداول البيانات إكسل. 22 00:00:59,800 --> 00:01:02,640 وإذا كنت قد فتحت من أي وقت مضى هذا أو برنامج آخر مماثل 23 00:01:02,640 --> 00:01:06,780 كنت أعرف أن هذه هي هنا rows-- 1، 2، 3، 4، 5، 6، 7. 24 00:01:06,780 --> 00:01:08,760 هذه هي الأعمدة. 25 00:01:08,760 --> 00:01:11,790 >> ربما إلى هنا، على الرغم من أنك قد لا تستخدم هذه الميزة بشكل رهيب much-- 26 00:01:11,790 --> 00:01:15,370 أنا تكبير in-- لدينا هذه الفكرة من ورقة. 27 00:01:15,370 --> 00:01:17,930 لذلك ربما هذه الأوراق، إذا أقلب ذهابا وإيابا، 28 00:01:17,930 --> 00:01:21,600 هي الجداول المختلفة التي موجودة في قاعدة البيانات. 29 00:01:21,600 --> 00:01:25,210 وإذا واصلنا على سبيل المثال جميع وبالمناسبة، اسم قاعدة البيانات هذه 30 00:01:25,210 --> 00:01:26,940 هو كتاب (1). 31 00:01:26,940 --> 00:01:28,710 ربما لدي كتاب (2) وكتاب 3. 32 00:01:28,710 --> 00:01:33,270 لذلك كل ملف إكسل هو قاعدة البيانات، كل ورقة هي الطاولة، 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-- وانها جدا منصة مشتركة، انه دعا الخلية. 45 00:02:08,449 --> 00:02:10,600 هذا ما نستخدمها في الدورة. 46 00:02:10,600 --> 00:02:12,880 انها مفتوحة المصدر منصة التي تؤسس 47 00:02:12,880 --> 00:02:16,732 ما يسمى database-- العلائقية قاعدة بيانات، على نحو فعال. 48 00:02:16,732 --> 00:02:18,440 نحن لسنا بحاجة للحصول على في الكثير من التفاصيل 49 00:02:18,440 --> 00:02:20,930 على ما قاعدة بيانات علائقية هي. 50 00:02:20,930 --> 00:02:24,650 لكن لغة SQL هي بارعون جدا في العمل 51 00:02:24,650 --> 00:02:29,760 مع الخلية وأخرى مماثلة أنماط من قواعد البيانات العلائقية. 52 00:02:29,760 --> 00:02:34,010 >> والعديد من المنشآت من الخلية تأتي مع شيء 53 00:02:34,010 --> 00:02:37,760 دعا بريس، التي هو المستخدم الرسومية 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 >> شيء من هذا القبيل بريس يجعل من السهل جدا لشخص 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 المشكلة هي، بريس، في حين انها وسيلة رائعة للتعلم 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 ستفعل في بريس، ل عليك إلا أن تفعل ذلك مرة واحدة، 76 00:03:45,350 --> 00:03:49,690 وبناء الجملة من أجل القيام بذلك هو الكثير أكثر وضوحا. 77 00:03:49,690 --> 00:03:51,940 انها أسهل كثيرا للقيام بذلك في واجهة المستخدم الرسومية 78 00:03:51,940 --> 00:03:53,520 من كتابة بها كأمر. 79 00:03:53,520 --> 00:03:55,186 الأمر يمكن الحصول على القليل مرهقة. 80 00:03:55,186 --> 00:03:58,889 وبالمثل، يمكن إنشاء جدول الحصول على قدرا كبيرا مرهقة أيضا. 81 00:03:58,889 --> 00:04:01,930 وحتى أشياء مثل خلق قاعدة بيانات وإنشاء جدول، التي كنت 82 00:04:01,930 --> 00:04:06,270 ربما لن يؤدي الا الى القيام once-- مرة واحدة في الجدول، مرة واحدة في database-- 83 00:04:06,270 --> 00:04:09,040 لا بأس من القيام بذلك في واجهة رسومية. 84 00:04:09,040 --> 00:04:11,570 في عملية إنشاء جدول، عليك 85 00:04:11,570 --> 00:04:14,840 لدينا أيضا لتحديد كل من الأعمدة التي ستكون في هذا الجدول. 86 00:04:14,840 --> 00:04:18,149 أي نوع من المعلومات تفعل تريد تخزين في الجدول؟ 87 00:04:18,149 --> 00:04:24,520 ربما اسم المستخدم وتاريخ الميلاد، كلمة السر، رقم هوية المستخدم، وربما 88 00:04:24,520 --> 00:04:26,170 المدينة والدولة، أليس كذلك؟ 89 00:04:26,170 --> 00:04:30,080 >> وفي كل مرة كنا نريد لإضافة مستخدم إلى قاعدة البيانات، ونحن نريد للحصول على كل ستة 90 00:04:30,080 --> 00:04:31,890 من هذه القطع من المعلومات. 91 00:04:31,890 --> 00:04:34,840 ونحن نفعل ذلك بإضافة الصفوف إلى الجدول. 92 00:04:34,840 --> 00:04:37,800 لذلك علينا أولا إنشاء قاعدة بيانات، ثم نقوم بإنشاء الجدول. 93 00:04:37,800 --> 00:04:40,100 كجزء من خلق جدول، يطلب منا 94 00:04:40,100 --> 00:04:44,280 لتحديد كل عمود نود في هذا الجدول. 95 00:04:44,280 --> 00:04:47,247 وبعد ذلك نبدأ في إضافة المعلومات إلى قاعدة البيانات 96 00:04:47,247 --> 00:04:49,580 والاستعلام عن قاعدة بيانات أكثر generally-- ليس فقط مضيفا، 97 00:04:49,580 --> 00:04:51,610 ولكن كل شيء ونحن شيء آخر do-- سنكون التعامل 98 00:04:51,610 --> 00:04:58,870 مع صفوف الجدول، التي تعد واحدة معلومات المستخدم من المجموعة بالكامل. 99 00:04:58,870 --> 00:05:03,210 >> لذلك كل عمود SQL قادر على عقد بيانات من نوع بيانات معينة. 100 00:05:03,210 --> 00:05:06,560 لذلك نحن نوع من القضاء على هذا فكرة من أنواع البيانات في PHP، 101 00:05:06,560 --> 00:05:08,747 ولكنهم هنا مرة أخرى في SQL. 102 00:05:08,747 --> 00:05:10,080 وهناك الكثير من أنواع البيانات. 103 00:05:10,080 --> 00:05:13,420 وهنا فقط 20 منهم، ولكن انها ليست حتى كل منهم. 104 00:05:13,420 --> 00:05:16,240 لذلك لدينا أفكار مثل INTs-- Integers-- نحن ربما نعرف 105 00:05:16,240 --> 00:05:17,760 هذا العمود يمكن أن تعقد صحيحة. 106 00:05:17,760 --> 00:05:21,077 وهناك اختلافات thereon-- SMALLINT، TINYINT، MEDIUMINT، BIGINT. 107 00:05:21,077 --> 00:05:22,660 ربما لا نحتاج أربع لدغات دائما. 108 00:05:22,660 --> 00:05:26,800 ربما نحتاج ثمانية بايت، ولذا فإننا يمكن استخدام هذه الاختلافات على الأعداد الصحيحة 109 00:05:26,800 --> 00:05:28,510 أن تكون أكثر قليلا الفضاء كفاءة. 110 00:05:28,510 --> 00:05:31,899 يمكننا أن نفعل الأرقام العشرية، ونحن يمكن القيام به أرقام الفاصلة العائمة. 111 00:05:31,899 --> 00:05:32,940 هذه هي مشابهة جدا. 112 00:05:32,940 --> 00:05:34,773 هناك بعض الاختلافات، ولو تفضلتم 113 00:05:34,773 --> 00:05:37,330 أحب للبحث عن نوع SQL من دليل، كنت 114 00:05:37,330 --> 00:05:40,670 يمكن أن نرى ما هي طفيف الاختلافات بينهما. 115 00:05:40,670 --> 00:05:43,250 >> ربما نحن نريد لتخزين معلومات حول التاريخ والوقت. 116 00:05:43,250 --> 00:05:47,047 ربما نحن تتبع عندما انضم للمستخدم موقعنا على الانترنت، 117 00:05:47,047 --> 00:05:48,880 وربما لذلك نحن نريد لديك عمود هذا 118 00:05:48,880 --> 00:05:52,820 وقت التاريخ أو الطابع الزمني الذي يشير عندما يقوم المستخدم الواقع 119 00:05:52,820 --> 00:05:54,130 وقعت. 120 00:05:54,130 --> 00:05:56,132 يمكننا أن نفعل هندستها وخطوط سلاسل. 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 لمؤامرة من المنطقة. 124 00:06:05,110 --> 00:06:08,580 بحيث يمكن تخزين في الواقع هذا النوع المعلومات في عمود SQL. 125 00:06:08,580 --> 00:06:11,390 >> TEXT هو مجرد النقط العملاقة من النص، ربما. 126 00:06:11,390 --> 00:06:12,840 تتضمن التعدادات هي نوع من اهتمام. 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 >> وهناك مثال جيد حقا هنا سيكون لإنشاء التعداد حيث السبعة 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 في 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 بت أو 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 ونحن في طريقنا لديها اثنين حرفا، ثم ثمانية دغات فارغة. 152 00:07:30,700 --> 00:07:34,990 ونحن لن تكون أكثر كفاءة من ذلك. 153 00:07:34,990 --> 00:07:37,727 >> A VARCHAR هو نوع من مثل لدينا فكرة وجود سلسلة 154 00:07:37,727 --> 00:07:39,560 التي نعرفها مع من C أو من PHP. 155 00:07:39,560 --> 00:07:40,830 انها سلسلة طول متغير. 156 00:07:40,830 --> 00:07:42,560 وعند إنشاء هذا العمود، أنت فقط 157 00:07:42,560 --> 00:07:44,860 تحديد الحد الأقصى للأطوال ممكنة. 158 00:07:44,860 --> 00:07:49,065 لذلك ربما 99 أو عادة 255. 159 00:07:49,065 --> 00:07:50,440 من شأنه أن يكون الحد الأقصى للطول. 160 00:07:50,440 --> 00:07:52,890 وحتى لو كنا تخزين 15 سلسلة أحرف، 161 00:07:52,890 --> 00:07:56,157 سوف نستخدم 15 بايت، ربما 16 بايت للفاصل فارغة. 162 00:07:56,157 --> 00:07:57,990 إذا كنا تخزين ثلاثة سلسلة أحرف، 163 00:07:57,990 --> 00:08:01,120 سوف نستخدم ثلاثة أو أربعة بايت. 164 00:08:01,120 --> 00:08:03,050 لكننا لن تستخدم الكامل 99. 165 00:08:03,050 --> 00:08:05,190 >> فلماذا لدينا على حد سواء؟ 166 00:08:05,190 --> 00:08:08,210 حسنا، إذا نحن بحاجة لمعرفة كيف شيء الطويل مع VARCHAR، 167 00:08:08,210 --> 00:08:10,680 علينا أن نوع من أعاد عبرها ترغب فقط فعلنا في C 168 00:08:10,680 --> 00:08:12,230 ومعرفة من أين يتوقف. 169 00:08:12,230 --> 00:08:15,920 في حين إذا علمنا أن كل شيء في هذا العمود هو 10 بايت، ربما 170 00:08:15,920 --> 00:08:19,220 ونحن نعلم أن المعلومات، ونحن يمكن القفز 10 بايت، 10 بايت، 10 بايت، 10 بايت، 171 00:08:19,220 --> 00:08:21,790 ودائما العثور على بداية السلسلة. 172 00:08:21,790 --> 00:08:25,210 >> ولذا فإننا قد يكون لها بعض مساحة مهدرة مع CHAR، 173 00:08:25,210 --> 00:08:28,510 ولكن ربما هناك تجارة الخروج من وجود سرعة أفضل 174 00:08:28,510 --> 00:08:30,160 في التنقل في قاعدة البيانات. 175 00:08:30,160 --> 00:08:32,330 ولكن ربما نحن نريد مرونة VARCHAR 176 00:08:32,330 --> 00:08:36,710 بدلا من having-- إذا CHAR لدينا كان 255، ولكن معظم المستخدمين 177 00:08:36,710 --> 00:08:40,537 تم إدخال سوى ثلاثة أو أربعة بايت قيمة المعلومات أو ثلاثة أو أربعة 178 00:08:40,537 --> 00:08:41,870 الأحرف بقيمة المعلومات. 179 00:08:41,870 --> 00:08:44,324 >> ولكن بعض المستخدمين يستخدمون كامل 255، ربما 180 00:08:44,324 --> 00:08:45,990 VARCHAR سوف يكون من الأنسب هناك. 181 00:08:45,990 --> 00:08:49,840 انها نوع من المفاضلة، و عموما لأغراض CS50، 182 00:08:49,840 --> 00:08:54,107 كنت لا داعي للقلق كثيرا حول سواء كنت تستخدم 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 لا أريد اثنين من المستخدمين الذين لها نفس رقم المستخدم. 193 00:09:27,210 --> 00:09:28,960 وذلك ربما لديك الكثير من المعلومات، 194 00:09:28,960 --> 00:09:30,793 وربما يمكن اثنين من المستخدمين لها نفس name-- 195 00:09:30,793 --> 00:09:32,650 لديك جون سميث وجون سميث. 196 00:09:32,650 --> 00:09:34,520 هذا ليس بالضرورة مشكلة، لأن هناك العديد من الأشخاص 197 00:09:34,520 --> 00:09:35,830 في العالم يدعى جون سميث. 198 00:09:35,830 --> 00:09:40,766 ولكن ليس لدينا سوى رقم مستخدم واحد 10، مستخدم واحد رقم 11، 12، 13 ID. 199 00:09:40,766 --> 00:09:42,640 ليس لدينا اثنين من المستخدمين مع نفس العدد، 200 00:09:42,640 --> 00:09:46,010 وذلك ربما أرقام هوية المستخدم سيكون المفتاح الأساسي الجيد. 201 00:09:46,010 --> 00:09:48,610 >> ليس لدينا أي ازدواجية، ويمكننا الآن فريد 202 00:09:48,610 --> 00:09:52,619 تحديد كل صف واحد فقط من خلال النظر في هذا العمود. 203 00:09:52,619 --> 00:09:55,410 اختيار المفاتيح الأساسية يمكن في الواقع جعل عمليات الجدول اللاحقة 204 00:09:55,410 --> 00:09:59,710 أسهل كثيرا لأنه يمكنك الاستفادة حقيقة أن بعض الصفوف سوف 205 00:09:59,710 --> 00:10:02,720 تكون فريدة من نوعها، أو عمود معين من قاعدة البيانات الخاصة بك أو الجدول 206 00:10:02,720 --> 00:10:06,030 سوف تكون فريدة من نوعها لاختيار صفوف معينة خارج. 207 00:10:06,030 --> 00:10:08,790 >> هل يمكن أن يكون أيضا الابتدائية المشتركة مفتاح، والتي قد تجد المناسبة 208 00:10:08,790 --> 00:10:11,720 الاستخدام، الذي هو مجرد مزيج من اثنين من الأعمدة التي 209 00:10:11,720 --> 00:10:13,280 ومن يضمن أن تكون فريدة من نوعها. 210 00:10:13,280 --> 00:10:16,410 ولذلك ربما يكون لديك واحدة العمود الذي هو كما وفنادق صغيرة، 211 00:10:16,410 --> 00:10:19,290 عمود واحد وهذا واحد، اثنين، وثلاثة، ولكن عليك من أي وقت مضى فقط 212 00:10:19,290 --> 00:10:23,660 يملك 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 لذلك قد يكون ومتعددة، متعددة فنادق صغيرة، متعددة منها، ثنائي متعددة، 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 ومن أكثر مطول ل اللغة مما نحن 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 ونحن في طريقنا عموما إلى استخدام فقط أربعة إدراج operations--، 227 00:11:02,250 --> 00:11:05,360 تحديد وتحديث وحذف. 228 00:11:05,360 --> 00:11:08,750 وربما يمكنك تخمين حدسي ما كل أربعة من هذه الأمور. 229 00:11:08,750 --> 00:11:12,520 ولكننا سوف ندخل قليلا التفاصيل على كل واحد. 230 00:11:12,520 --> 00:11:15,780 >> حتى لأغراض هذا فيديو، دعونا نفترض 231 00:11:15,780 --> 00:11:18,870 لقد التاليين الجداول في قاعدة بيانات واحدة. 232 00:11:18,870 --> 00:11:23,460 لدينا جدول يسمى المستخدمين لديها أربعة columns-- رقم الهوية، واسم المستخدم، 233 00:11:23,460 --> 00:11:25,350 كلمة السر، والاسم الكامل. 234 00:11:25,350 --> 00:11:27,430 ونحن لدينا الثانية الجدول في نفس قاعدة البيانات 235 00:11:27,430 --> 00:11:32,129 ودعا الأمهات الذي يقوم بتخزين المعلومات فقط حول اسم مستخدم والأم. 236 00:11:32,129 --> 00:11:33,920 لذلك لجميع من الأمثلة في هذا الفيديو، وسوف نقوم 237 00:11:33,920 --> 00:11:37,945 يتم استخدام قاعدة البيانات هذه و التحديثات اللاحقة له. 238 00:11:37,945 --> 00:11:40,070 لذلك دعونا نقول أننا نريد أن إضافة معلومات إلى جدول. 239 00:11:40,070 --> 00:11:44,460 هذا ما تفعله عملية إدراج. 240 00:11:44,460 --> 00:11:46,550 في شرح كل من هذه الأوامر، وانا ذاهب 241 00:11:46,550 --> 00:11:48,860 لإعطائك هيكل عظمي العام للاستخدام. 242 00:11:48,860 --> 00:11:51,661 لأنه في الاساس، الاستعلامات سوف تبدو مشابهة جدا، 243 00:11:51,661 --> 00:11:54,660 نحن ذاهبون لمجرد أن تغيير قطع مختلفة قليلا من المعلومات 244 00:11:54,660 --> 00:11:56,750 أن تفعل أشياء مختلفة مع الجدول. 245 00:11:56,750 --> 00:11:59,200 >> وذلك لINSERT، وهيكل عظمي يبدو نوع من هذا القبيل. 246 00:11:59,200 --> 00:12:02,230 نريد أن تضاف إلى جدول معين. 247 00:12:02,230 --> 00:12:05,290 ثم لدينا قوس مفتوح وقائمة الأعمدة 248 00:12:05,290 --> 00:12:08,070 أننا نريد أن نضع القيم في. 249 00:12:08,070 --> 00:12:10,974 وثيقة قوسين، و التالي القيم، ومن ثم 250 00:12:10,974 --> 00:12:13,390 مرة أخرى، ونحن خارج قائمة القيم نحن نريد ان نضع في الجدول. 251 00:12:13,390 --> 00:12:15,950 >> ذلك مثال على ذلك سوف تكون على النحو التالي. 252 00:12:15,950 --> 00:12:19,170 أريد أن أدخل في الجدول المستخدمين columns-- التالية 253 00:12:19,170 --> 00:12:21,010 اسم المستخدم، كلمة السر، وFULLNAME. 254 00:12:21,010 --> 00:12:25,282 حتى صف جديد حيث أضع في هذه الأعمدة الثلاثة، ونحن 255 00:12:25,282 --> 00:12:30,030 الذهاب لوضعها في القيم نيومان، USMAIL، ونيومان. 256 00:12:30,030 --> 00:12:32,730 حتى في هذه الحالة، وأنا وضع نيومان صغيرة 257 00:12:32,730 --> 00:12:38,710 في العمود اسم المستخدم، وكلمة السر USMAIL، واسم كامل رأس المال N 258 00:12:38,710 --> 00:12:41,940 نيومان في العمود FULLNAME. 259 00:12:41,940 --> 00:12:44,240 >> حتى هنا ما قاعدة البيانات بدا مثل قبل. 260 00:12:44,240 --> 00:12:48,250 وإليك ما الجدول المستخدمين على بدا أعلى مثل قبل فعلنا هذا. 261 00:12:48,250 --> 00:12:50,760 بعد أن تنفيذ هذا الاستعلام، نحصل على هذا. 262 00:12:50,760 --> 00:12:54,790 واضاف لدينا صف جديد إلى الجدول. 263 00:12:54,790 --> 00:12:56,810 ولكن لاحظ هذا الشيء واحد أنني لم تحدد، 264 00:12:56,810 --> 00:12:59,880 ولكن ما أنا عندي قيمة ل، وهو هذا 12 هنا. 265 00:12:59,880 --> 00:13:02,820 أنا لا أقول أنني أردت أن وضع رقم في هناك. 266 00:13:02,820 --> 00:13:04,900 أردت أن أضع اسم المستخدم، كلمة السر، FULLNAME. 267 00:13:04,900 --> 00:13:06,440 وفعلت ذلك، فلا بأس. 268 00:13:06,440 --> 00:13:07,760 >> ولكن كما أنني حصلت على هذا 12. 269 00:13:07,760 --> 00:13:09,490 لماذا لم أحصل على هذا 12؟ 270 00:13:09,490 --> 00:13:12,904 حسنا، اتضح أن عندما تقوم بتعريف 271 00:13:12,904 --> 00:13:15,570 عمود سيكون الخاص بك المفتاح الأساسي، التي عادة ما تكون، 272 00:13:15,570 --> 00:13:16,510 كما قلت، وهو رقم. 273 00:13:16,510 --> 00:13:18,718 انها ليست دائما بالضرورة الذهاب ليكون رقم الهوية، 274 00:13:18,718 --> 00:13:22,380 إلا أنها عادة ما تكون فكرة جيدة ل يكون نوعا من قيمة عدد صحيح. 275 00:13:22,380 --> 00:13:25,950 لديك الخيار في بريس عندما كنت بصدد إنشاء قاعدة البيانات الخاصة بك 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 >> وذلك على ما يبدو ما قمت به هنا يتم تكوين هوية المستخدم 285 00:14:02,010 --> 00:14:07,790 عامود لزيادة السيارات بحيث كل الوقت يمكنني إضافة معلومات إلى طاولة المفاوضات، 286 00:14:07,790 --> 00:14:12,220 وسوف تعطيني تلقائيا قيمة المفتاح الأساسي. 287 00:14:12,220 --> 00:14:15,570 لذلك أنا لا يمكن أبدا أن ننسى أن تفعل ذلك ل وقاعدة البيانات تفعل ذلك بالنسبة لي. 288 00:14:15,570 --> 00:14:16,587 ولهذا النوع من لطيف. 289 00:14:16,587 --> 00:14:18,670 وولهذا السبب نحصل 12 هناك، لأنني 290 00:14:18,670 --> 00:14:21,772 تعيين هذا العمود إلى زيادة السيارات. 291 00:14:21,772 --> 00:14:23,730 إذا أضفت شخص آخر انها تريد ان تكون 13، إذا أضفت 292 00:14:23,730 --> 00:14:27,890 شخص آخر انها تريد ان تكون 14، وهلم جرا. 293 00:14:27,890 --> 00:14:30,190 >> لذلك دعونا لا مجرد واحد أكثر الإدراج. 294 00:14:30,190 --> 00:14:34,530 ونحن سوف تضاف الى الجدول الامهات، في معين، واسم المستخدم والأم 295 00:14:34,530 --> 00:14:37,390 العمود، والقيم كرامر وبابس كرامر. 296 00:14:37,390 --> 00:14:39,140 وهكذا كان لدينا هذا من قبل. 297 00:14:39,140 --> 00:14:41,800 بعد أن تنفيذ تلك استعلام SQL، لدينا هذا. 298 00:14:41,800 --> 00:14:47,290 واضاف لدينا كرامر وبابس كرامر إلى طاولة الامهات. 299 00:14:47,290 --> 00:14:48,350 >> ذلك أن إدراج. 300 00:14:48,350 --> 00:14:51,850 SELECT هو ما نستخدمه لاستخراج المعلومات من الجدول. 301 00:14:51,850 --> 00:14:54,390 لذلك هذا هو كيف نحصل المعلومات من قاعدة البيانات. 302 00:14:54,390 --> 00:14:59,589 وأوامر SELECT ذلك ستكون كثيرا جدا المستخدمة في البرمجة. 303 00:14:59,589 --> 00:15:02,130 framework-- الجنرال ل هيكل عظمي العام يبدو مثل هذا. 304 00:15:02,130 --> 00:15:06,550 اختيار مجموعة من الأعمدة من جدول، ثم اختياريا 305 00:15:06,550 --> 00:15:11,090 يمكنك تحديد condition-- أو ما نسميه عادة المسند، 306 00:15:11,090 --> 00:15:13,010 عادة ما يكون المصطلح الذي نستخدمه في SQL. 307 00:15:13,010 --> 00:15:16,490 >> ولكنه في الاساس ما صفوف معينة ترغب في الحصول عليها. 308 00:15:16,490 --> 00:15:19,100 إذا كنت تريد، بدلا من الحصول على كل شيء، وتضييق عليه، 309 00:15:19,100 --> 00:15:20,060 هذا هو المكان الذي سوف تفعل ذلك. 310 00:15:20,060 --> 00:15:22,777 ثم اختياريا، يمكنك أيضا الترتيب حسب عمود معين. 311 00:15:22,777 --> 00:15:25,860 لذلك ربما كنت تريد أن يكون الأشياء مرتبة استنادا أبجديا على عمود واحد 312 00:15:25,860 --> 00:15:27,540 أو بناء على أبجديا آخر. 313 00:15:27,540 --> 00:15:30,610 >> مرة أخرى، حيث و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 هكذا على سبيل المثال، وأنا قد تحتاج إلى تحديد رقم الهوية وFULLNAME من المستخدمين. 319 00:15:44,932 --> 00:15:46,140 فما قد يبدو هذا مثل؟ 320 00:15:46,140 --> 00:15:48,270 حتى هنا بلدي المستخدمين الطاولة. 321 00:15:48,270 --> 00:15:51,080 أريد لتحديد idnum وFULLNAME من المستخدمين. 322 00:15:51,080 --> 00:15:52,300 ما أنا ذاهب للحصول على؟ 323 00:15:52,300 --> 00:15:53,580 انا ذاهب للحصول على هذا. 324 00:15:53,580 --> 00:15:56,930 لم أكن تضييق عليه، لذلك أنا الحصول على رقم لكل صف 325 00:15:56,930 --> 00:16:00,850 وأنا الحصول على كامل تسمية من كل صف. 326 00:16:00,850 --> 00:16:02,210 >> حسنا. 327 00:16:02,210 --> 00:16:05,640 ماذا لو كنت تريد تحديد كلمة المرور من المستخدمين WHERE-- حتى الآن 328 00:16:05,640 --> 00:16:10,370 أنا مضيفا شرط، وهو predicate-- حيث idnum أقل من 12. 329 00:16:10,370 --> 00:16:13,660 حتى هنا قاعدة البيانات الخاصة بي مرة أخرى، بلدي المستخدمين طاولة القمة. 330 00:16:13,660 --> 00:16:17,030 ما أنا ذاهب الى الحصول عليها إذا أريد ل حدد تلك المعلومات، وكلمة السر، 331 00:16:17,030 --> 00:16:21,550 حيث هوية المستخدم أو idnum أقل من 12؟ 332 00:16:21,550 --> 00:16:24,910 انا ذاهب للحصول على هذا المعلومات مرة أخرى، أليس كذلك؟ 333 00:16:24,910 --> 00:16:29,170 يحدث أن idnum هو 10، أي أقل من 12، ID رقم 11 أقل من 12. 334 00:16:29,170 --> 00:16:32,160 أنا الحصول على كلمة المرور لتلك الصفوف. 335 00:16:32,160 --> 00:16:33,914 هذا ما سألت عنه. 336 00:16:33,914 --> 00:16:34,580 ماذا عن هذا؟ 337 00:16:34,580 --> 00:16:39,170 ماذا لو كنت تريد تحديد نجم من الجدول الامهات حيث يساوي اسم المستخدم جيري؟ 338 00:16:39,170 --> 00:16:43,780 OK، حدد النجم هو خاص نوع من بطاقة البرية يسمى 339 00:16:43,780 --> 00:16:45,670 التي نستخدمها للحصول على كل شيء. 340 00:16:45,670 --> 00:16:48,620 حتى انهم يقولون حدد اسم المستخدم الأم الفاصلة، التي 341 00:16:48,620 --> 00:16:51,060 حدث أن يكون فقط عمودين من هذا الجدول، 342 00:16:51,060 --> 00:16:53,260 يمكنني فقط اختيار نجمة والحصول على كل شيء 343 00:16:53,260 --> 00:16:55,030 حيث يساوي اسم المستخدم جيري. 344 00:16:55,030 --> 00:16:59,380 وهذا ما أود أن أحصل على إذا أدليت به هذا الاستعلام معين. 345 00:16:59,380 --> 00:17:01,810 >> الآن، قواعد البيانات كبيرة لأنها تسمح لل 346 00:17:01,810 --> 00:17:06,074 لنا لتنظيم المعلومات ربما قليلا أكثر كفاءة من نحن 347 00:17:06,074 --> 00:17:06,740 قد خلاف ذلك. 348 00:17:06,740 --> 00:17:10,240 نحن لا بالضرورة لتخزين كل قطعة ذات الصلة المعلومات 349 00:17:10,240 --> 00:17:12,230 حول مستخدم في نفس الجدول. 350 00:17:12,230 --> 00:17:13,730 كان لدينا جدولين هناك. 351 00:17:13,730 --> 00:17:15,734 >> نحن بحاجة إلى تخزين اسم أمه الجميع، و 352 00:17:15,734 --> 00:17:18,900 وربما ليس لدينا الضمان الاجتماعي عدد، لدينا تاريخ ميلادهم. 353 00:17:18,900 --> 00:17:21,819 التي لا تحتاج دائما أن تكون في نفس الجدول. 354 00:17:21,819 --> 00:17:25,339 طالما أننا يمكن أن تحدد العلاقات بين tables-- 355 00:17:25,339 --> 00:17:28,440 وذلك حيث أن العلائقية مصطلح قاعدة بيانات نوع من يأتي 356 00:17:28,440 --> 00:17:32,130 في play-- طالما أننا يمكن أن تحدد العلاقات بين الجداول، 357 00:17:32,130 --> 00:17:35,545 يمكننا أن نوعا من تجزئة أو أشياء مجردة وسيلة، 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 >> في هذه الحالة، تفكر في ذلك مثل this-- جدول واحد هو دائرة واحدة أكثر من هنا، 381 00:18:45,340 --> 00:18:47,530 الجدول الثاني هو دائرة أخرى أكثر من هنا. 382 00:18:47,530 --> 00:18:49,410 وهذا الجزء المسند في الوسط، انها 383 00:18:49,410 --> 00:18:51,701 نوع من مثل إذا كنت تعتقد كما حول رسم تخطيطي فين، ما 384 00:18:51,701 --> 00:18:52,670 لديهم من القواسم المشتركة؟ 385 00:18:52,670 --> 00:18:55,960 نحن نريد لربط هذين الجدولين بناء على ما لديهم من القواسم المشتركة 386 00:18:55,960 --> 00:19:01,230 وخلق هذا الجدول الافتراضي هذا هو اندماج اثنين معا. 387 00:19:01,230 --> 00:19:03,480 لذلك سنرى هذا في سبيل المثال وربما هذا سوف يساعد 388 00:19:03,480 --> 00:19:04,521 مسحها حتى قليلا. 389 00:19:04,521 --> 00:19:09,260 لذلك ربما كنت تريد تحديد USER.FULLNAME وmoms.mother 390 00:19:09,260 --> 00:19:13,220 من المستخدمين الانضمام في الامهات الجدول في كل حالة 391 00:19:13,220 --> 00:19:16,790 حيث العمود اسم المستخدم هو نفسه بينهما. 392 00:19:16,790 --> 00:19:19,240 وهذا هو جديد بناء جملة هنا، هذا المستخدم. 393 00:19:19,240 --> 00:19:20,460 والامهات .. 394 00:19:20,460 --> 00:19:26,697 إذا أفعله جداول متعددة معا، ويمكن تحديد الجدول. 395 00:19:26,697 --> 00:19:29,530 أنا يمكن أن نميز في يوم معين أن في قاع جدا هناك. 396 00:19:29,530 --> 00:19:33,220 أنا يمكن أن تميز اسم المستخدم عمود من الجدول المستخدمين 397 00:19:33,220 --> 00:19:36,010 من العمود اسم المستخدم لل الجدول الامهات، والتي هي otherwise-- 398 00:19:36,010 --> 00:19:38,070 إذا قلنا فقط يساوي اسم المستخدم اسم المستخدم، وهذا لا حقا 399 00:19:38,070 --> 00:19:38,970 يعني أي شيء. 400 00:19:38,970 --> 00:19:41,440 نحن نريد أن نفعل ذلك حيث أنها تطابق. 401 00:19:41,440 --> 00:19:46,080 >> حتى أتمكن من تحديد الجدول و اسم العمود في حالة الوضع 402 00:19:46,080 --> 00:19:48,370 حيث أنه سيكون غير واضح ما أتحدث عنه. 403 00:19:48,370 --> 00:19:51,880 ذلك أن كل ما أفعله هناك أنا أقول هذا العمود من هذا الجدول، 404 00:19:51,880 --> 00:19:54,020 ويجري صريحة جدا. 405 00:19:54,020 --> 00:19:56,810 ذلك مرة أخرى، وأنا اختيار الاسم الكامل واسم الأم 406 00:19:56,810 --> 00:20:00,950 من الجدول المستخدمين المرتبطين معا مع الجدول الامهات في كل حالة 407 00:20:00,950 --> 00:20:05,960 حيث أنهما يشتركان أن column-- إلا أنهما يشتركان هذا المفهوم المستخدم. 408 00:20:05,960 --> 00:20:08,580 >> حتى هنا الجداول كان لدينا من قبل. 409 00:20:08,580 --> 00:20:12,210 هذا هو حال لدينا قاعدة البيانات كما هو قائم الآن. 410 00:20:12,210 --> 00:20:16,390 المعلومات نحن استخراج هذا هو لتبدأ. 411 00:20:16,390 --> 00:20:19,820 هذا هو الجدول الجديد ونحن في طريقنا لخلق الجمع بين هذه معا. 412 00:20:19,820 --> 00:20:23,585 ولاحظ أننا لا يبرز الصف نيومان في الجدول الخاص بالمستخدم، 413 00:20:23,585 --> 00:20:25,960 ونحن لا يبرز صف كريمر في الجدول الامهات 414 00:20:25,960 --> 00:20:31,250 لأن لا أحد موجود في كلا sets-- في كلا الجدولين. 415 00:20:31,250 --> 00:20:36,260 >> المعلومات الوحيدة التي هي مشتركة بينهما جيري في كلا الجدولين 416 00:20:36,260 --> 00:20:39,100 وgcostanza في كلا الجدولين. 417 00:20:39,100 --> 00:20:42,620 وحتى عندما نفعل SQL JOIN، ما كنا get-- ونفعل في الواقع الحصول على هذا. 418 00:20:42,620 --> 00:20:44,830 انها نوع من متغير مؤقت. 419 00:20:44,830 --> 00:20:47,330 انها مثل افتراضية اندماج الجدولين. 420 00:20:47,330 --> 00:20:49,930 ونحن في الواقع الحصول على شيء مثل هذا، حيث 421 00:20:49,930 --> 00:20:54,730 لقد اندمجت معا الجداول على المعلومات التي لديهم من القواسم المشتركة. 422 00:20:54,730 --> 00:20:58,334 >> لذلك تلاحظ أن users.username والعمود moms.username، 423 00:20:58,334 --> 00:20:59,250 انها بالضبط نفس الشيء. 424 00:20:59,250 --> 00:21:01,820 وكان أن المعلومات التي ما يتسق من المستخدمين 425 00:21:01,820 --> 00:21:02,890 الجدول والجدول الامهات. 426 00:21:02,890 --> 00:21:04,270 ولذا فإننا اندمجت معا. 427 00:21:04,270 --> 00:21:06,919 نحن تجاهل كريمر لأنه لم تكن موجودة في الجدول المستخدمين، 428 00:21:06,919 --> 00:21:09,710 ونحن تجاهل نيومان، ل وقال انه لم يكن موجودا في الجدول الامهات. 429 00:21:09,710 --> 00:21:16,450 لذلك هذا هو الاندماج افتراضية باستخدام عملية الربط من SELECT. 430 00:21:16,450 --> 00:21:21,250 >> ثم كنا نبحث عن ل الاسم الكامل المستخدم والدة المستخدم، 431 00:21:21,250 --> 00:21:24,999 ولذا فإن هذه المعلومات التي سوف نحصل من الاستعلام العام 432 00:21:24,999 --> 00:21:26,040 التي قطعناها على أنفسنا مع SELECT. 433 00:21:26,040 --> 00:21:28,873 لذلك نحن انضمت إلى الجداول معا واستخرجنا هذه الأعمدة اثنين، 434 00:21:28,873 --> 00:21:31,610 وهذا ما كنا عليه. 435 00:21:31,610 --> 00:21:33,370 ولكن SQL ينضم إلى نوع من التعقيد. 436 00:21:33,370 --> 00:21:36,770 ربما لن تفعل لهم كثيرا، ولكن مجرد فكرة عن هيكل عظمي 437 00:21:36,770 --> 00:21:41,992 التي يمكن استخدامها لدمج اثنين الجداول معا إذا كنت في حاجة إليها. 438 00:21:41,992 --> 00:21:43,700 الأخيرين هي أبسط قليلا أعدك. 439 00:21:43,700 --> 00:21:48,040 حتى تحديث، يمكننا استخدام 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 وتعيين كلمة المرور ليادا يادا، حيث بلغ عدد الرقم هو 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 حذف من الجدول حيث بعض المسند راض. 452 00:22:24,817 --> 00:22:26,900 نريد حذفه من المستخدمين الجدول على سبيل المثال 453 00:22:26,900 --> 00:22:28,254 حيث كان اسم المستخدم نيومان. 454 00:22:28,254 --> 00:22:31,420 ربما يمكنك تخمين ما يحدث ل يحدث هنا بعد أن تنفيذ هذا SQL 455 00:22:31,420 --> 00:22:35,790 الاستعلام، هو ذهب نيومان من الجدول. 456 00:22:35,790 --> 00:22:40,460 >> لذلك كل هذه العمليات، كما قلت، من السهل جدا القيام به في بريس. 457 00:22:40,460 --> 00:22:43,020 انها واجهة المستخدم ودية للغاية. 458 00:22:43,020 --> 00:22:45,930 ولكنه يتطلب الجهد اليدوي. 459 00:22:45,930 --> 00:22:47,840 نحن لا نريد لتوظيف الجهد اليدوي. 460 00:22:47,840 --> 00:22:51,280 نريد برامجنا ل القيام بذلك بالنسبة لنا، أليس كذلك؟ 461 00:22:51,280 --> 00:22:53,190 ولذا فإننا قد ترغب في القيام هذا برمجيا. 462 00:22:53,190 --> 00:22:56,410 نحن نريد لدمج SQL ويكون شيء آخر للقيام بذلك بالنسبة لنا. 463 00:22:56,410 --> 00:23:02,710 >> ولكن ما رأينا أن يسمح لنا أن نفعل شيئا برمجيا؟ 464 00:23:02,710 --> 00:23:03,690 لقد رأينا PHP، أليس كذلك؟ 465 00:23:03,690 --> 00:23:05,760 انه يقدم بعض ديناميكية في برامجنا. 466 00:23:05,760 --> 00:23:10,430 وذلك لحسن الحظ، وSQL PHP لعب بشكل جيد جدا معا. 467 00:23:10,430 --> 00:23:13,230 هناك وظيفة في PHP دعا الاستعلام، والتي يمكن استخدامها. 468 00:23:13,230 --> 00:23:15,870 ويمكنك تمرير مثل المعلمة أو وسيطة 469 00:23:15,870 --> 00:23:19,210 للاستعلام استعلام SQL التي كنت ترغب في تنفيذه. 470 00:23:19,210 --> 00:23:23,250 وسوف PHP القيام بذلك نيابة عنك. 471 00:23:23,250 --> 00:23:25,564 >> بعد ذلك قمت بتوصيل إلى قاعدة البيانات الخاصة بك مع PHP، 472 00:23:25,564 --> 00:23:26,980 هناك اثنين من الانتخابات التمهيدية القيام بذلك. 473 00:23:26,980 --> 00:23:29,230 هناك شيء يسمى MySQLi وشيء يسمى شركة تنمية نفط عمان. 474 00:23:29,230 --> 00:23:31,063 نحن لن ندخل ضخمة كمية التفاصيل هناك. 475 00:23:31,063 --> 00:23:32,957 في CS50 نستخدم شركة تنمية نفط عمان. 476 00:23:32,957 --> 00:23:34,790 بعد أن كنت قد متصل إلى قاعدة البيانات الخاصة بك، وأنت 477 00:23:34,790 --> 00:23:40,980 ثم يمكن أن تجعل الاستفسارات قاعدة البيانات الخاصة بك عن طريق تمرير الاستعلامات كوسائط 478 00:23:40,980 --> 00:23:42,730 إلى وظائف PHP. 479 00:23:42,730 --> 00:23:46,460 وعندما تفعل ذلك، يمكنك تخزين مجموعة النتائج في مجموعة النقابي. 480 00:23:46,460 --> 00:23:50,290 >> ونحن نعرف كيفية العمل مع صفائف النقابي في PHP. 481 00:23:50,290 --> 00:23:52,630 لذلك أنا قد أقول شيئا مثل this-- $ results-- 482 00:23:52,630 --> 00:23:55,470 هذا هو في PHP-- يساوي الاستعلام. 483 00:23:55,470 --> 00:23:57,660 ثم داخل وظيفة الاستعلام هذه الحجة 484 00:23:57,660 --> 00:24:00,130 أنني يمر الاستعلام يشبه SQL. 485 00:24:00,130 --> 00:24:01,160 في واقع الأمر أن SQL. 486 00:24:01,160 --> 00:24:05,700 هذا هو سلسلة الاستعلام التي أود ترغب في تنفيذها على قاعدة البيانات الخاصة بي. 487 00:24:05,700 --> 00:24:09,250 >> وذلك باللون الأحمر، وهذا هو PHP. 488 00:24:09,250 --> 00:24:11,890 هذا هو SQL أنني الاندماج PHP بجعل 489 00:24:11,890 --> 00:24:15,020 انها حجة لوظيفة الاستعلام. 490 00:24:15,020 --> 00:24:19,640 أريد لتحديد FULLNAME من المستخدمين حيث يساوي رقم 10. 491 00:24:19,640 --> 00:24:22,560 وربما بعد ذلك بعد أن فعلت ذلك، قد أقول شيئا من هذا القبيل. 492 00:24:22,560 --> 00:24:25,550 أريد لطباعة رسالة شكرا لتسجيل الدخول. 493 00:24:25,550 --> 00:24:32,530 >> وأريد أن interpolate-- أريد أن أقحم النتائج $ FULLNAME. 494 00:24:32,530 --> 00:24:36,280 وهكذا هذه هي الطريقة التي أعمل مع أن مجموعة النقابي أنني حصلت على العودة. 495 00:24:36,280 --> 00:24:39,730 $ نتائج FULLNAME شأنه إنهاء الاساس طبع، 496 00:24:39,730 --> 00:24:42,870 شكرا لتسجيل الدخول، جيري ساينفيلد. 497 00:24:42,870 --> 00:24:46,570 وكان هذا هو الاسم الكامل حيث idnum يساوي 10. 498 00:24:46,570 --> 00:24:48,850 >> وهكذا كل ما أفعله وأنا now-- I المخزنة 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 حق في ما بين تلك مجعد الأقواس، جيري ساينفيلد. 504 00:25:08,654 --> 00:25:11,820 وسوف ترغب في طباعة الرسالة شكرا لتسجيل الدخول جيري ساينفيلد. 505 00:25:11,820 --> 00:25:16,652 >> الآن، ونحن ربما لا تريد الصعب أشياء قانون من هذا القبيل في، أليس كذلك؟ 506 00:25:16,652 --> 00:25:19,860 ونحن قد تريد أن تفعل شيئا مثل الطباعة و حيث أننا يمكن أن تكون بديلا وربما 507 00:25:19,860 --> 00:25:22,443 جمع المعلومات المختلفة، أو ربما يكون عملية استعلام 508 00:25:22,443 --> 00:25:23,370 معلومات مختلفة. 509 00:25:23,370 --> 00:25:27,920 وهكذا الاستعلام، وظيفة الاستعلام لديها هذا مفهوم النوع من التبديلات 510 00:25:27,920 --> 00:25:32,310 تشبه الى حد بعيد طباعة و في المئة الصورة وج في المئة، وعلامات استفهام. 511 00:25:32,310 --> 00:25:34,290 >> ويمكننا استخدام السؤال علامات بالقياس جدا 512 00:25:34,290 --> 00:25:38,400 لطباعة و للمتغيرات بديلة. 513 00:25:38,400 --> 00:25:44,120 ولذلك ربما يكون المستخدم تسجيل في وقت سابق، وقمت بحفظ رقم المستخدم الخاص بهم 514 00:25:44,120 --> 00:25:51,710 في $ _SESSION من PHP السوبر العالمية في 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، أو أيا كان قيمة ID $ _SESSION هي. 519 00:26:08,440 --> 00:26:10,790 وبحيث يتيح لنا يكون قليلا أكثر ديناميكية. 520 00:26:10,790 --> 00:26:12,699 نحن ليس من الصعب ترميز الأشياء في بعد الآن. 521 00:26:12,699 --> 00:26:14,490 نحن توفير المعلومات في مكان ما ثم 522 00:26:14,490 --> 00:26:18,924 يمكننا استخدام هذه المعلومات مرة أخرى ل نوع من التعميم ما نريد القيام به، 523 00:26:18,924 --> 00:26:21,090 ومجرد سد في والتغيير سلوك صفحتنا 524 00:26:21,090 --> 00:26:26,489 بناء على ما رقم المستخدم في الواقع هو بعد أن قمت بتسجيل الدخول. 525 00:26:26,489 --> 00:26:28,530 ومن الممكن أيضا، على الرغم من أن نتائجك مجموعة 526 00:26:28,530 --> 00:26:30,840 قد تتكون من عدة صفوف. 527 00:26:30,840 --> 00:26:33,990 في هذه الحالة، لديك مجموعة من arrays-- 528 00:26:33,990 --> 00:26:35,334 مجموعة من المصفوفات الترابطية. 529 00:26:35,334 --> 00:26:37,000 وتحتاج فقط للتنقل من خلال ذلك. 530 00:26:37,000 --> 00:26:41,950 ونحن نعرف كيفية تكرار من خلال صفيف في PHP، أليس كذلك؟ 531 00:26:41,950 --> 00:26:45,600 حتى هنا هو على الارجح الاكثر شيء معقد رأيناه حتى الآن. 532 00:26:45,600 --> 00:26:49,640 أنه يدمج الواقع ثلاث لغات معا. 533 00:26:49,640 --> 00:26:52,920 >> هنا باللون الأحمر، وهذا هو بعض HTML. 534 00:26:52,920 --> 00:26:56,872 على ما يبدو أنا starting-- هذا هو مقتطف من بعض HTML التي لدي. 535 00:26:56,872 --> 00:26:59,580 أنا بدأت فقرة جديدة يقول الامهات سينفيلد التلفزيون. 536 00:26:59,580 --> 00:27:02,350 ثم بعد ذلك على الفور أنا بدأت في الجدول. 537 00:27:02,350 --> 00:27:06,060 ثم بعد ذلك، وأنا لدينا بعض PHP، أليس كذلك؟ 538 00:27:06,060 --> 00:27:08,229 لدي كل من هذا الرمز PHP هناك. 539 00:27:08,229 --> 00:27:09,645 أنا على ما يبدو سوف تجعل استعلام. 540 00:27:09,645 --> 00:27:14,180 وجعل الاستعلام، وانا ذاهب ل تكون باستخدام أمهات اختر من الامهات. 541 00:27:14,180 --> 00:27:15,970 >> لذلك هذا هو getting-- هذا هو SQL. 542 00:27:15,970 --> 00:27:17,300 وبالتالي فإن اللون الأزرق هو SQL. 543 00:27:17,300 --> 00:27:19,680 وكان الأحمر رأينا قبل الثانية HTML. 544 00:27:19,680 --> 00:27:21,360 والأخضر هنا هو PHP. 545 00:27:21,360 --> 00:27:23,400 لذلك أنا جعل استعلام إلى قاعدة البيانات الخاصة بي، وأنا 546 00:27:23,400 --> 00:27:26,040 اختيار كل من أمهات في الجدول الامهات. 547 00:27:26,040 --> 00:27:30,710 ليس فقط تضييق عليه لخاص صف واحد، أنا أسأل لجميع من لهم. 548 00:27:30,710 --> 00:27:33,290 >> بعد ذلك معرفة ما اذا كان النتيجة لا يساوي يساوي كاذبة. 549 00:27:33,290 --> 00:27:37,410 هذا هو مجرد طريقي للتحقق من نوع من إذا كانت النتائج لا تساوي قيمة خالية، 550 00:27:37,410 --> 00:27:40,260 أننا سوف نرى ج على سبيل المثال. 551 00:27:40,260 --> 00:27:44,000 أساسا هذا هو مجرد التحقق للتأكد تأكد من أنه في الواقع حصلت البيانات مرة أخرى. 552 00:27:44,000 --> 00:27:47,041 لأنني لا أريد لبدء الطباعة من البيانات إذا لم أحصل على أية بيانات. 553 00:27:47,041 --> 00:27:50,690 ثم لكل النتائج نتيجة لذلك foreach جملة من PHP، كل ما أفعله 554 00:27:50,690 --> 00:27:53,399 وطبع أمهات $ نتيجة. 555 00:27:53,399 --> 00:27:55,940 وحتى وأنا ذاهب للحصول على مجموعة جميع أمهات each-- 556 00:27:55,940 --> 00:27:59,980 انها مجموعة من النقابي arrays-- وأنا طبع 557 00:27:59,980 --> 00:28:03,649 كل واحد كما الصف الخاص به من الجدول. 558 00:28:03,649 --> 00:28:05,690 وهذا هو حقا جميلة كثيرا كل ما في الامر. 559 00:28:05,690 --> 00:28:07,750 أنا أعرف هناك قليلا الشيء يجري هنا 560 00:28:07,750 --> 00:28:13,210 في هذا المثال الأخير مع صفائف arrays-- صفائف صفائف النقابي. 561 00:28:13,210 --> 00:28:17,340 ولكن هل حقا لا تغلي فقط إلى أسفل في SQL في جعل استعلام، 562 00:28:17,340 --> 00:28:21,102 عادة اختيار بعد أن قمت بالفعل وضع المعلومات في الجدول، 563 00:28:21,102 --> 00:28:22,310 وبعد ذلك فقط إخراجه. 564 00:28:22,310 --> 00:28:25,710 >> وهذا هو أننا سوف تسحبه في هذه الحالة بالذات. 565 00:28:25,710 --> 00:28:31,120 فإننا استخراج كافة الفرد الأمهات من الجدول الامهات. 566 00:28:31,120 --> 00:28:35,970 حصلنا على مجموعة كاملة منها، ونحن تريد تكرار خلال وطباعة 567 00:28:35,970 --> 00:28:37,630 كل واحد. 568 00:28:37,630 --> 00:28:40,510 ذلك مرة أخرى، وهذا هو الأرجح المثال الأكثر تعقيدا 569 00:28:40,510 --> 00:28:44,510 رأيناه لأننا خلط ثلاثة لغات مختلفة معا، أليس كذلك؟ 570 00:28:44,510 --> 00:28:50,100 >> مرة أخرى، لدينا HTML هنا باللون الأحمر، مختلطة مع بعض SQL هنا باللون الأزرق، 571 00:28:50,100 --> 00:28:52,049 مختلطة مع بعض PHP باللون الأخضر. 572 00:28:52,049 --> 00:28:53,840 ولكن كل هذه اللعب لطيف معا، انها 573 00:28:53,840 --> 00:28:57,060 مجرد مسألة تطوير عادات جيدة بحيث يمكنك الحصول على 574 00:28:57,060 --> 00:28:58,780 لهم للعمل معا بالطريقة التي تريدها. 575 00:28:58,780 --> 00:29:03,790 والطريقة الوحيدة للقيام حقا أن هو الممارسة، الممارسة، والممارسة. 576 00:29:03,790 --> 00:29:06,740 أنا دوغ ويد، وهذا هو CS50. 577 00:29:06,740 --> 00:29:08,647