1 00:00:00,000 --> 00:00:02,405 >> [音楽再生] 2 00:00:02,405 --> 00:00:10,439 3 00:00:10,439 --> 00:00:11,980 DAVIDマラン:すべての権利、これはCS50です。 4 00:00:11,980 --> 00:00:13,740 これは、8週目の終わりです。 5 00:00:13,740 --> 00:00:15,887 そして今日、私たちは開始します いくつかの作品を記入します 6 00:00:15,887 --> 00:00:17,720 それは、建物に来るとき ウェブ上のもの。 7 00:00:17,720 --> 00:00:20,020 だから、月曜日にそれを思い出します 我々はより多くの時間を費やします 8 00:00:20,020 --> 00:00:22,530 この動的であるPHP、上 プログラミング言語その 9 00:00:22,530 --> 00:00:26,872 他の中で、私たちに出力することができます 物事、HTMLや他のそのようなコンテンツ 10 00:00:26,872 --> 00:00:27,830 我々が見たいだろうと。 11 00:00:27,830 --> 00:00:30,871 しかし、私たちは本当にどのように見ていません 我々はすべての情報を保存するつもりです。 12 00:00:30,871 --> 00:00:34,477 確かに、ほとんどすべてのことのスーパー あなたが今日訪問興味深いウェブサイト 13 00:00:34,477 --> 00:00:36,560 データベースのいくつかの種類を持っています バックエンドで、右? 14 00:00:36,560 --> 00:00:39,540 Facebookは確かに大量のデータを保存します すべての私たちとGmailの店のすべて 15 00:00:39,540 --> 00:00:40,210 あなたの電子メールの。 16 00:00:40,210 --> 00:00:44,150 >> だから、他の多くのサイトだけではありません 情報の静的コンテンツ。 17 00:00:44,150 --> 00:00:45,640 これは、いくつかの方法で、実際に動的です。 18 00:00:45,640 --> 00:00:48,480 あなたはそれを更新し、入力を提供 他の人のためのページ。 19 00:00:48,480 --> 00:00:50,620 あなたが送ったメッセージを取得します などのメッセージ、および。 20 00:00:50,620 --> 00:00:54,250 だから、今日、私たちは、よく見ます プロジェクトの基盤 21 00:00:54,250 --> 00:00:57,330 あなたは、次に飛び込むだろうと 週、CS50金融、どの 22 00:00:57,330 --> 00:01:00,509 実際にあなたが構築持ってしようとしています Cではないではなく、PHPで何か。 23 00:01:00,509 --> 00:01:02,550 見えるウェブサイト このような小さなもの 24 00:01:02,550 --> 00:01:05,810 それは売買することができます 実際に株式 25 00:01:05,810 --> 00:01:09,044 リアルタイムに頼るつもり ヤフーファイナンスから株価データ。 26 00:01:09,044 --> 00:01:11,960 だから最終的に、あなたが持っているでしょう あなた自身のためのユーザーのための幻想 27 00:01:11,960 --> 00:01:14,550 あなたが実際に売買していること 株式とほぼリアルタイムの取得 28 00:01:14,550 --> 00:01:16,800 更新、管理 ポートフォリオ、全てが 29 00:01:16,800 --> 00:01:20,310 持つ必要がしようとしています、 最終的に、ユーザーのデータベース。 30 00:01:20,310 --> 00:01:23,330 >> だから、あなた自身の言葉で、 あなたはないです場合は特に 31 00:01:23,330 --> 00:01:25,670 コンピュータで超お馴染み 科学やデータベース、どのような 32 00:01:25,670 --> 00:01:30,790 あなたがするデータベースを知っていますか 今、非技術面で? 33 00:01:30,790 --> 00:01:32,300 それは何ですか? 34 00:01:32,300 --> 00:01:36,882 どのようにそれを記述することになります ルームメイトや友人に? 35 00:01:36,882 --> 00:01:40,100 >> 聴衆:[聞こえません] 情報[聞こえません] 36 00:01:40,100 --> 00:01:44,430 >> DAVIDマラン:だから、情報のリスト、 または情報のリストをstore-- 37 00:01:44,430 --> 00:01:47,160 あなたが保存したい場合があること ユーザーのようなもの、について。 38 00:01:47,160 --> 00:01:50,190 そして、ユーザーは何がありますか それらに関連付けられていますか? 39 00:01:50,190 --> 00:01:53,160 あなたは、Facebookや上のユーザーの場合 Gmailでは、特性がどのようなもの 40 00:01:53,160 --> 00:01:54,940 私たちのすべてのユーザーが持っていますか? 41 00:01:54,940 --> 00:01:58,530 同様に、何がいくつかの可能性があります 私たちのスプレッドシートの列 42 00:01:58,530 --> 00:01:59,390 前回触れましたか? 43 00:01:59,390 --> 00:02:01,140 再び、あなたは可能性があるため データベースを考えます 44 00:02:01,140 --> 00:02:05,810 本当にファンシーExcelファイルやGoogleなど スプレッドシートまたはApple番号ファイル。 45 00:02:05,810 --> 00:02:08,280 >> だから、あなたはをどう思いますか あなたは、ユーザを考えるとき? 46 00:02:08,280 --> 00:02:11,290 彼らは何を持っていますか? 47 00:02:11,290 --> 00:02:11,790 あれは何でしょう? 48 00:02:11,790 --> 00:02:12,470 >> 聴衆:名前。 49 00:02:12,470 --> 00:02:13,303 >> DAVIDマラン:名前。 50 00:02:13,303 --> 00:02:16,840 その場合は名前など、デビッド・マラン 一部のユーザーの名前になります。 51 00:02:16,840 --> 00:02:17,980 ユーザーは他に何がありますか? 52 00:02:17,980 --> 00:02:18,770 >> 聴衆:ID。 53 00:02:18,770 --> 00:02:19,561 >> DAVIDマラン:ID。 54 00:02:19,561 --> 00:02:23,320 そのため、ID番号のような、あなたのハーバード大学のような IDまたはあなたのエールネットIDなど。 55 00:02:23,320 --> 00:02:24,923 ユーザーが他に何を持っているのでしょうか? 56 00:02:24,923 --> 00:02:25,890 >> 聴衆:パスワード。 57 00:02:25,890 --> 00:02:29,240 >> DAVIDマラン:パスワード、多分 多分住所、多分電話番号、 58 00:02:29,240 --> 00:02:30,050 電子メールアドレス。 59 00:02:30,050 --> 00:02:32,640 そこで、フィールドやその房があります 制御不能にスパイラルのようなものでした 60 00:02:32,640 --> 00:02:34,760 すぐにとすぐに始めると ああ、それでは、これを保管することができ、実現 61 00:02:34,760 --> 00:02:36,190 とのは、これとそのを保存しましょう​​。 62 00:02:36,190 --> 00:02:37,657 >> しかし、どのように我々は実際にそれを行うのですか? 63 00:02:37,657 --> 00:02:39,740 だからもう一度、メンタルモデル 今日のために持っているとして、我々 64 00:02:39,740 --> 00:02:42,320 実際のSQLに飛び込みます、 構造化照会言語、 65 00:02:42,320 --> 00:02:44,186 このようになりますデータベースです。 66 00:02:44,186 --> 00:02:45,310 それはちょうど、行と列です。 67 00:02:45,310 --> 00:02:48,309 そして、あなたはGoogleスプレッドシートを想像することができます または他の任意の数のプログラム。 68 00:02:48,309 --> 00:02:52,130 しかし、何があるのMySQL、に関する重要です データベースソフトウェアは、我々が使用するつもり、 69 00:02:52,130 --> 00:02:54,920 自由に公然と Facebookの利用をavailable-- 70 00:02:54,920 --> 00:02:59,200 それと他のwebsites--任意の数 データベースはリレーショナルなものを格納します。 71 00:02:59,200 --> 00:03:01,770 リレーショナル・データベース 文字通りものをいいます 72 00:03:01,770 --> 00:03:03,672 行と列にデータを格納します。 73 00:03:03,672 --> 00:03:04,630 それはそれと同じくらい簡単です。 74 00:03:04,630 --> 00:03:07,230 >> だから、でもOracleのようなものは、 あなたは、一般のことを聞いたかもしれません 75 00:03:07,230 --> 00:03:08,271 リレーショナルデータベースです。 76 00:03:08,271 --> 00:03:10,929 そしてボンネットの下に、それを 行および列のデータを格納します。 77 00:03:10,929 --> 00:03:12,970 そして、Oracleは、充電します それをする多くのお金、 78 00:03:12,970 --> 00:03:15,550 MySQLの費用に対し、 同じのため、あなたは何もありません。 79 00:03:15,550 --> 00:03:18,790 だから、SQLは、私たちを与えるために起こっています 少なくとも四つの操作。 80 00:03:18,790 --> 00:03:23,190 リードのようなデータを選択する能力 データは、挿入、削除、および更新データ。 81 00:03:23,190 --> 00:03:25,525 言い換えれば、それらは 本当に4キー操作 82 00:03:25,525 --> 00:03:28,950 それは、私たちが変更することを可能としています これらの行と列のもの。 83 00:03:28,950 --> 00:03:33,250 >> 私たちは特に、今日使用しますツール SQLの学習し、それを再生します 84 00:03:33,250 --> 00:03:34,627 再びPHP myadminという呼ばれています。 85 00:03:34,627 --> 00:03:35,460 これは、Webベースのツールです。 86 00:03:35,460 --> 00:03:38,200 その合計が一致 これはPHPで書かれています。 87 00:03:38,200 --> 00:03:42,400 しかし、それは私たちに、グラフィカルを与えるために起こっています 私たちが実際にすることができますようにユーザーインターフェース 88 00:03:42,400 --> 00:03:46,054 これらの行と列を作成します し、コードを介して、彼らに話しています。 89 00:03:46,054 --> 00:03:47,970 それでは、今に始めましょう 私は率直に言ってと思われるもの 90 00:03:47,970 --> 00:03:51,000 の楽しいプロセスの種類 ウェブサイトのバックエンドを構築し、 91 00:03:51,000 --> 00:03:54,580 ユーザが使用しない部分 参照、しかし確実に気を行い、 92 00:03:54,580 --> 00:03:56,170 それはだから、データのは、むしろ行きます。 93 00:03:56,170 --> 00:03:59,570 そこで、CとAに類似 少しPHPのような、 94 00:03:59,570 --> 00:04:04,954 SQL、またはサポートするデータベース SQLは、少なくともこれらのデータ型を有しています 95 00:04:04,954 --> 00:04:05,870 その他の房。 96 00:04:05,870 --> 00:04:08,107 CHAR、VARCHAR、INT、BIGINT、 DECIMALおよびDATETIME。 97 00:04:08,107 --> 00:04:09,940 そして、全体があります 他の機能の束、 98 00:04:09,940 --> 00:04:11,940 しかしそれでは、することでこれをやらせます 実際の例として。 99 00:04:11,940 --> 00:04:16,450 >> 私はCS50 IDEに行くつもりです 事前に、私がログインしてきた場合は、 100 00:04:16,450 --> 00:04:19,372 そして私はまたのURLを訪問しました PHP myadminという呼ばれるこのツール。 101 00:04:19,372 --> 00:04:22,580 そして、問題は7を設定するには、我々が教えてあげましょう あなたは正確にどのようにこのインターフェイスに取得します 102 00:04:22,580 --> 00:04:23,200 同様に。 103 00:04:23,200 --> 00:04:25,640 左上隅には、 それは講義言う気づきます。 104 00:04:25,640 --> 00:04:27,610 そして、それはちょうどことを意味 事前に、私が作成しました 105 00:04:27,610 --> 00:04:31,360 講義と呼ばれる空のデータベース それはまだそれにはスプレッドシートを持っていません。 106 00:04:31,360 --> 00:04:32,600 どの行と列はありません。 107 00:04:32,600 --> 00:04:34,308 最初のため、 私たちがやろうとしているもの 108 00:04:34,308 --> 00:04:37,100 テーブルを作成するために開始され、 それは我々のユーザーを格納するために起こっています。 109 00:04:37,100 --> 00:04:39,100 >> だから、文字通りオーバー ここで右に、私はよ 110 00:04:39,100 --> 00:04:42,070 データベースを言うつもり 私はテーブルのユーザーと呼ばれたいです。 111 00:04:42,070 --> 00:04:44,845 だから、これは私のファイルのようなものです で私のすべてのデータを保存します。 112 00:04:44,845 --> 00:04:45,720 そして、どのように多くの列? 113 00:04:45,720 --> 00:04:47,740 まあ、今のところそれをシンプルに保つてみましょう。 114 00:04:47,740 --> 00:04:51,855 私は同じように保存したいです ユーザー名とユーザーの名前を入力します。 115 00:04:51,855 --> 00:04:53,020 私たちは、小さな始めましょう。 116 00:04:53,020 --> 00:04:55,370 だから、私は2つの列の合計を求めています。 117 00:04:55,370 --> 00:04:57,360 そして、私は先に行くし、Goをクリックするつもりです。 118 00:04:57,360 --> 00:04:59,210 そして、これらのための カラムは、私が何をつもりです 119 00:04:59,210 --> 00:05:04,576 このインターネット場合do--します 、すべての権利をcooperates-- 120 00:05:04,576 --> 00:05:05,950 だから我々は再びそれを試してみるつもりです。 121 00:05:05,950 --> 00:05:09,180 私はと呼ばれるテーブルを作成するつもりです 2つの列を持つユーザーは、[OK]、[移動]をクリックします。 122 00:05:09,180 --> 00:05:10,520 今、私たちはそれが本当に速いんです。 123 00:05:10,520 --> 00:05:12,065 非常によくやった、ありがとうございます。 124 00:05:12,065 --> 00:05:14,440 すべての権利なので、私たちが望む何をすべきか これらの列に呼び出されますか? 125 00:05:14,440 --> 00:05:16,080 >> そこで、一つはユーザー名と呼ばれることになるだろう。 126 00:05:16,080 --> 00:05:19,480 だから、私はhere--参照すべてとのインタフェース 率直に言って、最終的には少し醜い取得します 127 00:05:19,480 --> 00:05:21,270 あなたはこのすべてのデータを入力し始めると。 128 00:05:21,270 --> 00:05:27,450 しかし、何が素晴らしいのは、その種であります 逆説的に、私は列を作成しています、 129 00:05:27,450 --> 00:05:29,977 しかし、このツールは、愚かに持っています 行でそれらをレイアウト 130 00:05:29,977 --> 00:05:31,560 私はこれらの列を設定できるように。 131 00:05:31,560 --> 00:05:33,550 だから、名前の下にそこに2つのブランクがあります。 132 00:05:33,550 --> 00:05:36,180 そして、これらのフィールドのいずれかのI ユーザー名を呼ばれたいです、 133 00:05:36,180 --> 00:05:38,000 およびその他のフィールドには、私は名前を呼びたいです。 134 00:05:38,000 --> 00:05:40,340 >> そして今、私が選択する必要があります これらの事のためのデータ型。 135 00:05:40,340 --> 00:05:42,330 そこで、Excelでのに対し そして、Googleスプレッドシート、 136 00:05:42,330 --> 00:05:45,531 あなたが列をしたい場合、あなたは文字通り ちょうど名前またはユーザー名を入力し、Enterキーを押します。 137 00:05:45,531 --> 00:05:48,030 たぶん、あなたはそれ大胆な顔をします ただ明確にするため、それはそれです。 138 00:05:48,030 --> 00:05:50,140 あなたが指定されていません 列の型。 139 00:05:50,140 --> 00:05:53,790 今GoogleスプレッドシートまたはExcelで、あなた データをレンダリングする方法を指定できます。 140 00:05:53,790 --> 00:05:58,120 あなたは、[書式]メニューに移動し、あなたでした このようなドル記号を表示し指定することができ、 141 00:05:58,120 --> 00:05:59,900 浮動小数点値のようにこれを示します。 142 00:05:59,900 --> 00:06:01,990 >> だから、それはその精神において似ています 私たちがしようとしている何それ、 143 00:06:01,990 --> 00:06:04,740 しかし、これは実際に強制しようとしています データは、特定のタイプです。 144 00:06:04,740 --> 00:06:07,750 さて、たとえ一瞬前、私 わずか数のデータ型があると述べ、 145 00:06:07,750 --> 00:06:11,120 実際にあります 全体の多く、彼らはしています 146 00:06:11,120 --> 00:06:12,910 特異性の程度を変化させることです。 147 00:06:12,910 --> 00:06:14,970 また余談として、あなた でも、派手なことを行うことができます 148 00:06:14,970 --> 00:06:17,520 ストレージの形状のような データベースの内部。 149 00:06:17,520 --> 00:06:19,250 あなたは物事を保存することができます GPS座標のような 150 00:06:19,250 --> 00:06:22,420 実際、数学的に、見つけます 他の人に近い点。 151 00:06:22,420 --> 00:06:24,128 しかし、我々はするつもりです この超シンプルに保ちます 152 00:06:24,128 --> 00:06:26,800 そして、、ここまでのすべてを上がります いわゆる文字列型。 153 00:06:26,800 --> 00:06:29,240 >> だから、ここのリストです オプションの全体の束。 154 00:06:29,240 --> 00:06:32,740 CHAR、VARCHAR、すなわちTINYTEXT、 MEDIUMTEXT、LONGTEXT。 155 00:06:32,740 --> 00:06:34,110 そして、それは圧倒的なのようなものです。 156 00:06:34,110 --> 00:06:37,610 そして残念なことに、多少 逆説的にCに、 157 00:06:37,610 --> 00:06:40,120 CHARは本当にCHARではありません。 158 00:06:40,120 --> 00:06:44,170 あなたは、データベース内の指定した場合 データ型がCHARであること、 159 00:06:44,170 --> 00:06:47,390 それは、はい、それはだということを意味 CHARが、それは一つ以上のCHARのです。 160 00:06:47,390 --> 00:06:49,630 そして、あなたは指定する必要があります どのように多くのCHARのあなたが欲しいです。 161 00:06:49,630 --> 00:06:51,636 そこで、典型的なものです ユーザ名の長さは? 162 00:06:51,636 --> 00:06:52,760 制限は一般的にありますか? 163 00:06:52,760 --> 00:06:53,920 >> 聴衆:[聞こえません] 164 00:06:53,920 --> 00:06:55,050 >> DAVIDマラン:16多分? 165 00:06:55,050 --> 00:06:55,990 そのような何か。 166 00:06:55,990 --> 00:06:57,948 あなたは後ろに、知っています 一日、それが8に使用されます。 167 00:06:57,948 --> 00:07:00,289 時にはそれは時々、16です それはそれよりもさらにです。 168 00:07:00,289 --> 00:07:02,080 だから、これはしていません 私は1 CHARを与える意味。 169 00:07:02,080 --> 00:07:04,730 これは私が指定しなければならないことを意味 フィールドの長さ、 170 00:07:04,730 --> 00:07:07,402 そして今私は16のようなものを言うかもしれません。 171 00:07:07,402 --> 00:07:08,610 そして、ここにはトレードオフがあります。 172 00:07:08,610 --> 00:07:11,360 だから、私たちはその瞬間に表示されます これはものを意味 173 00:07:11,360 --> 00:07:14,620 すべてのユーザー名が16文字にする必要があります。 174 00:07:14,620 --> 00:07:18,720 しかし分、M-A-L-A-Nを待ちます。それはだ場合 自分のユーザー名と私は唯一の5つを使用しています、 175 00:07:18,720 --> 00:07:23,070 データベースがどのようなことを提案します そのほかの11文字に行うには 176 00:07:23,070 --> 00:07:24,471 私はのためのスペースを予約しましたか? 177 00:07:24,471 --> 00:07:25,220 あなたならどうしますか? 178 00:07:25,220 --> 00:07:26,480 >> 聴衆:[聞こえません] 179 00:07:26,480 --> 00:07:27,160 >> DAVIDマラン:ええ、ちょうど それらすべてがnullにします。 180 00:07:27,160 --> 00:07:28,290 それらのスペースを確認します。 181 00:07:28,290 --> 00:07:30,816 しかし、おそらくヌルので、 バックスラッシュゼロがたくさん。 182 00:07:30,816 --> 00:07:33,190 だから、一方では、我々はしました 今、私のユーザー名ことを確認しました 183 00:07:33,190 --> 00:07:34,780 16文字以下になることはできません。 184 00:07:34,780 --> 00:07:37,590 そして、それの裏返しです 私は本当に長い名前を持っていた場合に 185 00:07:37,590 --> 00:07:39,940 または本当に長いを望んでいました あなたのいくつかのようにユーザ名 186 00:07:39,940 --> 00:07:44,840 人はその大学に持っている可能性がありますか Yale.eduで、1つを持つことはできません。 187 00:07:44,840 --> 00:07:47,177 だから実際には、あなたがしている場合 これまでのウェブサイトのための登録 188 00:07:47,177 --> 00:07:49,385 あなたが言って怒鳴られます パスワードの長すぎます 189 00:07:49,385 --> 00:07:52,710 または、あなたのユーザ名が長すぎる、それはです 単にとき、プログラマのため 190 00:07:52,710 --> 00:07:55,500 彼または彼女のデータベースを構成します、 このフィールドがすることを決定 191 00:07:55,500 --> 00:07:57,150 もはやこの長さよりもありません。 192 00:07:57,150 --> 00:08:00,580 >> すべての権利なので、どのような場合 我々は名前に進みますか? 193 00:08:00,580 --> 00:08:05,240 どのくらい必要があります 典型的な人間の名前があ​​ること? 194 00:08:05,240 --> 00:08:07,492 どのように多くの文字、16? 195 00:08:07,492 --> 00:08:09,450 私たちは可能性が推測しています この部屋に誰かを見つけます 196 00:08:09,450 --> 00:08:13,210 ここで、最後の彼または彼女の最初のプラス 名前は16文字より長いです。 197 00:08:13,210 --> 00:08:14,850 だから、17よりも良い何ですか? 198 00:08:14,850 --> 00:08:17,040 18? 199 00:08:17,040 --> 00:08:18,830 25? 200 00:08:18,830 --> 00:08:20,350 ビガー? 201 00:08:20,350 --> 00:08:20,980 30? 202 00:08:20,980 --> 00:08:21,855 >> 聴衆:[聞こえません] 203 00:08:21,855 --> 00:08:23,700 DAVIDマラン:5000、ああ私の神。 204 00:08:23,700 --> 00:08:26,309 だから、それはおそらくまともです 上限、我々は言うものとします。 205 00:08:26,309 --> 00:08:28,350 そしてここで私達は種類の持っています 審判の判定を行います。 206 00:08:28,350 --> 00:08:30,400 同様に、ここには正しい答えはありません。 207 00:08:30,400 --> 00:08:32,740 無限は、全く不可能です 我々は最終的にだから 208 00:08:32,740 --> 00:08:34,781 私たちがしているhave--に行きます メモリが不足する予定。 209 00:08:34,781 --> 00:08:36,909 そこで、我々は確認する必要があり ある時点で審判の判定。 210 00:08:36,909 --> 00:08:41,010 >> 非常に一般的には、例えば、になり、 use--と私はここにCHARを指定できるようにするには 211 00:08:41,010 --> 00:08:46,050 255 before--文字通りあったように このデータベースソフトウェアの上限 212 00:08:46,050 --> 00:08:46,700 数年前。 213 00:08:46,700 --> 00:08:48,575 だから、人間の多く うまく、と言うでしょう。 214 00:08:48,575 --> 00:08:49,420 255が限界です。 215 00:08:49,420 --> 00:08:50,620 ちょうど最高を使用してみましょう。 216 00:08:50,620 --> 00:08:51,870 そして、これはかなりばかげています。 217 00:08:51,870 --> 00:08:55,060 同様に、あなたが誰かのを入力している場合 200プラス文字の名前、 218 00:08:55,060 --> 00:08:56,140 少しばかげています。 219 00:08:56,140 --> 00:08:59,624 >> しかし、ASCIIではないことを覚えておいてください 文字の唯一のシステム。 220 00:08:59,624 --> 00:09:01,540 だから、特に中 アジア言語の多く 221 00:09:01,540 --> 00:09:04,248 私たちができない文字がありますどこに 私のアメリカのようなキーボードで表現 222 00:09:04,248 --> 00:09:08,209 キーボード、実際にいくつかの文字 16ビットの代わりに8ビットを取ります。 223 00:09:08,209 --> 00:09:10,250 だから、これは実際に すべてのことは無理ではありません 224 00:09:10,250 --> 00:09:12,250 我々はより多くを必要とすること スペース我々が収まるようにしたい場合 225 00:09:12,250 --> 00:09:16,252 非常に米国よりも大きい文字 中心のもの、我々が議論する傾向があってきました。 226 00:09:16,252 --> 00:09:17,460 だから、我々はいくつかの上限を必要としています。 227 00:09:17,460 --> 00:09:21,470 私は、最良のものが何であるかを知りません しかし255は、一般的に一般的なものです。 228 00:09:21,470 --> 00:09:22,700 25は低い感じ。 229 00:09:22,700 --> 00:09:23,857 16、32は低い感じ。 230 00:09:23,857 --> 00:09:25,690 私が側に誤ることになります 高い何かの。 231 00:09:25,690 --> 00:09:27,330 しかし、貿易は、いつものように、オフあります。 232 00:09:27,330 --> 00:09:31,902 明らかな、おそらく、どのようなものです 255文字を予約するのトレードオフ 233 00:09:31,902 --> 00:09:33,360 私のデータベース内のすべての人の名前の? 234 00:09:33,360 --> 00:09:34,230 >> 聴衆:[聞こえません] 235 00:09:34,230 --> 00:09:34,510 >> DAVIDマラン:それは何ですか? 236 00:09:34,510 --> 00:09:35,430 >> 聴衆:[聞こえません] 237 00:09:35,430 --> 00:09:37,138 >> DAVIDマラン:それは メモリの多くは、右? 238 00:09:37,138 --> 00:09:42,280 M-A-L-A-N。私はちょうど250を無駄にしています 文字はちょうど私の名前を格納します 239 00:09:42,280 --> 00:09:46,000 守備、念の誰か クラスで本当に長い名前を持っています。 240 00:09:46,000 --> 00:09:47,940 それが過度のトレードオフのように思えます。 241 00:09:47,940 --> 00:09:52,040 >> だから、それは、そのSQLが判明 このデータベース言語、 242 00:09:52,040 --> 00:09:55,480 実際に何かをサポートしています VARCHARと呼ばれる、または変数CHAR。 243 00:09:55,480 --> 00:09:59,390 そして、これは、この中の種のいいです あなたは固定されていないを指定することができます 244 00:09:59,390 --> 00:10:01,900 幅、むしろ、可変幅。 245 00:10:01,900 --> 00:10:05,060 より具体的には、 フィールドの最大幅。 246 00:10:05,060 --> 00:10:08,901 だから、これは名前ができることを意味します これ以上250文字以下であること、 247 00:10:08,901 --> 00:10:10,150 それは確かに少なくすることができます。 248 00:10:10,150 --> 00:10:11,733 そして、データベースは、スマートになるだろう。 249 00:10:11,733 --> 00:10:14,860 あなたは、M-A-L-A-Nに入れない場合は、 それは唯一の5つを使用するために起こっています、 250 00:10:14,860 --> 00:10:18,120 等のための多分6バイト 末尾のnull文字、 251 00:10:18,120 --> 00:10:23,330 追加を過ごすありません 不必要に249または250バイト。 252 00:10:23,330 --> 00:10:27,380 >> だから、これは私がすべきのように思えます この話を始めました。 253 00:10:27,380 --> 00:10:29,140 しかし、常にトレードオフがあります。 254 00:10:29,140 --> 00:10:33,024 だから、一方では、ユーザ名私はしました ハード16で符号化されるように指定し、 255 00:10:33,024 --> 00:10:34,940 多分それはありませんでした 右呼び出し、多分それを 256 00:10:34,940 --> 00:10:40,040 ですが、なぜ使用しません すべてのためのVARCHAR? 257 00:10:40,040 --> 00:10:42,020 >> それは理由のために存在します。 258 00:10:42,020 --> 00:10:46,200 フィールド毎のVARCHARを使用しないのはなぜ その長さは事前に知っていません 259 00:10:46,200 --> 00:10:48,180 それは素晴らしいことであると思われる場合は、右? 260 00:10:48,180 --> 00:10:50,482 同じくらい多くのスペースを使用します あなたはこの制限まで必要? 261 00:10:50,482 --> 00:10:51,271 >> 聴衆:遅いです。 262 00:10:51,271 --> 00:10:52,146 DAVIDマラン:スペル? 263 00:10:52,146 --> 00:10:53,120 観客は:それは遅くなり? 264 00:10:53,120 --> 00:10:53,970 DAVIDマラン:ああ、それは遅いです。 265 00:10:53,970 --> 00:10:55,720 良い、それはほとんど常にです 答えは、率直に言って。 266 00:10:55,720 --> 00:10:56,520 同様に、トレードオフは何ですか? 267 00:10:56,520 --> 00:10:58,570 このどちらかのより多くのスペースを要します またはそれはより多くの時間がかかります。 268 00:10:58,570 --> 00:11:00,111 そこで、この場合には、遅いかもしれません。 269 00:11:00,111 --> 00:11:00,920 なぜ? 270 00:11:00,920 --> 00:11:05,830 >> 聴衆:[聞こえません] [聞こえない]を決定します。 271 00:11:05,830 --> 00:11:06,640 >> DAVIDマラン:良いです。 272 00:11:06,640 --> 00:11:09,670 だから、あなたも、から思い出すかもしれません あなたのアプローチで遊んPSED5、 273 00:11:09,670 --> 00:11:12,750 辞書に、あなたがしなければならない場合、 メモリを動的に割り当てるか、維持 274 00:11:12,750 --> 00:11:14,630 バッファを成長させること 実際に遅くなることがあります。 275 00:11:14,630 --> 00:11:16,963 あなたはmalloc関数を呼び出すようにしている場合 フードの下に多分 276 00:11:16,963 --> 00:11:19,610 それはそう、MySQLがやっていることです 確かにそれはケースである可能性があります。 277 00:11:19,610 --> 00:11:22,430 そして、あなたが道を考える場合 バックPSet--に、あるいは 278 00:11:22,430 --> 00:11:26,340 私たちはのようなことをしました〜2週間、 バイナリ検索、あるいは線形検索、 279 00:11:26,340 --> 00:11:30,690 すべての単語についての素晴らしいことの一つ 列内のデータベースまたはすべての単語で 280 00:11:30,690 --> 00:11:33,690 でも、全く同じ長さで これらの文字の全体の束の場合 281 00:11:33,690 --> 00:11:37,390 空白になっている、あなたが使用できるということです あなたのデータのランダムアクセスは、右? 282 00:11:37,390 --> 00:11:40,310 >> あなたはすべてのことがわかっている場合 ワードは、16文字の距離です 283 00:11:40,310 --> 00:11:46,460 のようにあなたは、ポインタ演算を使用することができます 話し、私たちに行く16、32、48、64、 284 00:11:46,460 --> 00:11:49,589 そしてあなただけのジャンプすることができます 瞬時に演算を使用して 285 00:11:49,589 --> 00:11:51,130 データベース内の単語のいずれかに。 286 00:11:51,130 --> 00:11:54,280 それはVARCHARだ場合一方、 あなたの代わりに何をすべきかを持っているのですか? 287 00:11:54,280 --> 00:11:55,960 >> [電話が鳴っ] 288 00:11:55,960 --> 00:11:58,680 >> それはVARCHARだ場合、 ランダムアクセスを使用することはできません。 289 00:11:58,680 --> 00:12:01,341 あなたは何を探したりしなければなりませんか? 290 00:12:01,341 --> 00:12:01,840 うん? 291 00:12:01,840 --> 00:12:03,240 >> 聴衆:[聞こえません] 292 00:12:03,240 --> 00:12:04,310 >> DAVIDマラン:見て whole--トレースを通じ 293 00:12:04,310 --> 00:12:06,518 リスト全体を通じ 最も可能性の高い、何を探していますか? 294 00:12:06,518 --> 00:12:08,356 特別な値はどのような? 295 00:12:08,356 --> 00:12:09,230 聴衆:[聞こえません] 296 00:12:09,230 --> 00:12:11,105 DAVIDマラン:探し ヌルターミネータ用 297 00:12:11,105 --> 00:12:13,637 それは言葉の分離を画定します。 298 00:12:13,637 --> 00:12:15,720 だからもう一度、トレードオフ、および 全く正しい答えはありません。 299 00:12:15,720 --> 00:12:18,380 しかし、これは、特に、ここで ユーザーが多くのことを得るとき 300 00:12:18,380 --> 00:12:21,700 およびサーバー上の負荷、 それを使っている人の数が高くなり、 301 00:12:21,700 --> 00:12:23,650 これらは、実際には非自明な意思決定です。 302 00:12:23,650 --> 00:12:26,640 そこで、我々はこのように、これらを残すことができますが、 右に上を下にスクロールしてみましょう 303 00:12:26,640 --> 00:12:27,332 ここに。 304 00:12:27,332 --> 00:12:30,290 さて、列のカップルがあります 我々は審判の判定を行う必要があり場所。 305 00:12:30,290 --> 00:12:35,170 それは、ユーザのを可能にするために意味がありますか 名前、ユーザーのユーザー名またはユーザーの 306 00:12:35,170 --> 00:12:36,370 NULLに、名前は? 307 00:12:36,370 --> 00:12:37,610 それは、単に空白になっています。 308 00:12:37,610 --> 00:12:40,360 少し無意味な感じ、私はよ これらのチェックボックスをオンにするつもりはありません。 309 00:12:40,360 --> 00:12:42,670 しかし、それはで判明します データベース、あなたが言うことができ、 310 00:12:42,670 --> 00:12:44,620 誰かが、必要に応じてこの値を持つことができます。 311 00:12:44,620 --> 00:12:47,180 この列はありません 実際には存在しています。 312 00:12:47,180 --> 00:12:48,570 >> さて、このドロップダウンメニューがあります。 313 00:12:48,570 --> 00:12:50,810 そして、私はまだだ気付きます そこに最初の行で、 314 00:12:50,810 --> 00:12:52,520 私は今、ユーザー名について話しています。 315 00:12:52,520 --> 00:12:56,290 そしてそれは、データベースことが判明 シンプルな単なるスプレッドシートとは異なり、 316 00:12:56,290 --> 00:12:58,520 インデックスと呼ばれる強力な機能を備えています。 317 00:12:58,520 --> 00:13:02,600 そして、インデックスが伝えるの方法です 事前にデータベースI人間のこと 318 00:13:02,600 --> 00:13:03,900 あなたよりも賢いです。 319 00:13:03,900 --> 00:13:10,430 >> 私は、selectクエリの種類を知っています、 または挿入または削除または更新、 320 00:13:10,430 --> 00:13:13,182 私のコードは、終了しようとしていること このデータベースにやって。 321 00:13:13,182 --> 00:13:14,390 私は多くのデータを読みたいです。 322 00:13:14,390 --> 00:13:15,681 私は多くのデータを挿入します。 323 00:13:15,681 --> 00:13:17,530 私は常にしたいです 大量のデータを削除します。 324 00:13:17,530 --> 00:13:21,520 私は私がするつもりだということがわかっている場合 ユーザー名のような多くのフィールドにアクセスし、 325 00:13:21,520 --> 00:13:24,770 私は先制伝えることができます データベースには、私はあなたよりも多くを知っています、 326 00:13:24,770 --> 00:13:29,220 私はその法令にしたいです あなたはインデックスこのフィールドをする必要があります。 327 00:13:29,220 --> 00:13:33,200 フィールドまたは列に索引を付ける場合には つまり、事前にデータベース 328 00:13:33,200 --> 00:13:37,040 等からいくつかのアイデアを借りる必要があり、 週4と5と6 CS50から 329 00:13:37,040 --> 00:13:39,240 実際に構築 バイナリサーチのようなもの 330 00:13:39,240 --> 00:13:41,560 木か何か 一般的に、Bツリーと呼ばれます 331 00:13:41,560 --> 00:13:43,410 あなたが学ぶだろうと CS124のようなクラスで 332 00:13:43,410 --> 00:13:46,710 ハーバード大学で、アルゴリズムクラス、 または他の場所の任意の数。 333 00:13:46,710 --> 00:13:49,570 >> データベースとスマート それを実装人々 334 00:13:49,570 --> 00:13:53,880 保存する方法を見つけ出すだろう 情報のテーブル 335 00:13:53,880 --> 00:13:57,061 メモリ内のように検索し、 他の操作は、超高速です。 336 00:13:57,061 --> 00:13:58,060 あなたはそれを行う必要はありません。 337 00:13:58,060 --> 00:14:00,640 あなたが実装する必要はありません 線形探索またはバイナリ検索 338 00:14:00,640 --> 00:14:03,300 または並べ替えや選択をマージ 並べ替え、そのいずれかの。 339 00:14:03,300 --> 00:14:06,590 あなたが言う場合はデータベースがあなたのためにそれをしません それは先制インデックスには、このフィールド。 340 00:14:06,590 --> 00:14:09,100 >> そして、あなたはあります、あまりにも見ることができます いくつかの他の特性 341 00:14:09,100 --> 00:14:11,010 我々は、データベースを強制するために伝えることができます。 342 00:14:11,010 --> 00:14:16,431 私はユニークを選択した場合、それは何を意味するかもしれません このメニューから、ただ直感的に? 343 00:14:16,431 --> 00:14:16,930 うん? 344 00:14:16,930 --> 00:14:17,889 >> 聴衆:[聞こえません] 345 00:14:17,889 --> 00:14:19,930 DAVIDマラン:ええ、 ユーザー名は一意である必要があります。 346 00:14:19,930 --> 00:14:23,330 これは良いことか悪いことのためであります ユーザーとWebサイトのデータベース、? 347 00:14:23,330 --> 00:14:24,965 ユーザ名は一意である必要がありますか? 348 00:14:24,965 --> 00:14:25,880 うん、たぶん。 349 00:14:25,880 --> 00:14:27,800 それが何であれば フィールドは、我々は、ログインに使用 350 00:14:27,800 --> 00:14:31,867 あなたが本当に持つ人にしたくありません 同じ感覚または同じユーザ名。 351 00:14:31,867 --> 00:14:33,700 そこで、我々は持つことができます データベースには、その結果を施行 352 00:14:33,700 --> 00:14:37,880 その今、私のPHPコードまたは任意の言語で、 私は、例えば、チェックする必要はありません 353 00:14:37,880 --> 00:14:41,490 必ずしもこのユーザ名がありません 私は誰かが登録してみましょう前に存在していますか? 354 00:14:41,490 --> 00:14:46,690 データベースには、名前の二人をさせません デビッドまたはMalansは、この場合には登録してください。 355 00:14:46,690 --> 00:14:50,030 >> そして、これにもかかわらず、脇など メニューは唯一、あなたがいずれかを選択できます 356 00:14:50,030 --> 00:14:54,550 一意のインデックスだものです 超高速なパフォーマンスのためにインデックスを付け、 357 00:14:54,550 --> 00:14:56,100 それはまた、一意性を強制。 358 00:14:56,100 --> 00:14:58,850 そして、我々はに戻ってくるもの 他の2つは一瞬に意味します。 359 00:14:58,850 --> 00:15:00,930 その間、私はに行く場合 私の2番目の行、これ 360 00:15:00,930 --> 00:15:06,230 ユーザーの名前であり、私は指定する必要があります その名前は一意である必要がありますか? 361 00:15:06,230 --> 00:15:09,550 いいえ、あなたは確かに可能性があるため、 have--どの2つのダビデはありません 362 00:15:09,550 --> 00:15:11,050 この部屋にMalans、最も可能性が高いです。 363 00:15:11,050 --> 00:15:14,290 しかし、我々は別の名前を選択した場合、 我々は確かに衝突している可能性があります。 364 00:15:14,290 --> 00:15:16,130 >> テーブルなどのハッシュに戻って考えてみてください。 365 00:15:16,130 --> 00:15:18,604 だから、我々は確かにしたくありません 名前フィールドを一意にします。 366 00:15:18,604 --> 00:15:21,270 だから、私達はちょうどままにするつもりです そのダッシュ、ダッシュ、ダッシュ、何として。 367 00:15:21,270 --> 00:15:22,660 そして、私は残すつもりです 一人で他のすべて。 368 00:15:22,660 --> 00:15:25,035 実際、これらのフィールドのほとんど 我々は気にする必要はありません。 369 00:15:25,035 --> 00:15:27,830 そして、私はこれを保存する準備ができていたときに、 インターネット協働場合、 370 00:15:27,830 --> 00:15:35,032 私は非常に、非常に、非常に保存]をクリックし、 ゆっくりとデータベースが保存されますありません。 371 00:15:35,032 --> 00:15:37,240 そして今、私はこれに戻ってきました インタフェース、確かに、 372 00:15:37,240 --> 00:15:38,680 一目見ただけで圧倒されます。 373 00:15:38,680 --> 00:15:42,450 しかし、私はするつもりですすべてはクリックで 左上のワードユーザーに。 374 00:15:42,450 --> 00:15:47,630 私は、クリック、ここに行くつもりです ユーザー、およびデフォルトでは、 375 00:15:47,630 --> 00:15:50,180 、いくつかのSQLを実行したが、 現時点でその上より。 376 00:15:50,180 --> 00:15:52,654 ここで私が何をしたかの要約だけです。 377 00:15:52,654 --> 00:15:55,320 そして、あなたが見ることを心配しないように ここでラテン語とスウェーデン語の言及。 378 00:15:55,320 --> 00:16:00,490 それらは単にデフォルトです 設定、もともとMySQLのため、 379 00:16:00,490 --> 00:16:04,000 またはPHP myadminという、起こった二つのうちの一つ いくつかのスウェーデン人によって書き込まれます。 380 00:16:04,000 --> 00:16:06,100 しかし、それは、ここで我々の場合には無関係です。 381 00:16:06,100 --> 00:16:08,280 >> すべての権利は​​、なぜです このすべての面白いですか? 382 00:16:08,280 --> 00:16:13,050 それは結局のところ、私はデータを挿入することができます コー​​ドを記述することにより、データベースに。 383 00:16:13,050 --> 00:16:15,940 そして、私は先に行くとよ ここに私のファイルで、私はよ 384 00:16:15,940 --> 00:16:19,000 先に行くと同じようふりをするつもりは これは、そのデータベースに配線されています 385 00:16:19,000 --> 00:16:23,040 それは現時点ではありませんが、それはなります 私たちが問題に到達したときである7を設定します。 386 00:16:23,040 --> 00:16:25,640 そして、私は先に行くつもりだし、 クエリと呼ばれる機能を実行し、 387 00:16:25,640 --> 00:16:28,730 これは、私たちは問題にあなたを与えるだろう 7の流通コードを設定すること 388 00:16:28,730 --> 00:16:31,490 少なくとも一つの引数を取り、 これは単なる文字列です。 389 00:16:31,490 --> 00:16:33,460 SQLコードの文字列です。 390 00:16:33,460 --> 00:16:36,700 だから、あなたはどのように学ぶしようとしています 構造化照会言語を記述します。 391 00:16:36,700 --> 00:16:41,270 >> 私に新しい行を挿入したい場合は データベース誰かが提出しているため、 392 00:16:41,270 --> 00:16:47,600 私のコードの形、私は文字通りだろう ユーザーに次のようにINSERT書きます 393 00:16:47,600 --> 00:16:52,800 フィールド:ユーザー名、 カンマ、名前、値、 394 00:16:52,800 --> 00:16:57,480 そして今、私は挿入する必要があります マランのようなもの、と見積もり、 395 00:16:57,480 --> 00:17:01,490 引用終わり「デビッドマラン」。そしていま でも、SQLに慣れていない人のため、 396 00:17:01,490 --> 00:17:07,830 なぜ私は一重引用符を使用しています この緑の文字列の内側? 397 00:17:07,830 --> 00:17:10,790 398 00:17:10,790 --> 00:17:13,040 どのような理由がここにあるかもしれませんか? 399 00:17:13,040 --> 00:17:14,609 >> 私は共同混ざって二つの言語です注意してください。 400 00:17:14,609 --> 00:17:18,099 クエリは、PHPの関数です。 それは引数を取ります。 401 00:17:18,099 --> 00:17:21,740 そして、その引数は、それ自体になりました 呼ばれる別の言語で書かれました 402 00:17:21,740 --> 00:17:23,500 SQLは、構造化照会言語。 403 00:17:23,500 --> 00:17:27,940 私だから、すべてのもの ちょうどここに強調​​しています 404 00:17:27,940 --> 00:17:30,380 SQLと呼ばれるこの言語です。 405 00:17:30,380 --> 00:17:36,290 そこで、単一引用符とは何、 単に迅速な健全性チェックとして? 406 00:17:36,290 --> 00:17:37,324 先に行く。 407 00:17:37,324 --> 00:17:37,990 彼らは文字列です。 408 00:17:37,990 --> 00:17:41,590 そこで、引用、引用終わりマランと見積もり、 引用終わりデビッド・マランは文字列です。 409 00:17:41,590 --> 00:17:45,210 そして、ちょうど今、直感的に考えて、 あなたは、CとPHPについて知っていることを知って、 410 00:17:45,210 --> 00:17:50,220 なぜ私は、私は通常、これを実行しませんでした 文字列の二重引用符を使用しますか? 411 00:17:50,220 --> 00:17:52,310 なぜ私はそれを行うにはしたくなかったのですか? 412 00:17:52,310 --> 00:17:52,810 うん? 413 00:17:52,810 --> 00:17:53,685 >> 聴衆:[聞こえません] 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 DAVIDマラン:その通り。 416 00:17:57,570 --> 00:17:59,653 私はすでに使用しているため、 途中で二重引用符 417 00:17:59,653 --> 00:18:01,929 引数の外 PHPの関数に、 418 00:18:01,929 --> 00:18:03,470 私は通訳を混乱させる。 419 00:18:03,470 --> 00:18:04,860 それは知ることができません、これらは一緒に行くのですか? 420 00:18:04,860 --> 00:18:05,735 これらは一緒に行くのですか? 421 00:18:05,735 --> 00:18:06,810 これらは一緒に行くのですか? 422 00:18:06,810 --> 00:18:08,070 だから、私は代わりに交互に。 423 00:18:08,070 --> 00:18:11,784 >> または私はこのような何かを行うことができ、 バックスラッシュを引用符やバックスラッシュを引用。 424 00:18:11,784 --> 00:18:14,200 率直に言って、それはちょうどに開始します とても読めないと醜い得ます。 425 00:18:14,200 --> 00:18:16,790 しかし、それは達成します 同様に同じ結果。 426 00:18:16,790 --> 00:18:19,760 >> だから、私はこれを実行した場合 クエリは、それでは、何が起こるか見てみましょう。 427 00:18:19,760 --> 00:18:22,740 私は今、かなり先に行くつもりです よりこれは、PHPコードを実行します 428 00:18:22,740 --> 00:18:24,610 あなたがプレーする場所です 問題に7を設定し、 429 00:18:24,610 --> 00:18:27,200 私の代わりに、PHP myadminというに行くつもりです。 430 00:18:27,200 --> 00:18:29,770 そして、私は手動で行きますよ [SQL]タブに移動し、 431 00:18:29,770 --> 00:18:31,580 そして、私は、インターフェイス上でズームしてみましょう。 432 00:18:31,580 --> 00:18:34,007 そして、私は内貼り付けるつもりです 私はちょうど入力したもの。 433 00:18:34,007 --> 00:18:36,090 そして、カラーコードは持っています 今少し変更し、 434 00:18:36,090 --> 00:18:38,750 単にプログラムのフォーマットがあるため 物事少し違いました。 435 00:18:38,750 --> 00:18:41,960 しかし、すべて私がやったことに気付きます である私は、ユーザーへの挿入、言いました。 436 00:18:41,960 --> 00:18:45,790 私はカンマで、その後、指定しました 括弧で囲まれたリスト2を分離 437 00:18:45,790 --> 00:18:48,850 私は挿入するフィールド、 私は文字通り言った値 438 00:18:48,850 --> 00:18:51,510 別の括弧が続きます、 そして、2つの値 439 00:18:51,510 --> 00:18:53,520 私はプラグインにしたい、と 今良い測定のために、 440 00:18:53,520 --> 00:18:55,010 私は最後にセミコロンを入れます。 441 00:18:55,010 --> 00:18:56,570 だから、これはこれは、PHPではありませんCではありません。 442 00:18:56,570 --> 00:18:59,970 これは今、SQLであり、私はそれを貼り付けています ですこのWebベースのインターフェイスに 443 00:18:59,970 --> 00:19:02,710 ちょうど私をさせるつもり、 すぐに私は行くをクリックすると、 444 00:19:02,710 --> 00:19:08,060 データベースでこのクエリを実行します CS50 IDEの内部で実行されています。 445 00:19:08,060 --> 00:19:09,470 >> だから、これは良いです。 446 00:19:09,470 --> 00:19:12,520 一行を言っお知らせ 挿入された、超高速行き、 447 00:19:12,520 --> 00:19:15,190 そのデータを挿入する0.0054秒。 448 00:19:15,190 --> 00:19:16,610 だから、それは非常に健康に聞こえます。 449 00:19:16,610 --> 00:19:19,350 それは私のクエリを再フォーマット ここに私のためにそれを参照するには 450 00:19:19,350 --> 00:19:21,730 色分けされたバージョンのようなものです。 451 00:19:21,730 --> 00:19:24,540 しかし、今私がクリックした場合 でも、閲覧、それに気付きます 452 00:19:24,540 --> 00:19:29,070 乱雑の多くのがありますけれども 画面には、私のテーブルには2つの行を持っています。 453 00:19:29,070 --> 00:19:30,700 >> だから、私は先に行くと、別の操作を行いましょう。 454 00:19:30,700 --> 00:19:33,760 これに代えて、私を聞かせて 再びSQL]タブに移動します。 455 00:19:33,760 --> 00:19:40,723 そして、この時間は、私のような何かを挿入します ロブと彼の名前はロブ・ボーデンとなります。 456 00:19:40,723 --> 00:19:42,330 ボーデン。 457 00:19:42,330 --> 00:19:44,040 保存]をクリックしてみましょう。 458 00:19:44,040 --> 00:19:46,140 おっと、むしろ行きます。 459 00:19:46,140 --> 00:19:48,890 >> もう一度[参照]をクリックし、 今私は2つの行を持って注意してください。 460 00:19:48,890 --> 00:19:52,390 だから、これはただの方法より複雑です Googleスプレッドシートを開く方法 461 00:19:52,390 --> 00:19:54,010 ちょうど列に行を入力します。 462 00:19:54,010 --> 00:19:57,070 しかし、キーがということです何 我々は今の構文を持っています 463 00:19:57,070 --> 00:20:00,220 これでコードを記述することにより、 最終的に、我々は実際にできました 464 00:20:00,220 --> 00:20:01,790 いくつかと、これを行います。 465 00:20:01,790 --> 00:20:05,380 そのPHPのサポートを思い出してください スーパーグローバル変数。 466 00:20:05,380 --> 00:20:08,415 >> ドルの中には何ですか PHPでGET下線ログイン? 467 00:20:08,415 --> 00:20:10,290 我々は1を見ていました または2つの簡単な例。 468 00:20:10,290 --> 00:20:15,640 そしてPSet6に、あなたが持っているこんにちはリコール この変数を使用してドットPHP。 469 00:20:15,640 --> 00:20:17,870 何がそこに行きますか? 470 00:20:17,870 --> 00:20:21,015 それとも、何ですか? 471 00:20:21,015 --> 00:20:22,522 少し大きな声で。 472 00:20:22,522 --> 00:20:23,790 >> 聴衆:[聞こえません] 473 00:20:23,790 --> 00:20:25,030 >> DAVIDマラン:それは雪です 配列の種子、どの 474 00:20:25,030 --> 00:20:27,714 言うだけの空想の方法です キーと値のペアを持つ配列。 475 00:20:27,714 --> 00:20:28,880 そして、キーは、数値ではありません。 476 00:20:28,880 --> 00:20:30,420 彼らは言葉や文字列です。 477 00:20:30,420 --> 00:20:32,750 具体的には、どのような これらのキーと値のペアは何ですか? 478 00:20:32,750 --> 00:20:35,110 彼らはどこから来るのか? 479 00:20:35,110 --> 00:20:35,620 ごめんなさい? 480 00:20:35,620 --> 00:20:36,994 >> 聴衆:[聞こえません] 481 00:20:36,994 --> 00:20:37,660 DAVIDマラン:いいえ? 482 00:20:37,660 --> 00:20:40,700 どここれらのキー操作を行います 値のペアから来るの? 483 00:20:40,700 --> 00:20:42,490 もう一回言って? 484 00:20:42,490 --> 00:20:44,610 またですか? 485 00:20:44,610 --> 00:20:46,472 私は何かを聞くだけですか? 486 00:20:46,472 --> 00:20:47,810 >> [笑い] 487 00:20:47,810 --> 00:20:49,042 >> それははい、右ですか? 488 00:20:49,042 --> 00:20:50,435 >> 聴衆:[聞こえません] 489 00:20:50,435 --> 00:20:52,560 DAVIDマラン:ええ、彼ら クエリ文字列から来ます。 490 00:20:52,560 --> 00:20:55,380 だから、あなたはまでの時間に巻き戻した場合 我々は、Googleでプレーしたとき 491 00:20:55,380 --> 00:20:59,600 私たちはGoogle.comのスラッシュに行ってきました 検索疑問符qは、猫に等しいです 492 00:20:59,600 --> 00:21:03,550 私が入力した場合にヒットした場合 Googleは、PHPで実装されました 493 00:21:03,550 --> 00:21:07,017 Googleが書いたPHPコード ドル記号へのアクセスを持っているでしょう 494 00:21:07,017 --> 00:21:11,600 その内側にGETを強調する Qと呼ばれるキーと値であり、 495 00:21:11,600 --> 00:21:17,680 それはその後、使用することができますと呼ばれる猫 実際の検索を実行するために使用。 496 00:21:17,680 --> 00:21:20,860 >> だから、実際には、どのような私はするつもりです 今、私のPHPコードに戻ってあるん 497 00:21:20,860 --> 00:21:23,140 あなたは再びPSet7内の多くを参照してくださいよということ。 498 00:21:23,140 --> 00:21:25,440 そして、代わりに差し込みます これは、ハードコードされた値で 499 00:21:25,440 --> 00:21:27,630 ように見えるしていません 非常にダイナミックなウェブサイト、 500 00:21:27,630 --> 00:21:30,680 私はあなたのお誘いを与えるつもりです あなたの実際のコードはどうなるのか。 501 00:21:30,680 --> 00:21:32,854 次の2つに置きます 質問は次のようにマークされます。 502 00:21:32,854 --> 00:21:34,270 私は、ユーザー名が何であるかを知りません。 503 00:21:34,270 --> 00:21:37,390 私は何かわかりません 名前は、になるだろう 504 00:21:37,390 --> 00:21:39,470 しかし私は私ができる知っています 動的にそれらを得ます。 505 00:21:39,470 --> 00:21:43,420 >> だから、私たちは今書いているコードがある場合 Googleのサーバー上で実行されるコード、 506 00:21:43,420 --> 00:21:46,940 または、これはハロードットである場合 PSet6に付属しているPHP、 507 00:21:46,940 --> 00:21:48,650 私が中を通過するつもりです クエリ機能 508 00:21:48,650 --> 00:21:51,450 ちょうどprintfのような、他の二つの引数を指定します。 509 00:21:51,450 --> 00:21:57,120 、引用、引用終わりにユーザ名を取得します、 そして、引用、引用終わり名を取得します。 510 00:21:57,120 --> 00:22:00,720 そして今、何に気づきます 一般的な構造はここにあります。 511 00:22:00,720 --> 00:22:03,320 私は左側に持っています コー​​ルの左側、 512 00:22:03,320 --> 00:22:05,480 この関数はPHPでクエリと呼ばれます。 513 00:22:05,480 --> 00:22:08,160 私はまだ、最初のように持っています 引数、テキストの単なる文字列。 514 00:22:08,160 --> 00:22:11,000 >> しかし、テキストの文字列です SQLと呼ばれる言語で書かれました。 515 00:22:11,000 --> 00:22:12,616 そして率直に言って、それは大きな言語ではありません。 516 00:22:12,616 --> 00:22:14,990 私たちは、について話をするつもりです それ正式に今日、本当に。 517 00:22:14,990 --> 00:22:17,031 そして、問題に​​設定 7は、比較的あります 518 00:22:17,031 --> 00:22:18,800 私たちがしているいくつかの機能 活用する予定。 519 00:22:18,800 --> 00:22:22,530 疑問符、しかし、プラグインを意味します 別の値で、ここでの値とプラグ 520 00:22:22,530 --> 00:22:23,130 ここに。 521 00:22:23,130 --> 00:22:26,010 そして、通知は、私は省略したもの quote--いまいましい周りから 522 00:22:26,010 --> 00:22:30,470 引用の周りit-- この時間をマーク。 523 00:22:30,470 --> 00:22:34,930 私は二重引用符を省略しました 疑問符の周りのマーク、 524 00:22:34,930 --> 00:22:36,410 申し訳ありませんが、この頃。 525 00:22:36,410 --> 00:22:38,870 >> だから、このことについて素敵なものです 疑問符機能します 526 00:22:38,870 --> 00:22:42,830 PHPは、ルビーをサポートする傾向があり、 Pythonや他の言語、 527 00:22:42,830 --> 00:22:45,730 これはいくつかのプラグインを意味 ここで値と​​あなたは何を知っていますか? 528 00:22:45,730 --> 00:22:48,300 あなたが使用するかどうかを見つけ出します 単一引用符または二重引用符。 529 00:22:48,300 --> 00:22:50,966 それらで私を気にしないでください 知的つまらない詳細。 530 00:22:50,966 --> 00:22:53,780 しかし、必ずそれが正しいです作ります 私のコードは、最終的になるように、 531 00:22:53,780 --> 00:22:57,010 運用と安全、どの 長い前に意味を持つことになります。 532 00:22:57,010 --> 00:23:00,460 >> さて、どのように多くの引数だけに、合計 明確にする、クエリ機能の撮影はありますか? 533 00:23:00,460 --> 00:23:05,240 534 00:23:05,240 --> 00:23:07,581 誰もが二つ以上のために投票したいですか? 535 00:23:07,581 --> 00:23:08,080 3? 536 00:23:08,080 --> 00:23:10,001 確かに、なぜですか? 537 00:23:10,001 --> 00:23:10,920 なぜ3? 538 00:23:10,920 --> 00:23:12,305 >> 聴衆:[聞こえません] 539 00:23:12,305 --> 00:23:13,180 DAVIDマラン:その通り。 540 00:23:13,180 --> 00:23:14,610 最初の部分は文字列です。 541 00:23:14,610 --> 00:23:18,640 二番目の引数は、ドル記号であります GETブラケットユーザ名を強調しています。 542 00:23:18,640 --> 00:23:21,950 そして、3番目の引数があります 同じことが、ちょうど名前。 543 00:23:21,950 --> 00:23:24,590 換言すれば、今 私は、Webフォームを持っていた場合 544 00:23:24,590 --> 00:23:27,149 それは、テキストフ​​ィールドに持っていました ユーザーのユーザー名ごとに1つ、 545 00:23:27,149 --> 00:23:29,690 ちょうど彼または彼女の名前のための1つ、 あなたのウェブサイトで見ることになるような 546 00:23:29,690 --> 00:23:32,120 以下のためにあなたを登録するとき いくつかのウェブサイトは、このかもしれません 547 00:23:32,120 --> 00:23:35,450 そのバックエンドでコードであります 実際に今の挿入を行います 548 00:23:35,450 --> 00:23:37,220 データベースに。 549 00:23:37,220 --> 00:23:40,870 >> 今対照的に、早送りしてみましょう。 550 00:23:40,870 --> 00:23:43,840 ユーザーが今あると仮定 ログインしてあなたが欲しいです 551 00:23:43,840 --> 00:23:48,860 かどうかをチェックするPHPコードを書くために ちょうどログインしていた人 552 00:23:48,860 --> 00:23:52,250 ユーザーは実際に、あなたができることです 非常に単純な構文を使用します。 553 00:23:52,250 --> 00:23:55,832 あなたは、SELECTは、のは言わせて言うことができます 星がすべてを意味する星、。 554 00:23:55,832 --> 00:23:57,540 私は何を知らない私 たいので、ちょうど私を与えます 555 00:23:57,540 --> 00:24:01,585 テーブルのすべての列 どこのユーザーと呼ばれ、これはいいです。 556 00:24:01,585 --> 00:24:03,710 選択は何をサポートしています ある述語を、と呼ばれます 557 00:24:03,710 --> 00:24:06,630 あなたが望む予選の方法のように。 558 00:24:06,630 --> 00:24:10,590 どこにユーザ名が等しいです 引用、引用終わりマラン。 559 00:24:10,590 --> 00:24:13,680 だからここでも、私が埋め込まれました 引数内部 560 00:24:13,680 --> 00:24:16,110 PHPの関数、SQLコードの行に。 561 00:24:16,110 --> 00:24:18,680 そして、そのSQLコードこの 時間は、文字通り起こっています 562 00:24:18,680 --> 00:24:21,790 引用、引用終わりマランを検索します。 563 00:24:21,790 --> 00:24:24,420 >> 今では、すべてのことに有用ではありません 私はそれをスキップするつもりです 564 00:24:24,420 --> 00:24:28,650 私は離れて置くつもりです ブレイディからこのヒントは、と行きます 565 00:24:28,650 --> 00:24:30,990 プラグインの代わりに ここに疑問符。 566 00:24:30,990 --> 00:24:33,290 だから、単に明確にするために、どのような 私の二番目の引数はすべき 567 00:24:33,290 --> 00:24:37,480 誰かがちょうど、私にログインしたことがあれば 彼または彼女が実際にあるかどうかを確認したいです 568 00:24:37,480 --> 00:24:39,265 ユーザー? 569 00:24:39,265 --> 00:24:40,140 聴衆:[聞こえません] 570 00:24:40,140 --> 00:24:40,890 DAVIDマラン:うん。 571 00:24:40,890 --> 00:24:44,120 私は、ドル記号、アンダースコアを聞きます 引用、引用終わりユーザ名を取得します。 572 00:24:44,120 --> 00:24:50,040 そして、それは私に返す必要があります 私のデータベース内の行のいずれかの 573 00:24:50,040 --> 00:24:51,986 それは、マランのユーザー名を持っています。 574 00:24:51,986 --> 00:24:54,860 今うまくいけば、私は戻って取得するつもりです ゼロマランのがここにはありませんでした場合、 575 00:24:54,860 --> 00:24:56,290 または1つは、彼が持っている場合。 576 00:24:56,290 --> 00:24:59,026 私は取り戻すべきではありません 2つまたは3つまたは​​4つ。 577 00:24:59,026 --> 00:24:59,526 なぜ? 578 00:24:59,526 --> 00:25:00,220 >> 聴衆:[聞こえません] 579 00:25:00,220 --> 00:25:01,120 >> DAVIDマラン:私は右、ユニーク言いましたか? 580 00:25:01,120 --> 00:25:01,750 単純な理由。 581 00:25:01,750 --> 00:25:04,030 私はそれが持っていると言ったので ただ論理的に、一意であることが、 582 00:25:04,030 --> 00:25:07,940 あなただけのゼロまたは1 M​​alansを持つことができます この特定のデータベース・テーブルインチ 583 00:25:07,940 --> 00:25:10,965 今、あなたは見たことはさておき、ちょうどように、 私は、GETを使用し続けるにもかかわらずそれ、 584 00:25:10,965 --> 00:25:14,350 そして、PSet6にのみ使用にもかかわらず、 GET、あなたは確かに、POSTを持つことができます。 585 00:25:14,350 --> 00:25:17,212 そして、ポストが別であることを思い出します 情報を提出するための技術 586 00:25:17,212 --> 00:25:19,170 フォームから、それ URLには表示されません。 587 00:25:19,170 --> 00:25:22,690 それはのために確かに少しより安全です ユーザ名とパスワードのようなもの、 588 00:25:22,690 --> 00:25:25,210 これPSet7が、実際には、関与します。 589 00:25:25,210 --> 00:25:28,130 >> それでは、PHPでこれをやらせます myadminという、何が起こるかを参照してください。 590 00:25:28,130 --> 00:25:30,020 私は、MySQLのタブに移動するつもりです。 591 00:25:30,020 --> 00:25:34,450 そして、そのためのデフォルト値に気付きます PHP myadminという、ただ参考にしようとします、 592 00:25:34,450 --> 00:25:37,050 1ユーザーからの星を選択することです。 593 00:25:37,050 --> 00:25:39,430 さて、人はそのように、常に真であります これは、効果的な愚かなを持っています 594 00:25:39,430 --> 00:25:40,400 だけすべてを選択します。 595 00:25:40,400 --> 00:25:42,691 しかし、私は少しもするつもりです より多くの知識をひけらかす、手動で 596 00:25:42,691 --> 00:25:45,920 ユーザーからのSELECT星を入力します。 597 00:25:45,920 --> 00:25:48,294 >> 今技術的に、次のことができます テーブルの名前を引用。 598 00:25:48,294 --> 00:25:50,460 それはあなたがする必要があることは稀ですが、 しかし、これらはありません注意してください 599 00:25:50,460 --> 00:25:52,240 USキーボードの通常の引用符。 600 00:25:52,240 --> 00:25:54,760 これは、いわゆるバッククォートです 左上に、一般的に 601 00:25:54,760 --> 00:25:56,000 キーボードのコーナー。 602 00:25:56,000 --> 00:25:58,500 しかし、それはあなたがよことは稀です 実際にそれに気にする必要があり、 603 00:25:58,500 --> 00:25:59,950 私はとにかくそれを省略します。 604 00:25:59,950 --> 00:26:02,280 だから今、私は先に行くと行ってヒットしてみましょう。 605 00:26:02,280 --> 00:26:06,616 そして、どのように多くの行私が取得する必要があります バック私は、ユーザーからの星を選択すると? 606 00:26:06,616 --> 00:26:08,407 >> 聴衆:[聞こえません] 607 00:26:08,407 --> 00:26:09,990 DAVIDマラン:必ず行数、。 608 00:26:09,990 --> 00:26:12,390 しかし、この中でどのように多くの 今、具体的な話? 609 00:26:12,390 --> 00:26:14,640 二、そこにされたため、 私とロブがありました。 610 00:26:14,640 --> 00:26:19,370 私は、[移動]をクリックしますので、もし、私がいることを視覚的に参照してください。 私は、確かに、戻って2つの行を得ています。 611 00:26:19,370 --> 00:26:22,060 混雑がたくさんあり​​ます 画面には、私は2つだけの行を参照してください。 612 00:26:22,060 --> 00:26:28,580 これとは対照的に、私は再びこれを行うと行う場合 ユーザーからのSELECTスター、ユーザ名 613 00:26:28,580 --> 00:26:31,840 引用、引用終わり等しいです マランは、今私は、[移動]をクリックした場合 614 00:26:31,840 --> 00:26:33,970 私は1つ前の行を取得するつもりです。 615 00:26:33,970 --> 00:26:36,499 そして最後に、私がしなければ このようなもの、と仮定 616 00:26:36,499 --> 00:26:38,290 私は気にしないこと すべてを取得し、 617 00:26:38,290 --> 00:26:41,020 これは今無意味の一種です、 2つの列のみ存在だからです。 618 00:26:41,020 --> 00:26:43,103 それは私が選択しているようではありません 大量のデータ。 619 00:26:43,103 --> 00:26:46,720 私は先に行くと仮定 から名前を選択ください 620 00:26:46,720 --> 00:26:51,990 ユーザ名はマランに等しいユーザー、 正直、SQLのいいものです、 621 00:26:51,990 --> 00:26:54,290 それは実際にはないということです 何を行うには、それを伝えます。 622 00:26:54,290 --> 00:26:57,550 それはかなり簡潔ですが、あなたは文字通り ちょうどあなたが何をしたいのか、それを教えてください。 623 00:26:57,550 --> 00:27:01,130 ユーザーどこから名前を選択します ユーザ名はマランに等しいです。 624 00:27:01,130 --> 00:27:03,440 そして、それは本当に、明示的です。 625 00:27:03,440 --> 00:27:08,410 だから、今私は行く、何をヒットした場合 行は私が戻って取得するつもりですか? 626 00:27:08,410 --> 00:27:10,770 一つは、それがうまくいけば、ちょうどマランだから。 627 00:27:10,770 --> 00:27:13,100 それとも彼がいなかったらゼロ そこに、しかし最大限に1。 628 00:27:13,100 --> 00:27:17,610 >> そして私はどのように多くの列を取り戻すのだろうか? 629 00:27:17,610 --> 00:27:18,450 どのように多くの列? 630 00:27:18,450 --> 00:27:20,658 今回は、私は行きますよ 私はしませんでしたので、いずれかを取得します 631 00:27:20,658 --> 00:27:22,380 すべてだ星を、選択します。 632 00:27:22,380 --> 00:27:27,900 今私は名前だけを選択するので、私です ただ一つの列と1行を取り戻します。 633 00:27:27,900 --> 00:27:31,730 そして、それは一種の適切見えます とんでもない、見ているだけのスーパー 634 00:27:31,730 --> 00:27:33,060 このような小さな。 635 00:27:33,060 --> 00:27:34,290 だから、実際に何が起きているのでしょうか? 636 00:27:34,290 --> 00:27:36,890 あなたは、SQLを実行すると クエリは、selectを使用して 637 00:27:36,890 --> 00:27:38,700 あなたは何を取得しています バックデータベースから 638 00:27:38,700 --> 00:27:42,970 一時テーブルのようなものです 行と列と、多分、 639 00:27:42,970 --> 00:27:46,260 それは何を省略しています 実際にあなたが選択しませんでした。 640 00:27:46,260 --> 00:27:49,010 だから、それは誰かが大きなを持っていた場合のようなものです すべての学生のスプレッドシート 641 00:27:49,010 --> 00:27:51,610 いくつかのために登録 学生グループ、あなたが言います、 642 00:27:51,610 --> 00:27:55,097 私にきた新入生のすべてを与えます 私たちの学生グループのために登録、何 643 00:27:55,097 --> 00:27:56,930 であなたの同僚 学生グループが行う可能性があります 644 00:27:56,930 --> 00:27:58,430 彼らは手ができています あなたスプレッドシート全体。 645 00:27:58,430 --> 00:27:59,742 それは選択の星を言うようなものです。 646 00:27:59,742 --> 00:28:02,200 場合そして、それは少し迷惑なんです あなただけの新入生を望んでいました。 647 00:28:02,200 --> 00:28:05,640 だから、あなたが代わりに言った場合、 データベーステーブルからスターを選択 648 00:28:05,640 --> 00:28:08,470 ここで、年に等しいです 引用、引用終わり新入生、 649 00:28:08,470 --> 00:28:10,810 それはあなたの友達かのようです 学生グループで 650 00:28:10,810 --> 00:28:13,770 文字通り強調表示され、 唯一の新入生の行をコピーし、 651 00:28:13,770 --> 00:28:16,780 新しいGoogleにそれらを貼り付け スプレッドシートまたはExcelファイル、 652 00:28:16,780 --> 00:28:18,860 あなたが戻さ ファイルのみを生じました。 653 00:28:18,860 --> 00:28:21,710 それが起こっていることすべてです 概念的にここに。 654 00:28:21,710 --> 00:28:23,920 >> そこで最後に、我々が行うことができます かなり凝ったもの 655 00:28:23,920 --> 00:28:26,560 ユーザー名のようなものを格納することにより、 やパスワードなどが挙げられます。 656 00:28:26,560 --> 00:28:30,310 しかし、結局のところ、我々が行う必要があります 異なっこれより少し。 657 00:28:30,310 --> 00:28:34,750 それだけに、そのスマートではありません ユーザー名とパスワードが保存されます。 658 00:28:34,750 --> 00:28:37,790 誰かが以前、私は思います ダウンここで、IDを示唆しました。 659 00:28:37,790 --> 00:28:40,787 今のIDは次のようにすることができ ハーバードIDやエールのネットID、 660 00:28:40,787 --> 00:28:42,870 それがより簡単かもしれません 私達のデータベースの場合には 661 00:28:42,870 --> 00:28:45,120 そして実際、一般的なケース 別の列を持つことです。 662 00:28:45,120 --> 00:28:46,953 そして、私は行くつもりです 先に、私のテーブルを編集します。 663 00:28:46,953 --> 00:28:49,521 そして、あなたはで遊ぶ場合 PSet7ため、このインタフェース、 664 00:28:49,521 --> 00:28:51,770 あなたがチェックすることができていることがわかります ここでは、このボタンと追加 665 00:28:51,770 --> 00:28:53,750 テーブルの先頭にフィールド。 666 00:28:53,750 --> 00:28:56,720 私は、[移動]をクリックします場合そして今、それが起こっています 私はそれらのいずれかの形式を与えるために 667 00:28:56,720 --> 00:28:57,600 以前から。 668 00:28:57,600 --> 00:29:00,170 私はID​​と呼ばれるフィールドを追加するつもりです。 669 00:29:00,170 --> 00:29:03,070 そして、私はそれの数値型にするつもりです。 670 00:29:03,070 --> 00:29:05,362 >> 私は全体の束を持っています 数値の値の。 671 00:29:05,362 --> 00:29:08,677 私は、INTを選択するつもりだと 異種のサイズを心配しないで。 672 00:29:08,677 --> 00:29:10,510 私は指定する必要はありません 長さや値、 673 00:29:10,510 --> 00:29:13,710 それがために起こっているので、 32ビットに関係なくどのような。 674 00:29:13,710 --> 00:29:16,070 属性は、我々は前に見ませんでした。 675 00:29:16,070 --> 00:29:18,410 これらのいずれかに興味 メニューオプションこの時間? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 INTのために? 678 00:29:23,745 --> 00:29:24,620 あなたは何を提案したのですか? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 なし? 681 00:29:28,445 --> 00:29:29,570 これらのいずれかが意味を作るのですか? 682 00:29:29,570 --> 00:29:30,536 うん。 683 00:29:30,536 --> 00:29:31,900 うん、符号なし、右? 684 00:29:31,900 --> 00:29:35,930 >> 一般的に、我々は与えるつもりなら 誰も一意の番号、どの 685 00:29:35,930 --> 00:29:38,200 この話がどこにあるかであります 行く、私は実際にはしたいです 686 00:29:38,200 --> 00:29:41,919 ゼロのような番号を持っている人 そして、1と2と3と4。 687 00:29:41,919 --> 00:29:43,710 私が対処する必要はありません 負の数を持ちます。 688 00:29:43,710 --> 00:29:45,210 それはちょうど過度の複雑さのように思えます。 689 00:29:45,210 --> 00:29:48,470 私は、40億の可能な値をしたいです、 ない40億の可能な値、 690 00:29:48,470 --> 00:29:50,699 私はちょうど倍増しました 私のINTの容量。 691 00:29:50,699 --> 00:29:53,490 さておき、あなたが関係する場合として、 このFacebookのようなものに、 692 00:29:53,490 --> 00:29:56,190 バック時に私の一日のようなもので Facebookが最初に出てきました、 693 00:29:56,190 --> 00:29:59,510 私は、彼らが何であったかと考えています 彼らのMySQLデータベースに使用して 694 00:29:59,510 --> 00:30:02,856 ユーザのを格納します 識別子は、単にINTました。 695 00:30:02,856 --> 00:30:05,230 しかし、もちろん、たくさんあり​​ます 世界で実質の人々の。 696 00:30:05,230 --> 00:30:07,438 偽のFacebookがたくさんあり​​ます 世界で占めています。 697 00:30:07,438 --> 00:30:11,701 だから最終的に、Facebookがオーバーフローし INTのサイズ、40億 698 00:30:11,701 --> 00:30:12,200 値。 699 00:30:12,200 --> 00:30:15,032 あなたが見れば、理由であります 周りやウェブサイトがあります 700 00:30:15,032 --> 00:30:16,740 それはあなたを伝えることができるもの あなたのユニークなIDです。 701 00:30:16,740 --> 00:30:19,781 そして、あなたがユーザ名を選択したことがない場合 Facebookは、あなたの一意のIDが表示されます。 702 00:30:19,781 --> 00:30:23,080 私はそれがプロファイルドットPHPだと思います 疑問符のIDが何かに等しいです。 703 00:30:23,080 --> 00:30:27,210 それは今すぐようなものです INT、または長い長いあなたがする場合は、 704 00:30:27,210 --> 00:30:29,700 64ビット値は、あります または同等の何か。 705 00:30:29,700 --> 00:30:33,620 >> だから、でも現実の世界でこれらの操作を行います 問題は最終的に、時には問題では。 706 00:30:33,620 --> 00:30:37,600 私はあれば、それは、ここで判明します 、私のユーザー固有のIDのすべてを与えます 707 00:30:37,600 --> 00:30:41,750 私はスーパー明示的になりたいと 最低限このフィールドが一意になります。 708 00:30:41,750 --> 00:30:44,750 しかし、それは1つがありますが判明 命名の作品今日すぎます 709 00:30:44,750 --> 00:30:46,470 それは主キーです。 710 00:30:46,470 --> 00:30:49,800 データベースを設計している場合 テーブルと事前に知っています 711 00:30:49,800 --> 00:30:55,580 その表の列の1 行を一意に識別しますする必要があります 712 00:30:55,580 --> 00:30:58,500 表には、あなたがしたいです それを指定してデータベースを伝え、 713 00:30:58,500 --> 00:31:00,250 これは私の主キーです。 714 00:31:00,250 --> 00:31:02,110 重複があるかもしれません 他の分野で、 715 00:31:02,110 --> 00:31:06,330 私は、このデータベースを言っています 私の主、私の最も重要な分野です、 716 00:31:06,330 --> 00:31:08,420 それは一意であることが保証さです。 717 00:31:08,420 --> 00:31:09,660 >> さて、これは冗長なようです。 718 00:31:09,660 --> 00:31:13,830 私は今、我々が提案しています ここで[保存]をクリックして、追加、 719 00:31:13,830 --> 00:31:17,210 フィールドcalled--と私は行きますよ 先に行くとAIをクリックし、 720 00:31:17,210 --> 00:31:19,720 我々は戻ってくるだろう 瞬間に、保存していること。 721 00:31:19,720 --> 00:31:22,540 私は今、その提案しています 私のテーブルには、このようにします。 722 00:31:22,540 --> 00:31:26,305 私は、IDと呼ばれる、INTフィールドが ユーザー名と呼ばれるCHARフィールド、 723 00:31:26,305 --> 00:31:31,100 VARCHAR名と呼ばれるフィールドが、ID、 それが主なので、ユニークな場合には、 724 00:31:31,100 --> 00:31:33,760 なぜ私はちょうど無駄にしませんでした 時間何を導入します 725 00:31:33,760 --> 00:31:39,140 効果的に二ユニークです フィールドはINTのIDと呼ばれますか? 726 00:31:39,140 --> 00:31:41,980 >> ユーザー名、リコール、でした すでにユニークな、我々が言いました。 727 00:31:41,980 --> 00:31:45,350 だから論理的に、あなたがする必要はありません 理由に任意のデータベースの経験 728 00:31:45,350 --> 00:31:47,570 このを通じて、なぜ 私が紹介している可能性があります 729 00:31:47,570 --> 00:31:50,065 同様に私の一意の識別子としてINT? 730 00:31:50,065 --> 00:31:52,740 731 00:31:52,740 --> 00:31:53,930 this--が再び言う何ですか? 732 00:31:53,930 --> 00:31:55,580 >> 聴衆:[聞こえません] 733 00:31:55,580 --> 00:31:59,534 >> DAVIDマラン:ランダム アクセスが容易になり、なぜですか? 734 00:31:59,534 --> 00:32:00,410 >> 聴衆:[聞こえません] 735 00:32:00,410 --> 00:32:02,367 DAVIDマラン:ええ、それはです 数字だけにアクセスします。 736 00:32:02,367 --> 00:32:04,750 だから、あなたが本当にこの考える場合 テーブルには、配列のように、あります 737 00:32:04,750 --> 00:32:07,690 今私は一意の識別子を持っています 私の周りにジャンプすることができ。 738 00:32:07,690 --> 00:32:11,520 そして、それよりも良いがまだということです どのように大きなINTが再びになるだろうか? 739 00:32:11,520 --> 00:32:14,450 740 00:32:14,450 --> 00:32:15,800 32ビットまたは4バイト。 741 00:32:15,800 --> 00:32:17,750 >> どのくらい自分のユーザー名は、になるだろうか? 742 00:32:17,750 --> 00:32:20,310 743 00:32:20,310 --> 00:32:21,990 最大限に? 744 00:32:21,990 --> 00:32:22,880 16バイト。 745 00:32:22,880 --> 00:32:26,080 >> だから、あなたが本当に気にしている場合 コー​​ドのパフォーマンス、 746 00:32:26,080 --> 00:32:31,390 バックPSet5に思う、あなたが好むだろう 4バイト値または16を検索します 747 00:32:31,390 --> 00:32:32,240 バイト値、右? 748 00:32:32,240 --> 00:32:33,810 それは本当にそれと同じくらい簡単です。 749 00:32:33,810 --> 00:32:38,060 あなたは多くの仕事の4倍をしなければなりません それらのためのユーザ名を検索します 750 00:32:38,060 --> 00:32:38,830 16バイトです。 751 00:32:38,830 --> 00:32:41,320 だから、あなたは文字通りに持っています されるすべての16のバイトを比較します 752 00:32:41,320 --> 00:32:43,140 はい確かに、これは私がしたいユーザ名です。 753 00:32:43,140 --> 00:32:46,610 INTのため、あなたができるのに対し わずか4バイトでそれを行います。 754 00:32:46,610 --> 00:32:49,212 >> それらのための脇とAS コンピュータのハードウェアに興味を持って、 755 00:32:49,212 --> 00:32:52,420 それはあなたのようなものに合うことができる判明します INTか何かで32ビットの値 756 00:32:52,420 --> 00:32:55,330 コンピュータ内のレジスタと呼ばれます それはスーパーであることを意味し、CPU、 757 00:32:55,330 --> 00:32:58,400 でも最低でも、超高速 コンピュータのハードウェアのレベル。 758 00:32:58,400 --> 00:33:00,530 だから、すべての周りだけの利点があります。 759 00:33:00,530 --> 00:33:01,530 だから、これは何を意味するのでしょうか? 760 00:33:01,530 --> 00:33:04,850 実際には、ときにあなたが設計しています データベーステーブル、ほとんどすべての時間の 761 00:33:04,850 --> 00:33:07,170 あなたが持っていないとしています あなたが気にデータのみ、 762 00:33:07,170 --> 00:33:09,280 だけでなく、のようなものを 一意の識別子 763 00:33:09,280 --> 00:33:11,280 このために起こっています 私たちは他のことをしましょう​​。 764 00:33:11,280 --> 00:33:13,160 そしてのは、ここで一つの問題でつまずいてみましょう。 765 00:33:13,160 --> 00:33:15,990 >> ユーザーが持っていないと仮定 ユーザ名と名前だけで、 766 00:33:15,990 --> 00:33:19,540 彼らはまた、都市のようなものを持っています 少なくともと状態と郵便番号、 767 00:33:19,540 --> 00:33:20,432 ここ米国インチ 768 00:33:20,432 --> 00:33:22,390 だから、私は先に行くつもりです ちょうどすぐに言います、 769 00:33:22,390 --> 00:33:26,180 私は3以上の列を与えます テーブルの最後に。 770 00:33:26,180 --> 00:33:28,900 そして、これは、都市になるだろう これは、国家になるだろう 771 00:33:28,900 --> 00:33:30,400 これは郵便番号になるだろう。 772 00:33:30,400 --> 00:33:32,710 >> 今市、どのようなデータ型 これは、おそらく、すべきですか? 773 00:33:32,710 --> 00:33:35,460 774 00:33:35,460 --> 00:33:35,989 VARCHAR? 775 00:33:35,989 --> 00:33:37,780 私は何かわかりません 最長の名前の都市です。 776 00:33:37,780 --> 00:33:40,571 どこかアメリカでは、あります おそらくいくつかの途方もなく長い単語、 777 00:33:40,571 --> 00:33:43,605 そう多少、ちょうど255で行ってみよう 歴史的にまたは任意。 778 00:33:43,605 --> 00:33:44,730 国家、あなたが何をしたいのか? 779 00:33:44,730 --> 00:33:48,380 780 00:33:48,380 --> 00:33:50,367 審判の判定は、右? 781 00:33:50,367 --> 00:33:51,700 おそらく最も効率的な何ですか? 782 00:33:51,700 --> 00:33:53,500 どのように多くの文字? 783 00:33:53,500 --> 00:33:55,950 多分ちょうど2つ、我々はできる場合 ただやって逃げます、 784 00:33:55,950 --> 00:33:58,250 以下のように、マサチューセッツ州マサチューセッツ州のためなど。 785 00:33:58,250 --> 00:34:00,520 だから、私は2つのCHAR値を行くつもりです。 786 00:34:00,520 --> 00:34:03,080 >> 郵便番号は、興味深いものです。 787 00:34:03,080 --> 00:34:06,679 私たちはそのように、02138にここにいます 私たちは何を使用する必要がありますを示唆していますか? 788 00:34:06,679 --> 00:34:07,470 それは右、INTですか? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 INT、INT、短いですか? 791 00:34:12,800 --> 00:34:14,521 ショートは働くだろう。 792 00:34:14,521 --> 00:34:15,020 なし? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 CHARまたは5が、私は、INTをしたいです。 795 00:34:20,870 --> 00:34:23,710 なぜINTに押し戻しますか? 796 00:34:23,710 --> 00:34:26,820 このことから私を説得。 797 00:34:26,820 --> 00:34:29,210 何がINT、私の考えについては愚かなのか? 798 00:34:29,210 --> 00:34:29,871 うん。 799 00:34:29,871 --> 00:34:31,199 >> 者:より多くのメモリを取ります。 800 00:34:31,199 --> 00:34:32,909 >> DAVIDマラン:より多くのメモリを取ります。 801 00:34:32,909 --> 00:34:35,310 4バイトが、あなたはしています 郵便番号を提案 802 00:34:35,310 --> 00:34:39,000 または5バイトとして誰かが、CHARの通りでした それは本当にありません、ええように感じています 803 00:34:39,000 --> 00:34:39,620 ケース。 804 00:34:39,620 --> 00:34:40,489 >> まあ、楽しい話。 805 00:34:40,489 --> 00:34:43,179 数年前、私が使用するために使用された場合 私の電子メールのためのMicrosoft Outlook、 806 00:34:43,179 --> 00:34:45,150 私は最終的にはGmailに切り替えたいと思いました。 807 00:34:45,150 --> 00:34:48,949 だから、私は私のすべてをエクスポート CSVファイルとしてOutlookから連絡先。 808 00:34:48,949 --> 00:34:50,699 コンマは、値を分離しました、 これはちょうど私のことを意味 809 00:34:50,699 --> 00:34:54,060 すべての私の友人の名前を持っていた最後の 名前と電話番号と郵便番号 810 00:34:54,060 --> 00:34:54,747 そしてそのすべて。 811 00:34:54,747 --> 00:34:56,580 そして、私が作りました それを開くの間違い 812 00:34:56,580 --> 00:34:58,640 Excelで、これは、 スプレッドシートプログラムもの 813 00:34:58,640 --> 00:35:00,289 CSVファイルは、我々が見てきたように理解しています。 814 00:35:00,289 --> 00:35:03,080 しかし、その後、私は次のように、ヒットしている必要があり、 一点でのコマンドまたはコントロールS。 815 00:35:03,080 --> 00:35:06,250 およびExcelどうやら時 これにより、いつでも、それの機能を持っていました 816 00:35:06,250 --> 00:35:08,100 番号を見て、それが参考にしてみました。 817 00:35:08,100 --> 00:35:11,610 そして、その数はで開​​始した場合 ゼロは、それだけでそれらを取り除くでしょう。 818 00:35:11,610 --> 00:35:13,420 なぜあなたは主要な必要があります 整数のゼロ? 819 00:35:13,420 --> 00:35:15,140 彼らは数学的、無意味です。 820 00:35:15,140 --> 00:35:17,530 彼らは無意味じゃありません 米国郵便システムインチ 821 00:35:17,530 --> 00:35:19,954 だから、私は何年も持っていました、 この日に、私はまだ 822 00:35:19,954 --> 00:35:22,370 ことを友人を持っている場合 私が誰かのを必要とするまれなケース 823 00:35:22,370 --> 00:35:24,078 これらの日に対処、 私はまだその私が表示されます 824 00:35:24,078 --> 00:35:26,767 ケンブリッジの友人を持っています、 マサチューセッツ州、2138年。 825 00:35:26,767 --> 00:35:29,350 あなたがしている場合、それは迷惑なんです プログラムでの並べ替えしようとしています 826 00:35:29,350 --> 00:35:30,975 封筒を生成したり、それを書き留めます。 827 00:35:30,975 --> 00:35:33,599 そして、その理由は、このような理由のためです 私は間違ったデータ型を選択しました。 828 00:35:33,599 --> 00:35:34,490 だから、私はあなたのアイデアが大好きです。 829 00:35:34,490 --> 00:35:35,650 のは、CHARフィールドを使用してみましょう。 830 00:35:35,650 --> 00:35:38,340 5文字を除きます コー​​ナーケースがあります。 831 00:35:38,340 --> 00:35:42,220 それでもメールを送信する場合は、 時には、これらの日のコードを圧縮し、 832 00:35:42,220 --> 00:35:45,360 彼らは次のように、だ、プラス4。 833 00:35:45,360 --> 00:35:48,200 そこで、我々はその後、ハイフンを必要とし、 我々は、4つ以上の数字が必要です。 834 00:35:48,200 --> 00:35:50,330 だから、正直に言うと、それができました 多くの異なった道を行きます。 835 00:35:50,330 --> 00:35:52,371 >> 今のところ、私は続けるつもりです それ簡単で、私はちょうどよ 836 00:35:52,371 --> 00:35:54,780 それはだと言うつもり 5 CHAR値と我々がいます 837 00:35:54,780 --> 00:35:56,739 全体ダッシュプラス4をスキップする予定。 838 00:35:56,739 --> 00:35:58,280 しかし、これらはトレードオフの一種です。 839 00:35:58,280 --> 00:36:00,196 そして、あなたは考えることができ 同じ問題に起因 840 00:36:00,196 --> 00:36:01,860 電話番号やその他のフィールドを持ちます。 841 00:36:01,860 --> 00:36:04,350 >> そして今、これは実際にあります ダウンする愚かな道。 842 00:36:04,350 --> 00:36:08,000 ロブと私とハンナの両方を仮定 マリアと[? Davon?]とアンディ 843 00:36:08,000 --> 00:36:12,820 ライブやスタッフの他はすべて ケンブリッジ、マサチューセッツ、02138インチ 844 00:36:12,820 --> 00:36:17,970 これは実際に私は愚かな感じ 私のユーザーテーブルに追加して、市、州、 845 00:36:17,970 --> 00:36:18,630 そして、ジッパー。 846 00:36:18,630 --> 00:36:20,980 なぜ? 847 00:36:20,980 --> 00:36:21,960 >> 聴衆:[聞こえません] 848 00:36:21,960 --> 00:36:22,918 >> DAVIDマランは:もう一度言って? 849 00:36:22,918 --> 00:36:24,310 聴衆:[聞こえません] 850 00:36:24,310 --> 00:36:25,850 >> DAVIDマラン:彼らはいつもしています 右、一緒に行くつもり? 851 00:36:25,850 --> 00:36:28,660 それが判明した場合、我々は考えるために使用 これは徹底的に私たちまでそうでした 852 00:36:28,660 --> 00:36:30,570 、全体の米国を検索 その存在が判明 853 00:36:30,570 --> 00:36:32,653 いくつかの矛盾があります 複数の町が持っている場所 854 00:36:32,653 --> 00:36:35,060 奇妙で、同じ郵便番号、。 855 00:36:35,060 --> 00:36:40,580 しかし、我々は今では02138のために定めがある場合 いつもケンブリッジ、マサチューセッツ州で、 856 00:36:40,580 --> 00:36:44,910 世界であなたは内に格納する理由 データベースケンブリッジとMAと02138 857 00:36:44,910 --> 00:36:49,357 私のためにとハンナのためとロブのためにと [用? Davon?]と暮らす他の人のため 858 00:36:49,357 --> 00:36:51,190 ここケンブリッジで、それはです 完全に冗長。 859 00:36:51,190 --> 00:36:54,480 >> 私たちは離れて取得する必要があります ただ何を保存すると? 860 00:36:54,480 --> 00:36:55,610 ちょうど郵便番号。 861 00:36:55,610 --> 00:36:58,660 しかし、その後、私たちは保存する場合 郵便番号、私はおそらく、したいですか、 862 00:36:58,660 --> 00:37:02,160 02138がどこにあるか私のウェブサイトのために知っています。 863 00:37:02,160 --> 00:37:03,910 だから、私は別のテーブルが必要です。 864 00:37:03,910 --> 00:37:04,697 そして、それは大丈夫です。 865 00:37:04,697 --> 00:37:07,530 実際には、これは次のいずれかであります テーブルを設計する設計プロセス 866 00:37:07,530 --> 00:37:11,472 あなたにもそれによってPSet7にやること あなたが共通のデータを考慮したいと思います。 867 00:37:11,472 --> 00:37:14,430 我々はアウトファクタリングしてきたのと同じように 共通コードおよびファクタリングアウト共通 868 00:37:14,430 --> 00:37:17,380 ここでは、CSSのスタイル あまりにデータベースで、 869 00:37:17,380 --> 00:37:21,180 私は02138一意にする必要がある場合 誰かの故郷を特定し、 870 00:37:21,180 --> 00:37:25,020 以下のためにマサチューセッツ州ケンブリッジを格納しません あなたのテーブルのすべてのくそユーザー。 871 00:37:25,020 --> 00:37:29,770 >> その代わりに、と呼ばれる別のテーブルを持っています 何列を持つ必要がありジッパー? 872 00:37:29,770 --> 00:37:33,490 おそらくIDフィールドだけのために、理由 原則は、私たちは今の話をしています。 873 00:37:33,490 --> 00:37:35,720 02138のためのおそらくジップフィールド。 874 00:37:35,720 --> 00:37:38,400 そして、おそらく他の何列? 875 00:37:38,400 --> 00:37:42,950 市や州が、一つだけを持っています 02138の行、02139のための1つの行、 876 00:37:42,950 --> 00:37:44,772 90210のための1つの行。 877 00:37:44,772 --> 00:37:46,730 そして、それは文字通りです 私が知っているすべての郵便番号。 878 00:37:46,730 --> 00:37:49,012 >> だから今、あなたは何ができるのでしょうか? 879 00:37:49,012 --> 00:37:51,220 これは、問題です 今私は2つのテーブルを持っています。 880 00:37:51,220 --> 00:37:54,660 だから、私のユーザーは主にここを超えています、 しかし、自分たちの街の状態情報の 881 00:37:54,660 --> 00:37:55,390 こっち。 882 00:37:55,390 --> 00:37:58,635 だから、それがあります、SQLで判明します 実際の方法は、情報に参加します 883 00:37:58,635 --> 00:38:00,470 あなたはPSETでこれを見ることができます。 884 00:38:00,470 --> 00:38:03,000 >> しかし、それはあなたができる判明します このような何かを。 885 00:38:03,000 --> 00:38:10,501 ユーザーからのSELECTスター、ONジッパーを登録しよう ユーザーはジッパーがジッパーはジッパードット等しい点在しています。 886 00:38:10,501 --> 00:38:13,360 少し長ったらしいどちらが、 確かに、これだけ 887 00:38:13,360 --> 00:38:17,590 からすべてを選択することを意味 私のユーザーテーブルを取る方法 888 00:38:17,590 --> 00:38:19,580 私のジッパーテーブル。 889 00:38:19,580 --> 00:38:22,120 1にそれらに参加 彼らが列を持っている分野。 890 00:38:22,120 --> 00:38:24,780 だから、文字通り何かをすること このように、バック私を与えます 891 00:38:24,780 --> 00:38:27,360 新しい一時テーブル すなわち、それは大きいです、広いです 892 00:38:27,360 --> 00:38:29,450 それがすべてを持っています それらの両方の列。 893 00:38:29,450 --> 00:38:33,510 そして、それは、非常に単純であろう このような何かを行うための構文。 894 00:38:33,510 --> 00:38:35,540 >> だから、これは前方にあり、 しかし、そこに起こっています 895 00:38:35,540 --> 00:38:38,950 他の設計上の決定をすることが、あなたはよ 確認する必要があり、索引を持つだけでなく、 896 00:38:38,950 --> 00:38:40,550 だけでなく、課題に実行しています。 897 00:38:40,550 --> 00:38:43,360 実際には、課題があります 任意のデータベース設計で 898 00:38:43,360 --> 00:38:47,930 これにより、時には二人がお勧めします データベースの同じ行にアクセスするには 899 00:38:47,930 --> 00:38:48,530 テーブル。 900 00:38:48,530 --> 00:38:51,450 だから、これは、我々がよものです 同様にPSet7に遭遇します。 901 00:38:51,450 --> 00:38:54,686 >> しかし、私は私は1つを見てしようと思いました SQLで可能です攻撃。 902 00:38:54,686 --> 00:38:56,560 のはどのようなものがあります 発生する可能性が問題? 903 00:38:56,560 --> 00:38:58,170 だから、あなたはPSet7でこれが発生します。 904 00:38:58,170 --> 00:39:01,874 そして、我々は完全に何を伝えます この問題の解決策の符号化です。 905 00:39:01,874 --> 00:39:04,790 しかし、あなたは、より高いレベルのクラスを取る場合、 特に、オペレーティングシステムにおいて、 906 00:39:04,790 --> 00:39:06,950 あなたが遭遇するつもりです アトミックの問題、 907 00:39:06,950 --> 00:39:10,080 やろうとしているの問題 複数のものを一度に 908 00:39:10,080 --> 00:39:11,000 中断することなく。 909 00:39:11,000 --> 00:39:14,560 >> そして私は私がこれを紹介しようと思いました メタファーとPSet7のアイデア 910 00:39:14,560 --> 00:39:18,160 私がマーゴに自分自身を学んだこと セルツァーのCS164のオペレーティングシステム 911 00:39:18,160 --> 00:39:18,990 クラス数年前。 912 00:39:18,990 --> 00:39:22,230 あなたはこれらの寮のいずれかを持っていると仮定 あなたの寮の部屋や家の中で冷蔵庫、 913 00:39:22,230 --> 00:39:24,474 あなたは牛乳のための本当の好みを持っています。 914 00:39:24,474 --> 00:39:27,140 だから、あなたはクラスから帰宅します ある日、あなたは冷蔵庫を開きます。 915 00:39:27,140 --> 00:39:27,620 ああ、畜生。 916 00:39:27,620 --> 00:39:28,870 冷蔵庫には牛乳はありません。 917 00:39:28,870 --> 00:39:32,470 だから、あなたは冷蔵庫を閉じ、 ドアをロックし、あなたの寮をロックし、 918 00:39:32,470 --> 00:39:34,770 角を回って歩きます CVSに、行の取得、 919 00:39:34,770 --> 00:39:36,312 いくつかのミルクのためにチェックを開始。 920 00:39:36,312 --> 00:39:38,978 そして、それはしばらく時間がかかるだろう、 それらのいまいましいセルフチェックアウトのため 921 00:39:38,978 --> 00:39:40,570 カウンタはとにかく使用することを永遠に取ります。 922 00:39:40,570 --> 00:39:41,950 だからその間、あなたのルームメイトは帰宅します。 923 00:39:41,950 --> 00:39:43,470 彼または彼女は本当にだけでなく、牛乳が好き。 924 00:39:43,470 --> 00:39:45,520 彼らは寮の部屋に来て、 冷蔵庫を開け、ああ、それをくそ。 925 00:39:45,520 --> 00:39:46,490 これ以上の牛乳はありません。 926 00:39:46,490 --> 00:39:49,040 >> だから、彼または彼女はまた、 角を回って行きます。 927 00:39:49,040 --> 00:39:51,670 しかし、今、2のようにありますので、 または3つまたは​​4つのCVSes近く、 928 00:39:51,670 --> 00:39:53,800 彼らは次のいずれかに行くために起こります 広場に異なるもの。 929 00:39:53,800 --> 00:39:55,830 そして今、数分 あなたの後に、両方の 930 00:39:55,830 --> 00:39:58,060 帰宅とぐふ、史上最悪の問題。 931 00:39:58,060 --> 00:40:00,967 今、あなたはあまりにも多くのミルクを持っています それは酸っぱい行くつもりだから。 932 00:40:00,967 --> 00:40:03,050 そして、あなたは、あなたは牛乳を好きですが、 本当に牛乳が好きではありません。 933 00:40:03,050 --> 00:40:06,730 >> だから今、これは高価でした あなたのために両方の間違い 934 00:40:06,730 --> 00:40:09,870 基づいて決定しました いくつかの変数の状態こと 935 00:40:09,870 --> 00:40:12,660 のプロセスであっ あなたによって変更され、 936 00:40:12,660 --> 00:40:14,560 牛乳を取りに行くのイニシエータ。 937 00:40:14,560 --> 00:40:17,785 だから、おそらく人間のものです その問題を解決? 938 00:40:17,785 --> 00:40:18,660 聴衆:[聞こえません] 939 00:40:18,660 --> 00:40:19,430 DAVIDマラン:右、メモを残しますか? 940 00:40:19,430 --> 00:40:21,850 あなたがいる場合には、必ず、メモを残します そのショーに精通しています。 941 00:40:21,850 --> 00:40:23,100 はい、私たちの2があります。 942 00:40:23,100 --> 00:40:25,940 だから、常にメモを残し、または 文字通り冷蔵庫をロック 943 00:40:25,940 --> 00:40:28,602 南京錠のいくつかの種類を持ちますか そのようなトップの上に何か。 944 00:40:28,602 --> 00:40:31,310 しかし、それは実際になるだろう データベース設計で重要な問題、 945 00:40:31,310 --> 00:40:34,710 特にあなたが持っている可能性がある場合 複数のブラウザ、複数のラップトップ、 946 00:40:34,710 --> 00:40:37,450 複数のユーザーが全員にしよう 一度に情報​​を更新します。 947 00:40:37,450 --> 00:40:40,590 特に機密情報 財務情報のような、 948 00:40:40,590 --> 00:40:43,350 これにより株式取引で あなたのようなウェブサイトが構築されます、 949 00:40:43,350 --> 00:40:47,270 あなたはどのくらいのお金を確認したい場合はどのような あなたが持っていると、あなたは十分に持っている場合は、 950 00:40:47,270 --> 00:40:48,490 いくつかの株式を購入しますか? 951 00:40:48,490 --> 00:40:50,899 >> しかし、どのような場合は他の誰か あなたと一緒に共同口座を持っています 952 00:40:50,899 --> 00:40:52,690 同時にしようとしています いくつかの株式を購入しますか? 953 00:40:52,690 --> 00:40:55,190 だから、彼または彼女はチェックしています あなたの両方の口座残高、 954 00:40:55,190 --> 00:40:57,540 同じ取り戻します 答えは、何のミルクありません。 955 00:40:57,540 --> 00:41:00,580 あるいは、あなたの両方は、答えを取り戻します あなたが口座に$ 100があります。 956 00:41:00,580 --> 00:41:04,680 あなたの両方が決定を作ってみます いくつかの会社の株式1株を購入します。 957 00:41:04,680 --> 00:41:06,130 >> そして今、何が起こりますか? 958 00:41:06,130 --> 00:41:07,140 次の2つの株を持っていますか? 959 00:41:07,140 --> 00:41:08,420 あなたは何の株式を持っていませんか? 960 00:41:08,420 --> 00:41:10,320 そのような問題が発生する可能性があります。 961 00:41:10,320 --> 00:41:11,755 だから、我々はそれが発生します。 962 00:41:11,755 --> 00:41:14,630 SQLインジェクション攻撃、ありがたいことに、 私たちがお手伝いしますものです、 963 00:41:14,630 --> 00:41:17,430 これらはatrociouslyです まだ一般的なこれらの日。 964 00:41:17,430 --> 00:41:18,680 そのように、これは単なる一例です。 965 00:41:18,680 --> 00:41:21,290 私は請求をしないこと ハーバードPIN方式であります 966 00:41:21,290 --> 00:41:23,130 この特定の攻撃に対して脆弱。 967 00:41:23,130 --> 00:41:24,160 我々は試してみました。 968 00:41:24,160 --> 00:41:26,120 しかし、あなたが知っている私達その このようなフィールドを持っています。 969 00:41:26,120 --> 00:41:29,620 そしてエールのNet IDは同じようなを持っています これらの日の画面を見て。 970 00:41:29,620 --> 00:41:33,190 そして、それは、判明しているかもしれません PINシステムはPHPで実装されています。 971 00:41:33,190 --> 00:41:37,050 >> そして、それはwere--場合、それは彼らnot--です このようなコードがあるかもしれません。 972 00:41:37,050 --> 00:41:38,210 彼らは2つの変数を持っています。 973 00:41:38,210 --> 00:41:42,495 私にユーザ名とパスワードを与えます ポストスーパーグローバル変数から 974 00:41:42,495 --> 00:41:43,970 我々は以前の話をすることを。 975 00:41:43,970 --> 00:41:47,310 たぶん、ハーバード大学は、クエリを持っています ユーザーからのSELECT星のように 976 00:41:47,310 --> 00:41:50,005 ユーザ名が等しいこと パスワードは、に等しいです。 977 00:41:50,005 --> 00:41:51,880 そして、私はちょうどだと気付きます 使用して、それを差し込みます 978 00:41:51,880 --> 00:41:55,050 他の中括弧表記 値だけでプラグインを意味し日、 979 00:41:55,050 --> 00:41:55,550 ここに。 980 00:41:55,550 --> 00:41:57,449 私が使用していませんよ 疑問符の技術。 981 00:41:57,449 --> 00:41:59,240 私は、任意の秒を持っていません または3番目の引数。 982 00:41:59,240 --> 00:42:02,350 私は文字通りです 文字列を自分で構築します。 983 00:42:02,350 --> 00:42:04,930 >> 問題は、しかし、ということです 誰かがscroobが好きなら、 984 00:42:04,930 --> 00:42:09,020 これはフィルムへの参照です、 このようなものでログインし、 985 00:42:09,020 --> 00:42:11,250 私は、ドットを削除しました 通常までカバーすること 986 00:42:11,250 --> 00:42:14,370 パスワード、彼がありますか 特に悪質な 987 00:42:14,370 --> 00:42:18,860 彼のパスワードは多分、12345 「スペースボール」と呼ばれる映画あたり 988 00:42:18,860 --> 00:42:21,970 彼批判のタイプ 5後に単一引用符、 989 00:42:21,970 --> 00:42:24,790 その後、文字通り単語または 空間で、その後、引用、 990 00:42:24,790 --> 00:42:29,160 引用終わり1は、引用符1に等しいです 彼は何を省略へのご注意しますか! 991 00:42:29,160 --> 00:42:32,700 彼は右の引用符を省略しています 彼は左の引用を省略しています。 992 00:42:32,700 --> 00:42:35,170 >> もしこのため、攻撃者 scroobの推定 993 00:42:35,170 --> 00:42:38,160 人々は誰が書いたということです このPHPコードは、とても明るくはありませんでした 994 00:42:38,160 --> 00:42:42,990 おそらく彼らはいくつかのシングルを持っています 補間の前後に引用符 995 00:42:42,990 --> 00:42:45,210 中括弧内の変数の? 996 00:42:45,210 --> 00:42:48,620 そしてそう多分、彼は親切でし 彼らの思考を完了 997 00:42:48,620 --> 00:42:53,290 彼らのために、しかし、起こっている方法で、 彼は、PINシステムにハッキングできるようにします。 998 00:42:53,290 --> 00:42:55,310 換言すれば、仮定 これはコードであること 999 00:42:55,310 --> 00:42:57,140 私たちは今入力したscroobものの中に差し込みます。 1000 00:42:57,140 --> 00:42:58,770 それが悪いだから、それは、赤です。 1001 00:42:58,770 --> 00:43:01,310 >> また、基本となるテキスト 彼がで入力したもので、 1002 00:43:01,310 --> 00:43:05,510 scroobは、ハーバード大学のサーバーをだますことができ SQLクエリを構築するに 1003 00:43:05,510 --> 00:43:07,440 このように見える文字列。 1004 00:43:07,440 --> 00:43:11,760 パスワードは12345、または1つ1に相当します。 1005 00:43:11,760 --> 00:43:14,820 その結果、論理的に、 これはscroobを記録するということです 1006 00:43:14,820 --> 00:43:18,360 自分のパスワードがある場合で 12345または1に等しい場合 1007 00:43:18,360 --> 00:43:22,660 もちろん常に真である1、 これscroobはいつもに入ったことを意味します。 1008 00:43:22,660 --> 00:43:26,060 >> だから、方法は修正します この、多くのケースのように、 1009 00:43:26,060 --> 00:43:28,140 ディフェンシブに書くことになります。 1010 00:43:28,140 --> 00:43:30,390 私たちのようなものを使用するには 実際のクエリ機能、どの 1011 00:43:30,390 --> 00:43:33,980 あなたは私たちがプラグインPSet7、で表示されます 質問のようなものがここにマークします。 1012 00:43:33,980 --> 00:43:35,980 との美 我々のクエリ機能 1013 00:43:35,980 --> 00:43:40,010 あなたはそれがこれらを防御で与えます いわゆるSQLインジェクション攻撃、 1014 00:43:40,010 --> 00:43:44,260 誰かがにコードをだましています 彼または彼女自身のSQLコードを注入します。 1015 00:43:44,260 --> 00:43:47,380 どのようなクエリ機能ので、 私たちは、あなたが実際に行います与え、 1016 00:43:47,380 --> 00:43:51,270 あなたは疑問符の構文を使用している場合 第2および第ここで3番目の引数 1017 00:43:51,270 --> 00:43:54,590 それがに追加なかったものです ユーザーが提供したことを入力? 1018 00:43:54,590 --> 00:43:56,060 これらのバックスラッシュ、引用符。 1019 00:43:56,060 --> 00:43:58,590 >> だから、それは潜在的にエスケープ 危険な文字。 1020 00:43:58,590 --> 00:44:01,000 これは、今奇妙に見えます それは脆弱ではありません 1021 00:44:01,000 --> 00:44:03,260 それはしていませんので、 もうロジックを変更します 1022 00:44:03,260 --> 00:44:06,470 その全体のパスワードですので、 今ではない単一引用符、 1023 00:44:06,470 --> 00:44:07,596 実際には、scroobのパスワード。 1024 00:44:07,596 --> 00:44:09,845 そこで、いくつかのジョークがあったです 年間でこのことについて。 1025 00:44:09,845 --> 00:44:12,570 そのように、これは、写真が撮影されました 駐車場でいくつかのオタクの 1026 00:44:12,570 --> 00:44:16,620 それによってあなたはそのいくつかの都市を知っているかもしれません そして、の状態は、ライセンスをスキャンしよう 1027 00:44:16,620 --> 00:44:19,460 あなたやあなたのチケットに料金を請求するためのプレート あなたのような、なしで通過すると、 1028 00:44:19,460 --> 00:44:20,660 E-Zパスの事。 1029 00:44:20,660 --> 00:44:24,490 だから、この人は多分と推定 人々は、E-Zパスシステムを書きます 1030 00:44:24,490 --> 00:44:28,240 とても明るくはなかった、と多分彼ら 単なる文字列を連結さ、 1031 00:44:28,240 --> 00:44:32,190 彼または彼女が悪意を持っていないことができるように ちょうど彼らの思考を完了していません、 1032 00:44:32,190 --> 00:44:35,150 しかし、実際に悪いのコマンドを実行し、 これは、我々はまだ言及していませんでした、 1033 00:44:35,150 --> 00:44:36,380 しかし、あなたはおそらく推測することができます。 1034 00:44:36,380 --> 00:44:39,820 加えて、それは削除し、 挿入および更新を選択し、 1035 00:44:39,820 --> 00:44:43,370 ドロップと呼ばれるキーワードもあります、 これは文字通り、すべてを削除します 1036 00:44:43,370 --> 00:44:45,300 データベースで、どの 特に悪いです。 1037 00:44:45,300 --> 00:44:48,760 >> 我々は、この場合にズームインすることができます それは見るために少し厳しいです。 1038 00:44:48,760 --> 00:44:52,300 これは、今、有名な漫画です それが今、素晴らしく賢いです 1039 00:44:52,300 --> 00:44:53,145 そして、理解しやすいです。 1040 00:44:53,145 --> 00:45:00,880 1041 00:45:00,880 --> 00:45:04,750 >> [笑い] 1042 00:45:04,750 --> 00:45:05,910 >> クールな、うん。 1043 00:45:05,910 --> 00:45:06,800 種類のうちgeeking。 1044 00:45:06,800 --> 00:45:08,800 このように、その後、あります SQLインジェクション攻撃。 1045 00:45:08,800 --> 00:45:13,050 そして、彼らは使用して回避することがとても簡単です 右のコードまたは右のライブラリ。 1046 00:45:13,050 --> 00:45:15,947 そして、あなたは、それはだPSet7に表示されます なぜ私たちはあなたのクエリ機能を提供します。 1047 00:45:15,947 --> 00:45:17,780 だから、ティーザーのカップル 我々はだろうと思っていること 1048 00:45:17,780 --> 00:45:19,930 私たちのここであなたを与えます 一緒分を残り。 1049 00:45:19,930 --> 00:45:24,030 それで、あなたは週にゼロから覚えているように、我々 これら二つの電球を導入します 1050 00:45:24,030 --> 00:45:26,610 いいです、ではないという理由だけで 彼らはきれいですし、カラフルです、 1051 00:45:26,610 --> 00:45:29,450 彼らは何かをサポートしているため アプリケーションは、APIと呼ばれます 1052 00:45:29,450 --> 00:45:31,980 プログラミング・インターフェースと CS50でこれまで、我々はしました 1053 00:45:31,980 --> 00:45:34,440 主にGETに焦点を当て、 POSTは、それが判明します 1054 00:45:34,440 --> 00:45:37,390 PUTのような他のHTTP動詞があります。 1055 00:45:37,390 --> 00:45:39,430 >> 実際に、これがありました 0週目からスライド 1056 00:45:39,430 --> 00:45:44,930 それによって、あなたが送信したコードを書く場合 ラPSet6 HTTPリクエスト 1057 00:45:44,930 --> 00:45:49,647 テキストのこの塊とこのようになります JSONと呼ばれる下部にあります、 1058 00:45:49,647 --> 00:45:52,230 またはJavaScriptオブジェクト表記 ことを私たちは来週の話をします、 1059 00:45:52,230 --> 00:45:57,030 あなたがオンまたはオフにするか、変更することができます それらのようなライトの色。 1060 00:45:57,030 --> 00:46:00,480 CS50はまた、いくつかの他に持っているのであれば ニューヘブンのここで、これらの電球の 1061 00:46:00,480 --> 00:46:02,480 あなたが借りたい場合 それらの最終プロジェクトのため、 1062 00:46:02,480 --> 00:46:04,370 また、一部のMicrosoft 以下のようなものですバンド、 1063 00:46:04,370 --> 00:46:07,619 あなたの手首に着用することを見て 同様になるように、APIを持っていることをあなた 1064 00:46:07,619 --> 00:46:10,040 彼らのためにあなた自身のソフトウェアを書くことができます。 1065 00:46:10,040 --> 00:46:12,490 >> 私たちはアカウントを持っています AppleのiOSのコードので、 1066 00:46:12,490 --> 00:46:15,510 そのアップルウォッチかを持っている場合 iPhoneやiPadやiPod、 1067 00:46:15,510 --> 00:46:17,707 あなたはそのコードを書くことができます 実際にそれらの上で動作します。 1068 00:46:17,707 --> 00:46:19,540 私たちは、全体の束を持っています あるのArduinos、 1069 00:46:19,540 --> 00:46:22,010 小さな小さなコンピュータ 例のない、本質的に、 1070 00:46:22,010 --> 00:46:25,240 あなたはUSB経由で接続できること、 一般的に、あなた自身のMacやPCに、 1071 00:46:25,240 --> 00:46:28,810 これらの物理的に実行されるコードを書きます 多くの場合、それらのセンサーを持っているデバイス 1072 00:46:28,810 --> 00:46:30,790 だから、現実の世界と対話することができます。 1073 00:46:30,790 --> 00:46:32,860 私たちは、全体の束を持っています リープモーションデバイスの、 1074 00:46:32,860 --> 00:46:36,500 Mac用USBデバイスであると ここにして再度、ニューヘブンのパソコン、。 1075 00:46:36,500 --> 00:46:40,080 そして、あなたがお使いのMacに接続した場合、 あなたが実際にあなたのコンピュータを制御することができます 1076 00:46:40,080 --> 00:46:42,550 ソフトウェアを書くことにより、 その赤外線ビームを経由して、 1077 00:46:42,550 --> 00:46:46,360 あなたの人の手がどこにあるかを割り出し、 あなたのキーボードに触れることなく。 1078 00:46:46,360 --> 00:46:49,135 私たちは迅速に共有したいと思いました 例えば、これを垣間見ます。 1079 00:46:49,135 --> 00:46:51,428 >> [音楽再生] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 そこで、我々は、全体を持っています これらの事の束、 1082 00:47:57,590 --> 00:48:01,040 あまりにも、ミョーアームバンドと呼ばれます これはあなたがあなたの前腕の上に置きます 1083 00:48:01,040 --> 00:48:04,595 そして、あなたは本当のを制御することができます 世界やこのような仮想世界。 1084 00:48:04,595 --> 00:48:06,471 >> [音楽再生] 1085 00:48:06,471 --> 00:49:17,580 1086 00:49:17,580 --> 00:49:20,920 あるいは、我々はまた、いくつかのGoogleを持っています 以下のような、文字通りある段ボール、 1087 00:49:20,920 --> 00:49:24,841 あなたがあなたの上に置くことが段ボール箱 顔が、それにあなたの携帯電話でスライド 1088 00:49:24,841 --> 00:49:27,590 あなたのガラスを置くように、 あなたの目には本当に近くに電話。 1089 00:49:27,590 --> 00:49:30,190 そしてGoogleの段ボールです $ 10〜$ 20におけるかなり安いです。 1090 00:49:30,190 --> 00:49:32,230 そして、それはほとんどのレンズを持っています その少しシフトオフ 1091 00:49:32,230 --> 00:49:35,900 あなたの人間のためのスクリーン上の画像 あなたに奥行き感を与えるために、目 1092 00:49:35,900 --> 00:49:39,550 あなたが実際に3Dを持っているように、 あなたの前に環境。 1093 00:49:39,550 --> 00:49:42,927 我々はまた、いくつかのサムスンギアを持っています これのより高価なバージョンがあり、 1094 00:49:42,927 --> 00:49:46,010 それは同様にスライド可能 Androidの携帯電話とあなたの錯覚を与えます 1095 00:49:46,010 --> 00:49:48,309 of--や経験を与えます バーチャルリアリティの。 1096 00:49:48,309 --> 00:49:50,850 そして、私たちの最後の2分で、 我々はこれをやろうと思いました。 1097 00:49:50,850 --> 00:49:55,250 私はコルトンが持っているものを投影することができる場合 ここに、ちょうどあなたの欲求を満たしてくれるために、 1098 00:49:55,250 --> 00:49:58,442 私が先に行くと投げてみましょう ここで大画面でアップ。 1099 00:49:58,442 --> 00:49:59,400 私がライトを殺してみましょう。 1100 00:49:59,400 --> 00:50:02,290 コルトン、あなたが先に行くしたいです そして、一瞬のためにあなたのセルに置きます 1101 00:50:02,290 --> 00:50:05,171 とに渡って来ます ステージ中央? 1102 00:50:05,171 --> 00:50:07,420 そして、あなたはproject--したいです これは、コルトンが見ているものです。 1103 00:50:07,420 --> 00:50:10,560 >> さて、ここでのWi-Fiがあります このデバイスのように強くありません 1104 00:50:10,560 --> 00:50:13,870 これが超魅力的であること、 しかしコルトンは文字通りです 1105 00:50:13,870 --> 00:50:15,710 この魔法のような未来的な場所です。 1106 00:50:15,710 --> 00:50:16,796 彼は唯一の1つの画像を見ています。 1107 00:50:16,796 --> 00:50:19,920 あなたは彼の左と右眼を見ています 彼の脳は、一緒にステッチされていること 1108 00:50:19,920 --> 00:50:22,260 3次元で 彼の顔に環境。 1109 00:50:22,260 --> 00:50:24,319 彼はちょうどここにメニューオプションを選択します。 1110 00:50:24,319 --> 00:50:27,360 だから、再び、彼はこのヘッドセットを装着しています だその上にサムスンの携帯電話で 1111 00:50:27,360 --> 00:50:29,080 ワイヤレスで私たちのオーバーヘッドに突出します。 1112 00:50:29,080 --> 00:50:30,349 今、あなたは火星に、私は考えていますか? 1113 00:50:30,349 --> 00:50:31,140 COLTON:私はそう思います。 1114 00:50:31,140 --> 00:50:32,181 私は[聞こえない]わかりません。 1115 00:50:32,181 --> 00:50:34,250 [笑い] 1116 00:50:34,250 --> 00:50:36,374 >> DAVIDマラン:判明 火星はこれらのメニューを持っています。 1117 00:50:36,374 --> 00:50:41,590 >> COLTON:[聞こえない]いくつかのクールな 場所私たちが移動する場合to-- 1118 00:50:41,590 --> 00:50:43,330 >> DAVIDマラン:私達は行きたいですか? 1119 00:50:43,330 --> 00:50:45,837 >> COLTON:[聞こえません] 1120 00:50:45,837 --> 00:50:48,170 DAVIDマラン:そして、見てみましょう コルトンのは、今私たちを取る場所。 1121 00:50:48,170 --> 00:50:48,961 COLTON:[聞こえません] 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> DAVIDマラン:だから、非常に多くあります あなた自身を取ることができる別の場所。 1124 00:50:56,380 --> 00:51:00,590 することができます経由FAPIsがあります ゲームや相互作用を書きます 1125 00:51:00,590 --> 00:51:01,950 電話で、最終的には、実行します。 1126 00:51:01,950 --> 00:51:03,908 だから、あなたは本当にただ 携帯電話のアプリケーションを書きます。 1127 00:51:03,908 --> 00:51:06,380 しかし、ソフトウェアのおかげで そして、グラフィックス機能、 1128 00:51:06,380 --> 00:51:08,765 今コルトンは、この中にあります 小さな小さなコテージ。 1129 00:51:08,765 --> 00:51:10,515 そして、リスクのあります 自分自身を圧倒、 1130 00:51:10,515 --> 00:51:13,330 コルトンと私はのために固執します 今日ここクラスの最後にいる間 1131 00:51:13,330 --> 00:51:14,300 あなたが出てくるとプレイしたい場合。 1132 00:51:14,300 --> 00:51:16,350 そして、我々はそれらを持っていきます バック来週にも。 1133 00:51:16,350 --> 00:51:18,420 さらになければ、騒ぎ それは今日のためにそれです。 1134 00:51:18,420 --> 00:51:21,990 私たちは来週お会いしましょう​​。 1135 00:51:21,990 --> 00:51:24,140 >> [MUSIC - RAGGA TWINS、「BAD MAN」] 1136 00:51:24,140 --> 00:55:23,146