1 00:00:00,000 --> 00:00:02,405 >> [MÜZİK OYUN] 2 00:00:02,405 --> 00:00:10,439 3 00:00:10,439 --> 00:00:11,980 DAVID MALAN: Pekala, bu CS50 olduğunu. 4 00:00:11,980 --> 00:00:13,740 Bu haftanın sekiz sonudur. 5 00:00:13,740 --> 00:00:15,887 Ve bugün, başlangıç Bazı parçalar halinde doldurmak için 6 00:00:15,887 --> 00:00:17,720 o binaya geldiğinde Web'de şeyler. 7 00:00:17,720 --> 00:00:20,020 Yani, Pazartesi günü hatırlamak biz çok fazla zaman harcamak 8 00:00:20,020 --> 00:00:22,530 PHP, hangi bu dinamik programlama dili 9 00:00:22,530 --> 00:00:26,872 Diğer yanı, bizi çıkışı sağlar şeyler, HTML ve benzeri içeriğin 10 00:00:26,872 --> 00:00:27,830 Görmek istediğimiz edeceğiz. 11 00:00:27,830 --> 00:00:30,871 Ama biz gerçekten nasıl bakmadım biz herhangi bir bilgi depolamak için gidiyoruz. 12 00:00:30,871 --> 00:00:34,477 Nitekim, hemen hemen her o süper Bugün ziyaret ilginç web siteleri 13 00:00:34,477 --> 00:00:36,560 veritabanının çeşit var arka ucunda, değil mi? 14 00:00:36,560 --> 00:00:39,540 Facebook kesinlikle büyük miktarda veri depolayan yaklaşık hepimizin ve Gmail mağazaları her 15 00:00:39,540 --> 00:00:40,210 E-postalarınızın. 16 00:00:40,210 --> 00:00:44,150 >> Ve böylece, pek çok diğer siteler sadece değil bilgilendirici olduğunu statik içerik. 17 00:00:44,150 --> 00:00:45,640 Bu bir şekilde, aslında dinamik. 18 00:00:45,640 --> 00:00:48,480 Sen girdi, bu güncellemeleri sağlamak diğer insanlar için sayfaları. 19 00:00:48,480 --> 00:00:50,620 Gönderdiğiniz mesajları almak benzeri mesajları ve. 20 00:00:50,620 --> 00:00:54,250 Yani bugün, daha yakından bakmak Bir projenin temelleri 21 00:00:54,250 --> 00:00:57,330 Bir sonraki dalmak edeceğiz Hafta, CS50 finans, burada 22 00:00:57,330 --> 00:01:00,509 aslında inşa sahip oluyor değil C ama PHP şey. 23 00:01:00,509 --> 00:01:02,550 Bir görünen bir web sitesi Böyle küçük bir şey 24 00:01:02,550 --> 00:01:05,810 Bu satın almak ve satmak için izin verir aslında stokları 25 00:01:05,810 --> 00:01:09,044 Gerçek zamanlar çekmek için gidiyor Yahoo Finance hisse verileri. 26 00:01:09,044 --> 00:01:11,960 Ve böylece sonuçta, gerekecek Kendiniz için ve kullanıcılar için yanılsama 27 00:01:11,960 --> 00:01:14,550 aslında alış ve satış konum hisse senetleri ve neredeyse gerçek zamanlı oluyor 28 00:01:14,550 --> 00:01:16,800 güncellemeler, yönetme portföy, her biri 29 00:01:16,800 --> 00:01:20,310 sahip gerektirecek gidiyor, sonuçta, bir kullanıcı veri tabanı. 30 00:01:20,310 --> 00:01:23,330 >> Yani, kendi sözleriyle, sen değilsin özellikle 31 00:01:23,330 --> 00:01:25,670 bilgisayar ile süper tanıdık bilim veya veritabanları ne 32 00:01:25,670 --> 00:01:30,790 Eğer bir veritabanı biliyor musunuz olmak Şu anda, teknik olmayan bakımından? 33 00:01:30,790 --> 00:01:32,300 Bu ne? 34 00:01:32,300 --> 00:01:36,882 Bunu nasıl tarif edeceğini Bir oda arkadaşı ya da bir arkadaşınıza? 35 00:01:36,882 --> 00:01:40,100 >> HEDEF KİTLE: [duyulamaz] bilgi [duyulamaz] 36 00:01:40,100 --> 00:01:44,430 >> DAVID MALAN: Yani, bir bilgi listesi ya da bilgilerin bir listesini store-- 37 00:01:44,430 --> 00:01:47,160 Saklamak istediğiniz olabilir Bir kullanıcı gibi bir şey hakkında. 38 00:01:47,160 --> 00:01:50,190 Ve kullanıcılar var ne bunlarla ilişkili? 39 00:01:50,190 --> 00:01:53,160 Facebook veya bir kullanıcı iseniz Gmail, özellikleri nelerdir 40 00:01:53,160 --> 00:01:54,940 Bu hepimiz kullanıcımız var? 41 00:01:54,940 --> 00:01:58,530 Gibi, ne bazı olabilir e-tablodaki sütunları hangi biz 42 00:01:58,530 --> 00:01:59,390 Geçen sefer ima? 43 00:01:59,390 --> 00:02:01,140 Tekrar yapabilirsiniz Çünkü Bir veritabanı düşünüyorum 44 00:02:01,140 --> 00:02:05,810 Gerçekten fantezi Excel dosyası ya da Google gibi Elektronik Tablo veya Apple Numaraları dosyası. 45 00:02:05,810 --> 00:02:08,280 >> Peki, ne düşünüyorsunuz Eğer bir kullanıcı düşündüğüm zaman? 46 00:02:08,280 --> 00:02:11,290 Ne var? 47 00:02:11,290 --> 00:02:11,790 Bu da ne? 48 00:02:11,790 --> 00:02:12,470 >> HEDEF KİTLE: Bir isim. 49 00:02:12,470 --> 00:02:13,303 >> DAVID MALAN: bir isim. 50 00:02:13,303 --> 00:02:16,840 Yani eğer adı gibi, David Malan Bazı kullanıcı adı olacaktır. 51 00:02:16,840 --> 00:02:17,980 Bir kullanıcı başka ne var? 52 00:02:17,980 --> 00:02:18,770 >> HEDEF KİTLE: Bir kimlik. 53 00:02:18,770 --> 00:02:19,561 >> DAVID MALAN: Bir kimlik. 54 00:02:19,561 --> 00:02:23,320 Yani, Harvard gibi bir kimlik numarası gibi Kimlik veya Yale Net ID veya benzeri. 55 00:02:23,320 --> 00:02:24,923 Bir kullanıcı başka ne olabilir? 56 00:02:24,923 --> 00:02:25,890 >> HEDEF KİTLE: Şifre. 57 00:02:25,890 --> 00:02:29,240 >> DAVID MALAN: belki bir şifre, adres, belki bir telefon numarası, belki 58 00:02:29,240 --> 00:02:30,050 Bir e-posta adresi. 59 00:02:30,050 --> 00:02:32,640 Yani, alanlar ve bu demet var çeşit kontrol dışına çıkması 60 00:02:32,640 --> 00:02:34,760 hızla kısa sürede başlar başlamaz oh, bunu saklamak edelim, hayata 61 00:02:34,760 --> 00:02:36,190 ve en bu ve bu depolamak. 62 00:02:36,190 --> 00:02:37,657 >> Ama nasıl biz aslında böyle yapıyorsunuz? 63 00:02:37,657 --> 00:02:39,740 Yani yine, zihinsel modeli bugün için var biz 64 00:02:39,740 --> 00:02:42,320 Gerçek SQL içine dalış, Yapılandırılmış sorgu dili, 65 00:02:42,320 --> 00:02:44,186 Şöyle bir veritabanı. 66 00:02:44,186 --> 00:02:45,310 Sadece satır ve sütun var. 67 00:02:45,310 --> 00:02:48,309 Ve Google Spreadsheets hayal edebiliyorum veya diğer programlara herhangi bir sayı. 68 00:02:48,309 --> 00:02:52,130 Ama olan MySQL, hakkında önemli ne veritabanı yazılımı, biz kullanmak için gidiyoruz, 69 00:02:52,130 --> 00:02:54,920 serbestçe açıkça Facebook kullandığı available-- 70 00:02:54,920 --> 00:02:59,200 o ve diğer websites-- herhangi bir sayı Veritabanı ilişkisel şeyler saklar. 71 00:02:59,200 --> 00:03:01,770 Ve bir ilişkisel veritabanı sadece kelimenin tam anlamıyla bir anlamı 72 00:03:01,770 --> 00:03:03,672 satırlar ve sütunlar halinde depolar. 73 00:03:03,672 --> 00:03:04,630 O kadar basit. 74 00:03:04,630 --> 00:03:07,230 >> Yani, Oracle gibi bile bir şey olduğunu genellikle duymuş olabilir 75 00:03:07,230 --> 00:03:08,271 ilişkisel veritabanı. 76 00:03:08,271 --> 00:03:10,929 Ve başlık altında, o satır ve sütunlarda verileri saklar. 77 00:03:10,929 --> 00:03:12,970 Ve Oracle seni bir şarj çok para yapmak, 78 00:03:12,970 --> 00:03:15,550 MySQL ücretleri ise Aynı sizin için hiçbir şey. 79 00:03:15,550 --> 00:03:18,790 Yani, SQL bize verecek en az dört işlemleri. 80 00:03:18,790 --> 00:03:23,190 Okuma gibi, verileri seçmek için yeteneği veri ekleme, silme ve güncelleme veri. 81 00:03:23,190 --> 00:03:25,525 Diğer bir deyişle, olanlardır Gerçekten dört temel işlemleri 82 00:03:25,525 --> 00:03:28,950 Bu bizi değiştirmek için izin için gidiyoruz Bu satırlar ve sütunlar şeyler. 83 00:03:28,950 --> 00:03:33,250 >> Özellikle bugün kullanacağız aracı SQL öğrenmek ve onunla oynamak 84 00:03:33,250 --> 00:03:34,627 Yine PHP myadmin olarak adlandırılır. 85 00:03:34,627 --> 00:03:35,460 Bu web tabanlı bir araçtır. 86 00:03:35,460 --> 00:03:38,200 Toplam tesadüf olduğunu PHP ile yazılmış oluyor. 87 00:03:38,200 --> 00:03:42,400 Ama bize bir grafiksel vermek için gidiyor Kullanıcı arayüzü biz aslında can böylece 88 00:03:42,400 --> 00:03:46,054 Bu satırlar ve sütunlar oluşturmak ve daha sonra kodu ile onlarla konuşmak. 89 00:03:46,054 --> 00:03:47,970 Yani, şimdi başlayalım Ne bence açıkçası 90 00:03:47,970 --> 00:03:51,000 eğlenceli sürecinin tür web sitelerinin arka ucunu bina, 91 00:03:51,000 --> 00:03:54,580 Kullanıcıların yok parçalar görüyoruz, ama mutlaka ilgili bakım yapmak, 92 00:03:54,580 --> 00:03:56,170 çünkü o veri sitesinin gidiyor yerine. 93 00:03:56,170 --> 00:03:59,570 C ve a nedenle benzer az PHP gibi küçük, 94 00:03:59,570 --> 00:04:04,954 SQL veya destekleyen bir veri tabanı SQL, en azından bu veriler türleri vardır 95 00:04:04,954 --> 00:04:05,870 ve diğerleri salkımları. 96 00:04:05,870 --> 00:04:08,107 CHAR, VARCHAR, INT, BIGINT, DECIMAL ve DATETIME. 97 00:04:08,107 --> 00:04:09,940 Ve bir bütün var diğer özellikleri demet, 98 00:04:09,940 --> 00:04:11,940 ama en bu yapalım Gerçek örnek yol. 99 00:04:11,940 --> 00:04:16,450 >> Ben CS50 IDE içine gidiyorum nerede, önceden, ben giriş yaptıktan 100 00:04:16,450 --> 00:04:19,372 ve ben de bir URL ziyaret ettiğiniz PHP MyAdmin denilen bu alet. 101 00:04:19,372 --> 00:04:22,580 Ve sorun yedi set içinde, biz söyleyeceğim Eğer tam olarak nasıl bu arabirime almak 102 00:04:22,580 --> 00:04:23,200 de. 103 00:04:23,200 --> 00:04:25,640 Sol üst köşesinde, fark bu ders diyor. 104 00:04:25,640 --> 00:04:27,610 Ve bu sadece anlamına gelir peşin, benim yarattığım 105 00:04:27,610 --> 00:04:31,360 Boş bir veritabanı olarak adlandırılan ders O henüz hiçbir elektronik tabloları vardır. 106 00:04:31,360 --> 00:04:32,600 Hiçbir satır ve sütun var. 107 00:04:32,600 --> 00:04:34,308 İlk Çünkü şey yapacağız 108 00:04:34,308 --> 00:04:37,100 bir tablo oluşturmaya başlayabilirsiniz olduğunu bizim kullanıcılara depolamak için gidiyor. 109 00:04:37,100 --> 00:04:39,100 >> Yani, kelimenin tam anlamıyla üzerinde Burada sağa, ben 110 00:04:39,100 --> 00:04:42,070 veritabanını söyleyecek Ben bir tablo Kullanıcılar denir istiyorum. 111 00:04:42,070 --> 00:04:44,845 Yani, bu dosyanın gibi olduğunu ben benim tüm verileri depolamak istiyor. 112 00:04:44,845 --> 00:04:45,720 Ve kaç sütun? 113 00:04:45,720 --> 00:04:47,740 Peki, şimdi basit tutalım. 114 00:04:47,740 --> 00:04:51,855 Ben sadece böyle saklamak istediğiniz kullanıcı adı ve bir kullanıcı için bir isim. 115 00:04:51,855 --> 00:04:53,020 Biz küçük başlayacağız. 116 00:04:53,020 --> 00:04:55,370 Yani, iki sütun toplam istiyorum. 117 00:04:55,370 --> 00:04:57,360 Ve ben go ahead ve Git'i tıklatın gidiyorum. 118 00:04:57,360 --> 00:04:59,210 Sonra, bu sütunlar, ne gidiyorum 119 00:04:59,210 --> 00:05:04,576 Bu internet eğer sanıyor- için , tamam cooperates-- 120 00:05:04,576 --> 00:05:05,950 bu yüzden tekrar denemek için gidiyoruz. 121 00:05:05,950 --> 00:05:09,180 Ben adında bir tablo oluşturmak için gidiyorum Iki sütun, sahip kullanıcılar Tamam, Git seçeneğini tıklatın. 122 00:05:09,180 --> 00:05:10,520 Şimdi biz gerçekten hızlı var. 123 00:05:10,520 --> 00:05:12,065 Çok iyi yapılması, teşekkür ederiz. 124 00:05:12,065 --> 00:05:14,440 Pekala, bizim istediğimiz ne Bu sütunlar çağrılacak? 125 00:05:14,440 --> 00:05:16,080 >> Yani, bir kullanıcı adı çağrılacak gidiyor. 126 00:05:16,080 --> 00:05:19,480 Burada-- ve arayüz Yani, tüm gördüğüm Açıkçası, sonunda biraz çirkin olur 127 00:05:19,480 --> 00:05:21,270 Size bir kez tüm bu veriler yazmaya başlayın. 128 00:05:21,270 --> 00:05:27,450 Ama ne güzel bu tür bir paradoksal, ben sütunlar oluşturma, 129 00:05:27,450 --> 00:05:29,977 ancak aracı aptalca vardır sıralar halinde bunları ortaya koydu 130 00:05:29,977 --> 00:05:31,560 böylece bu sütunları yapılandırabilirsiniz. 131 00:05:31,560 --> 00:05:33,550 Yani, adı altında iki boşlukları orada var. 132 00:05:33,550 --> 00:05:36,180 Ve bu alanlardan biri ben Adı denilen istiyorum 133 00:05:36,180 --> 00:05:38,000 ve diğer alan ben İsim aramak istiyorum. 134 00:05:38,000 --> 00:05:40,340 >> Ve şimdi seçim yapmak zorunda bunlar için veri türleri. 135 00:05:40,340 --> 00:05:42,330 Yani, Excel'de ise ve Google E-Tablolar, 136 00:05:42,330 --> 00:05:45,531 Eğer bir sütun istiyorsanız, kelimenin tam anlamıyla Sadece adı veya Kullanıcı Adı yazın Enter tuşuna basın. 137 00:05:45,531 --> 00:05:48,030 Belki bunu kalın yüz yapmak Sadece açıklık için, ama o kadar. 138 00:05:48,030 --> 00:05:50,140 Sen belirtmeyen sütun türleri. 139 00:05:50,140 --> 00:05:53,790 Artık Google Spreadsheets veya Excel size, içinde veri işlenir nasıl belirtebilirsiniz. 140 00:05:53,790 --> 00:05:58,120 Biçim menüsüne gidin ve olabilir Böyle dolar işaretini göstermek belirtebilirsiniz, 141 00:05:58,120 --> 00:05:59,900 Bir kayan nokta değeri gibi bunu gösteriyor. 142 00:05:59,900 --> 00:06:01,990 >> Yani, ruhu içinde benzer Yapmamız hakkında ne konum olduğunu, 143 00:06:01,990 --> 00:06:04,740 ama bu aslında zorlamak için gidiyor veri belirli bir tip olmak. 144 00:06:04,740 --> 00:06:07,750 Şimdi, hatta bir an önce olsa yalnızca birkaç veri tipleri var dedi 145 00:06:07,750 --> 00:06:11,120 Aslında orada bir sürü, ve onlar konum 146 00:06:11,120 --> 00:06:12,910 özgüllük değişen derecelerde. 147 00:06:12,910 --> 00:06:14,970 Ve bir kenara, sen Hatta fantezi şeyler yapabilirler 148 00:06:14,970 --> 00:06:17,520 Depolama geometrileri gibi Bir veritabanı içinde. 149 00:06:17,520 --> 00:06:19,250 Bir şeyleri saklayabilirsiniz GPS koordinatları gibi 150 00:06:19,250 --> 00:06:22,420 ve aslında matematiksel bulmak diğerlerine yakın noktalar. 151 00:06:22,420 --> 00:06:24,128 Ama biz gidiyoruz Bu süper basit tutmak 152 00:06:24,128 --> 00:06:26,800 ve burada tüm kadar gitmek Sözde dize türleri. 153 00:06:26,800 --> 00:06:29,240 >> Yani, burada bir listesi var seçeneklerin sürü. 154 00:06:29,240 --> 00:06:32,740 CHAR, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT. 155 00:06:32,740 --> 00:06:34,110 Ve bu ezici tür. 156 00:06:34,110 --> 00:06:37,610 Ve ne yazık ki, biraz paradoksal C, 157 00:06:37,610 --> 00:06:40,120 CHAR gerçekten CHAR değildir. 158 00:06:40,120 --> 00:06:44,170 Eğer bir veritabanında belirtirseniz Veri türü CHAR olduğunu, 159 00:06:44,170 --> 00:06:47,390 evet, bu bir var demektir CHAR, ancak bir veya daha fazla chars var. 160 00:06:47,390 --> 00:06:49,630 Ve belirtmek zorunda Kaç chars istediğiniz. 161 00:06:49,630 --> 00:06:51,636 Peki, bir tipik Bir kullanıcı adı için uzunluk? 162 00:06:51,636 --> 00:06:52,760 Bir sınır tipik var mı? 163 00:06:52,760 --> 00:06:53,920 >> HEDEF KİTLE: [duyulamaz] 164 00:06:53,920 --> 00:06:55,050 >> DAVID MALAN: 16 belki? 165 00:06:55,050 --> 00:06:55,990 Bunun gibi bir şey. 166 00:06:55,990 --> 00:06:57,948 Siz geri, biliyorum gün, sekiz olmak için kullanılır. 167 00:06:57,948 --> 00:07:00,289 Bazen 16, bazen var o bile daha var. 168 00:07:00,289 --> 00:07:02,080 Ve böylece, bu değil Bana bir CHAR ver demek. 169 00:07:02,080 --> 00:07:04,730 Bu benim belirtmek zorunda anlamına gelir alanın uzunluğu, 170 00:07:04,730 --> 00:07:07,402 ve şimdi 16 gibi bir şey diyebilirsiniz. 171 00:07:07,402 --> 00:07:08,610 Ve burada kapalı bir ticaret var. 172 00:07:08,610 --> 00:07:11,360 Yani, bir an görürsünüz bu demektir ki, 173 00:07:11,360 --> 00:07:14,620 Her kullanıcı adı 16 karakterden olmak zorunda. 174 00:07:14,620 --> 00:07:18,720 Ancak bir dakika, E-A-L-A-N bekleyin. Bu buysa Benim kullanıcı adı ve ben sadece beş kullanıyorum, 175 00:07:18,720 --> 00:07:23,070 veritabanı bu ne önerirsiniz Diğer 11 karakter yapmak için bu 176 00:07:23,070 --> 00:07:24,471 Ben için yer ayırttım? 177 00:07:24,471 --> 00:07:25,220 Ne yapardın? 178 00:07:25,220 --> 00:07:26,480 >> HEDEF KİTLE: [duyulamaz] 179 00:07:26,480 --> 00:07:27,160 >> DAVID MALAN: Evet, sadece hepsini boş olun. 180 00:07:27,160 --> 00:07:28,290 Onlara boşluk yapın. 181 00:07:28,290 --> 00:07:30,816 Ama muhtemelen null, yani bir Ters eğik çizgi sıfır sürü. 182 00:07:30,816 --> 00:07:33,190 Yani, bir yandan, ettik şimdi benim kullanıcı adı emin yaptı 183 00:07:33,190 --> 00:07:34,780 16 karakterden fazla olabilir. 184 00:07:34,780 --> 00:07:37,590 Ve bu flip tarafı ben gerçekten uzun bir isim olsaydı 185 00:07:37,590 --> 00:07:39,940 ya da gerçekten uzun istedik sizin gibi bazı kullanıcı adı 186 00:07:39,940 --> 00:07:44,840 adamlar üniversitede olabilir veya yale.edu at, birini olamaz. 187 00:07:44,840 --> 00:07:47,177 Ve böylece aslında, yasiyorsaniz Hiç bir web sitesi için kayıtlı 188 00:07:47,177 --> 00:07:49,385 ve diyorsun bağırdı şifreniz çok uzun 189 00:07:49,385 --> 00:07:52,710 ya da adınız bu kadar, çok uzun sadece bir programcı, çünkü ne zaman 190 00:07:52,710 --> 00:07:55,500 onun veritabanı yapılandırılması, karar bu alan olacak ki 191 00:07:55,500 --> 00:07:57,150 Artık bu uzunluğundan daha ol. 192 00:07:57,150 --> 00:08:00,580 >> Pekala, ne olur Biz isim devam? 193 00:08:00,580 --> 00:08:05,240 Ne zamandır gereken bir tipik bir insan ismi olabilir mi? 194 00:08:05,240 --> 00:08:07,492 Kaç karakter, 16? 195 00:08:07,492 --> 00:08:09,450 Ben biz olabilir tahmin ediyorum Bu odada birini bulmak 196 00:08:09,450 --> 00:08:13,210 nerede son onun ilk artı ile adı 16 karakterden daha uzun. 197 00:08:13,210 --> 00:08:14,850 Yani, 17 Bundan daha iyi ne? 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 Büyük? 201 00:08:20,350 --> 00:08:20,980 30? 202 00:08:20,980 --> 00:08:21,855 >> HEDEF KİTLE: [duyulamaz] 203 00:08:21,855 --> 00:08:23,700 DAVID MALAN: 5000, Tanrım oh. 204 00:08:23,700 --> 00:08:26,309 Yani, bu muhtemelen iyi bir var Üst, bağlı mıyız söylüyorlar. 205 00:08:26,309 --> 00:08:28,350 Ve burada biz tür var Bir karar arama yapmak için. 206 00:08:28,350 --> 00:08:30,400 Gibi, burada hiçbir doğru cevap var. 207 00:08:30,400 --> 00:08:32,740 Sonsuz, pek mümkün değildir biz sonunda çünkü 208 00:08:32,740 --> 00:08:34,781 Biz konum have-- olacak bellek tükendi gidiyor. 209 00:08:34,781 --> 00:08:36,909 Yani, bir yapmak zorunda bir noktada yargı çağrısı. 210 00:08:36,909 --> 00:08:41,010 >> Olacaktır Çok sık, örneğin, use-- ve beni burada CHAR belirtmek izin 211 00:08:41,010 --> 00:08:46,050 olarak before-- 255 tam anlamıyla Bu veritabanı yazılımı hakkında üst sınırı 212 00:08:46,050 --> 00:08:46,700 Yıllar önce. 213 00:08:46,700 --> 00:08:48,575 Ve insanlar bu yüzden, bir sürü gayet söyleyebilirim. 214 00:08:48,575 --> 00:08:49,420 255 sınırı. 215 00:08:49,420 --> 00:08:50,620 Sadece maksimum kullanalım. 216 00:08:50,620 --> 00:08:51,870 Ve bu oldukça saçma. 217 00:08:51,870 --> 00:08:55,060 Mesela, birisi var yazarak eğer 200 artı karakterler için isim, 218 00:08:55,060 --> 00:08:56,140 biraz saçma olduğunu. 219 00:08:56,140 --> 00:08:59,624 >> Ama, ASCII olmadığını unutmayın karakterler için tek sistemdir. 220 00:08:59,624 --> 00:09:01,540 Ve böylece, özellikle bir Asya dilleri sürü 221 00:09:01,540 --> 00:09:04,248 karakter olduğu yerde biz değil Benim ABD gibi klavyelerde ifade 222 00:09:04,248 --> 00:09:08,209 Klavye, aslında bazı karakterler 16 bit yerine sekiz bit kadar sürebilir. 223 00:09:08,209 --> 00:09:10,250 Ve böylece, bu aslında Tüm bu mantıksız değildir 224 00:09:10,250 --> 00:09:12,250 daha fazla ihtiyacımız olduğunu Uzay biz sığdırmak istiyorsanız 225 00:09:12,250 --> 00:09:16,252 Çok ABD'den daha büyük karakterler merkezli olanları tartışmak eğiliminde ettik. 226 00:09:16,252 --> 00:09:17,460 Yani, biz bazı üst sınır gerekir. 227 00:09:17,460 --> 00:09:21,470 Ben, en iyisi olduğunu bilmiyorum ancak 255 genellikle yaygın olanıdır. 228 00:09:21,470 --> 00:09:22,700 25 düşük hissediyor. 229 00:09:22,700 --> 00:09:23,857 16, 32 düşük hissediyorum. 230 00:09:23,857 --> 00:09:25,690 Ben tarafında err ediyorum yüksek bir şey. 231 00:09:25,690 --> 00:09:27,330 Ama ticaret her zaman olduğu gibi, kapalı var. 232 00:09:27,330 --> 00:09:31,902 , Belki de açıktır nedir 255 chars saklı kapalı ticaret 233 00:09:31,902 --> 00:09:33,360 benim veritabanında herkesin adını? 234 00:09:33,360 --> 00:09:34,230 >> HEDEF KİTLE: [duyulamaz] 235 00:09:34,230 --> 00:09:34,510 >> DAVID MALAN: Bu nedir? 236 00:09:34,510 --> 00:09:35,430 >> HEDEF KİTLE: [duyulamaz] 237 00:09:35,430 --> 00:09:37,138 >> DAVID MALAN: Bu bir var bellek yeri, değil mi? 238 00:09:37,138 --> 00:09:42,280 M-A-L-A-N. Ben sadece 250 israf var karakterler sadece ismimi saklamak için 239 00:09:42,280 --> 00:09:46,000 Savunmaya ihtimale karşı birisi sınıfta gerçekten uzun bir adı vardır. 240 00:09:46,000 --> 00:09:47,940 Bu gereksiz bir tradeoff gibi görünüyor. 241 00:09:47,940 --> 00:09:52,040 >> Yani, bu, o SQL çıkıyor Bu veritabanı dili, 242 00:09:52,040 --> 00:09:55,480 aslında bir şey destekler VARCHAR, ya da Değişken CHAR çağırdı. 243 00:09:55,480 --> 00:09:59,390 Ve bu, bu tür güzel Eğer sabit bir değil belirlemenizi sağlar 244 00:09:59,390 --> 00:10:01,900 genişliği, daha ziyade, bir değişken genişlik. 245 00:10:01,900 --> 00:10:05,060 Ve daha da özel olarak ise, bir alanın maksimum genişliği. 246 00:10:05,060 --> 00:10:08,901 Yani, bu bir ad olabilir anlamına gelir en fazla 250 karakter olabilir, 247 00:10:08,901 --> 00:10:10,150 ama kesinlikle daha az olabilir. 248 00:10:10,150 --> 00:10:11,733 Ve veritabanı akıllı olacak. 249 00:10:11,733 --> 00:10:14,860 M-A-L-A-N koymak yoksa, sadece, beş kullanmak için gidiyor 250 00:10:14,860 --> 00:10:18,120 belki altı bayt gibi Bir sondaki boş karakter, 251 00:10:18,120 --> 00:10:23,330 ve ek bir harcama değil Gereksiz yere 249 veya 250 bayt. 252 00:10:23,330 --> 00:10:27,380 >> Yani, bu benim gerektiği gibi görünüyor Bu hikaye ile başladı. 253 00:10:27,380 --> 00:10:29,140 Ama her zaman bir takas var. 254 00:10:29,140 --> 00:10:33,024 Böylece, bir yandan, bir kullanıcı adı I ettik sabit 16 ° kodlanacak belirtilen 255 00:10:33,024 --> 00:10:34,940 ve belki de bu değildi Doğru çağrı, belki o 256 00:10:34,940 --> 00:10:40,040 ama neden kullanmayın Her şey için varchars? 257 00:10:40,040 --> 00:10:42,020 >> Bir nedeni var. 258 00:10:42,020 --> 00:10:46,200 Neden her alan için varchars kullanmayın uzunluğu önceden bilmiyorum 259 00:10:46,200 --> 00:10:48,180 Doğru, harika bir şey gibi görünüyor eğer? 260 00:10:48,180 --> 00:10:50,482 Sadece kadar alanı kullanın Bu limite kadar ihtiyacınız var? 261 00:10:50,482 --> 00:10:51,271 >> HEDEF KİTLE: Yavaş. 262 00:10:51,271 --> 00:10:52,146 DAVID MALAN: Speller? 263 00:10:52,146 --> 00:10:53,120 HEDEF KİTLE: yavaş o yapar? 264 00:10:53,120 --> 00:10:53,970 DAVID MALAN: Oh, bu daha yavaş. 265 00:10:53,970 --> 00:10:55,720 İyi, neredeyse her zaman Cevap, açıkçası. 266 00:10:55,720 --> 00:10:56,520 Gibi, takas nedir? 267 00:10:56,520 --> 00:10:58,570 Ya daha fazla alan maliyeti ya da daha fazla zaman maliyeti. 268 00:10:58,570 --> 00:11:00,111 Bu nedenle, bu durumda, daha yavaş olabilir. 269 00:11:00,111 --> 00:11:00,920 Neden? 270 00:11:00,920 --> 00:11:05,830 >> HEDEF KİTLE: [duyulamaz] [inaudible] belirlenmesi. 271 00:11:05,830 --> 00:11:06,640 >> DAVID MALAN: İyi. 272 00:11:06,640 --> 00:11:09,670 Yani, hatta gelen çağırmak olabilir PSED5, yaklaşımınız ile oynarken 273 00:11:09,670 --> 00:11:12,750 sözlüğe, Eğer varsa dinamik bellek ayrılamadı veya tutmak 274 00:11:12,750 --> 00:11:14,630 bu, bir tampon büyüyen aslında yavaş olabilir. 275 00:11:14,630 --> 00:11:16,963 Eğer malloc aramak varsa Kaputun altında ve belki 276 00:11:16,963 --> 00:11:19,610 o MySQL, böylece ne yapıyor elbette bu durumda olabilir. 277 00:11:19,610 --> 00:11:22,430 Ve eğer yol düşünüyorsanız geri bile PSet-- veya 278 00:11:22,430 --> 00:11:26,340 gibi haftalar iki yaptığımız şeyler ikili arama ya da doğrusal arama, 279 00:11:26,340 --> 00:11:30,690 Her kelimenin hakkında güzel şeylerden biri Bir sütunda bir veritabanı veya her kelimede 280 00:11:30,690 --> 00:11:33,690 Hatta, tam olarak aynı uzunlukta olması eğer bu karakterler bir sürü 281 00:11:33,690 --> 00:11:37,390 boş, kullanabilirsiniz olduğunu verilerinizi rasgele erişim, değil mi? 282 00:11:37,390 --> 00:11:40,310 >> Her biliyorsanız kelime, 16 karakter uzaklıkta 283 00:11:40,310 --> 00:11:46,460 Eğer bu yüzden, işaretçi aritmetiği kullanabilirsiniz konuşan ve bize gidin 16, 32, 48, 64, 284 00:11:46,460 --> 00:11:49,589 ve sadece atlayabilir Anında aritmetiğini kullanarak 285 00:11:49,589 --> 00:11:51,130 senin veritabanında kelimelerin herhangi. 286 00:11:51,130 --> 00:11:54,280 Bir VARCHAR eğer Oysa, ne yerine yapmam gerekiyor? 287 00:11:54,280 --> 00:11:55,960 >> [TELEFON Çınlayan] 288 00:11:55,960 --> 00:11:58,680 >> Bir VARCHAR var ise, rasgele erişim kullanamazsınız. 289 00:11:58,680 --> 00:12:01,341 Ne bakmak veya yapmak zorunda? 290 00:12:01,341 --> 00:12:01,840 Evet? 291 00:12:01,840 --> 00:12:03,240 >> HEDEF KİTLE: [duyulamaz] 292 00:12:03,240 --> 00:12:04,310 >> DAVID MALAN: Bakın whole-- iz yoluyla 293 00:12:04,310 --> 00:12:06,518 Bütün liste boyunca büyük olasılıkla, ne arıyorsun? 294 00:12:06,518 --> 00:12:08,356 Özel değerin ne tür? 295 00:12:08,356 --> 00:12:09,230 HEDEF KİTLE: [duyulamaz] 296 00:12:09,230 --> 00:12:11,105 DAVID MALAN: Looking boş sonlandırıcılar için 297 00:12:11,105 --> 00:12:13,637 bu kelime ayrılmasını ayırmak. 298 00:12:13,637 --> 00:12:15,720 Yani yine bir değiş tokuş ve Hiçbir doğru cevap var. 299 00:12:15,720 --> 00:12:18,380 Ancak bu, özellikle, nerede Kullanıcıların pek olmayı olsun 300 00:12:18,380 --> 00:12:21,700 senin sunucularda ve yük, insanların sayısı, yüksek olur kullanarak 301 00:12:21,700 --> 00:12:23,650 Bu aslında nontrivial kararlardır. 302 00:12:23,650 --> 00:12:26,640 Yani, biz bu kadar bu bırakın, ancak hakkı üzerinde aşağı kaydırma izin 303 00:12:26,640 --> 00:12:27,332 İşte. 304 00:12:27,332 --> 00:12:30,290 Şimdi, sütunların bir çift var Biz karar arama yapmak için sahip olduğu. 305 00:12:30,290 --> 00:12:35,170 Bir kullanıcının izin mantıklı mı Bir kullanıcının kullanıcı adı veya kullanıcının, isim 306 00:12:35,170 --> 00:12:36,370 null olmak ismi? 307 00:12:36,370 --> 00:12:37,610 Yani, sadece boştur. 308 00:12:37,610 --> 00:12:40,360 Biraz saçma geliyor, bu yüzden ben Bu onay kutularını gitmiyor. 309 00:12:40,360 --> 00:12:42,670 Ama dışarı çıkıyor Veritabanı, sen söyleyebiliriz 310 00:12:42,670 --> 00:12:44,620 Birisi, isteğe bağlı olarak bu değere sahip olabilir. 311 00:12:44,620 --> 00:12:47,180 Bu sütun yok aslında orada olmak. 312 00:12:47,180 --> 00:12:48,570 >> Şimdi, menü aşağı bu damla var. 313 00:12:48,570 --> 00:12:50,810 Ve ben hâlâ fark Orada ilk satırda, 314 00:12:50,810 --> 00:12:52,520 bu yüzden şimdi kullanıcı adı bahsediyorum. 315 00:12:52,520 --> 00:12:56,290 Ve bu, bir veritabanı çıkıyor Basit sadece e-tablo aksine, 316 00:12:56,290 --> 00:12:58,520 indeksler olarak adlandırılan güçlü özelliklere sahiptir. 317 00:12:58,520 --> 00:13:02,600 Ve bir dizin söylüyorum bir yoludur Önceden veritabanı I insan olduğunu 318 00:13:02,600 --> 00:13:03,900 Senden daha zeki değilim. 319 00:13:03,900 --> 00:13:10,430 >> Ben, sorgularının hangi tür seçin biliyorum ya eklemek veya silmek veya güncelleme 320 00:13:10,430 --> 00:13:13,182 Benim kod sona gidiyor Bu veritabanı üzerinde yapıyor. 321 00:13:13,182 --> 00:13:14,390 Ben çok fazla veri okumak istiyorum. 322 00:13:14,390 --> 00:13:15,681 Ben çok fazla veri eklemek istediğiniz. 323 00:13:15,681 --> 00:13:17,530 Sürekli istiyorum çok veri silin. 324 00:13:17,530 --> 00:13:21,520 Ben olmak için gidiyorum biliyorsanız bir sürü adı gibi bir alan erişme, 325 00:13:21,520 --> 00:13:24,770 Ben preemptively söyleyebilirim Veritabanı, ben senden daha fazla bilgi 326 00:13:24,770 --> 00:13:29,220 ve ben kararname istediğiniz Eğer endeks bu alanı olmamalıdır. 327 00:13:29,220 --> 00:13:33,200 Bir alan veya sütunu dizine Nerede anlamına gelir peşin veritabanı 328 00:13:33,200 --> 00:13:37,040 gibi, bazı fikirler ödünç gerekir, Haftanın dört ve beş ve altı CS50 gelen 329 00:13:37,040 --> 00:13:39,240 ve aslında kurmak ikili arama gibi bir şey 330 00:13:39,240 --> 00:13:41,560 ağaç ya da bir şey genellikle B ağacı denilen 331 00:13:41,560 --> 00:13:43,410 öğrenmek olacağını Bir sınıf gibi CS124 içinde 332 00:13:43,410 --> 00:13:46,710 Harvard'da bir algoritma sınıfı, ya da herhangi bir başka yerlerde sayısı. 333 00:13:46,710 --> 00:13:49,570 >> Veritabanı ve akıllı Onu hayata insanlar 334 00:13:49,570 --> 00:13:53,880 saklamak için nasıl anlamaya olacak bilgi bu tabloda 335 00:13:53,880 --> 00:13:57,061 bellekte böylece arar ve diğer işlemler süper hızlı. 336 00:13:57,061 --> 00:13:58,060 Bunu yapmak zorunda değilsin. 337 00:13:58,060 --> 00:14:00,640 Sen uygulamak zorunda değilsiniz doğrusal arama veya ikili arama 338 00:14:00,640 --> 00:14:03,300 veya sıralama veya seçimi birleştirme sıralama hiçbirini. 339 00:14:03,300 --> 00:14:06,590 Eğer söylersen veritabanı sizin için yapar o preemptively dizine bu alan. 340 00:14:06,590 --> 00:14:09,100 >> Ve sen, orada da görebilirsiniz Bazı diğer özellikleri 341 00:14:09,100 --> 00:14:11,010 Biz veritabanı zorlamak için söyleyebilirim. 342 00:14:11,010 --> 00:14:16,431 Ben Unique seçerseniz ne anlama olabilir Bu menüden, sadece sezgisel? 343 00:14:16,431 --> 00:14:16,930 Evet? 344 00:14:16,930 --> 00:14:17,889 >> HEDEF KİTLE: [duyulamaz] 345 00:14:17,889 --> 00:14:19,930 DAVID MALAN: Evet, Kullanıcı adı özgü olması gerekmektedir. 346 00:14:19,930 --> 00:14:23,330 Bu iyi bir şey mi yoksa kötü bir şey için kullanıcıları ile bir web sitesi için bir veritabanı? 347 00:14:23,330 --> 00:14:24,965 Adlarını benzersiz olmalıdır? 348 00:14:24,965 --> 00:14:25,880 Evet, muhtemelen. 349 00:14:25,880 --> 00:14:27,800 Işte ne olur alan biz oturum açmak için kullandığınız 350 00:14:27,800 --> 00:14:31,867 Gerçekten insanların sahip istemiyorum Aynı hissediyorum ya da aynı kullanıcı adı. 351 00:14:31,867 --> 00:14:33,700 Yani, biz olabilir Veritabanı böylece zorlamak 352 00:14:33,700 --> 00:14:37,880 şimdi benim PHP kodu veya herhangi bir dilde, Ben, örneğin, denetlemek zorunda değilsiniz 353 00:14:37,880 --> 00:14:41,490 mutlaka bu adı yok Birinin kayıt izin önce var? 354 00:14:41,490 --> 00:14:46,690 Veritabanı adlı iki kişiyi izin vermez David ya Malans Bu durumda kayıt olun. 355 00:14:46,690 --> 00:14:50,030 >> Ve bir kenara olarak, bu bile olsa menü sadece birini seçmenize olanak sağlar, 356 00:14:50,030 --> 00:14:54,550 benzersiz bir dizin var biridir süper hızlı performans için endeksli, 357 00:14:54,550 --> 00:14:56,100 ama aynı zamanda teklik zorlar. 358 00:14:56,100 --> 00:14:58,850 Ve biz geri geleceğiz neler sadece bir an ortalama iki. 359 00:14:58,850 --> 00:15:00,930 Bu arada, ben gidersem benim ikinci sıra, hangi 360 00:15:00,930 --> 00:15:06,230 Kullanıcının adı, ben belirtmelidir adı benzersiz olmalıdır? 361 00:15:06,230 --> 00:15:09,550 Hayır, kesinlikle olabilir çünkü have-- hiçbir iki Davut var 362 00:15:09,550 --> 00:15:11,050 Bu odada Malans, büyük olasılıkla. 363 00:15:11,050 --> 00:15:14,290 Ama biz farklı bir ad seçerseniz, biz kesinlikle çarpışmalar olabilir. 364 00:15:14,290 --> 00:15:16,130 >> Tablolar ve benzeri karma geri düşünün. 365 00:15:16,130 --> 00:15:18,604 Yani, biz kesinlikle istemiyoruz adını alan benzersiz yapmak için. 366 00:15:18,604 --> 00:15:21,270 Yani, biz sadece bırakmak için gidiyoruz Bu çizgi, çizgi, çizgi, hiçbir şey. 367 00:15:21,270 --> 00:15:22,660 Ve ben bırakacağım yalnız her şey. 368 00:15:22,660 --> 00:15:25,035 Nitekim, bu alanların çoğu Biz umurumda zorunda kalmazsınız. 369 00:15:25,035 --> 00:15:27,830 Ve ben bu kurtarmaya hazır olduğumda, internet işbirliği halinde 370 00:15:27,830 --> 00:15:35,032 Çok, çok, çok Kaydet'i tıklatın ve yavaş yavaş veritabanı kurtardı olsun demek. 371 00:15:35,032 --> 00:15:37,240 Ve şimdi ben bu geri döndüm arayüzü, hangi kuşkusuz, 372 00:15:37,240 --> 00:15:38,680 ilk bakışta çok zor. 373 00:15:38,680 --> 00:15:42,450 Ama yapacağım tüm tıklama sol üst kısmında kelime Kullanıcıları. 374 00:15:42,450 --> 00:15:47,630 Buraya gitmek için gidiyorum, tıklayın Kullanıcılar ve varsayılan, o 375 00:15:47,630 --> 00:15:50,180 Bazı SQL yürüttü ancak bir anda bu konuda daha fazla. 376 00:15:50,180 --> 00:15:52,654 İşte ne yaptım sadece bir özetini sunuyoruz. 377 00:15:52,654 --> 00:15:55,320 Ve gördüğünüz endişe etmeyin Burada Latince ve İsveççe söz. 378 00:15:55,320 --> 00:16:00,490 Bunlar sadece varsayılan olarak ayarları, başlangıçta MySQL, çünkü 379 00:16:00,490 --> 00:16:04,000 veya PHP MyAdmin, ikisinden biri oldu Bazı İsveçli insanlar tarafından yazılacak. 380 00:16:04,000 --> 00:16:06,100 Ama burada bizim durumumuzda alakasız. 381 00:16:06,100 --> 00:16:08,280 >> Pekala, neden Bu tüm ilginç? 382 00:16:08,280 --> 00:16:13,050 Bu çıkıyor, ben veri ekleyebilirsiniz kod yazarak bir veritabanına. 383 00:16:13,050 --> 00:16:15,940 Ve ben go ahead ve kulüpler Burada benim dosyasında, ben 384 00:16:15,940 --> 00:16:19,000 go ahead ve benzeri taklit edecek Bu bu veritabanına, kablolu olan 385 00:16:19,000 --> 00:16:23,040 şu anda değil, ama olacak Biz sorunun olsun yedi ayarladığınızda olacak. 386 00:16:23,040 --> 00:16:25,640 Ve ben önde gidiyorum ve Sorgu adında bir işlevi yürütmek 387 00:16:25,640 --> 00:16:28,730 hangi biz sorun size verecektir Bu yedi dağıtım kodunu ayarlamak 388 00:16:28,730 --> 00:16:31,490 En az bir argüman alır, hangi sadece bir dizedir. 389 00:16:31,490 --> 00:16:33,460 SQL kodu bir dize. 390 00:16:33,460 --> 00:16:36,700 Peki, nasıl öğrenmek üzereyiz Structured Query Language yazın. 391 00:16:36,700 --> 00:16:41,270 >> Ben yeni bir satır eklemek istiyorsanız, benim Veritabanı birisi sunmuştur çünkü 392 00:16:41,270 --> 00:16:47,600 kodumu bir form, ben tam anlamıyla olur Kullanıcılar INSERT INTO aşağıdaki bilgileri 393 00:16:47,600 --> 00:16:52,800 alanlar: username, virgül, isim, DEĞERLER, 394 00:16:52,800 --> 00:16:57,480 ve şimdi eklemek gerekir Malan ve alıntı gibi bir şey, 395 00:16:57,480 --> 00:17:01,490 Alıntı sonu 'David Malan.' Ve şimdi Hatta SQL aşina olanlar için, 396 00:17:01,490 --> 00:17:07,830 neden tek tırnak kullanıyorum Bu yeşil dize içinde? 397 00:17:07,830 --> 00:17:10,790 398 00:17:10,790 --> 00:17:13,040 Ne nedeni burada olabilir? 399 00:17:13,040 --> 00:17:14,609 >> Ben eş-karışarak iki dil olduğumu dikkat edin. 400 00:17:14,609 --> 00:17:18,099 Sorgu, bir PHP fonksiyonu ancak bir argüman alır. 401 00:17:18,099 --> 00:17:21,740 Ve bu argüman kendisine sahip olmak adında başka bir dilde yazılmış 402 00:17:21,740 --> 00:17:23,500 SQL, Structured Query Language. 403 00:17:23,500 --> 00:17:27,940 Yani, her şey ben Sadece burada sermiştir 404 00:17:27,940 --> 00:17:30,380 SQL denilen bu dildir. 405 00:17:30,380 --> 00:17:36,290 Yani, tek tırnak ne, sadece hızlı aklı kontrol gibi? 406 00:17:36,290 --> 00:17:37,324 Devam et. 407 00:17:37,324 --> 00:17:37,990 Onlar dizeleri konum. 408 00:17:37,990 --> 00:17:41,590 Yani, alıntı, unquote Malan ve alıntı, unquote David Malan dizeleri vardır. 409 00:17:41,590 --> 00:17:45,210 Ve sadece şimdi sezgisel düşünme C ve PHP hakkında bildiklerini bilmek, 410 00:17:45,210 --> 00:17:50,220 Neden bunu, hangi genellikle vermedi dizeleri için kullanılan çift tırnak? 411 00:17:50,220 --> 00:17:52,310 Neden bunu yapmak istemedi? 412 00:17:52,310 --> 00:17:52,810 Evet? 413 00:17:52,810 --> 00:17:53,685 >> HEDEF KİTLE: [duyulamaz] 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 DAVID MALAN: Kesinlikle. 416 00:17:57,570 --> 00:17:59,653 Ben zaten kullanıyorum çünkü Yolda çift tırnak 417 00:17:59,653 --> 00:18:01,929 Tartışmanın dışında PHP fonksiyonu, 418 00:18:01,929 --> 00:18:03,470 Ben sadece tercüman karıştırmayın olacaktır. 419 00:18:03,470 --> 00:18:04,860 O bilmeyecek, bu arada gidiyorsun? 420 00:18:04,860 --> 00:18:05,735 Bu arada gidiyorsun? 421 00:18:05,735 --> 00:18:06,810 Bu arada gidiyorsun? 422 00:18:06,810 --> 00:18:08,070 Yani, ben onun yerine alternatif. 423 00:18:08,070 --> 00:18:11,784 >> Yoksa ben, böyle bir şey yapabileceğini ters eğik çizgi alıntı veya ters eğik çizgi alıntı. 424 00:18:11,784 --> 00:18:14,200 Açıkçası, bu sadece başlar Çok okunmaz ve çirkin olsun. 425 00:18:14,200 --> 00:18:16,790 Ama bu elde edeceğini hem de aynı sonucu. 426 00:18:16,790 --> 00:18:19,760 >> Ben olsaydım Yani, bu yürütmek için Sorgu şimdi, ne olduğunu görelim. 427 00:18:19,760 --> 00:18:22,740 Ben şimdi ve oldukça önde gidiyorum PHP kodu, çalıştırmak daha hangi 428 00:18:22,740 --> 00:18:24,610 Eğer oynayacağız nerede probleminde, yedi set 429 00:18:24,610 --> 00:18:27,200 Bunun yerine PHP myadmin gitmek için gidiyorum. 430 00:18:27,200 --> 00:18:29,770 Ve ben elle gidiyorum SQL sekmesine gitmek için, 431 00:18:29,770 --> 00:18:31,580 ve bana arayüzünde yakınlaştırmak edelim. 432 00:18:31,580 --> 00:18:34,007 Ve ben yapıştırmak için gidiyorum Ben sadece yazdığınız şey. 433 00:18:34,007 --> 00:18:36,090 Ve renk kodlaması vardır Şimdi biraz değişti 434 00:18:36,090 --> 00:18:38,750 Sadece program formatları nedeniyle işler biraz farklı. 435 00:18:38,750 --> 00:18:41,960 Ama bütün Yaptığım fark I Kullanıcılar takın, söyledim. 436 00:18:41,960 --> 00:18:45,790 Ben bir virgül, daha sonra, belirttiğiniz ayrılmış parantezli liste iki 437 00:18:45,790 --> 00:18:48,850 Ben eklemek istediğiniz alanları ve Sonra ben tam anlamıyla söylediğim değerler 438 00:18:48,850 --> 00:18:51,510 Başka bir parantez, ardından ve daha sonra iki değer 439 00:18:51,510 --> 00:18:53,520 Ben plug-in istiyoruz ve Şimdi iyi ölçmek için, 440 00:18:53,520 --> 00:18:55,010 Ben sonunda bir noktalı virgül koymak gerekir. 441 00:18:55,010 --> 00:18:56,570 Yani, bu Bu PHP değil C değil. 442 00:18:56,570 --> 00:18:59,970 Bu artık SQL ve ben yapıştırarak ediyorum var bu web tabanlı arayüzüne 443 00:18:59,970 --> 00:19:02,710 bana izin verecek, en kısa sürede ben Git düğmesini tıklatın olarak, 444 00:19:02,710 --> 00:19:08,060 veritabanında bu sorguyu yürütmek CS50 IDE içinde çalışan. 445 00:19:08,060 --> 00:19:09,470 >> Yani bu iyi. 446 00:19:09,470 --> 00:19:12,520 Dedi Bildirimi bir satır takılı, süper hızlı gitti 447 00:19:12,520 --> 00:19:15,190 0.0054 saniye bu verileri eklemek için. 448 00:19:15,190 --> 00:19:16,610 Yani, bu oldukça sağlıklı görünüyor. 449 00:19:16,610 --> 00:19:19,350 Benim sorgu reformasyon sadece onu görmek için buraya beni için 450 00:19:19,350 --> 00:19:21,730 renk kodlu sürümü tür. 451 00:19:21,730 --> 00:19:24,540 Ama şimdi ben tıklarsanız İnsanlar, hatta fark 452 00:19:24,540 --> 00:19:29,070 Darmadağın bir sürü orada olsa Ekran, benim masa şimdi iki satır vardır. 453 00:19:29,070 --> 00:19:30,700 >> Yani, bana go ahead ve başka yapalım. 454 00:19:30,700 --> 00:19:33,760 Bunun yerine, bana izin Yine SQL sekmesine gidin. 455 00:19:33,760 --> 00:19:40,723 Ve bu sefer böyle bir şey eklemek gerekir Rob ve onun adını Rob Bowden olacak. 456 00:19:40,723 --> 00:19:42,330 Bowden. 457 00:19:42,330 --> 00:19:44,040 En Kaydet'i tıklatın edelim. 458 00:19:44,040 --> 00:19:46,140 Üzgünüz, yerine gidin. 459 00:19:46,140 --> 00:19:48,890 >> Yine Gözat'ı tıklatın ve Şimdi iki satır var dikkat edin. 460 00:19:48,890 --> 00:19:52,390 Yani, bu sadece bir yol daha karmaşıktır açılması Google E-Tablolar yolu 461 00:19:52,390 --> 00:19:54,010 ve sadece sütuna bir satır yazarak. 462 00:19:54,010 --> 00:19:57,070 Ama anahtar olduğunu ne Şimdi sözdizimi var 463 00:19:57,070 --> 00:20:00,220 hangi kod yazmak, böylece sonuçta, biz aslında olabilir 464 00:20:00,220 --> 00:20:01,790 Bazı ve bunu. 465 00:20:01,790 --> 00:20:05,380 Bu PHP destekleri hatırlayın Süper global değişkenler. 466 00:20:05,380 --> 00:20:08,415 >> Doların içeride nedir PHP GET çizgi oturum? 467 00:20:08,415 --> 00:20:10,290 Biz tek bir göz attım ya da iki basit örnekler. 468 00:20:10,290 --> 00:20:15,640 Ve PSet6 içinde, merhaba var çağırmak Bu değişkeni kullanır nokta PHP. 469 00:20:15,640 --> 00:20:17,870 Ne oraya gidiyor? 470 00:20:17,870 --> 00:20:21,015 Ya da nedir? 471 00:20:21,015 --> 00:20:22,522 Biraz daha yüksek sesle. 472 00:20:22,522 --> 00:20:23,790 >> HEDEF KİTLE: [duyulamaz] 473 00:20:23,790 --> 00:20:25,030 >> DAVID MALAN: Bu bir kar var Dizinin tohumu, burada 474 00:20:25,030 --> 00:20:27,714 Bir söyleyerek sadece süslü bir yoludur Anahtar değer çiftlerini sahip dizi. 475 00:20:27,714 --> 00:20:28,880 Ve tuşlar sayısal değildir. 476 00:20:28,880 --> 00:20:30,420 Onlar kelime veya dizeleri konum. 477 00:20:30,420 --> 00:20:32,750 Ve özel olarak ise, ne bu anahtar değer çiftleri nelerdir? 478 00:20:32,750 --> 00:20:35,110 Onlar nereden geliyor? 479 00:20:35,110 --> 00:20:35,620 Maalesef? 480 00:20:35,620 --> 00:20:36,994 >> HEDEF KİTLE: [duyulamaz] 481 00:20:36,994 --> 00:20:37,660 DAVID MALAN: Hayır? 482 00:20:37,660 --> 00:20:40,700 Nerede o anahtar yapmak değer çiftleri geliyor? 483 00:20:40,700 --> 00:20:42,490 Tekrar söyle? 484 00:20:42,490 --> 00:20:44,610 Yine mi? 485 00:20:44,610 --> 00:20:46,472 Ben sadece bir işitme şey miyim? 486 00:20:46,472 --> 00:20:47,810 >> [KAHKAHA] 487 00:20:47,810 --> 00:20:49,042 >> Doğru, evet mi? 488 00:20:49,042 --> 00:20:50,435 >> HEDEF KİTLE: [duyulamaz] 489 00:20:50,435 --> 00:20:52,560 David MALAN: Evet, Sorgu dizesi geliyor. 490 00:20:52,560 --> 00:20:55,380 Yani, zaman içinde geri sarma durumunda Biz Google ile oynadım zaman 491 00:20:55,380 --> 00:20:59,600 ve biz Google.com çizgi gittin Arama soru işareti q, kediler eşittir 492 00:20:59,600 --> 00:21:03,550 Ben vurmak olsaydı girin ve eğer Google, PHP uygulanmıştır 493 00:21:03,550 --> 00:21:07,017 Google yazdı PHP kodu dolar işareti erişim olurdu 494 00:21:07,017 --> 00:21:11,600 hangi iç GET altını anahtar olarak adlandırılan Q ve bir değer 495 00:21:11,600 --> 00:21:17,680 daha sonra kullanabileceğiniz denilen kediler ile gerçek bir arama yapmak için kullanılır. 496 00:21:17,680 --> 00:21:20,860 >> Yani, aslında, ben ne gidiyorum Şimdi benim PHP kodu geri dönmek yapmak 497 00:21:20,860 --> 00:21:23,140 Yine PSet7 içinde daha fazla görürsünüz. 498 00:21:23,140 --> 00:21:25,440 Ve yerine takıp sabit kodlanmış değerleri olan 499 00:21:25,440 --> 00:21:27,630 Bir gibi görünmüyor çok dinamik web sitesi, 500 00:21:27,630 --> 00:21:30,680 Sana bir teaser vereceğim Gerçek kod ne yapacağını. 501 00:21:30,680 --> 00:21:32,854 Siz iki vereceğini Soru böyle işaretler. 502 00:21:32,854 --> 00:21:34,270 Ben adı nedir bilmiyorum. 503 00:21:34,270 --> 00:21:37,390 Ne olduğunu bilmiyorum isim, olacak 504 00:21:37,390 --> 00:21:39,470 ama ben can biliyorum dinamik onları. 505 00:21:39,470 --> 00:21:43,420 >> Peki, şimdi yazıyoruz kod ise Google'ın sunucularında çalışan kod, 506 00:21:43,420 --> 00:21:46,940 veya bu merhaba nokta ise PSet6 ile gelen PHP, 507 00:21:46,940 --> 00:21:48,650 Ben geçmek için gidiyorum sorgu işlevi 508 00:21:48,650 --> 00:21:51,450 sadece printf gibi, diğer iki argüman. 509 00:21:51,450 --> 00:21:57,120 Alıntı, GET, unquote adınızı, ve alıntı unquote isim, GET. 510 00:21:57,120 --> 00:22:00,720 Ve şimdi, ne fark genel yapısı burada. 511 00:22:00,720 --> 00:22:03,320 Ben solda var aramanın taraftaki, 512 00:22:03,320 --> 00:22:05,480 Bu işlev PHP sorgu denir. 513 00:22:05,480 --> 00:22:08,160 Hala ilk olarak sahip argüman, metnin sadece bir dize. 514 00:22:08,160 --> 00:22:11,000 >> Ama metnin bu dizedir SQL adında bir dilde yazılmış. 515 00:22:11,000 --> 00:22:12,616 Ve açıkçası, büyük bir dil değil. 516 00:22:12,616 --> 00:22:14,990 Biz sadece hakkında konuşmak için gidiyoruz resmen bugün gerçekten. 517 00:22:14,990 --> 00:22:17,031 Ve sonra sorunun set Yedi nispeten var 518 00:22:17,031 --> 00:22:18,800 Biz konum bazı özellikler kaldıraç olacak. 519 00:22:18,800 --> 00:22:22,530 Soru işaretleri olsa da, fiş demek başka bir değere bir değer ve fiş burada 520 00:22:22,530 --> 00:22:23,130 İşte. 521 00:22:23,130 --> 00:22:26,010 Ve haber, ben ihmal şeyden quote-- lanet yerinden 522 00:22:26,010 --> 00:22:30,470 tırnak etrafında bu-- Bu sefer işaretler. 523 00:22:30,470 --> 00:22:34,930 Ben alıntıyı ihmal ettik soru işareti etrafında işaretleri, 524 00:22:34,930 --> 00:22:36,410 Üzgünüm, bu sefer. 525 00:22:36,410 --> 00:22:38,870 >> Peki, bu konuda güzel Soru işareti özelliği olan 526 00:22:38,870 --> 00:22:42,830 PHP, Ruby desteklemek eğilimindedir ve Python ve diğer diller, 527 00:22:42,830 --> 00:22:45,730 Bu sadece bazı fişi demektir Burada değer ve ne biliyor musun? 528 00:22:45,730 --> 00:22:48,300 Sen kullanmak isteyip anlamaya Tek tırnak veya çift tırnak. 529 00:22:48,300 --> 00:22:50,966 Bu beni rahatsız etmeyin entelektüel ilginç ayrıntılar. 530 00:22:50,966 --> 00:22:53,780 Ama, emin doğru olduğunu yapmak benim kod sonuçta böylece 531 00:22:53,780 --> 00:22:57,010 operasyonel ve güvenli olan uzun zaman önce bir anlamı olacaktır. 532 00:22:57,010 --> 00:23:00,460 >> Şimdi, kaç argüman lazım, toplam açık, sorgu işlevi alma nedir? 533 00:23:00,460 --> 00:23:05,240 534 00:23:05,240 --> 00:23:07,581 Herkes ikiden fazla oy vermek ister misin? 535 00:23:07,581 --> 00:23:08,080 Üç? 536 00:23:08,080 --> 00:23:10,001 Tabii, neden? 537 00:23:10,001 --> 00:23:10,920 Neden üç? 538 00:23:10,920 --> 00:23:12,305 >> HEDEF KİTLE: [duyulamaz] 539 00:23:12,305 --> 00:23:13,180 DAVID MALAN: Kesinlikle. 540 00:23:13,180 --> 00:23:14,610 İlk bölüm dizedir. 541 00:23:14,610 --> 00:23:18,640 İkinci argüman dolar işaretidir GET braket adınızı altını çizmektedir. 542 00:23:18,640 --> 00:23:21,950 Ve üçüncü argümanı Aynı şey, ama sadece isim. 543 00:23:21,950 --> 00:23:24,590 Şimdi, diğer bir deyişle Yani Ben bir web formu olsaydı 544 00:23:24,590 --> 00:23:27,149 Bu, metin alanlarına vardı Kullanıcının adı için bir, 545 00:23:27,149 --> 00:23:29,690 onun için bir ya onun adı, sadece gibi bir web sitesi görürdünüz 546 00:23:29,690 --> 00:23:32,120 Eğer kayıt sırasında Bazı web sitesi, bu kudreti 547 00:23:32,120 --> 00:23:35,450 arka ucunda kodu olması Aslında ekleme şimdi yok 548 00:23:35,450 --> 00:23:37,220 veritabanına. 549 00:23:37,220 --> 00:23:40,870 >> Şimdi aksine, hızlı ileri bakalım. 550 00:23:40,870 --> 00:23:43,840 Bir kullanıcı artık varsayalım oturum ve istediğiniz 551 00:23:43,840 --> 00:23:48,860 olmadığını denetler PHP kodu yazmak için Sadece giriş var kişi 552 00:23:48,860 --> 00:23:52,250 Bir kullanıcı aslında yapabilirsiniz olduğunu oldukça basit bir sözdizimi kullanın. 553 00:23:52,250 --> 00:23:55,832 Sen diyelim, SEÇ söyleyebiliriz Yıldız her şey demektir, nerede yıldızı. 554 00:23:55,832 --> 00:23:57,540 Ne olduğunu bilmiyorum ben istiyoruz, bu yüzden bana ver 555 00:23:57,540 --> 00:24:01,585 tablodan tüm sütunlar Kullanıcıların nerede denir ve bu güzel. 556 00:24:01,585 --> 00:24:03,710 Seç ne destekler olan, bir öncül olarak adlandırılan 557 00:24:03,710 --> 00:24:06,630 Ne istediğinizi eleme bir yol gibi. 558 00:24:06,630 --> 00:24:10,590 Nerede adı eşittir alıntı, unquote Malan. 559 00:24:10,590 --> 00:24:13,680 Yani burada da, ben gömülü ettik argüman içinde 560 00:24:13,680 --> 00:24:16,110 Bir PHP işlevi, SQL kod satırına. 561 00:24:16,110 --> 00:24:18,680 Ve bu SQL kodunu bu Zaman anlamıyla gidiyor 562 00:24:18,680 --> 00:24:21,790 alıntı aramak için, Malan unquote. 563 00:24:21,790 --> 00:24:24,420 >> Şimdi, tüm bu yararlı değil bu yüzden o atlamak için gidiyorum 564 00:24:24,420 --> 00:24:28,650 ve ben uzağa koymak için gidiyorum Brady bu uç ve git 565 00:24:28,650 --> 00:24:30,990 ve plug-in yerine Burada bir soru işareti. 566 00:24:30,990 --> 00:24:33,290 Yani, sadece temiz olması ne benim ikinci argüman gerekir 567 00:24:33,290 --> 00:24:37,480 Birisi sadece ve I oturum açtı olması durumunda o aslında olmadığını denetlemek istiyor 568 00:24:37,480 --> 00:24:39,265 Bir kullanıcı? 569 00:24:39,265 --> 00:24:40,140 HEDEF KİTLE: [duyulamaz] 570 00:24:40,140 --> 00:24:40,890 DAVID MALAN: Evet. 571 00:24:40,890 --> 00:24:44,120 Ben dolar işareti çizgi duymak Alıntı, unquote adınızı GET. 572 00:24:44,120 --> 00:24:50,040 Ve bu benim dönmelidir benim veritabanında satır herhangi 573 00:24:50,040 --> 00:24:51,986 Bu Malan bir kullanıcı adı var. 574 00:24:51,986 --> 00:24:54,860 Şimdi umarım ben geri almak için gidiyorum Sıfır Malan burada hiç varsa, 575 00:24:54,860 --> 00:24:56,290 veya bir o varsa. 576 00:24:56,290 --> 00:24:59,026 Geri dönmem gerektiğini iki ya da üç ya da dört. 577 00:24:59,026 --> 00:24:59,526 Neden? 578 00:24:59,526 --> 00:25:00,220 >> HEDEF KİTLE: [duyulamaz] 579 00:25:00,220 --> 00:25:01,120 >> DAVID MALAN: Doğru, benzersiz söyledi? 580 00:25:01,120 --> 00:25:01,750 Basit bir nedeni. 581 00:25:01,750 --> 00:25:04,030 Dediğim Çünkü ilgisi var Sadece mantıklı, benzersiz, 582 00:25:04,030 --> 00:25:07,940 Sadece sıfır ya da bir Malans olabilir Bu özel veritabanı tablosu. 583 00:25:07,940 --> 00:25:10,965 Şimdi gördüm bir kenara, sadece bu yüzden olduğu gibi o, ben kullanmaya devam olsa GET 584 00:25:10,965 --> 00:25:14,350 ve PSet6 sadece kullanılan olsa bile , Kesinlikle POST olabilir GET. 585 00:25:14,350 --> 00:25:17,212 Ve Mesaj başka olduğunu hatırlamak bilgi göndererek tekniği 586 00:25:17,212 --> 00:25:19,170 formdan ancak URL görünmüyor. 587 00:25:19,170 --> 00:25:22,690 Bunun için kesinlikle biraz daha güvenlidir kullanıcı adı ve şifre gibi şeyler, 588 00:25:22,690 --> 00:25:25,210 bu PSet7, aslında, içerecektir. 589 00:25:25,210 --> 00:25:28,130 >> Yani, PHP bunu yapmasına izin Myadmin ve ne olduğunu görün. 590 00:25:28,130 --> 00:25:30,020 MySQL sekmesine gitmek için gidiyorum. 591 00:25:30,020 --> 00:25:34,450 Ve o varsayılan değer fark PHP MyAdmin, sadece yardımcı olmaya çalışın 592 00:25:34,450 --> 00:25:37,050 nerede kullanıcıların tek yıldızı seçmektir. 593 00:25:37,050 --> 00:25:39,430 Peki, biri çok, her zaman doğrudur Bu etkili aptal vardır 594 00:25:39,430 --> 00:25:40,400 sadece her şeyi seçin. 595 00:25:40,400 --> 00:25:42,691 Ama ben biraz olacağım daha bilgiçlik elle 596 00:25:42,691 --> 00:25:45,920 Kullanıcılar SELECT yıldızını yazın. 597 00:25:45,920 --> 00:25:48,294 >> Şimdi teknik olarak yapabilirsiniz tablo adını alıntı. 598 00:25:48,294 --> 00:25:50,460 Bu zorunda nadir, ancak bu değildir fark 599 00:25:50,460 --> 00:25:52,240 ABD klavyede normal tırnak. 600 00:25:52,240 --> 00:25:54,760 Bu sözde ters tırnak, olduğu Sol üst taraftan genellikle 601 00:25:54,760 --> 00:25:56,000 Klavyenizin köşesi. 602 00:25:56,000 --> 00:25:58,500 Ama bu olacak o nadir aslında ile rahatsız etmek gerek, 603 00:25:58,500 --> 00:25:59,950 bu yüzden sadece zaten onları ihmal edeceğiz. 604 00:25:59,950 --> 00:26:02,280 Yani şimdi, ben go ahead ve gidip değmesine izin. 605 00:26:02,280 --> 00:26:06,616 Ve kaç satır I almalısınız geri ben kullanıcılardan yıldızı seçtiğinizde? 606 00:26:06,616 --> 00:26:08,407 >> HEDEF KİTLE: [duyulamaz] 607 00:26:08,407 --> 00:26:09,990 DAVID MALAN: Emin satır sayısı. 608 00:26:09,990 --> 00:26:12,390 Ama bu kaç Şu anda somut bir hikaye? 609 00:26:12,390 --> 00:26:14,640 İki vardı çünkü Ben ve Rob vardı. 610 00:26:14,640 --> 00:26:19,370 Ben Git'i tıklatın Yani, ben görsel olarak görüyorum Ben, gerçekten, geri iki satır aldım. 611 00:26:19,370 --> 00:26:22,060 Darmadağın bir sürü üzerinde var Ekran, ama ben sadece iki satır görürsünüz. 612 00:26:22,060 --> 00:26:28,580 Ben tekrar yapmak ve eğer aksine, do Kullanıcılar, nerede adı SELECT yıldız 613 00:26:28,580 --> 00:26:31,840 alıntı, Alıntı sonu eşittir Malan, şimdi ben, Git seçeneğini tıklatın eğer 614 00:26:31,840 --> 00:26:33,970 Ben sadece geri bir satır almak için gidiyorum. 615 00:26:33,970 --> 00:26:36,499 Ve son olarak, ben yaparsam Böyle bir şey, herhalde 616 00:26:36,499 --> 00:26:38,290 Ben umurumda değil bu Her şeyi alıyorum, 617 00:26:38,290 --> 00:26:41,020 hangi şimdi biraz anlamsızdır, Sadece iki sütun var çünkü. 618 00:26:41,020 --> 00:26:43,103 Ben seçerek ediyorum gibi değil veri büyük miktarda. 619 00:26:43,103 --> 00:26:46,720 Devam edin ve varsayalım DAN adını SELECT edebilirim 620 00:26:46,720 --> 00:26:51,990 kullanıcı adı Malan eşittir kullanıcıları, Ne dürüstçe SQL hakkında güzel, 621 00:26:51,990 --> 00:26:54,290 gerçekten sadece yapmasıdır ne yapmak bunu söylemek. 622 00:26:54,290 --> 00:26:57,550 Oldukça özlü, ama tam anlamıyla sadece ne yapmak istediğinizi söylemek. 623 00:26:57,550 --> 00:27:01,130 Kullanıcılar nerede seçin ismi kullanıcı adı Malan eşittir. 624 00:27:01,130 --> 00:27:03,440 Ve gerçekten bu açık olduğunu. 625 00:27:03,440 --> 00:27:08,410 Yani, şimdi ben Git, kaç vurmak satırları Ben geri almak için gidiyorum? 626 00:27:08,410 --> 00:27:10,770 Bir, sadece çünkü Malan, umarım. 627 00:27:10,770 --> 00:27:13,100 Veya sıfır o değilse Orada, ama maksimum tek. 628 00:27:13,100 --> 00:27:17,610 >> Ve geri kaç sütun alacaksınız? 629 00:27:17,610 --> 00:27:18,450 Kaç sütun? 630 00:27:18,450 --> 00:27:20,658 Bu sefer, ben sadece gidiyorum Ben yapmadım çünkü bir tane almak 631 00:27:20,658 --> 00:27:22,380 her şey, hangi yıldızı seçin. 632 00:27:22,380 --> 00:27:27,900 Şimdi ben sadece adını seçerek, bu yüzden yapıyorum Sadece bir sütun ve bir satır geri almak. 633 00:27:27,900 --> 00:27:31,730 Ve bunun uygun çeşit görünüyor gülünç, sadece bakarak süper 634 00:27:31,730 --> 00:27:33,060 Bu gibi küçük. 635 00:27:33,060 --> 00:27:34,290 Peki, gerçekten neler oluyor? 636 00:27:34,290 --> 00:27:36,890 Bir SQL çalıştırdığınızda Sorgu seçeneğini kullanarak 637 00:27:36,890 --> 00:27:38,700 ne alıyorsanız Geri veritabanından 638 00:27:38,700 --> 00:27:42,970 geçici bir tablo gibi satırlar ve sütunlar ile belki, 639 00:27:42,970 --> 00:27:46,260 ama bu bir şey ihmal olduğunu aslında sizin tarafınızdan seçilen değildi. 640 00:27:46,260 --> 00:27:49,010 Yani, o kimse büyük bir olsaydı gibi Tüm öğrencilerin elektronik tablo 641 00:27:49,010 --> 00:27:51,610 Bazı kayıtlı Öğrenci grubu, ve sen diyorsun, 642 00:27:51,610 --> 00:27:55,097 Bana ettik freshman tüm vermek Öğrenci grubu için kayıtlı ne 643 00:27:55,097 --> 00:27:56,930 sizin meslektaşım öğrenci grubu yapabilir 644 00:27:56,930 --> 00:27:58,430 onlar sadece el olabilir edilir Eğer bütün elektronik tablo. 645 00:27:58,430 --> 00:27:59,742 Yani seçme yıldızı demek gibi. 646 00:27:59,742 --> 00:28:02,200 Ve eğer biraz can sıkıcı Sadece çaylak istedi. 647 00:28:02,200 --> 00:28:05,640 Ve böylece yerine, söz konusu olursa veritabanı tablosundan seçin yıldız 648 00:28:05,640 --> 00:28:08,470 Nerede yıl eşittir alıntı, unquote birinci, 649 00:28:08,470 --> 00:28:10,810 o arkadaşın sanki bulunuyor Öğrenci grubu 650 00:28:10,810 --> 00:28:13,770 kelimenin tam anlamıyla vurgulanan ve Kopyalanan sadece birinci satır, 651 00:28:13,770 --> 00:28:16,780 Yeni Google içine yapıştırılan Elektronik tablo veya bir Excel dosyası, 652 00:28:16,780 --> 00:28:18,860 ve geri teslim Sadece dosyayı açar. 653 00:28:18,860 --> 00:28:21,710 Yani gidiyor hepsi bu kavramsal burada. 654 00:28:21,710 --> 00:28:23,920 >> Yani sonunda biz yapabiliriz bazı oldukça süslü şeyler 655 00:28:23,920 --> 00:28:26,560 adları gibi şeyler saklayarak ve şifreler ve benzeri. 656 00:28:26,560 --> 00:28:30,310 Ama, o çıkıyor, biz yapmalıyız farklı bu biraz daha. 657 00:28:30,310 --> 00:28:34,750 Sadece o zeki değil Bir kullanıcı adı ve şifre saklayın. 658 00:28:34,750 --> 00:28:37,790 Daha önce biri, sanırım Buraya, bir kimlik önerdi. 659 00:28:37,790 --> 00:28:40,787 Hemen Kimliği gibi olabilir Harvard kimlik veya Yale'in Net ID, 660 00:28:40,787 --> 00:28:42,870 ama bu bile basit olabilir Bizim veritabanı durumda. 661 00:28:42,870 --> 00:28:45,120 Ve gerçekten de, ortak dava Başka bir sütuna sahip olmaktır. 662 00:28:45,120 --> 00:28:46,953 Ve ben gidiyorum önde ve masamı düzenleyin. 663 00:28:46,953 --> 00:28:49,521 Ve etrafında oynarsa PSet7 için bu arayüz, 664 00:28:49,521 --> 00:28:51,770 Eğer kontrol edebilirsiniz görürsünüz Burada bu düğmeye ekleyin 665 00:28:51,770 --> 00:28:53,750 masanın başında bir alan. 666 00:28:53,750 --> 00:28:56,720 Ben Git'i tıklatın şimdi Ve eğer gidiyor Bana şu formlardan birini vermek 667 00:28:56,720 --> 00:28:57,600 önceki. 668 00:28:57,600 --> 00:29:00,170 Ben kimliği adında bir alan eklemek için gidiyorum. 669 00:29:00,170 --> 00:29:03,070 Ve ben bir sayısal tür yapmak için gidiyorum. 670 00:29:03,070 --> 00:29:05,362 >> Ben bir sürü var ve numerics için değerleri. 671 00:29:05,362 --> 00:29:08,677 Ben sadece bir INT seçmek için gidiyorum ve farklı boyutlarda dert. 672 00:29:08,677 --> 00:29:10,510 Ben belirtmek zorunda değilsiniz uzunluğu veya bir değer, 673 00:29:10,510 --> 00:29:13,710 o olacak çünkü 32 bit ne olursa olsun. 674 00:29:13,710 --> 00:29:16,070 Nitelikler, biz daha önce görmedim. 675 00:29:16,070 --> 00:29:18,410 Bunlardan herhangi birinde herhangi bir faiz menü seçenekleri bu sefer? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 Bir INT için? 678 00:29:23,745 --> 00:29:24,620 Ne teklif mi? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 Hayır mı? 681 00:29:28,445 --> 00:29:29,570 Bunlardan herhangi mantıklı mı? 682 00:29:29,570 --> 00:29:30,536 Evet. 683 00:29:30,536 --> 00:29:31,900 Doğru, imzasız, tamam mı? 684 00:29:31,900 --> 00:29:35,930 >> Biz gidiyoruz Genellikle vermek Herkesin benzersiz bir numaradır, hangi 685 00:29:35,930 --> 00:29:38,200 Bu hikaye nerede gidiş, ben gerçekten sadece istiyorum 686 00:29:38,200 --> 00:29:41,919 Bir kişinin sıfır gibi numarasına sahip olacak ve bir ve iki ve üç ve dört. 687 00:29:41,919 --> 00:29:43,710 Ben uğraşmak gerek yok Negatif sayılarla. 688 00:29:43,710 --> 00:29:45,210 Sadece aşırı karmaşıklığı gibi görünüyor. 689 00:29:45,210 --> 00:29:48,470 Ben dört milyar olası değerleri istiyorum, değil dört milyar olası değerler, 690 00:29:48,470 --> 00:29:50,699 bu yüzden ben sadece iki katına Benim INT kapasitesi. 691 00:29:50,699 --> 00:29:53,490 Bir kenara, sen ilişkilendirmek istiyorsanız itibariyle Facebook gibi bu bir şey, 692 00:29:53,490 --> 00:29:56,190 geri günün ne zaman sıralamada Facebook ilk çıktı 693 00:29:56,190 --> 00:29:59,510 Ben ne olduğunu inanıyorum Onların MySQL veritabanı kullanan 694 00:29:59,510 --> 00:30:02,856 Bir kullanıcının saklamak için tanımlayıcı, sadece bir INT oldu. 695 00:30:02,856 --> 00:30:05,230 Ama tabii, çok şey var Dünyada gerçek insanlar. 696 00:30:05,230 --> 00:30:07,438 Sahte Facebook bir çok şey var Dünyada hesaplar. 697 00:30:07,438 --> 00:30:11,701 Ve böylece sonunda, Facebook taştı Bir INT boyutu, bir dört milyar 698 00:30:11,701 --> 00:30:12,200 değer. 699 00:30:12,200 --> 00:30:15,032 Neden, bakarsanız Hangi etrafında ve web siteleri var 700 00:30:15,032 --> 00:30:16,740 size söyleyebilirim benzersiz bir kimliktir. 701 00:30:16,740 --> 00:30:19,781 Ve sen bir kullanıcı adı seçti asla eğer Facebook, size benzersiz kimlik numaranızı göreceksiniz. 702 00:30:19,781 --> 00:30:23,080 Ben profil nokta PHP düşünüyorum soru işareti kimliği şey eşittir. 703 00:30:23,080 --> 00:30:27,210 O şimdi büyük bir gibi bir şeydir INT, ya da uzun uzun eğer sen bir, 704 00:30:27,210 --> 00:30:29,700 64-bit değeri hangi veya benzer bir şey. 705 00:30:29,700 --> 00:30:33,620 >> Yani, hatta gerçek dünyada bu do konular sonuçta bazen önemli. 706 00:30:33,620 --> 00:30:37,600 Ben eğer Ve, burada çıkıyor Benim kullanıcıları benzersiz bir kimliği tüm veriyor 707 00:30:37,600 --> 00:30:41,750 Ben süper açık olmak istiyorum ve Minimal bu alan benzersiz yapın. 708 00:30:41,750 --> 00:30:44,750 Bir tane var dışarı Ama döner isimlendirme bugün yerin çok 709 00:30:44,750 --> 00:30:46,470 Bu birincil anahtar. 710 00:30:46,470 --> 00:30:49,800 Eğer veritabanı tasarlama ediyorsanız masa ve önceden biliyor 711 00:30:49,800 --> 00:30:55,580 Bu tablodaki sütunlardan biri olduğunu ve benzersiz satırları belirleyecektir gerekir 712 00:30:55,580 --> 00:30:58,500 Tabloda, istediğiniz Bunu belirtmek ve veritabanı söyle, 713 00:30:58,500 --> 00:31:00,250 Bu benim birincil anahtardır. 714 00:31:00,250 --> 00:31:02,110 Çiftleri olabilir diğer alanlarda, 715 00:31:02,110 --> 00:31:06,330 ama bu bu veritabanını söylüyorum Benim birincil, benim en önemli alan, 716 00:31:06,330 --> 00:31:08,420 benzersiz olmasını garanti ediyor. 717 00:31:08,420 --> 00:31:09,660 >> Şimdi, bu gereksiz görünüyor. 718 00:31:09,660 --> 00:31:13,830 Ben şimdi biz öneriyorum Burada Kaydet tıklayarak, eklemek, 719 00:31:13,830 --> 00:31:17,210 alan called-- ve ben gidiyorum go ahead ve AI tıklayın, 720 00:31:17,210 --> 00:31:19,720 Biz geri geleceğiz bir anda, Save söyledi. 721 00:31:19,720 --> 00:31:22,540 Ben şimdi öneriyorum Benim tablo bu gibi görünüyorsun. 722 00:31:22,540 --> 00:31:26,305 Ben, ID adında bir INT alana sahip Kullanıcı adında bir CHAR alanı, 723 00:31:26,305 --> 00:31:31,100 Bir VARCHAR adı denilen alan ancak kimlik, birincil ve bu nedenle benzersiz ise, 724 00:31:31,100 --> 00:31:33,760 Sadece neden israf etmedi Zaman ne tanıtan 725 00:31:33,760 --> 00:31:39,140 etkin bir şekilde benzersiz bir ikinci alan bir INT var kimliği aradı? 726 00:31:39,140 --> 00:31:41,980 >> Kullanıcı adı, hatırlama, oldu zaten eşsiz, dedik. 727 00:31:41,980 --> 00:31:45,350 Yani sadece mantıksal, sana ihtiyacım yok nedenle herhangi bir veritabanı deneyimi 728 00:31:45,350 --> 00:31:47,570 Neden bu yolla Ben tanıttı olabilir 729 00:31:47,570 --> 00:31:50,065 benim de benzersiz bir tanımlayıcı olarak INT? 730 00:31:50,065 --> 00:31:52,740 731 00:31:52,740 --> 00:31:53,930 Bu-- yine ne yazıyor? 732 00:31:53,930 --> 00:31:55,580 >> HEDEF KİTLE: [duyulamaz] 733 00:31:55,580 --> 00:31:59,534 >> David MALAN: Rastgele erişim kolay, neden? 734 00:31:59,534 --> 00:32:00,410 >> HEDEF KİTLE: [duyulamaz] 735 00:32:00,410 --> 00:32:02,367 DAVID MALAN: Evet, var Sadece sayıları erişme. 736 00:32:02,367 --> 00:32:04,750 Yani, eğer gerçekten bu düşün Bir masa, bir dizi gibi olan 737 00:32:04,750 --> 00:32:07,690 şimdi benzersiz tanımlayıcılar Etrafa atlayabilir. 738 00:32:07,690 --> 00:32:11,520 Ve bundan daha iyisi olduğunu ne kadar büyük bir INT yine olacak? 739 00:32:11,520 --> 00:32:14,450 740 00:32:14,450 --> 00:32:15,800 32 bit ya da dört bayt. 741 00:32:15,800 --> 00:32:17,750 >> Ne kadar büyük adımı olacak? 742 00:32:17,750 --> 00:32:20,310 743 00:32:20,310 --> 00:32:21,990 Maksimum? 744 00:32:21,990 --> 00:32:22,880 16 bayt. 745 00:32:22,880 --> 00:32:26,080 >> Yani gerçekten, hakkında bakmakta eğer kodunuzu performans, 746 00:32:26,080 --> 00:32:31,390 Eğer tercih ediyorum, geri PSet5 düşünüyorum dört bayt değeri ya da bir 16 aramak için 747 00:32:31,390 --> 00:32:32,240 bayt değeri, değil mi? 748 00:32:32,240 --> 00:32:33,810 Gerçekten bu kadar basit. 749 00:32:33,810 --> 00:32:38,060 Sen çok eser olarak dört kez yapmak zorunda Bu çünkü adları aramak için 750 00:32:38,060 --> 00:32:38,830 16 bayt. 751 00:32:38,830 --> 00:32:41,320 Yani, kelimenin tam anlamıyla var olmak üzere tüm 16 bayt karşılaştırmak 752 00:32:41,320 --> 00:32:43,140 evet tabii, bu benim istediğim kullanıcı adı olduğunu. 753 00:32:43,140 --> 00:32:46,610 Bir INT için şunları yapabilirsiniz Oysa sadece dört byte ile bunu. 754 00:32:46,610 --> 00:32:49,212 >> Ve bir kenara olanlar olduğu gibi Bilgisayar donanımı ile ilgilenen, 755 00:32:49,212 --> 00:32:52,420 Eğer böyle bir şey sığabilecek çıkıyor Bir INT ya da bir şey bir 32-bit değeri 756 00:32:52,420 --> 00:32:55,330 Bir bilgisayarda bir kayıt olarak adlandırılan Süper demektir CPU, 757 00:32:55,330 --> 00:32:58,400 Hatta en az, süper hızlı Bilgisayarın donanım seviyesi. 758 00:32:58,400 --> 00:33:00,530 Yani, her yerinde sadece avantajları var. 759 00:33:00,530 --> 00:33:01,530 Peki, bu ne anlama geliyor? 760 00:33:01,530 --> 00:33:04,850 Aslında, ne zaman tasarlarken bir Zaman, hemen hemen tüm veritabanı tablosu 761 00:33:04,850 --> 00:33:07,170 değil sahip olacak Sadece umurumda veriler, 762 00:33:07,170 --> 00:33:09,280 gibi aynı zamanda bir şey benzersiz bir tanımlayıcı 763 00:33:09,280 --> 00:33:11,280 Bu çünkü gidiyor Bizi diğer şeyler yapalım. 764 00:33:11,280 --> 00:33:13,160 Ve burada tek sorun düşmeyeceği edelim. 765 00:33:13,160 --> 00:33:15,990 >> Kullanıcıların değil ki varsayalım sadece adları ve isimler, 766 00:33:15,990 --> 00:33:19,540 ama onlar da şehirler gibi şeyler var ve devletler ve posta kodları, en azından 767 00:33:19,540 --> 00:33:20,432 Burada ABD'de. 768 00:33:20,432 --> 00:33:22,390 Yani, ben önde gidiyorum ve sadece hızlı bir şekilde söylemek, 769 00:33:22,390 --> 00:33:26,180 Bana üç sütun daha vermek Tablonun sonunda. 770 00:33:26,180 --> 00:33:28,900 Ve bu, Şehir olacak Bu, Devlet olacak 771 00:33:28,900 --> 00:33:30,400 ve bu Zip olacak. 772 00:33:30,400 --> 00:33:32,710 >> Şimdi şehir, hangi veri tipleri Bu, belki de, olmalı? 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 Ne olduğunu bilmiyorum En uzun isim şehridir. 776 00:33:37,780 --> 00:33:40,571 Somewhere Amerika'da, var muhtemelen bazı gülünç uzun kelime, 777 00:33:40,571 --> 00:33:43,605 bu yüzden biraz, Sadece 255 ile gidelim tarihsel ya da keyfi. 778 00:33:43,605 --> 00:33:44,730 Devlet, ne yapmak istiyorsun? 779 00:33:44,730 --> 00:33:48,380 780 00:33:48,380 --> 00:33:50,367 Yargı çağrısı, değil mi? 781 00:33:50,367 --> 00:33:51,700 Ne en verimli belki değil mi? 782 00:33:51,700 --> 00:33:53,500 Kaç karakter? 783 00:33:53,500 --> 00:33:55,950 Belki sadece iki, eğer biz Sadece yapıyor paçayı, 784 00:33:55,950 --> 00:33:58,250 gibi, MA Massachusetts ve benzeri. 785 00:33:58,250 --> 00:34:00,520 Yani, ben ikisinin bir CHAR değerini gidiyorum. 786 00:34:00,520 --> 00:34:03,080 >> Posta kodu ilginç biri. 787 00:34:03,080 --> 00:34:06,679 Biz böylece 02138 yılında buradayız Biz ne kullanmalısınız önerir? 788 00:34:06,679 --> 00:34:07,470 Doğru, bir INT değil mi? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 INT, INT, kısa? 791 00:34:12,800 --> 00:34:14,521 Kısa çalışacak. 792 00:34:14,521 --> 00:34:15,020 Hayır mı? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 CHAR ya da beş, ama ben bir INT istiyorum. 795 00:34:20,870 --> 00:34:23,710 Neden INT geri itin? 796 00:34:23,710 --> 00:34:26,820 Bu beni ikna. 797 00:34:26,820 --> 00:34:29,210 Ne INT, benim fikir aptalca değil mi? 798 00:34:29,210 --> 00:34:29,871 Evet. 799 00:34:29,871 --> 00:34:31,199 >> HEDEF KİTLE: Daha fazla bellek alın. 800 00:34:31,199 --> 00:34:32,909 >> DAVID MALAN: daha fazla bellek alın. 801 00:34:32,909 --> 00:34:35,310 Dört bayt, ama sen Bir posta kodu öneren 802 00:34:35,310 --> 00:34:39,000 ya da beş bayt olarak birisi, bir CHAR olarak oldu bu gerçekten değil, eh gibi hissediyor 803 00:34:39,000 --> 00:34:39,620 dava. 804 00:34:39,620 --> 00:34:40,489 >> Peki, eğlenceli hikayesi. 805 00:34:40,489 --> 00:34:43,179 Yıllar önce, ben kullanmak için kullanıldığında Benim e-posta için Microsoft Outlook, 806 00:34:43,179 --> 00:34:45,150 Sonunda Gmail'e geçmek istedim. 807 00:34:45,150 --> 00:34:48,949 Ve böylece, ben tüm ihraç benim CSV dosyası olarak Outlook kişileri. 808 00:34:48,949 --> 00:34:50,699 Virgül ayrılmış değerler, hangi sadece ben demek 809 00:34:50,699 --> 00:34:54,060 Bütün arkadaşlarım isimleri vardı ve son isimler ve telefon numaraları ve posta kodları 810 00:34:54,060 --> 00:34:54,747 ve bütün. 811 00:34:54,747 --> 00:34:56,580 Ve sonra yapılan o kadar açılması hata 812 00:34:56,580 --> 00:34:58,640 Excel'de, hangi is a elektronik tablo programı o 813 00:34:58,640 --> 00:35:00,289 Gördüğümüz olarak CSV dosyalarını anlar. 814 00:35:00,289 --> 00:35:03,080 Ama sonra, ben, gibi, vurmak gerekir Bir noktada Komuta Kontrol S veya. 815 00:35:03,080 --> 00:35:06,250 Ve görünüşe göre Excel anda Herhangi bir zamanda bu sayede bir özelliği vardı o 816 00:35:06,250 --> 00:35:08,100 o yararlı olmaya çalıştım, bir dizi gördüm. 817 00:35:08,100 --> 00:35:11,610 Ve bu sayı ile başladıysanız sıfır, sadece onlardan kurtulmak istiyorum. 818 00:35:11,610 --> 00:35:13,420 Neden lider gerek yok tamsayılar sıfır? 819 00:35:13,420 --> 00:35:15,140 Bunlar matematiksel, anlamsız değil. 820 00:35:15,140 --> 00:35:17,530 Onlar anlamsız değil ABD Posta sisteminde. 821 00:35:17,530 --> 00:35:19,954 Yani, ben yıllardır yaşadım, bu güne kadar, ben hala 822 00:35:19,954 --> 00:35:22,370 Bu arkadaşlar varsa Birisi var ihtiyacım nadir vaka 823 00:35:22,370 --> 00:35:24,078 bu gün ele, Ben hala o ben görürsünüz 824 00:35:24,078 --> 00:35:26,767 Cambridge bir arkadaşım var Massachusetts 2138. 825 00:35:26,767 --> 00:35:29,350 Sen ve eğer sinir bozucu programlı sıralamak için çalışıyor 826 00:35:29,350 --> 00:35:30,975 zarfları oluşturmak ya da sadece aşağı zerre. 827 00:35:30,975 --> 00:35:33,599 Ve bu, çünkü bu nedenle var Yanlış veri türü seçti. 828 00:35:33,599 --> 00:35:34,490 Yani, senin fikrin seviyorum. 829 00:35:34,490 --> 00:35:35,650 En CHAR alanını kullanalım. 830 00:35:35,650 --> 00:35:38,340 Beş karakter hariç Köşe durum var. 831 00:35:38,340 --> 00:35:42,220 Hala posta göndermek için, Bazen bu gün kodları zip, 832 00:35:42,220 --> 00:35:45,360 Onlar gibi konum, artı dört. 833 00:35:45,360 --> 00:35:48,200 Yani, daha sonra bir tire ve ihtiyacınız Biz dört tane daha numaralar ihtiyacımız var. 834 00:35:48,200 --> 00:35:50,330 Yani dürüst olmak gerekirse, elinden Birçok farklı yollara gitmek. 835 00:35:50,330 --> 00:35:52,371 >> Şimdilik, ben devam edeceğim basit ve ben sadece 836 00:35:52,371 --> 00:35:54,780 Bir olduğunu söylemek için gidiyoruz Beş CHAR değer ve biz konum 837 00:35:54,780 --> 00:35:56,739 Bütün çizgi artı dört atlamak için gidiyoruz. 838 00:35:56,739 --> 00:35:58,280 Ancak bu tradeoffs türü vardır. 839 00:35:58,280 --> 00:36:00,196 Ve aklınıza gelebilecek doğan aynı sorunları 840 00:36:00,196 --> 00:36:01,860 telefon numaraları ya da diğer alanları ile. 841 00:36:01,860 --> 00:36:04,350 >> Ve şimdi, bu aslında Bir aptalca bir yol aşağı gitmek. 842 00:36:04,350 --> 00:36:08,000 Rob ve ben ve Hannah hem varsayalım Maria ve [? Davon?] Ve Andy 843 00:36:08,000 --> 00:36:12,820 ve personel diğerleri canlı Cambridge, Massachusetts, 02138 yılında. 844 00:36:12,820 --> 00:36:17,970 Bu aslında ben olduğumu aptal gibi hissediyorum Benim kullanıcıların tabloya eklenmesi, şehir, eyalet, 845 00:36:17,970 --> 00:36:18,630 ve zip. 846 00:36:18,630 --> 00:36:20,980 Neden? 847 00:36:20,980 --> 00:36:21,960 >> HEDEF KİTLE: [duyulamaz] 848 00:36:21,960 --> 00:36:22,918 >> DAVID MALAN: Tekrar söyle? 849 00:36:22,918 --> 00:36:24,310 HEDEF KİTLE: [duyulamaz] 850 00:36:24,310 --> 00:36:25,850 >> DAVID MALAN: Hep sen Doğru, birlikte gidecek? 851 00:36:25,850 --> 00:36:28,660 Çıkıyor, biz düşünmek için kullanılan Bu ayrıntısına kadar biz böyleydi 852 00:36:28,660 --> 00:36:30,570 tüm ABD arandı ve orada çıkıyor 853 00:36:30,570 --> 00:36:32,653 bazı tutarsızlıklar vardır Nerede birden kasabalar var 854 00:36:32,653 --> 00:36:35,060 garip Aynı zip. 855 00:36:35,060 --> 00:36:40,580 Ama biz şu an 02138 bunun için şart eğer her zaman Cambridge, Massachusetts olduğu 856 00:36:40,580 --> 00:36:44,910 neden dünyada sen depolamak veritabanı Cambridge ve Yüksek Lisans ve 02138 857 00:36:44,910 --> 00:36:49,357 Benim için ve Hannah ve Rob ve [için? Davon?] Ve canlı diğerleri için 858 00:36:49,357 --> 00:36:51,190 Burada Cambridge, bu kadar mükemmel gereksiz. 859 00:36:51,190 --> 00:36:54,480 >> Biz kurtulmak gerekir Sadece ne depolayan? 860 00:36:54,480 --> 00:36:55,610 Sadece posta kodu. 861 00:36:55,610 --> 00:36:58,660 Ama sonra, biz sadece depolamak eğer posta kodu, ben, muhtemelen, istiyorsun 862 00:36:58,660 --> 00:37:02,160 02138 nerede benim web sitesi için bilmek. 863 00:37:02,160 --> 00:37:03,910 Yani, başka bir tablo gerekir. 864 00:37:03,910 --> 00:37:04,697 Ve bunda bir sorun yok. 865 00:37:04,697 --> 00:37:07,530 Ve aslında bu biridir tasarlama tabloların tasarım süreçleri 866 00:37:07,530 --> 00:37:11,472 Siz de bu sayede PSet7 yapmak edeceğiz ortak verileri faktör istiyorum. 867 00:37:11,472 --> 00:37:14,430 Sadece biz faktoring oldum gibi ortak kod ve dışarı faktoring ortak 868 00:37:14,430 --> 00:37:17,380 Burada, CSS gelen stilleri Çok veritabanında, 869 00:37:17,380 --> 00:37:21,180 Ben sadece benzersiz için 02138 gerekirse Birinin memleketi belirlemek 870 00:37:21,180 --> 00:37:25,020 için Cambridge, Mass saklamayın masanızdaki her lanetlemek kullanıcı. 871 00:37:25,020 --> 00:37:29,770 >> Bunun yerine, adında ayrı bir tablo var Fermuarı olması gerektiğini sütunları? 872 00:37:29,770 --> 00:37:33,490 Muhtemelen bir ID alanı, sadece için, çünkü ilkeler şimdi bahsediyoruz. 873 00:37:33,490 --> 00:37:35,720 02138 Muhtemelen bir zip alanı. 874 00:37:35,720 --> 00:37:38,400 Ve sonra muhtemelen diğer sütunları? 875 00:37:38,400 --> 00:37:42,950 Şehir ve devlet, ancak yalnızca bir tane var Satır 02138 için, 02139 için bir satır, 876 00:37:42,950 --> 00:37:44,772 90210 için bir satır. 877 00:37:44,772 --> 00:37:46,730 Ve bu tam anlamıyla Biliyorum tüm posta kodları. 878 00:37:46,730 --> 00:37:49,012 >> Yani şimdi, ne yapabilirim? 879 00:37:49,012 --> 00:37:51,220 Bunun nedeni, problemlidir Şimdi iki tablo var. 880 00:37:51,220 --> 00:37:54,660 Yani, benim kullanıcılar çoğunlukla burada bitti, ama onların şehir devleti bilgidir 881 00:37:54,660 --> 00:37:55,390 buraya. 882 00:37:55,390 --> 00:37:58,635 Yani, orada, SQL ile çıkıyor aslında bir yol, bilgi katılmak için 883 00:37:58,635 --> 00:38:00,470 ve Pset bu görürsünüz. 884 00:38:00,470 --> 00:38:03,000 >> Ama yapabilirsiniz çıkıyor Böyle bir şey yapmak. 885 00:38:03,000 --> 00:38:10,501 Kullanıcılar SELECT yıldız, ON fermuarlar JOIN Kullanıcıların zip fermuarlar zip nokta eşittir nokta. 886 00:38:10,501 --> 00:38:13,360 Hangi biraz uzun olduğunu, Kuşkusuz, ama bu sadece 887 00:38:13,360 --> 00:38:17,590 seçin her şey demektir Benim kullanıcıların tablo alma süreci 888 00:38:17,590 --> 00:38:19,580 ve benim fermuarlar tablo. 889 00:38:19,580 --> 00:38:22,120 Birinde onlara katılın Alan onlar sütununda var. 890 00:38:22,120 --> 00:38:24,780 Yani, kelimenin tam anlamıyla bir şey yapıyor Bu gibi ve bana geri ver 891 00:38:24,780 --> 00:38:27,360 yeni bir geçici tablo Bu, o büyük olan, geniş var 892 00:38:27,360 --> 00:38:29,450 bütün bunlar vardır İkisinden de sütunlar. 893 00:38:29,450 --> 00:38:33,510 Ve bu, oldukça basit olurdu Böyle bir şey yapmak için sözdizimi. 894 00:38:33,510 --> 00:38:35,540 >> Yani, ileride bu var ama orada oluyor 895 00:38:35,540 --> 00:38:38,950 diğer tasarım kararları olmak sen edeceğiz sadece dizinleri ile, yapmak zorunda 896 00:38:38,950 --> 00:38:40,550 ama aynı zamanda zorluklar içine koşuyor. 897 00:38:40,550 --> 00:38:43,360 Aslında, bir meydan okuma var herhangi bir veritabanı tasarımı 898 00:38:43,360 --> 00:38:47,930 bu sayede bazen iki kişi isteyebilirsiniz veritabanının aynı satırları erişmek için 899 00:38:47,930 --> 00:38:48,530 tablo. 900 00:38:48,530 --> 00:38:51,450 Yani, bu bir şey olduğunu yaparız olduğunu yanı sıra PSet7 karşınıza. 901 00:38:51,450 --> 00:38:54,686 >> Ama ben bir bakmak düşündüm SQL mümkün saldırı. 902 00:38:54,686 --> 00:38:56,560 Bazıları nelerdir ortaya çıkabilir sorunlar? 903 00:38:56,560 --> 00:38:58,170 Yani, PSet7 bu karşılaşırsınız. 904 00:38:58,170 --> 00:39:01,874 Ve biz düpedüz ne diyeceğim Bu sorun için kodlayan bir çözümdür. 905 00:39:01,874 --> 00:39:04,790 Ama bir üst düzey sınıf alırsak, Özellikle işletim sistemlerinde, 906 00:39:04,790 --> 00:39:06,950 Eğer karşılaşmaya gidiyoruz atomicity bir sorun, 907 00:39:06,950 --> 00:39:10,080 yapmaya çalışıyor sorunu Birden fazla şeyler bir anda 908 00:39:10,080 --> 00:39:11,000 kesintisiz. 909 00:39:11,000 --> 00:39:14,560 >> Ve ben bu tanıtmak düşündüm Bir metafor ile PSet7 fikri 910 00:39:14,560 --> 00:39:18,160 Ben Margo kendimi öğrendim Seltzer en CS164 işletim sistemleri 911 00:39:18,160 --> 00:39:18,990 önce sınıf yıl. 912 00:39:18,990 --> 00:39:22,230 Bu yurt birine sahip olduğunu varsayalım senin yurt odasında ya da evde buzdolabı, 913 00:39:22,230 --> 00:39:24,474 ve süt için gerçek bir tutku var. 914 00:39:24,474 --> 00:39:27,140 Ve böylece, sınıfların eve Bir gün, sen buzdolabı açın. 915 00:39:27,140 --> 00:39:27,620 Ah, kahretsin. 916 00:39:27,620 --> 00:39:28,870 Buzdolabında hiç süt yok. 917 00:39:28,870 --> 00:39:32,470 Yani, buzdolabı kapatın Kapıyı kilitlemek için yurt kilit, 918 00:39:32,470 --> 00:39:34,770 köşeyi dolaşmak CVS, hat olsun, 919 00:39:34,770 --> 00:39:36,312 ve bazı süt için kontrol başlar. 920 00:39:36,312 --> 00:39:38,978 Ve bu, bir süre almaya gidiyor o lanet öz ödeme nedeniyle 921 00:39:38,978 --> 00:39:40,570 sayaçlar zaten kullanmak için sonsuza kadar sürer. 922 00:39:40,570 --> 00:39:41,950 Yani arada, senin oda arkadaşı eve gelir. 923 00:39:41,950 --> 00:39:43,470 O gerçekten de süt seviyor. 924 00:39:43,470 --> 00:39:45,520 Onlar yurt odasına gelip, buzdolabı açmak, oh, kahretsin. 925 00:39:45,520 --> 00:39:46,490 Artık süt var. 926 00:39:46,490 --> 00:39:49,040 >> Yani, o da köşeyi gider. 927 00:39:49,040 --> 00:39:51,670 Ama şimdi, çünkü ikisi gibi var ya üç ya da dört CVSes yakın, 928 00:39:51,670 --> 00:39:53,800 onlar birine gitmek için ne meydanda farklı olanlar. 929 00:39:53,800 --> 00:39:55,830 Ve şimdi, bir kaç dakika Size daha sonra, her ikisi de 930 00:39:55,830 --> 00:39:58,060 eve gelip hiç ugh, kötü sorun. 931 00:39:58,060 --> 00:40:00,967 Şimdi çok süt var ekşi gidecek çünkü. 932 00:40:00,967 --> 00:40:03,050 Ve Süt gibi, ama sen Gerçekten süt sevmiyorum. 933 00:40:03,050 --> 00:40:06,730 >> Yani şimdi, bu bir pahalı hata her ikiniz için 934 00:40:06,730 --> 00:40:09,870 dayalı bir karar Bazı değişkenin devlet olduğunu 935 00:40:09,870 --> 00:40:12,660 sürecinde oldu Sizin tarafınızdan değiştiriliyor, 936 00:40:12,660 --> 00:40:14,560 süt almak için gidiyoruz başlatıcı. 937 00:40:14,560 --> 00:40:17,785 Peki, belki de bir insandır Bu sorunun çözümü? 938 00:40:17,785 --> 00:40:18,660 HEDEF KİTLE: [duyulamaz] 939 00:40:18,660 --> 00:40:19,430 DAVID MALAN: sağ, bir not Leave? 940 00:40:19,430 --> 00:40:21,850 Sen eğer daima bir not bırakın O gösterisi ile tanıdık. 941 00:40:21,850 --> 00:40:23,100 Evet, ikimiz vardır. 942 00:40:23,100 --> 00:40:25,940 Yani, her zaman bir not bırakın, ya da kelimenin tam anlamıyla buzdolabı kilidi 943 00:40:25,940 --> 00:40:28,602 asma kilit çeşit veya Böyle üstünden bir şey. 944 00:40:28,602 --> 00:40:31,310 Ama bu aslında olacak veritabanı tasarımı anahtar sorun, 945 00:40:31,310 --> 00:40:34,710 aklınıza gelebilecek özellikle birden fazla tarayıcı, çoklu dizüstü bilgisayarlar, 946 00:40:34,710 --> 00:40:37,450 Birden kullanıcıların tüm çalışırken bir kerede bilgilerinizi güncelleyin. 947 00:40:37,450 --> 00:40:40,590 Özellikle hassas bilgileri finansal bilgiler gibi, 948 00:40:40,590 --> 00:40:43,350 bu sayede bir stok ticaret ile Senin gibi web bina olacak, 949 00:40:43,350 --> 00:40:47,270 ne kadar para kontrol etmek istiyorsanız neyi Eğer varsa ve daha sonra yeterli varsa, 950 00:40:47,270 --> 00:40:48,490 Bazı hisse senedi satın? 951 00:40:48,490 --> 00:40:50,899 >> Ama ne olursa başkası Sizinle ortak bir hesabı var 952 00:40:50,899 --> 00:40:52,690 Aynı anda çalışıyor ise Bazı hisse senedi satın almak için? 953 00:40:52,690 --> 00:40:55,190 Yani, o kontrol olduğunu İkiniz de hesap bakiyesi, 954 00:40:55,190 --> 00:40:57,540 Aynı geri almak cevap, hayır süt var. 955 00:40:57,540 --> 00:41:00,580 Yoksa ikiniz de, cevabı geri almak Eğer hesabınızda 100 $ var. 956 00:41:00,580 --> 00:41:04,680 İkiniz de karar deneyin Bazı şirket hisse senedini satın almak. 957 00:41:04,680 --> 00:41:06,130 >> Ve şimdi, ne olur? 958 00:41:06,130 --> 00:41:07,140 İki paya sahip? 959 00:41:07,140 --> 00:41:08,420 Hiç paya sahip? 960 00:41:08,420 --> 00:41:10,320 Böyle sorunlar ortaya çıkabilir. 961 00:41:10,320 --> 00:41:11,755 Yani, biz o karşılaşma olacak. 962 00:41:11,755 --> 00:41:14,630 SQL enjeksiyon saldırıları, minnetle, Biz size yardımcı olacak bir şey vardır, 963 00:41:14,630 --> 00:41:17,430 ancak bu kötü şekilde olan hala yaygındır bugünlerde. 964 00:41:17,430 --> 00:41:18,680 Yani, bu sadece bir örnektir. 965 00:41:18,680 --> 00:41:21,290 Ben hiçbir iddiada olduğu Harvard PIN sistemi 966 00:41:21,290 --> 00:41:23,130 Bu özel saldırıya karşı savunmasız. 967 00:41:23,130 --> 00:41:24,160 Biz denedik. 968 00:41:24,160 --> 00:41:26,120 Ama, biliyorsunuz biz o Böyle bir alan var. 969 00:41:26,120 --> 00:41:29,620 Ve Yale Net ID benzer var Bugünlerde ekranını arıyorum. 970 00:41:29,620 --> 00:41:33,190 Ve o çıkıyor, belki PIN sistemi PHP uygulanmaktadır. 971 00:41:33,190 --> 00:41:37,050 >> O were-- ve eğer onlar Ben- var Bu gibi görünüyor koda sahip olabilir. 972 00:41:37,050 --> 00:41:38,210 Onlar iki değişken vardır. 973 00:41:38,210 --> 00:41:42,495 Bana adınızı ve şifrenizi verin Mesajı süper küresel değişkeni 974 00:41:42,495 --> 00:41:43,970 Daha önce hakkında konuştuk. 975 00:41:43,970 --> 00:41:47,310 Belki Harvard sorgu var Kullanıcılar SELECT yıldız gibi 976 00:41:47,310 --> 00:41:50,005 nerede adı olduğunu eşittir ve şifre o eşittir. 977 00:41:50,005 --> 00:41:51,880 Ve ben sadece fark kullanarak takarak 978 00:41:51,880 --> 00:41:55,050 diğerinden kaşlı ayraç notasyonu Sadece bir değer fiş demektir gün 979 00:41:55,050 --> 00:41:55,550 İşte. 980 00:41:55,550 --> 00:41:57,449 Ben kullanmıyorum Soru işareti tekniği. 981 00:41:57,449 --> 00:41:59,240 Ben herhangi bir saniyemiz yok ya da üçüncü argümanlar. 982 00:41:59,240 --> 00:42:02,350 Ben sadece tam anlamıyla değilim dize kendimi inşa. 983 00:42:02,350 --> 00:42:04,930 >> Sorun olsa, yani Birisi bir scroob isterseniz, 984 00:42:04,930 --> 00:42:09,020 hangi bir film için bir referanstır, Böyle bir şey günlükleri, 985 00:42:09,020 --> 00:42:11,250 ve ben noktalar kaldırdık Genellikle örtbas olduğunu 986 00:42:11,250 --> 00:42:14,370 O ne olursa şifreler, Özellikle kötü niyetli 987 00:42:14,370 --> 00:42:18,860 ve onun şifre, belki 12.345 olduğunu denilen film başına "Spaceballs," 988 00:42:18,860 --> 00:42:21,970 ama o kritik türleri beşten sonra tek tırnak, 989 00:42:21,970 --> 00:42:24,790 Daha sonra tam anlamıyla kelime veya Uzayda ve ardından teklif, 990 00:42:24,790 --> 00:42:29,160 unquote biri, alıntı birine eşit ama ne o ihmal olduğunu fark? 991 00:42:29,160 --> 00:42:32,700 O sağdaki alıntı kullanılamaması ve geride alıntı kullanılamaması. 992 00:42:32,700 --> 00:42:35,170 >> Çünkü eğer bu saldırgan scroob en karine 993 00:42:35,170 --> 00:42:38,160 insanlar kim yazdı olduğunu Bu PHP kodu, çok parlak değildi, 994 00:42:38,160 --> 00:42:42,990 belki onlar sadece bazı tek sahip interpolasyon etrafında tırnak 995 00:42:42,990 --> 00:42:45,210 küme parantezi bir değişkenin? 996 00:42:45,210 --> 00:42:48,620 Ve böylece belki, o tür olabilir onların düşünce tamamlamak 997 00:42:48,620 --> 00:42:53,290 Onlar için, ama bir şekilde o gidiyor Onu PIN sistemine kesmek izin. 998 00:42:53,290 --> 00:42:55,310 Diğer bir deyişle, varsayalım Bu kodu olduğunu 999 00:42:55,310 --> 00:42:57,140 ve biz şimdi yazdığınız scroob ne takın. 1000 00:42:57,140 --> 00:42:58,770 Kötü çünkü Ve bu, kırmızı. 1001 00:42:58,770 --> 00:43:01,310 >> Ve altta yatan metin O yazdığınız ne 1002 00:43:01,310 --> 00:43:05,510 scroob Harvard sunucu kandırmak olabilir Bir SQL sorgusu inşa içine 1003 00:43:05,510 --> 00:43:07,440 Bu gibi görünüyor dize. 1004 00:43:07,440 --> 00:43:11,760 Şifre 12345 veya tek tek eşittir. 1005 00:43:11,760 --> 00:43:14,820 Sonuç olan, mantıklı Bu scroob oturum olacaktır 1006 00:43:14,820 --> 00:43:18,360 Onun şifre eğer 12345 veya eğer biri eşittir 1007 00:43:18,360 --> 00:43:22,660 Her zaman elbette doğrudur biri, bu scroob zaman alır anlamına gelir. 1008 00:43:22,660 --> 00:43:26,060 >> Ve böylece, yol düzeltmek için Bu, birçok durumda olduğu gibi, 1009 00:43:26,060 --> 00:43:28,140 savunmaya yazmak olacaktır. 1010 00:43:28,140 --> 00:43:30,390 Gibi bir şey kullanmak için bizim Gerçek sorgu işlevi, hangi 1011 00:43:30,390 --> 00:43:33,980 biz fişi PSet7, göreceğiniz soru gibi bir şey burada işaretler. 1012 00:43:33,980 --> 00:43:35,980 Ve güzellik sorgu işlevi biz 1013 00:43:35,980 --> 00:43:40,010 Eğer bu karşı savunur olduğunu vermek Sözde SQL enjeksiyon saldırıları, 1014 00:43:40,010 --> 00:43:44,260 Birisi içine kodunuzu kandırma kendi SQL kodu enjekte. 1015 00:43:44,260 --> 00:43:47,380 Ne sorgu işlevi Çünkü Biz aslında yapacağız vermek, 1016 00:43:47,380 --> 00:43:51,270 Eğer soru işareti sözdizimi kullanırsanız ve ikinci ve burada üçüncü argüman, 1017 00:43:51,270 --> 00:43:54,590 o eklemek vermedi ne Kullanıcı sağladığı girdi? 1018 00:43:54,590 --> 00:43:56,060 Bu ters eğik çizgi tırnak. 1019 00:43:56,060 --> 00:43:58,590 >> Yani, herhangi bir potansiyel kaçar Tehlikeli karakterler. 1020 00:43:58,590 --> 00:44:01,000 Bu, artık tuhaf görünüyor ama savunmasız değil 1021 00:44:01,000 --> 00:44:03,260 öyle değil, çünkü Artık mantık değiştirmek 1022 00:44:03,260 --> 00:44:06,470 bu bütün şifre çünkü Şimdi değil bir tek tırnak, 1023 00:44:06,470 --> 00:44:07,596 Aslında, scroob parolası. 1024 00:44:07,596 --> 00:44:09,845 Yani, bazı espriler var oldu yılda bu konuda. 1025 00:44:09,845 --> 00:44:12,570 Yani, bu bir fotoğraf çekilmiş oldu Bir otoparkta bazı geek 1026 00:44:12,570 --> 00:44:16,620 böylece bunu bazı şehirleri biliyor olabilir ve devletler lisansınızı taramayı deneyin 1027 00:44:16,620 --> 00:44:19,460 Plaka size ya da bilet fatura Sizin Eğer gibi olmadan geçmesi durumunda, 1028 00:44:19,460 --> 00:44:20,660 E-Z Geçiş şey. 1029 00:44:20,660 --> 00:44:24,490 Yani, bu kişinin belki tahmin E-Z Geçiş Sistemi yazma insanlar 1030 00:44:24,490 --> 00:44:28,240 çok parlak değildi ve belki de Sadece bir dize birlikte birleştirilmiş, 1031 00:44:28,240 --> 00:44:32,190 Böylece o kötü niyetli yapamadım sadece kendi düşünce tamamlayamayan, 1032 00:44:32,190 --> 00:44:35,150 ama aslında kötü bir komutu çalıştırmak, hangi biz henüz belirtilmeyen ettik 1033 00:44:35,150 --> 00:44:36,380 ama muhtemelen tahmin edebilirsiniz. 1034 00:44:36,380 --> 00:44:39,820 Ayrıca bu silme ve yerleştirin ve güncelleme seçin, 1035 00:44:39,820 --> 00:44:43,370 Damla adında bir anahtar kelime de var, hangi kelimenin tam anlamıyla her şeyi siler 1036 00:44:43,370 --> 00:44:45,300 Veri, hangi özellikle kötü. 1037 00:44:45,300 --> 00:44:48,760 >> Biz eğer bu zoom yapabilirsiniz onu görmek için biraz zor. 1038 00:44:48,760 --> 00:44:52,300 Bu, artık ünlü bir karikatür şimdi harika zeki 1039 00:44:52,300 --> 00:44:53,145 ve anlaşılabilir. 1040 00:44:53,145 --> 00:45:00,880 1041 00:45:00,880 --> 00:45:04,750 >> [KAHKAHA] 1042 00:45:04,750 --> 00:45:05,910 >> Serin, evet. 1043 00:45:05,910 --> 00:45:06,800 Tür dışarı geeking. 1044 00:45:06,800 --> 00:45:08,800 Bu yüzden, o, vardır SQL enjeksiyon saldırıları. 1045 00:45:08,800 --> 00:45:13,050 Ve onlar kullanarak önlemek için çok kolay değil Doğru kod veya sağ kütüphaneler. 1046 00:45:13,050 --> 00:45:15,947 Ve sen, işte PSet7 görürsünüz neden biz size sorgu işlevini verir. 1047 00:45:15,947 --> 00:45:17,780 Yani, teaserlar bir çift biz diye düşündüm o 1048 00:45:17,780 --> 00:45:19,930 burada size bizim Birlikte dakika kalan. 1049 00:45:19,930 --> 00:45:24,030 Yani, gibi haftaya sıfır hatırlıyorum, biz Bu iki ampulleri tanıttı 1050 00:45:24,030 --> 00:45:26,610 olan güzel, değil sırf onlar güzelsin ve renkli, 1051 00:45:26,610 --> 00:45:29,450 ama onlar bir şey desteklemesi nedeniyle Bir Uygulama, bir API olarak adlandırılan 1052 00:45:29,450 --> 00:45:31,980 Programlama Arayüzü Ve CS50 böylece kadar, ettik 1053 00:45:31,980 --> 00:45:34,440 Çoğunlukla GET odaklanmış ve POST, ama çıkıyor 1054 00:45:34,440 --> 00:45:37,390 PUT gibi diğer HTTP fiillerini var. 1055 00:45:37,390 --> 00:45:39,430 >> Ve aslında, bu oldu Haftanın sıfırdan bir slayt 1056 00:45:39,430 --> 00:45:44,930 bu sayede kod yazarsanız o gönderir a la PSet6 bir HTTP isteği olduğunu 1057 00:45:44,930 --> 00:45:49,647 Bu metin öbek ile bu gibi görünüyor JSON olarak adlandırılan alt kısmında, 1058 00:45:49,647 --> 00:45:52,230 veya JavaScript Object Notation biz önümüzdeki hafta bahsedeceğiz, 1059 00:45:52,230 --> 00:45:57,030 Eğer açmak veya kapatmak veya değiştirmek olabilir olduğu gibi ışıkların rengi. 1060 00:45:57,030 --> 00:46:00,480 CS50 de bazı ek varsa Yani New Haven burada bu ampullerden 1061 00:46:00,480 --> 00:46:02,480 ödünç isterseniz Onları son projeler için, 1062 00:46:02,480 --> 00:46:04,370 Ayrıca bazı Microsoft Gibi Bantları, 1063 00:46:04,370 --> 00:46:07,619 Eğer bileğine giymek olduğunu saatler Benzer şekilde bir API var sen 1064 00:46:07,619 --> 00:46:10,040 Onlar için kendi yazılım yazabilirsiniz. 1065 00:46:10,040 --> 00:46:12,490 >> Biz bir hesap ile var Apple'ın iOS kodu yani 1066 00:46:12,490 --> 00:46:15,510 Bu bir Apple Ürünü ya da varsa bir iPhone veya iPad veya iPod, 1067 00:46:15,510 --> 00:46:17,707 Eğer kod yazabilirsiniz aslında bu çalışır. 1068 00:46:17,707 --> 00:46:19,540 Biz bir sürü var vardır ve Arduinos, 1069 00:46:19,540 --> 00:46:22,010 minicik bilgisayarlar durumlarda olmadan, esas olarak, 1070 00:46:22,010 --> 00:46:25,240 Eğer USB üzerinden bağlayabilirsiniz ki tipik kendi Mac veya PC'ye, 1071 00:46:25,240 --> 00:46:28,810 Bu fiziksel çalışır kod yazmak sık sık onlara sensörler cihazlar 1072 00:46:28,810 --> 00:46:30,790 böylece gerçek dünya ile etkileşimde bulunabilirsiniz. 1073 00:46:30,790 --> 00:46:32,860 Biz bir sürü var Leap Motion cihazları, 1074 00:46:32,860 --> 00:46:36,500 Mac'ler için USB aygıtları olan ve Burada tekrar, New Haven PC'ler. 1075 00:46:36,500 --> 00:46:40,080 Ve Mac bağlamak durumunda, aslında bilgisayarınızı kontrol edebilirsiniz 1076 00:46:40,080 --> 00:46:42,550 yazılım yazarak Bu kızılötesi kirişler aracılığıyla, 1077 00:46:42,550 --> 00:46:46,360 insan elleri nerede rakamlar, Hatta klavye dokunmadan. 1078 00:46:46,360 --> 00:46:49,135 Biz hızlı bir paylaşmak düşündüm Örneğin, bu da bakış. 1079 00:46:49,135 --> 00:46:51,428 >> [MÜZİK OYUN] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 Yani, biz bir bütün var Bunlardan demet, 1082 00:47:57,590 --> 00:48:01,040 çok Myo kol bantları denilen hangi kolunuzun üzerine koymak 1083 00:48:01,040 --> 00:48:04,595 ve daha sonra gerçek kontrol edebilirsiniz Dünya ya da bunun gibi sanal dünya. 1084 00:48:04,595 --> 00:48:06,471 >> [MÜZİK OYUN] 1085 00:48:06,471 --> 00:49:17,580 1086 00:49:17,580 --> 00:49:20,920 Ya da, biz de bazı Google var Gibi kelimenin tam anlamıyla Karton, 1087 00:49:20,920 --> 00:49:24,841 Eğer koymak olabilir bir karton kutu senin içine telefonunuzda yüz, ama slayt 1088 00:49:24,841 --> 00:49:27,590 böylece cam koymak senin gözlerinize gerçekten yakın telefon. 1089 00:49:27,590 --> 00:49:30,190 Ve Google Karton olduğunu 10 $ veya 20 $ oldukça ucuz. 1090 00:49:30,190 --> 00:49:32,230 Ve bu küçük lens vardır O biraz vardiya kapalı 1091 00:49:32,230 --> 00:49:35,900 senin insan için ekrandaki görüntü Gözleri size derinlik hissi vermek için 1092 00:49:35,900 --> 00:49:39,550 yani aslında bir 3D var Önünüzde ortamı. 1093 00:49:39,550 --> 00:49:42,927 Biz de bazı Samsung Dişli, sahip olduğu Bu daha pahalı versiyonu, 1094 00:49:42,927 --> 00:49:46,010 ancak, benzer şekilde, bir kayabilir Android telefon ve size izlenimi vermek 1095 00:49:46,010 --> 00:49:48,309 of-- veya deneyim kazandırmak Sanal gerçeklik. 1096 00:49:48,309 --> 00:49:50,850 Ve son iki dakika içinde, Biz bunu denemek istiyorum düşündüm. 1097 00:49:50,850 --> 00:49:55,250 Ben Colton neler proje Eğer Burada sadece iştah uyandırmak için, 1098 00:49:55,250 --> 00:49:58,442 Beni go ahead ve atmak izin Burada büyük ekranda. 1099 00:49:58,442 --> 00:49:59,400 Bana ışıkları öldüreyim. 1100 00:49:59,400 --> 00:50:02,290 Colton, sen devam etmek istiyoruz ve bir an için hücreye koymak 1101 00:50:02,290 --> 00:50:05,171 ve gel aşamada orta? 1102 00:50:05,171 --> 00:50:07,420 Ve project-- istiyorsun Bu Colton gördüğü şeydir. 1103 00:50:07,420 --> 00:50:10,560 >> Şimdi, burada Wi-Fi Bu cihaz için o kadar kuvvetli 1104 00:50:10,560 --> 00:50:13,870 Bu süper zorlayıcı olduğunu, ama Colton tam anlamıyla 1105 00:50:13,870 --> 00:50:15,710 Bu büyülü fütüristik bir yerde. 1106 00:50:15,710 --> 00:50:16,796 O sadece bir resim görür. 1107 00:50:16,796 --> 00:50:19,920 Onun sol ve sağ göz görüyoruz beyni birlikte dikiş olduğunu 1108 00:50:19,920 --> 00:50:22,260 üç boyutlu bir bölgesindeki Yüzünde bir ortam. 1109 00:50:22,260 --> 00:50:24,319 O sadece burada bir menü seçeneği seçilir. 1110 00:50:24,319 --> 00:50:27,360 Ve böylece yine, o bu kulaklığı giyiyor Üzerinde Samsung telefonu ile de bu 1111 00:50:27,360 --> 00:50:29,080 kablosuz bizim havai projelendirme. 1112 00:50:29,080 --> 00:50:30,349 Şimdi Mars'ta, sanırım, değil mi? 1113 00:50:30,349 --> 00:50:31,140 COLTON: Ben öyle düşünüyorum. 1114 00:50:31,140 --> 00:50:32,181 Ben [duyulamaz] emin değilim. 1115 00:50:32,181 --> 00:50:34,250 [KAHKAHA] 1116 00:50:34,250 --> 00:50:36,374 >> DAVID MALAN: çıkıyor Mars bu menüleri vardır. 1117 00:50:36,374 --> 00:50:41,590 >> COLTON: [duyulamaz] bazı serin yerlerde biz Şeye gitmek istiyorum 1118 00:50:41,590 --> 00:50:43,330 >> DAVID MALAN: Nereye gitmek istiyorsun? 1119 00:50:43,330 --> 00:50:45,837 >> COLTON: [duyulamaz] 1120 00:50:45,837 --> 00:50:48,170 DAVID MALAN: Ve bakalım nerede Colton şimdi bizi alarak. 1121 00:50:48,170 --> 00:50:48,961 COLTON: [duyulamaz] 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> DAVID MALAN: Yani, bu kadar çok var Farklı yerlerde kendinizi alabilir. 1124 00:50:56,380 --> 00:51:00,590 FAPIs Orada hangi aracılığıyla yapabilirsiniz bulunuyor oyunlar veya etkileşimleri yazmanız 1125 00:51:00,590 --> 00:51:01,950 Telefonda, sonuçta çalıştırın. 1126 00:51:01,950 --> 00:51:03,908 Yani, gerçekten sadece bir cep telefonu uygulaması yazma. 1127 00:51:03,908 --> 00:51:06,380 Ama yazılım sayesinde ve grafik yetenekleri, 1128 00:51:06,380 --> 00:51:08,765 Şimdi Colton Bunun içinde minik yazlık. 1129 00:51:08,765 --> 00:51:10,515 Ve riski Kendimizi ezici, 1130 00:51:10,515 --> 00:51:13,330 Colton ve ben buralarda olacağım burada iken sınıfın sonunda bugün 1131 00:51:13,330 --> 00:51:14,300 Eğer gelip oynamak isterseniz. 1132 00:51:14,300 --> 00:51:16,350 Ve biz onları getireceğim geri gelecek hafta da. 1133 00:51:16,350 --> 00:51:18,420 Daha fazla uzatmadan Bu bugün için bu kadar. 1134 00:51:18,420 --> 00:51:21,990 Gelecek hafta görüşürüz. 1135 00:51:21,990 --> 00:51:24,140 >> [MÜZİK - Ragga TWINS, "BAD MAN"] 1136 00:51:24,140 --> 00:55:23,146