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 הולך לשאוב בזמן אמת נתוני מלאי מYahoo Finance. 26 00:01:09,044 --> 00:01:11,960 וכך בסופו, יהיה לך אשליה לעצמך ולמשתמשים 27 00:01:11,960 --> 00:01:14,550 שאתה בעצם קנייה ומכירה מניות ומקבלים זמן כמעט אמיתי 28 00:01:14,550 --> 00:01:16,800 עדכונים, ניהול תיק, אשר כולם 29 00:01:16,800 --> 00:01:20,310 הוא הולך לדרוש שיש, סופו של דבר, בסיס הנתונים של משתמשים. 30 00:01:20,310 --> 00:01:23,330 >> אז, במילים שלך, במיוחד אם אתה לא 31 00:01:23,330 --> 00:01:25,670 סופר מוכר עם מחשב מדע או מאגרי מידע, מה 32 00:01:25,670 --> 00:01:30,790 אתה יודע מסד נתוני להיות עכשיו, במונחים פחות טכניים? 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 אם אתה משתמש בפייסבוק או Gmail, מה הם המאפיינים 40 00:01:53,160 --> 00:01:54,940 כי לכולנו יש משתמשים? 41 00:01:54,940 --> 00:01:58,530 כמו, מה יכול להיות חלק מ עמודות בגיליון האלקטרוני שאליה אנו 42 00:01:58,530 --> 00:01:59,390 רמז בפעם האחרונה? 43 00:01:59,390 --> 00:02:01,140 כי שוב, אתה יכול חושב על מסד נתונים 44 00:02:01,140 --> 00:02:05,810 באמת כקובץ Excel מפואר או Google גיליון אלקטרוני או קובץ מספרי אפל. 45 00:02:05,810 --> 00:02:08,280 >> אז, מה אתה חושב על כאשר אתה חושב על משתמש? 46 00:02:08,280 --> 00:02:11,290 מה יש להם? 47 00:02:11,290 --> 00:02:11,790 מה זה? 48 00:02:11,790 --> 00:02:12,470 >> קהל: שם. 49 00:02:12,470 --> 00:02:13,303 >> DAVID מלאן: שם. 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 אז, כמו מספר תעודת זהות, כמו הרווארד שלך זיהוי או תעודת הזהות הנקי ייל או משהו דומה. 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 ואתה יכול לדמיין Google Spreadsheets או כל מספר של תוכניות אחרות. 68 00:02:48,309 --> 00:02:52,130 אבל מה מפתח על MySQL, שהוא תוכנת מסד הנתונים אנחנו הולכים להשתמש, 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 ואילו חיובי MySQL לך כלום עבור אותו. 79 00:03:15,550 --> 00:03:18,790 אז, SQL הולך לתת לנו לפחות ארבע פעולות. 80 00:03:18,790 --> 00:03:23,190 היכולת לבחור נתונים, כמו קריאה נתונים, להוסיף, למחוק, ולעדכן נתונים. 81 00:03:23,190 --> 00:03:25,525 במילים אחרות, הם אלה באמת ארבע פעולות עיקריות 82 00:03:25,525 --> 00:03:28,950 כי הם הולכים כדי לאפשר לנו לשנות דברים אלה בשורות ועמודות. 83 00:03:28,950 --> 00:03:33,250 >> הכלי שאנו משתמשים היום במיוחד ללמוד SQL ולשחק עם זה 84 00:03:33,250 --> 00:03:34,627 נקרא שוב MyAdmin PHP. 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 ואני גם ביקרתי את כתובת אתר ל הכלי הזה שנקרא PHP MyAdmin. 101 00:04:19,372 --> 00:04:22,580 ובבעיה להגדיר שבע, אנחנו אגיד לי לך בדיוק איך להגיע לממשק זה 102 00:04:22,580 --> 00:04:23,200 גם כן. 103 00:04:23,200 --> 00:04:25,640 בפינה השמאלית העליונה, שמתי לב שזה אומר להרצות. 104 00:04:25,640 --> 00:04:27,610 וזה רק אומר ש מראש, אני יצרתי 105 00:04:27,610 --> 00:04:31,360 הרצאת מסד נתונים בשם ריקה שאין לו גיליונות אלקטרוניים בזה עדיין. 106 00:04:31,360 --> 00:04:32,600 אין שורות ועמודות. 107 00:04:32,600 --> 00:04:34,308 מכיוון הראשון דבר שאנחנו הולכים לעשות 108 00:04:34,308 --> 00:04:37,100 הוא מתחיל ליצור טבלה זה הולך לאחסן המשתמשים שלנו. 109 00:04:37,100 --> 00:04:39,100 >> אז, פשוטו כמשמעו, על כאן לימין, אני 110 00:04:39,100 --> 00:04:42,070 הולך לספר את מסד הנתונים אני רוצה טבלה בשם משתמשים. 111 00:04:42,070 --> 00:04:44,845 אז, זה כמו הקובץ ש רוצה לאחסן את כל הנתונים שלי ב. 112 00:04:44,845 --> 00:04:45,720 וכמה עמודים? 113 00:04:45,720 --> 00:04:47,740 ובכן, בואו נשמור את זה פשוט עבור החברה. 114 00:04:47,740 --> 00:04:51,855 אני רק רוצה לאחסן כמו שם משתמש ושם למשתמש. 115 00:04:51,855 --> 00:04:53,020 נתחיל קטן. 116 00:04:53,020 --> 00:04:55,370 אז, אני רוצה סך הכל שתי עמודות. 117 00:04:55,370 --> 00:04:57,360 ואני הולך קדימה ולחץ על חפש. 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 אני הולך ליצור טבלה בשם משתמשים עם שתי עמודות, לחץ על Go, אישור. 122 00:05:09,180 --> 00:05:10,520 עכשיו יש לנו את זה ממש מהר. 123 00:05:10,520 --> 00:05:12,065 תודה לך, יפה מאוד. 124 00:05:12,065 --> 00:05:14,440 בסדר, אז מה לעשות שאנחנו רוצים עמודים אלה שייקראו? 125 00:05:14,440 --> 00:05:16,080 >> אז, אחד הולך להיקרא שם משתמש. 126 00:05:16,080 --> 00:05:19,480 כאן-- אז, כל מה שאני רואה והממשק בכנות מקבל קצת מכוער סופו של דבר, 127 00:05:19,480 --> 00:05:21,270 ברגע שאתה מתחיל להקליד בכל הנתונים הללו. 128 00:05:21,270 --> 00:05:27,450 אבל מה נחמד הוא סוג של באופן פרדוקסלי, אני יוצר עמודות, 129 00:05:27,450 --> 00:05:29,977 אבל הכלי יש בטיפשות הניח אותם בשורות 130 00:05:29,977 --> 00:05:31,560 כך שאני יכול להגדיר את העמודות אלה. 131 00:05:31,560 --> 00:05:33,550 אז, יש שני כדורי סרק יש תחת שם. 132 00:05:33,550 --> 00:05:36,180 ואחד מהתחומים הללו אני רוצה נקרא שם משתמש, 133 00:05:36,180 --> 00:05:38,000 והתחום האחר שאני רוצה לקרוא לשם. 134 00:05:38,000 --> 00:05:40,340 >> ועכשיו אני צריך לבחור סוגי נתונים לדברים האלה. 135 00:05:40,340 --> 00:05:42,330 אז, בעוד ב- Excel ו, Google Spreadsheets 136 00:05:42,330 --> 00:05:45,531 אם אתה רוצה טור, אתה ממש פשוט הקלד שם או שם משתמש, לחץ על Enter. 137 00:05:45,531 --> 00:05:48,030 אולי אתה עושה את זה פנים מודגשים רק לבהירות, אבל זהו זה. 138 00:05:48,030 --> 00:05:50,140 אתה לא תציין סוגים של העמודות. 139 00:05:50,140 --> 00:05:53,790 עכשיו בGoogle Spreadsheets או Excel, אולי לציין כיצד הנתונים שניתנו. 140 00:05:53,790 --> 00:05:58,120 אתה יכול ללכת לתפריט העיצוב, ואתה ניתן לציין להראות סימן דולר כמו זה, 141 00:05:58,120 --> 00:05:59,900 להראות את זה כמו ערך נקודה צפה. 142 00:05:59,900 --> 00:06:01,990 >> אז, זה דומה ברוחו ל כי מה שאנחנו עומדים לעשות, 143 00:06:01,990 --> 00:06:04,740 אבל זה באמת הולך להכריח הנתונים להיות סוג מסוים. 144 00:06:04,740 --> 00:06:07,750 עכשיו, למרות שלפני רגע אמר שיש רק כמה סוגי נתונים, 145 00:06:07,750 --> 00:06:11,120 יש למעשה הרבה, והם 146 00:06:11,120 --> 00:06:12,910 בדרגות שונות של הספציפיות. 147 00:06:12,910 --> 00:06:14,970 וכמו בצד, אתה אפילו יכול לעשות דברים מפוארים 148 00:06:14,970 --> 00:06:17,520 כמו גיאומטריות אחסון בתוך מסד הנתונים. 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--L--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 מלאן: כן, רק לגרום להם כל null. 180 00:07:27,160 --> 00:07:28,290 לגרום להם רווחים. 181 00:07:28,290 --> 00:07:30,816 אבל כנראה null, כך הרבה אפסים קו נטוי. 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 מלאן: 5,000, הו אלוהים שלי. 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 הולך לנו-- אנחנו הולך נגמרים של זיכרון. 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--L--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--L-A-N, זה הולך רק לשימוש חמש, 250 00:10:14,860 --> 00:10:18,120 אולי שישה בתים עבור כמו אופי null נגרר, 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 זה מה שהוא עושה MySQL, כך בוודאי שיכול להיות המקרה. 277 00:11:19,610 --> 00:11:22,430 ואם אתה חושב בדרך בחזרה לPSet-- או אפילו 278 00:11:22,430 --> 00:11:26,340 שבועות שני, דברים כשעשינו כמו חיפוש בינארי או אפילו חיפוש ליניארי, 279 00:11:26,340 --> 00:11:30,690 אחד הדברים נחמדים על כל מילה במסד נתונים או כל מילה בעמודה 280 00:11:30,690 --> 00:11:33,690 להיות בדיוק באותו האורך, אפילו אם חבורה של הדמויות האלה כל 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 מלאן: מחפש למסיימי null 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 שם, להיות null? 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 לא, כי אתה בהחלט יכול נו-- אין שני דוד 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 אני לחץ על שמור, ומאוד, מאוד, מאוד לאט אין בסיס הנתונים לקבל נשמרו. 371 00:15:35,032 --> 00:15:37,240 ועכשיו אני חוזר לזה ממשק, שיש להודות, 372 00:15:37,240 --> 00:15:38,680 הוא מכריע במבט ראשון. 373 00:15:38,680 --> 00:15:42,450 אבל כל מה שאני הולך לעשות הוא קליק במילת המשתמשים בפינה השמאלית עליונה. 374 00:15:42,450 --> 00:15:47,630 אני הולך לעלות כאן, לחץ על משתמשים, וברירת מחדל, זה 375 00:15:47,630 --> 00:15:50,180 ביצע כמה SQL, אבל עוד על כך ברגע. 376 00:15:50,180 --> 00:15:52,654 הנה רק סיכום של מה שעשיתי. 377 00:15:52,654 --> 00:15:55,320 ולא לדאוג שאתה רואה להזכיר לטינית ושוודית כאן. 378 00:15:55,320 --> 00:16:00,490 אלה הם רק ברירת המחדל הגדרות, כי MySQL במקור, 379 00:16:00,490 --> 00:16:04,000 או PHP MyAdmin, אחד משני קרה להיכתב על ידי כמה אנשים שוודי. 380 00:16:04,000 --> 00:16:06,100 אבל זה לא רלוונטי במקרה שלנו כאן. 381 00:16:06,100 --> 00:16:08,280 >> בסדר, אז למה הוא זה כל מעניין? 382 00:16:08,280 --> 00:16:13,050 מתברר, שאני יכול להכניס נתונים לתוך מסד נתונים על ידי כתיבת קוד. 383 00:16:13,050 --> 00:16:15,940 ואני הולך קדימה ו בקובץ שלי כאן, אני 384 00:16:15,940 --> 00:16:19,000 הולך קדימה ולהעמיד פן כמו זה קווית למסד נתונים ש, ש 385 00:16:19,000 --> 00:16:23,040 זה לא באותו הרגע, אבל זה יהיה להיות כשנגיע לבעיה להגדיר שבע. 386 00:16:23,040 --> 00:16:25,640 ואני הולך קדימה ו לבצע פונקציה שנקראת שאילתא, 387 00:16:25,640 --> 00:16:28,730 שאנו נותנים לך בבעיה להגדיר קוד ההפצה של שבע, ש 388 00:16:28,730 --> 00:16:31,490 לוקח טיעון אחד לפחות, וזה רק מחרוזת. 389 00:16:31,490 --> 00:16:33,460 מחרוזת של קוד SQL. 390 00:16:33,460 --> 00:16:36,700 אז, אתה עומד ללמוד איך לכתוב שפת שאילתות מובנית. 391 00:16:36,700 --> 00:16:41,270 >> אם אני רוצה להוסיף שורה חדשה לי מסד הנתונים, כי מישהו הגיש 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 אני הולך ללכת במקום לMyAdmin PHP. 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 אחרי סוגריים אחר, ולאחר מכן שני ערכים 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 אז, זה לא ג זה לא PHP. 442 00:18:56,570 --> 00:18:59,970 עכשיו זה SQL, ואני מדביק אותו לממשק מבוסס אינטרנט זה זה 443 00:18:59,970 --> 00:19:02,710 רק הולך לתת לי, ברגע שאני לוחץ על Go, 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 .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 אז, זה רק מורכב הרבה יותר דרך של פתיחת Google Spreadsheets 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 >> מה יש בתוכו של דולר לחתום תחתון GET ב- 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 קצת יותר חזק. 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 לכן, אם אתה אחורה בזמן ל כאשר אנו כבר שיחקנו עם Google 491 00:20:55,380 --> 00:20:59,600 ואנחנו כבר הלכנו לקו נטוי Google.com q סימן שאלת החיפוש שווה חתולים, 492 00:20:59,600 --> 00:21:03,550 אם הייתי על Enter ואם Google יושמו ב- PHP, 493 00:21:03,550 --> 00:21:07,017 קוד PHP שגוגל כתבה יצטרך גישה לסימן דולר 494 00:21:07,017 --> 00:21:11,600 מדגיש להיכנס פנימה ש הוא ש מפתח בשם וערך 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, ציטוט, שם משתמש סוף ציטוט, ו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 להיות אם מישהו רק מחובר ואני רוצה לבדוק אם הוא או היא היא למעשה 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 משמש רק מקבל, אתה יכול בהחלט יש POST. 585 00:25:14,350 --> 00:25:17,212 ולזכור כי הודעה היא עוד טכניקה להגשת מידע 586 00:25:17,212 --> 00:25:19,170 מצורה, אבל זה לא יופיע ב- URL. 587 00:25:19,170 --> 00:25:22,690 זה קצת יותר בטוח בהחלט ל דברים כמו שמות משתמש וסיסמאות, 588 00:25:22,690 --> 00:25:25,210 שPSet7 יהיה, למעשה, כרוך. 589 00:25:25,210 --> 00:25:28,130 >> אז, בואו נעשיתי את זה ב- PHP MyAdmin ולראות מה קורה. 590 00:25:28,130 --> 00:25:30,020 אני הולך לכרטיסיית MySQL. 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 הקלד את כוכב SELECT ממשתמשים. 597 00:25:45,920 --> 00:25:48,294 >> עכשיו מבחינה טכנית, אתה יכול לצטט את השם של השולחנות. 598 00:25:48,294 --> 00:25:50,460 זה נדיר שיש לך ל, אבל שמתי לב אלה אינם 599 00:25:50,460 --> 00:25:52,240 הציטוטים הרגילים שלך על המקלדת בארה"ב. 600 00:25:52,240 --> 00:25:54,760 זהו הסימן 'כביכול, ש הוא בדרך כלל בחלק העליון יד שמאל 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 לכן, אם אני לוחץ על Go, אני רואה חזותי ש אני כבר קיבלתי בחזרה, אכן, שתי שורות. 611 00:26:19,370 --> 00:26:22,060 יש הרבה עומס על מסך, אבל אני רואה רק שתי שורות. 612 00:26:22,060 --> 00:26:28,580 לעומת זאת, אם אני עושה את זה שוב ולעשות כוכב SELECT ממשתמשים, שבו שם משתמש 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 הדביק אותם לגוגל חדשה גיליון אלקטרוני או קובץ Excel, 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 עכשיו מזהה יכול להיות כמו הרווארד זהות או תעודת הזהות הנקי של ייל, 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 אני הולך להוסיף שדה שנקרא מזהה. 669 00:29:00,170 --> 00:29:03,070 ואני הולך לעשות את זה סוג מספרי. 670 00:29:03,070 --> 00:29:05,362 >> יש לי כל חבורה ערכים לnumerics. 671 00:29:05,362 --> 00:29:08,677 אני רק הולך לבחור INT ו לא לדאוג גדלים השונים. 672 00:29:08,677 --> 00:29:10,510 אני לא צריך לציין אורך או ערך, 673 00:29:10,510 --> 00:29:13,710 כי זה הולך להיות 32 סיביות ולא משנה מה. 674 00:29:13,710 --> 00:29:16,070 תכונות, שלא ראו בעבר. 675 00:29:16,070 --> 00:29:18,410 כל עניין בכל אחד מאלה אפשרויות תפריט הפעם? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 לINT? 678 00:29:23,745 --> 00:29:24,620 מה אתה מציע? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 לא? 681 00:29:28,445 --> 00:29:29,570 האם כל אלה הגיוניים? 682 00:29:29,570 --> 00:29:30,536 כן. 683 00:29:30,536 --> 00:29:31,900 כן, לא חתום, נכון? 684 00:29:31,900 --> 00:29:35,930 >> באופן כללי, אם אנחנו הולכים לתת לי כל מספר ייחודי, ה 685 00:29:35,930 --> 00:29:38,200 המקום שבו הסיפור הזה הוא הולך, אני באמת רק רוצה 686 00:29:38,200 --> 00:29:41,919 לאדם יש מספר כמו אפס ואחד ושתיים ושלושה וארבעה. 687 00:29:41,919 --> 00:29:43,710 אני לא צריך להתמודד עם מספרים שליליים. 688 00:29:43,710 --> 00:29:45,210 זה פשוט נראה כמו מורכבות מיותרות. 689 00:29:45,210 --> 00:29:48,470 אני רוצה ארבעה מליארד ערכים אפשריים, לא ארבעה מליארד ערכים אפשריים, 690 00:29:48,470 --> 00:29:50,699 אז אני פשוט הכפלתי את קיבולת של INT. 691 00:29:50,699 --> 00:29:53,490 במאמר מוסגר, אם אתה רוצה להתייחס למשהו הזה כמו פייסבוק, 692 00:29:53,490 --> 00:29:56,190 בחזרה בסוג של היום שלי כש פייסבוק הראשון יצא, 693 00:29:56,190 --> 00:29:59,510 אני מאמין במה שהם היו באמצעות במסד נתוני MySQL שלהם 694 00:29:59,510 --> 00:30:02,856 לאחסון למשתמש של מזהה, היה רק ​​INT. 695 00:30:02,856 --> 00:30:05,230 אבל כמובן, יש הרבה של אנשים אמיתיים בעולם. 696 00:30:05,230 --> 00:30:07,438 יש הרבה של פייסבוק המזויף החשבונות בעולם. 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 שיכול להגיד לך מה זיהוי הייחודי שלך הוא. 701 00:30:16,740 --> 00:30:19,781 ואם אתה לא בחרת את שם המשתמש ב פייסבוק, תראה זיהוי הייחודי שלך. 702 00:30:19,781 --> 00:30:23,080 אני חושב שזה PHP נקודת הפרופיל מזהה סימן שאלה שווה משהו. 703 00:30:23,080 --> 00:30:27,210 כי עכשיו משהו כמו גדול INT, או ארוך ארוך אם תרצה, 704 00:30:27,210 --> 00:30:29,700 שהוא ערך 64-bit או משהו דומה. 705 00:30:29,700 --> 00:30:33,620 >> לכן, גם בעולם האמיתי לעשות אלה סופו של דבר לפעמים נושאים חשובים. 706 00:30:33,620 --> 00:30:37,600 ומתברר כאן, אם אני נותן את כל המשתמשים שלי מזהה ייחודי, 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 נקרא-- שדה ואני הולך ללכת קדימה ולחץ על 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 נקרא זהות, שדה CHAR בשם משתמש, 723 00:31:26,305 --> 00:31:31,100 שדה varchar נקרא שם, אבל זהות, אם זה ראשוני ולכן ייחודי, 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 מה זה-- הוא אומר שוב? 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 כמו, תואר שני למסצ'וסטס וכן הלאה. 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 ו- Excel כנראה בזמן הייתה תכונה לפיה כל זמן זה 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 אז, היה לי במשך שנים, עד עצם היום הזה, אני עדיין 822 00:35:19,954 --> 00:35:22,370 יש לי חברים שכאשר מקרה נדיר שאני צריך מישהו 823 00:35:22,370 --> 00:35:24,078 לטפל בימים אלה, אני עדיין אראה לי ש 824 00:35:24,078 --> 00:35:26,767 יש לי חבר בקיימברידג ', מסצ'וסטס, 2,138. 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 אם אתה עדיין לשלוח דואר, לפעמים zip קודים בימים אלה, 832 00:35:42,220 --> 00:35:45,360 הם, כמו, בתוספת ארבעה. 833 00:35:45,360 --> 00:35:48,200 אז, אנחנו צריכים מקף ולאחר מכן אנחנו צריכים ארבעה מספרים נוספים. 834 00:35:48,200 --> 00:35:50,330 אז אם להיות כנה, זה יכול ללכת בדרכים רבות ושונות. 835 00:35:50,330 --> 00:35:52,371 >> לעת עתה, אני הולך לשמור זה פשוט ואני רק 836 00:35:52,371 --> 00:35:54,780 הולך להגיד שזה חמש ערך CHAR ואנחנו 837 00:35:54,780 --> 00:35:56,739 הולך לדלג על כל המקף וארבעה. 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 נניח שני רוב ואני וחנה ומריה ו[? דבון?] ואנדי 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 אותו zip, וזה מוזר. 855 00:36:35,060 --> 00:36:40,580 אבל, אם אנחנו קובעים לעת עתה ש02138 תמיד קיימברידג ', מסצ'וסטס, 856 00:36:40,580 --> 00:36:44,910 מדוע בעולם היית לאחסן ב מסד הנתונים שלך קיימברידג 'ותואר שני ו02138 857 00:36:44,910 --> 00:36:49,357 עבורי ועבור חנה ולרוב ו בשביל ש [? דבון?] ועבור אחרים שחיים 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 כנראה שדה מזהה, רק בגלל, ל על החברה את העקרונות שאנחנו מדברים. 873 00:37:33,490 --> 00:37:35,720 כנראה שדה zip ל02138. 874 00:37:35,720 --> 00:37:38,400 ולאחר מכן כנראה מה אחר עמודות? 875 00:37:38,400 --> 00:37:42,950 עיר ומדינה, אבל יש לי אחד בלבד שורה עבור 02138, שורה אחת עבור 02,139, 876 00:37:42,950 --> 00:37:44,772 שורה אחת עבור 90210. 877 00:37:44,772 --> 00:37:46,730 וזה ממש כל מספרי המיקוד אני יודע. 878 00:37:46,730 --> 00:37:49,012 >> אז עכשיו, מה אתה יכול לעשות? 879 00:37:49,012 --> 00:37:51,220 זו היא בעייתית, משום ש עכשיו יש לי שני שולחנות. 880 00:37:51,220 --> 00:37:54,660 אז, המשתמשים שלי הם בעיקר לכאן, אבל מידע מדינת עירם של 881 00:37:54,660 --> 00:37:55,390 כאן. 882 00:37:55,390 --> 00:37:58,635 אז, מתברר עם SQL, יש למעשה דרך להצטרף למידע, 883 00:37:58,635 --> 00:38:00,470 ואתה רואה את זה בPSet. 884 00:38:00,470 --> 00:38:03,000 >> אבל מתברר שאתה יכול לעשות משהו כזה. 885 00:38:03,000 --> 00:38:10,501 כוכב SELECT ממשתמשים, הצטרפות רוכסנים ON משתמשי dot zip שווים רוכסנים נקודה מיקוד. 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 אתה הולך להיתקל ב נושא של אטומי, 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 ויש לו תעודת הזהות הנקי של ייל דומה מחפש מסך בימים אלה. 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 אולי יש הרווארד שאילתא כמו כוכב SELECT ממשתמשים 976 00:41:47,310 --> 00:41:50,005 שם משתמש שווה ש וסיסמא שווה את זה. 977 00:41:50,005 --> 00:41:51,880 ושים לב שאני רק חיבור אותו בשימוש ב 978 00:41:51,880 --> 00:41:55,050 סימון הסד המתולתל מאחר יום, שרק אומר לחבר ערך 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 Pass. 1029 00:44:20,660 --> 00:44:24,490 אז, האדם הזה הניח שאולי האנשים שכותבים את מערכת E-Z Pass 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 או סימון אובייקט JavaScript שנדברנו על השבוע הבא, 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 >> יש לנו חשבון עם קוד iOS של אפל כל כך 1066 00:46:12,490 --> 00:46:15,510 שאם יש לך צפייה או אפל iPhone או iPad או iPod, 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, בדרך כלל ל- Mac שלך או מחשב, 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 יש לנו כל חבורה מכשירי הקפיצה Motion, 1074 00:46:32,860 --> 00:46:36,500 שהם התקני USB למחשבי מקינטוש ו מחשבים, כאן ושוב, בניו הייבן. 1075 00:46:36,500 --> 00:46:40,080 ואם אתה מחבר אותו ל- Mac, למעשה אתה יכול לשלוט במחשב שלך 1076 00:46:40,080 --> 00:46:42,550 על ידי כתיבת תוכנה שבאמצעות קרינת אינפרא אדום, 1077 00:46:42,550 --> 00:46:46,360 דמויות שבו יד האדם שלך הן, אפילו בלי לגעת במקלדת. 1078 00:46:46,360 --> 00:46:49,135 חשבנו שאנחנו רוצים לחלוק מהירים הצצה בשלב זה, למשל. 1079 00:46:49,135 --> 00:46:51,428 >> [השמעת מוסיקה] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 אז, יש לנו כל חבורה של הדברים האלה, 1082 00:47:57,590 --> 00:48:01,040 גם נקרא להקות זרוע מיו שאתה שם על הזרוע שלך 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 יש לנו גם כמה סמסונג Gear, ש הגרסה יקרה יותר של זה, 1094 00:49:42,927 --> 00:49:46,010 אבל זה דומה יכול להחליק ב טלפון אנדרואיד ולתת לך את האשליה 1095 00:49:46,010 --> 00:49:48,309 ל-- או לתת את החוויה מציאות וירטואלית. 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 >> עכשיו, Wi-Fi בכאן הוא לא כל כך חזק עבור התקן זה 1104 00:50:10,560 --> 00:50:13,870 כי זה סופר משכנע, אבל קולטון הוא, פשוטו כמשמעו, 1105 00:50:13,870 --> 00:50:15,710 במקום הקסום הזה עתידני. 1106 00:50:15,710 --> 00:50:16,796 הוא רק רואה תמונה אחת. 1107 00:50:16,796 --> 00:50:19,920 אתה רואה את עינו השמאלית וימנית שהמוח שלו תופר יחד 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: [לא ברור] כמה מגניב מקומות אם אנחנו רוצים ללכת צריכה-- 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 ללא נוסף, ADO זהו זה להיום. 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