1 00:00:00,000 --> 00:00:03,493 >> [音楽再生] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD:私たちのビデオで Web開発のトピックに、 4 00:00:07,100 --> 00:00:10,560 我々は、の概念を述べました データベースに数回、右? 5 00:00:10,560 --> 00:00:12,700 あなたがしているそうデータベース からで、おそらくお馴染み 6 00:00:12,700 --> 00:00:15,780 Microsoft Excelを使用して言います またはGoogleスプレッドシート。 7 00:00:15,780 --> 00:00:20,650 これは、実際には組織的です テーブル、行、および列のセット。 8 00:00:20,650 --> 00:00:23,140 >> そして、データベースがどこにあります 当社のウェブサイトの店 9 00:00:23,140 --> 00:00:26,760 重要な情報 当社のウェブサイトのために正しく動作します。 10 00:00:26,760 --> 00:00:30,150 ここでも、本当に一般的な例 ユーザ名とパスワードを記憶しています 11 00:00:30,150 --> 00:00:32,824 データベースでは、ときにするように 当社のウェブサイトにログインし、 12 00:00:32,824 --> 00:00:36,690 データベースには、確認するために照会することができます そのユーザーがデータベースに存在する場合。 13 00:00:36,690 --> 00:00:39,260 そして、彼らは、それをチェックしている場合 そのパスワードが正しいです。 14 00:00:39,260 --> 00:00:43,420 そして、彼らのパスワードが正しければ、 その後、我々は彼らにどのようなページを与えることができます 15 00:00:43,420 --> 00:00:45,370 彼らが要求しています。 16 00:00:45,370 --> 00:00:48,590 >> だから、もう一度、おそらく精通しています ExcelやGoogleからのこの考えに 17 00:00:48,590 --> 00:00:49,430 スプレッドシート。 18 00:00:49,430 --> 00:00:52,980 我々は、データベースを持っています、 テーブル、行、および列。 19 00:00:52,980 --> 00:00:56,450 そして、それは本当に一種です 基本セットの 20 00:00:56,450 --> 00:00:58,470 ここでは、階層内訳の。 21 00:00:58,470 --> 00:00:59,800 そこでここでは、Excelのスプレッドシートです。 22 00:00:59,800 --> 00:01:02,640 そして、あなたは今まで、これを開いた場合 または他の同様のプログラム 23 00:01:02,640 --> 00:01:06,780 あなたはこれらがここにあることを知っています 1、2、3、4、5、6、7 rows--。 24 00:01:06,780 --> 00:01:08,760 これらは、列です。 25 00:01:08,760 --> 00:01:11,790 >> たぶんここでダウンして、あなたがかもしれないが ひどくmuch--この機能を使用しません 26 00:01:11,790 --> 00:01:15,370 私たちは持っているin--ズームう シートのこのアイデア。 27 00:01:15,370 --> 00:01:17,930 ので、多分これらのシート、場合 私は前後に交互に、 28 00:01:17,930 --> 00:01:21,600 異なるテーブルがあること 私のデータベースに存在します。 29 00:01:21,600 --> 00:01:25,210 そして、私たちはすべての例を続ける場合 途中、このデータベースの名前 30 00:01:25,210 --> 00:01:26,940 ブック1です。 31 00:01:26,940 --> 00:01:28,710 たぶん私は、ブック2とブック3を持っています。 32 00:01:28,710 --> 00:01:33,270 したがって、各Excelファイルであります データベース、各シートはテーブルであり、 33 00:01:33,270 --> 00:01:39,530 各テーブルの内側に私が持っています 行と列のこの考え。 34 00:01:39,530 --> 00:01:41,900 >> だから、どのように私はこのデータベースで動作しますか? 35 00:01:41,900 --> 00:01:43,630 どのように私はそれから情報を得るのですか? 36 00:01:43,630 --> 00:01:47,540 まあと呼ばれる言語がありますSQL-- 私は通常ちょうどSequel--をコールします 37 00:01:47,540 --> 00:01:50,010 それの略 構造化照会言語。 38 00:01:50,010 --> 00:01:52,981 それはプログラミング言語であり、 しかし、それはかなり限定されたプログラミングです 39 00:01:52,981 --> 00:01:53,480 言語。 40 00:01:53,480 --> 00:01:56,407 それは非常に他の人のようではありません 私たちが働いていること。 41 00:01:56,407 --> 00:01:58,240 しかし、この目的 プログラミング言語 42 00:01:58,240 --> 00:02:01,570 に、データベースを照会することです データベースの情報を尋ね、 43 00:02:01,570 --> 00:02:04,480 内の情報を検索 データベースなど。 44 00:02:04,480 --> 00:02:08,449 >> また、CS50--で、それは非常にです 共通のプラットフォームは、それは、MySQLと呼ばれています。 45 00:02:08,449 --> 00:02:10,600 それは我々がコースに使用するものです。 46 00:02:10,600 --> 00:02:12,880 これはオープンソースです 確立プラットフォーム 47 00:02:12,880 --> 00:02:16,732 いわゆるリレーショナルdatabase-- データベース、効果的。 48 00:02:16,732 --> 00:02:18,440 我々は、取得する必要はありません あまり詳細に 49 00:02:18,440 --> 00:02:20,930 何にリレーショナルデータベースです。 50 00:02:20,930 --> 00:02:24,650 しかし、SQL言語です 作業に非常に長け 51 00:02:24,650 --> 00:02:29,760 MySQLおよび他の類似と リレーショナルデータベースのスタイル。 52 00:02:29,760 --> 00:02:34,010 >> そして、多くのインストールの MySQLは何かが付属して 53 00:02:34,010 --> 00:02:37,760 これは、phpMyAdminのと呼ばれます グラフィカル・ユーザーであります 54 00:02:37,760 --> 00:02:40,970 そのGUI-- interface-- それはもう少し作ります 55 00:02:40,970 --> 00:02:44,410 実行するためのユーザーフレンドリーな データベースクエリ、 56 00:02:44,410 --> 00:02:48,980 データベースは、単に使用されていないため、 上級プログラマによって、右? 57 00:02:48,980 --> 00:02:51,510 時々あります これらの中小企業、 58 00:02:51,510 --> 00:02:53,900 彼らはに余裕がありません プログラマーのチームを雇います、 59 00:02:53,900 --> 00:02:56,700 彼らはまだ保存する必要があります データベース内の情報。 60 00:02:56,700 --> 00:02:59,300 >> phpMyAdminのような何か 誰かのために、それは非常に簡単になります 61 00:02:59,300 --> 00:03:03,630 誰に前にプログラムすることはありませんです ピックアップし、どのように精通 62 00:03:03,630 --> 00:03:07,710 データベースで動作するように。 63 00:03:07,710 --> 00:03:11,800 問題は、phpMyAdminは、一方で それは学習のための素晴らしいツールです 64 00:03:11,800 --> 00:03:14,850 データベースについては、マニュアルです。 65 00:03:14,850 --> 00:03:18,050 あなたがにログインする必要があるとしています それとコマンドと種類を実行します 66 00:03:18,050 --> 00:03:19,910 手動で物事。 67 00:03:19,910 --> 00:03:23,160 >> そして、私たちは私たちのから知っているよう PHPのWebプログラミングの例、 68 00:03:23,160 --> 00:03:26,550 手動で行うようになります 当社のウェブサイト上での事、 69 00:03:26,550 --> 00:03:30,970 私たちはダイナミック、アクティブな応答をしたい場合 ウェブサイトは、おそらくない最良の方法。 70 00:03:30,970 --> 00:03:33,980 我々は、への道を見つけたいです おそらく何らかの形でこれを自動化します。 71 00:03:33,980 --> 00:03:37,864 そして、SQLはこれを実行することが可能となります。 72 00:03:37,864 --> 00:03:39,780 だから我々はするつもりだとき SQLを使用した作業を開始、 73 00:03:39,780 --> 00:03:41,220 我々が最初に持っている必要があります で動作するデータベース。 74 00:03:41,220 --> 00:03:42,510 データベースを作成することです 何かあなたはおそらく 75 00:03:42,510 --> 00:03:45,350 ので、phpMyAdminの中で行います あなたは一度だけそれを行う必要があります 76 00:03:45,350 --> 00:03:49,690 そうするための構文 多くの方が簡単です。 77 00:03:49,690 --> 00:03:51,940 それはそれを行うには非常に簡単です グラフィック・ユーザ・インタフェースで 78 00:03:51,940 --> 00:03:53,520 コマンドとしてそれを入力するよりも。 79 00:03:53,520 --> 00:03:55,186 コマンドは少し面倒を取得することができます。 80 00:03:55,186 --> 00:03:58,889 同様に、表を作成することができます 同様にかなり面倒な取得します。 81 00:03:58,889 --> 00:04:01,930 データベースを作成するようなので、事 あなたがしているテーブルを作成します 82 00:04:01,930 --> 00:04:06,270 おそらく唯一のやろうとしてonce-- テーブルごとに一回、一回あたりのdatabase-- 83 00:04:06,270 --> 00:04:09,040 それはでそれを行うには、[OKです グラフィカルなインターフェイス。 84 00:04:09,040 --> 00:04:11,570 過程で テーブルを作成、あなた'LL 85 00:04:11,570 --> 00:04:14,840 また、すべてを指定する必要があります そのテーブルになります列。 86 00:04:14,840 --> 00:04:18,149 情報のどのような行い あなたがテーブルに保存したいですか? 87 00:04:18,149 --> 00:04:24,520 たぶん、ユーザーの名前と生年月日、 パスワード、ユーザID番号、そしておそらく 88 00:04:24,520 --> 00:04:26,170 都市と状態、右? 89 00:04:26,170 --> 00:04:30,080 >> そして、毎回のために私たちは、ユーザーを追加したいです データベースには、我々はすべての6つを取得したいです 90 00:04:30,080 --> 00:04:31,890 これらの情報の。 91 00:04:31,890 --> 00:04:34,840 そして、我々は追加することによってそれを行います テーブルへの行。 92 00:04:34,840 --> 00:04:37,800 だから、最初にデータベースを作成し、 その後、我々は、テーブルを作成します。 93 00:04:37,800 --> 00:04:40,100 作成の一環として、 テーブルは、我々が求められます 94 00:04:40,100 --> 00:04:44,280 すべての列を指定すること 私たちは、この表にしたいと思います。 95 00:04:44,280 --> 00:04:47,247 そして、我々はスタートとして追加します データベースへの情報 96 00:04:47,247 --> 00:04:49,580 およびデータベースの詳細照会 generally--追加するだけではありません、 97 00:04:49,580 --> 00:04:51,610 しかし、他のすべて、我々 我々が扱うことでしょうdo-- 98 00:04:51,610 --> 00:04:58,870 1であるテーブルの行を持ちます 全体のセットからユーザーの情報。 99 00:04:58,870 --> 00:05:03,210 >> だから、すべてのSQL列は可能です 特定のデータ型のデータを保持します。 100 00:05:03,210 --> 00:05:06,560 だから我々は一種のこれを解消しました PHPのデータ型の考え方、 101 00:05:06,560 --> 00:05:08,747 しかし、彼らは、SQLにここに戻っています。 102 00:05:08,747 --> 00:05:10,080 また、データ型がたくさんあり​​ます。 103 00:05:10,080 --> 00:05:13,420 ここではわずか20それらのだが、 それも、それらのすべてではありません。 104 00:05:13,420 --> 00:05:16,240 だから我々はINTs--のようなアイデアを持っています 我々は、おそらく知っていますIntegers-- 105 00:05:16,240 --> 00:05:17,760 この列は整数を保持することができます。 106 00:05:17,760 --> 00:05:21,077 そしてバリエーションがありますthereon-- SMALLINT、TINYINT、MEDIUMINT、BIGINT。 107 00:05:21,077 --> 00:05:22,660 多分、我々は常に4刺さを必要としません。 108 00:05:22,660 --> 00:05:26,800 多分私達は8バイトを必要とし、私たちは 整数に対するこれらの変動を使用することができます 109 00:05:26,800 --> 00:05:28,510 少しより多くのスペース効率的に。 110 00:05:28,510 --> 00:05:31,899 我々は、我々の小数を行うことができます 浮動小数点数を行うことができます。 111 00:05:31,899 --> 00:05:32,940 これらはかなり似ています。 112 00:05:32,940 --> 00:05:34,773 いくつかの違いがありますが、 あなたが希望する場合 113 00:05:34,773 --> 00:05:37,330 ルックアップするのが好き ガイドのSQL並べ替え、あなた 114 00:05:37,330 --> 00:05:40,670 何わずか見ることができます 違いは、それらの間にあります。 115 00:05:40,670 --> 00:05:43,250 >> 多分私達は、保存したいです 日付と時間の情報。 116 00:05:43,250 --> 00:05:47,047 多分、我々はを追跡しています ユーザーは、当社のウェブサイトに参加したとき、 117 00:05:47,047 --> 00:05:48,880 ので、多分私達がしたいです コラムを持っています 118 00:05:48,880 --> 00:05:52,820 日付時刻またはタイム・スタンプ ときに、ユーザーが実際に示しています 119 00:05:52,820 --> 00:05:54,130 サインアップ。 120 00:05:54,130 --> 00:05:56,132 私たちは、幾何学的形状とラインストリングを行うことができます。 121 00:05:56,132 --> 00:05:57,340 これは実際にはかなりクールです。 122 00:05:57,340 --> 00:06:01,410 私たちは外にマップすることができ 使用して地理的領域 123 00:06:01,410 --> 00:06:05,110 GISは面積をプロットするために調整します。 124 00:06:05,110 --> 00:06:08,580 だから、実際にその種を保存することができます SQL列の情報。 125 00:06:08,580 --> 00:06:11,390 >> TEXTは多分、テキストだけの巨大なブロブです。 126 00:06:11,390 --> 00:06:12,840 列挙型は、一種の興味深いです。 127 00:06:12,840 --> 00:06:16,080 彼らは実際にC言語で私たちにはない存在します 彼らはないですので、それらについての話 128 00:06:16,080 --> 00:06:19,110 ひどく一般的に、少なくともCS50を使用していました。 129 00:06:19,110 --> 00:06:22,680 しかし、それは、どの列挙データ型です 制限された値を保持することが可能です。 130 00:06:22,680 --> 00:06:25,940 >> ここでは本当に良い例は以下のようになります 7列挙型を作成します 131 00:06:25,940 --> 00:06:29,394 可能な値は、日曜日、月曜日、 火曜日、水曜日、木曜日、金曜日、 132 00:06:29,394 --> 00:06:30,060 土曜日、右? 133 00:06:30,060 --> 00:06:33,311 のデータ型デー 週は、存在しません。 134 00:06:33,311 --> 00:06:35,310 しかし、我々は作成することができます このような列挙型データ型 135 00:06:35,310 --> 00:06:39,400 その列は今まで保持できること これらの7つの可能な値のいずれか。 136 00:06:39,400 --> 00:06:44,300 我々は、すべて列挙しました 可能な値の。 137 00:06:44,300 --> 00:06:47,630 >> その後、我々は、CHARとVARCHARを持っています、 私は、これらの緑を着色しました 138 00:06:47,630 --> 00:06:49,505 私たちは、実際にしているので、 秒を取るつもり 139 00:06:49,505 --> 00:06:51,950 違いについて話をします これら二つのものの間で。 140 00:06:51,950 --> 00:06:55,780 だから、CHARとは異なり、C場所 CHARは、単一の文字でした、 141 00:06:55,780 --> 00:07:00,730 SQLのCHARはを参照 固定長文字列。 142 00:07:00,730 --> 00:07:02,620 そして、我々はこれを作成するとき コラム、実際に我々 143 00:07:02,620 --> 00:07:05,070 文字列の長さを指定することができます。 144 00:07:05,070 --> 00:07:08,080 >> したがって、この例では、 私たちは、CHAR(10)を言うかもしれません。 145 00:07:08,080 --> 00:07:11,190 それはすべてのことを意味し その列の要素 146 00:07:11,190 --> 00:07:13,910 情報の10バイトで構成されます。 147 00:07:13,910 --> 00:07:15,770 これ以上、劣らず。ん 148 00:07:15,770 --> 00:07:21,780 だから我々がしようとすると15に入れた場合 ビットまたは15文字要素 149 00:07:21,780 --> 00:07:25,340 または、この列に値、 我々は最初の10を取得しています。 150 00:07:25,340 --> 00:07:27,290 私たちは二つに置く場合 文字長の値、 151 00:07:27,290 --> 00:07:30,700 我々は2を持っているつもりです 文字、その後8ヌル刺さ。 152 00:07:30,700 --> 00:07:34,990 我々はそれよりも効率的になることは決してないだろう。 153 00:07:34,990 --> 00:07:37,727 >> VARCHARは、一種のようなものです 文字列の私たちの考え方 154 00:07:37,727 --> 00:07:39,560 我々は理解していること CからのやPHPからと。 155 00:07:39,560 --> 00:07:40,830 これは、可変長の文字列です。 156 00:07:40,830 --> 00:07:42,560 そして、あなたが作成したとき このコラム、あなただけ 157 00:07:42,560 --> 00:07:44,860 可能な最大の長さを指定します。 158 00:07:44,860 --> 00:07:49,065 ので、多分99、または一般的に255。 159 00:07:49,065 --> 00:07:50,440 それが最大の長さになります。 160 00:07:50,440 --> 00:07:52,890 そして、私たちは保存された場合 15文字の文字列、 161 00:07:52,890 --> 00:07:56,157 我々は多分、16を15バイトを使用します ヌルターミネータのバイト。 162 00:07:56,157 --> 00:07:57,990 私たちが保存されている場合 3文字の文字列、 163 00:07:57,990 --> 00:08:01,120 我々は、3つまたは​​4つのバイトを使用します。 164 00:08:01,120 --> 00:08:03,050 しかし、我々は完全な99を使用することはありません。 165 00:08:03,050 --> 00:08:05,190 >> では、なぜ我々は両方持っているでしょうか? 166 00:08:05,190 --> 00:08:08,210 さて、私たちはどのように把握する必要がある場合 長い何かがVARCHARであり、 167 00:08:08,210 --> 00:08:10,680 我々は、反復の種類に持っています 我々はC言語でやったようにそれを横切っ 168 00:08:10,680 --> 00:08:12,230 止まる場所と把握。 169 00:08:12,230 --> 00:08:15,920 私たちはそのすべてを知っている場合は一方 このコラムでは、多分、10バイトであります 170 00:08:15,920 --> 00:08:19,220 我々はその情報を知っている、私たちはジャンプすることができます 10バイト、10バイト、10バイト、10バイト、 171 00:08:19,220 --> 00:08:21,790 そして、常に見つけます 文字列の先頭。 172 00:08:21,790 --> 00:08:25,210 >> だから我々はいくつかを持っていること CHARとスペースを無駄にし、 173 00:08:25,210 --> 00:08:28,510 多分貿易があります より良いスピードを持っていることのオフ 174 00:08:28,510 --> 00:08:30,160 データベースをナビゲートインチ 175 00:08:30,160 --> 00:08:32,330 しかし、おそらく私たちが望みます VARCHARの柔軟性 176 00:08:32,330 --> 00:08:36,710 代わりに、私たちのCHAR場合having--の 255でしたが、私たちのユーザーのほとんど 177 00:08:36,710 --> 00:08:40,537 唯一の3つまたは​​4つのバイトを入力しました。 情報または3つまたは​​4つの価値 178 00:08:40,537 --> 00:08:41,870 情報の価値がある文字。 179 00:08:41,870 --> 00:08:44,324 >> しかし、一部のユーザーが使用していました 全255、多分 180 00:08:44,324 --> 00:08:45,990 VARCHARがより適切であろう。 181 00:08:45,990 --> 00:08:49,840 これはトレードオフの一種だし、 一般CS50の目的のために、 182 00:08:49,840 --> 00:08:54,107 あなたはについてはあまり心配する必要はありません あなたがCHARまたはVARCHARを使用するかどうか。 183 00:08:54,107 --> 00:08:57,190 しかし、現実の世界では、これらの事 これらの列のすべてのために重要ではありません 184 00:08:57,190 --> 00:08:59,300 実際の物理的なスペースを取ります。 185 00:08:59,300 --> 00:09:04,150 そして、中に物理的な空間、 現実の世界では、プレミアムで来ます。 186 00:09:04,150 --> 00:09:06,800 >> だから、一つの他の考慮事項 あなたは、テーブルを構築しているとき 187 00:09:06,800 --> 00:09:09,840 なる1つの列を選択することです 主キー何と呼ばれています。 188 00:09:09,840 --> 00:09:14,350 そして、主キー列であります すべての単一の値は一意です。 189 00:09:14,350 --> 00:09:19,980 そして、それは簡単にあなたができることを意味し 見ているだけから単一の行を選びます 190 00:09:19,980 --> 00:09:22,450 その行の主キーで。 191 00:09:22,450 --> 00:09:24,580 例えばそう、あなた 一般的に、ユーザーと、 192 00:09:24,580 --> 00:09:27,210 2人のユーザーたくない人 同じユーザID番号を持ちます。 193 00:09:27,210 --> 00:09:28,960 だから多分あなたは持っています 多くの情報、 194 00:09:28,960 --> 00:09:30,793 多分2人のユーザがすることができます 同じname--を持っています 195 00:09:30,793 --> 00:09:32,650 あなたはジョン・スミスとジョン・スミスを持っています。 196 00:09:32,650 --> 00:09:34,520 それは、必ずしも問題ではありません 複数の人がいるので、 197 00:09:34,520 --> 00:09:35,830 世界にジョン・スミスという名前。 198 00:09:35,830 --> 00:09:40,766 しかし、我々は唯一のユーザーID番​​号を持っています 10、一人のユーザID番号11、12、13。 199 00:09:40,766 --> 00:09:42,640 私たちは、二人のユーザーを持っていません 同じ番号を持ちます、 200 00:09:42,640 --> 00:09:46,010 そしてので、多分ユーザーID番​​号 良い主キーになります。 201 00:09:46,010 --> 00:09:48,610 >> 我々は、任意の重複を持っていません、 私たちは今、一意にすることができます 202 00:09:48,610 --> 00:09:52,619 ただ一つ一つの行を識別 その列を見て。 203 00:09:52,619 --> 00:09:55,410 実際に主キーを選択することができます その後のテーブル操作を行います 204 00:09:55,410 --> 00:09:59,710 あなたが活用できる​​ため、非常に簡単に 特定の行があるという事実 205 00:09:59,710 --> 00:10:02,720 一意であること、または特定の列 データベースやテーブルの 206 00:10:02,720 --> 00:10:06,030 選ぶのにユニークになります 特定の行アウト。 207 00:10:06,030 --> 00:10:08,790 >> また、関節の主要なを持つことができます あなたが機会を見つけることが重要な、 208 00:10:08,790 --> 00:10:11,720 ちょうどである、使用します その2列の組合せ 209 00:10:11,720 --> 00:10:13,280 一意であることが保証されています。 210 00:10:13,280 --> 00:10:16,410 だから、多分あなたは1を持っています ようとBSのコラム、 211 00:10:16,410 --> 00:10:19,290 一つだ1列、2、 三、しかし、あなたは今までよ 212 00:10:19,290 --> 00:10:23,660 単一A1、シングルを持っています A2などのように。 213 00:10:23,660 --> 00:10:28,980 しかし、あなたは、B2を持っているかもしれませんが、 C2、またはA1、A2、A3、A4。 214 00:10:28,980 --> 00:10:32,840 だから、複数のように、複数があるかもしれません 旅館、複数のものを、複数の補数、 215 00:10:32,840 --> 00:10:38,567 しかし、あなたは今まで持つことができます 単一A1、B2、C3、など。 216 00:10:38,567 --> 00:10:40,400 だから私が言ったように、SQLがあります プログラミング言語 217 00:10:40,400 --> 00:10:42,024 しかし、それはかなり限定された語彙を持っています。 218 00:10:42,024 --> 00:10:44,880 それはほど広大ではありません CとPHPと他の言語 219 00:10:44,880 --> 00:10:46,350 我々はもちろんで話すこと。 220 00:10:46,350 --> 00:10:49,960 それは、より冗長aは 私たちがしているものよりも言語 221 00:10:49,960 --> 00:10:52,789 この中での話に行きます このため、ビデオの映像、 222 00:10:52,789 --> 00:10:54,830 我々はについて話をするつもりです 4操作、我々 223 00:10:54,830 --> 00:10:55,720 テーブルの上に実行することができます。 224 00:10:55,720 --> 00:10:56,761 >> これ以上あります。 225 00:10:56,761 --> 00:10:58,730 私たちは、これ以上の操作を行うことができ、 しかし、我々の目的のために、 226 00:10:58,730 --> 00:11:02,250 我々は、一般的に使用してことになるだろう わずか4 operations--挿入、 227 00:11:02,250 --> 00:11:05,360 選択、更新、および削除。 228 00:11:05,360 --> 00:11:08,750 そして、あなたはおそらく直感的に推測することができます これらの事のすべての4つは、何をすべきか。 229 00:11:08,750 --> 00:11:12,520 しかし、我々はビットに行きますよ それぞれの詳細。 230 00:11:12,520 --> 00:11:15,780 >> この目的のためにそのように ビデオ、のと仮定しましょう 231 00:11:15,780 --> 00:11:18,870 我々は、次の2つを持っています 単一のデータベース内のテーブル。 232 00:11:18,870 --> 00:11:23,460 私たちは持っているユーザーと呼ばれるテーブルを持っています 4 columns-- ID番号、ユーザー名、 233 00:11:23,460 --> 00:11:25,350 パスワード、およびフルネーム。 234 00:11:25,350 --> 00:11:27,430 そして、我々は、第二​​を持っています 同じデータベース内のテーブル 235 00:11:27,430 --> 00:11:32,129 単に情報を格納と呼ばママ ユーザー名と母について。 236 00:11:32,129 --> 00:11:33,920 すべての実施例については、これ このビデオでは、我々はよ 237 00:11:33,920 --> 00:11:37,945 このデータベースを使用すると、 それに続いて更新されます。 238 00:11:37,945 --> 00:11:40,070 それでは、私たちがしたいとしましょう テーブルに情報を追加します。 239 00:11:40,070 --> 00:11:44,460 つまり、挿入操作が何をするかです。 240 00:11:44,460 --> 00:11:46,550 のすべてを説明するには これらのコマンドは、私は行きますよ 241 00:11:46,550 --> 00:11:48,860 あなたが使用する一般的な骨格を得ました。 242 00:11:48,860 --> 00:11:51,661 基本的には、クエリのため、 かなり似て行っています、 243 00:11:51,661 --> 00:11:54,660 私たちは変化することになるだろう 情報の若干異なる作品 244 00:11:54,660 --> 00:11:56,750 表と異なることを行います。 245 00:11:56,750 --> 00:11:59,200 >> だから、INSERT、スケルトンのための 種類のこのようになります。 246 00:11:59,200 --> 00:12:02,230 私たちは、に挿入します 特定のテーブル。 247 00:12:02,230 --> 00:12:05,290 その後、我々は開き括弧を持っています そして、列のリスト 248 00:12:05,290 --> 00:12:08,070 我々は値を挿入することを。 249 00:12:08,070 --> 00:12:10,974 閉じる括弧、 値は以下の、そしてその後 250 00:12:10,974 --> 00:12:13,390 再び、我々は値を一覧表示します 私たちはテーブルに載せていきたいと思います。 251 00:12:13,390 --> 00:12:15,950 >> このだから例 以下になります。 252 00:12:15,950 --> 00:12:19,170 私は、テーブルに挿入します ユーザー以下columns-- 253 00:12:19,170 --> 00:12:21,010 ユーザ名、パスワード、およびフルネーム。 254 00:12:21,010 --> 00:12:25,282 私が入れているので、新しい行 私たちがしていると、これらの3つの列で 255 00:12:25,282 --> 00:12:30,030 値に置くつもり ニューマン、USMAIL、およびニューマン。 256 00:12:30,030 --> 00:12:32,730 したがって、この場合には、私はよ 小文字ニューマンを置きます 257 00:12:32,730 --> 00:12:38,710 ユーザ名欄に、パスワード USMAIL、およびフルネーム資本N 258 00:12:38,710 --> 00:12:41,940 フルネーム欄にニューマン。 259 00:12:41,940 --> 00:12:44,240 >> だからここに何のデータベースです 前のように見えました。 260 00:12:44,240 --> 00:12:48,250 ここではどのようなユーザーテーブルが上です 我々はこれをした前に、トップのように見えました。 261 00:12:48,250 --> 00:12:50,760 我々はこれを実行した後、 クエリは、我々はこれを取得します。 262 00:12:50,760 --> 00:12:54,790 私たちはテーブルに新しい行を追加しました。 263 00:12:54,790 --> 00:12:56,810 しかし、この一つのことに気づきます 私は指定していないこと、 264 00:12:56,810 --> 00:12:59,880 何とか私は値を持っています 右ここでこの12である、のために。 265 00:12:59,880 --> 00:13:02,820 私は私がしたいとしませんでした そこにID番号を入れます。 266 00:13:02,820 --> 00:13:04,900 私は、ユーザ名を入れたいと思いました パスワード、フルネーム。 267 00:13:04,900 --> 00:13:06,440 そして、私はそれは大丈夫だ、ということでした。 268 00:13:06,440 --> 00:13:07,760 >> しかし、私はまた、この12を得ました。 269 00:13:07,760 --> 00:13:09,490 なぜ私はこの12を取得したのですか? 270 00:13:09,490 --> 00:13:12,904 まあ、それはことが判明 あなたが定義されている場合 271 00:13:12,904 --> 00:13:15,570 あなたのことを行っている列 通常は、主キー、 272 00:13:15,570 --> 00:13:16,510 私は、ID番号を言ったように。 273 00:13:16,510 --> 00:13:18,718 それは必ずしもありません ID番号であることを行って、 274 00:13:18,718 --> 00:13:22,380 それは、通常することをお勧めします 整数値のいくつかの並べ替えです。 275 00:13:22,380 --> 00:13:25,950 あなたは、phpMyAdminの中のオプションを持っています あなたは、データベースを作成しているとき 276 00:13:25,950 --> 00:13:31,130 または、あなたのテーブルには、それを設定するには 自動インクリメントとしてカラム。 277 00:13:31,130 --> 00:13:34,520 >> ときに、本当に良いアイデアどれ あなたは主キーで作業しています、 278 00:13:34,520 --> 00:13:39,330 あなたはすべての値をしたいので、 その列に一意です。 279 00:13:39,330 --> 00:13:43,310 そして、あなたが指定するのを忘れた場合 複数の人にとって、 280 00:13:43,310 --> 00:13:46,240 あなたは今どこに状況があります その列はもはやユニークません。 281 00:13:46,240 --> 00:13:50,200 あなたは、2つのブランクを持っていないので、あなたは何もすることができます 長い一意column--を識別 282 00:13:50,200 --> 00:13:54,150 または、あなたは、もはや一意にすることができません その列に基づいて行を識別します。 283 00:13:54,150 --> 00:13:57,010 それは、そのすべてを失ってしまいました 主キーとして値。 284 00:13:57,010 --> 00:14:02,010 >> だから明らかに私がやっていること ここでは、ユーザIDを設定されています 285 00:14:02,010 --> 00:14:07,790 自動インクリメントのカラムごとになるように 時間は私は、テーブルに情報を追加 286 00:14:07,790 --> 00:14:12,220 それは自動的に私を与えます 主キーの値。 287 00:14:12,220 --> 00:14:15,570 だから私はので、それを行うことを決して忘れないことができます データベースは、私のためにそれを行います。 288 00:14:15,570 --> 00:14:16,587 だから、ちょっとうれしいです。 289 00:14:16,587 --> 00:14:18,670 我々が取得する理由となるようです そこに12、私はしましたので、 290 00:14:18,670 --> 00:14:21,772 自動インクリメントまでその列を設定します。 291 00:14:21,772 --> 00:14:23,730 私は他の人を追加した場合 私が追加された場合には、13になるだろう 292 00:14:23,730 --> 00:14:27,890 他の誰かがそれがように14である、と思います。 293 00:14:27,890 --> 00:14:30,190 >> それでは、もう一つだけ挿入を行いましょう。 294 00:14:30,190 --> 00:14:34,530 私たちはで、ママのテーブルに挿入します 特に、ユーザ名と母親 295 00:14:34,530 --> 00:14:37,390 列、値 クレイマーとバブスクレイマー。 296 00:14:37,390 --> 00:14:39,140 そして、私たちは前にこれを持っていました。 297 00:14:39,140 --> 00:14:41,800 我々はそれを実行した後 SQLクエリは、我々はこれを持っています。 298 00:14:41,800 --> 00:14:47,290 私たちは、クレイマーとバブスを追加しました ママテーブルにクレーマー。 299 00:14:47,290 --> 00:14:48,350 >> だから、挿入です。 300 00:14:48,350 --> 00:14:51,850 SELECTは、私たちが抽出するために使用するものです テーブルの情報。 301 00:14:51,850 --> 00:14:54,390 だから、これは我々が取得する方法です データベースのうち、情報。 302 00:14:54,390 --> 00:14:59,589 だから、SELECTコマンドがあることを行っています 非常に頻繁にプログラミングで使用。 303 00:14:59,589 --> 00:15:02,130 一般的にはframework-- 一般的なスケルトンは次のようになります。 304 00:15:02,130 --> 00:15:06,550 から列のセットを選択します テーブル、次に場合 305 00:15:06,550 --> 00:15:11,090 あなたがcondition--を指定することができますか 私たちは通常、述語を呼んでいるもの、 306 00:15:11,090 --> 00:15:13,010 通常我々は、SQLで使用される用語です。 307 00:15:13,010 --> 00:15:16,490 >> しかし、それは基本的に何 特定の行はあなたが取得したいです。 308 00:15:16,490 --> 00:15:19,100 あなたがしたい場合は、代わりに取得します すべては、それを絞り込みます 309 00:15:19,100 --> 00:15:20,060 あなたがそれを行うだろう場所です。 310 00:15:20,060 --> 00:15:22,777 そして、必要に応じて、あなたもすることができます 特定の列での順序。 311 00:15:22,777 --> 00:15:25,860 だから、多分あなたはソートされたものを持っているしたいです アルファベット順に1列に基づいて、 312 00:15:25,860 --> 00:15:27,540 またはアルファベット別に基づきます。 313 00:15:27,540 --> 00:15:30,610 >> ここでも、WHEREおよびORDER BYオプションです。 314 00:15:30,610 --> 00:15:32,681 しかし、彼らはおそらくなるだろう 特にuseful-- 315 00:15:32,681 --> 00:15:34,680 WHEREに有用であろう あなたがないように絞り込みます 316 00:15:34,680 --> 00:15:37,460 バックデータベース全体を取得し、 それを処理する必要がある、あなただけの取得します 317 00:15:37,460 --> 00:15:39,300 あなたが気にすることを、それの作品。 318 00:15:39,300 --> 00:15:44,932 したがって、たとえば、私が選択することをお勧めします ユーザのID番号とフルネーム。 319 00:15:44,932 --> 00:15:46,140 それでは、これは、次のようになりますか? 320 00:15:46,140 --> 00:15:48,270 だからここに私のユーザー表です。 321 00:15:48,270 --> 00:15:51,080 私はID​​NUMを選択したいです ユーザーからのフルネーム。 322 00:15:51,080 --> 00:15:52,300 私は何を取得するつもりですか? 323 00:15:52,300 --> 00:15:53,580 私はこれを取得するつもりです。 324 00:15:53,580 --> 00:15:56,930 私はそれを絞り込むなかったので、私はよ すべての行のためのID番号を取得します 325 00:15:56,930 --> 00:16:00,850 私は完全に取得しています すべての行から名前を付けます。 326 00:16:00,850 --> 00:16:02,210 >> OK。 327 00:16:02,210 --> 00:16:05,640 私は、パスワードを選択したい場合はどう ユーザーからWHERE--ので、今 328 00:16:05,640 --> 00:16:10,370 私は条件を追加しています、predicate-- IDNUMは12未満です。 329 00:16:10,370 --> 00:16:13,660 だからここに私のデータベースには、再びですが、 私のユーザーテーブルトップ。 330 00:16:13,660 --> 00:16:17,030 私は私がしたい場合は取得するつもりです その情報を選択し、パスワード、 331 00:16:17,030 --> 00:16:21,550 ユーザIDまたはIDNUMは12未満である場合? 332 00:16:21,550 --> 00:16:24,910 私はこれを取得するつもりです 情報バック、右? 333 00:16:24,910 --> 00:16:29,170 それはあまり、IDNUMは10であることを起こります 12よりも、ID番号11 12よりも少ないです。 334 00:16:29,170 --> 00:16:32,160 私はそれらの行のためのパスワードを取得しています。 335 00:16:32,160 --> 00:16:33,914 それは私がを求めたものです。 336 00:16:33,914 --> 00:16:34,580 これはどうですか? 337 00:16:34,580 --> 00:16:39,170 私は何からスターを選択する場合 ユーザ名はジェリーに等しいママテーブル? 338 00:16:39,170 --> 00:16:43,780 [OK]を選択し星が特別です ワイルドカードの一種いわゆる 339 00:16:43,780 --> 00:16:45,670 私たちはすべてを取得するために使用すること。 340 00:16:45,670 --> 00:16:48,620 そこで、彼らは選択言っています これは、カンマ母のユーザ名 341 00:16:48,620 --> 00:16:51,060 だけであることを起こっ この表の2列、 342 00:16:51,060 --> 00:16:53,260 私は星を選択することができます そして、すべてを取得 343 00:16:53,260 --> 00:16:55,030 ユーザ名はジェリーに等しいです。 344 00:16:55,030 --> 00:16:59,380 そしてそうそれは私が得るだろうものです 私は、その特定のクエリを行った場合。 345 00:16:59,380 --> 00:17:01,810 >> さて、データベースがあります 彼らができるので素晴らしいです 346 00:17:01,810 --> 00:17:06,074 私たちは、おそらく情報を整理します 私たちよりもより効率的にビット 347 00:17:06,074 --> 00:17:06,740 そうでない場合があります。 348 00:17:06,740 --> 00:17:10,240 私たちは必ずしも保存しないでください 情報のすべての関連作品 349 00:17:10,240 --> 00:17:12,230 同じテーブル内のユーザーに関する。 350 00:17:12,230 --> 00:17:13,730 私たちは、そこに2つのテーブルを持っていました。 351 00:17:13,730 --> 00:17:15,734 >> 私たちは、格納する必要があります みんなの母親の名前、 352 00:17:15,734 --> 00:17:18,900 そして多分私達は、社会保障を持っていません 数は、我々は彼らの誕生日を持っています。 353 00:17:18,900 --> 00:17:21,819 それは必ずしも必要はありません 同じテーブルにあるように。 354 00:17:21,819 --> 00:17:25,339 限り、我々が定義することができますように tables--間の関係 355 00:17:25,339 --> 00:17:28,440 それはどこだとリレーショナル データベースの用語は、一種の来ます 356 00:17:28,440 --> 00:17:32,130 play--限り、我々が定義することができますように テーブル間の関係、 357 00:17:32,130 --> 00:17:35,545 我々は一種の区分することができます または抽象的なものにせよ、 358 00:17:35,545 --> 00:17:37,670 我々は持っている場所 本当に重要な情報 359 00:17:37,670 --> 00:17:39,270 我々は、ユーザのテーブルに気。 360 00:17:39,270 --> 00:17:43,220 そして、我々は、補助的な情報を持っています 他のテーブルや追加情報 361 00:17:43,220 --> 00:17:48,260 私たちは主に戻って接続できること 特定の方法でユーザのテーブル。 362 00:17:48,260 --> 00:17:52,200 >> そこでここでは、この2つのテーブルを持っていますが、 それらの間の関係があり、 363 00:17:52,200 --> 00:17:53,010 右? 364 00:17:53,010 --> 00:17:55,070 これは、ユーザ名のように思えます 何かあるかもしれません 365 00:17:55,070 --> 00:17:59,909 それは間で共通に存在します これらの2つの異なるテーブル。 366 00:17:59,909 --> 00:18:01,700 だから我々が今持っているものならば 状況どこ 367 00:18:01,700 --> 00:18:06,046 からユーザーのフルネームを取得したいです ユーザーの表、および母親の 368 00:18:06,046 --> 00:18:07,170 母テーブルから名前は? 369 00:18:07,170 --> 00:18:10,960 我々は、取得する方法を持っていません それは右、スタンドとしてそれ? 370 00:18:10,960 --> 00:18:17,790 含まれている単一のテーブルはありません フルネームと母親の名前の両方。 371 00:18:17,790 --> 00:18:20,400 私たちは、そのオプションを持っていません 我々はこれまでに見てきたものから。 372 00:18:20,400 --> 00:18:22,950 >> そして、私たちは導入する必要があり JOINのアイデア。 373 00:18:22,950 --> 00:18:24,857 そして、JOINを、おそらくあります 最もcomplex-- 374 00:18:24,857 --> 00:18:27,940 それは本当に、非常に複雑な操作です 我々は、ビデオでは約話をするつもりです。 375 00:18:27,940 --> 00:18:30,040 彼らは、少し複雑です しかし、あなたはそれのこつを得る一回、 376 00:18:30,040 --> 00:18:31,248 彼らは実際にはそれほど悪くはありません。 377 00:18:31,248 --> 00:18:32,820 それはちょうど、SELECTの特殊なケースです。 378 00:18:32,820 --> 00:18:37,120 私たちは、のセットを選択するつもりです 参加表の列 379 00:18:37,120 --> 00:18:40,650 いくつかの述語上の第二のテーブルです。 380 00:18:40,650 --> 00:18:45,340 >> この場合、this--のようにそれについて考えます 表1は、ここの上に1円です 381 00:18:45,340 --> 00:18:47,530 表2は、ここを介して他のサークルです。 382 00:18:47,530 --> 00:18:49,410 そして、その述語部分 中央では、です 383 00:18:49,410 --> 00:18:51,701 一種のあなたが考える場合のように ベン図などについて、どのような 384 00:18:51,701 --> 00:18:52,670 彼らが共通しているのですか? 385 00:18:52,670 --> 00:18:55,960 我々は、これら2つのテーブルをリンクします 彼らが共通して持っているものに基づいて、 386 00:18:55,960 --> 00:19:01,230 そしてこの仮想テーブルを作成 それは、2つの合併です。 387 00:19:01,230 --> 00:19:03,480 だから我々は、これを参照してくださいよ 例と多分それがお手伝いします 388 00:19:03,480 --> 00:19:04,521 少しそれをオフにします。 389 00:19:04,521 --> 00:19:09,260 だから、多分あなたは選択したいです user.fullnameとmoms.mother 390 00:19:09,260 --> 00:19:13,220 に参加しているユーザからの あらゆる状況でママ表 391 00:19:13,220 --> 00:19:16,790 ここで、ユーザー名の欄 それらの間で同じです。 392 00:19:16,790 --> 00:19:19,240 そして、これは新しいです ここでは、構文、このユーザー。 393 00:19:19,240 --> 00:19:20,460 そして、ママ.. 394 00:19:20,460 --> 00:19:26,697 私は複数のテーブルをやっている場合 一緒に、私はテーブルを指定することができます。 395 00:19:26,697 --> 00:19:29,530 私は特定の上で区別することができます その上そこに非常に下部にあります。 396 00:19:29,530 --> 00:19:33,220 私はユーザー名を区別することができます ユーザー表の列 397 00:19:33,220 --> 00:19:36,010 のユーザ名欄から otherwise--あるお母さんテーブル、 398 00:19:36,010 --> 00:19:38,070 私たちはユーザ名が等しいと言ったら 本当にいないユーザ名、 399 00:19:38,070 --> 00:19:38,970 何の意味。 400 00:19:38,970 --> 00:19:41,440 我々は、彼らが一致する場所にそれをやってみたいです。 401 00:19:41,440 --> 00:19:46,080 >> だから私は、テーブルと指定することができます 状況の場合は列名 402 00:19:46,080 --> 00:19:48,370 どこにそれが不明確になります 私は何を話しています。 403 00:19:48,370 --> 00:19:51,880 それは私がやっているすべてですので、私はそこにあります この表から、このコラムを言って、 404 00:19:51,880 --> 00:19:54,020 そして、非常に明示的です。 405 00:19:54,020 --> 00:19:56,810 だからもう一度、私が選択しています フルネームと母親の名前 406 00:19:56,810 --> 00:20:00,950 一緒に連結されたユーザテーブルから あらゆる状況でママテーブル付き 407 00:20:00,950 --> 00:20:05,960 ここで、彼らはそのcolumn--を共有します 彼らは、そのユーザ名の概念を共有しています。 408 00:20:05,960 --> 00:20:08,580 >> そこでここでは前に持っていたテーブルがあります。 409 00:20:08,580 --> 00:20:12,210 これは私たちの状態であり、 それが今存在するデータベース。 410 00:20:12,210 --> 00:20:16,390 我々が抽出している情報 これは、から始めることです。 411 00:20:16,390 --> 00:20:19,820 これは、我々が行っている新しいテーブルです 作成するために一緒にこれらを組み合わせます。 412 00:20:19,820 --> 00:20:23,585 そして、我々は強調表示していない気付きます ユーザーの表でニューマンの行、 413 00:20:23,585 --> 00:20:25,960 私たちは強調表示していません ママ・テーブルのクレーマーの行 414 00:20:25,960 --> 00:20:31,250 どちらもが内に存在するため 両方が両方のテーブルにsets--。 415 00:20:31,250 --> 00:20:36,260 >> 共通する情報のみ それらの間にジェリーは両方のテーブルにあります 416 00:20:36,260 --> 00:20:39,100 そして、gcostanzaは両方のテーブルにあります。 417 00:20:39,100 --> 00:20:42,620 だから私たちは、SQLを実行したときに、JOIN、私たち get--、我々はこれを取得、実際にやって。 418 00:20:42,620 --> 00:20:44,830 これは一時的な変数のようなものです。 419 00:20:44,830 --> 00:20:47,330 それは仮定のようなものです 二つのテーブルの合併。 420 00:20:47,330 --> 00:20:49,930 私たちは、実際に何かを得ます このように、ここで 421 00:20:49,930 --> 00:20:54,730 私たちは、上のテーブルをマージしました 彼らに共通している情報。 422 00:20:54,730 --> 00:20:58,334 >> だからusers.usernameに気付きます そして、、列をmoms.username 423 00:20:58,334 --> 00:20:59,250 それはまったく同じです。 424 00:20:59,250 --> 00:21:01,820 それは、その情報でした ユーザーから一貫していました 425 00:21:01,820 --> 00:21:02,890 テーブルとママのテーブル。 426 00:21:02,890 --> 00:21:04,270 そして、私たちはそれらを一緒にマージされました。 427 00:21:04,270 --> 00:21:06,919 我々は彼ので、クレイマーを破棄しました usersテーブルに存在しませんでした、 428 00:21:06,919 --> 00:21:09,710 私たちはので、ニューマンを破棄しました 彼はママのテーブルに存在しませんでした。 429 00:21:09,710 --> 00:21:16,450 だから、これは架空の合併であり、 SELECTのJOIN操作を使用して。 430 00:21:16,450 --> 00:21:21,250 >> そして、我々が探していました ユーザーのフルネームとユーザの母親、 431 00:21:21,250 --> 00:21:24,999 そしてこれはその情報です 我々は、全体的なクエリからになるだろう 432 00:21:24,999 --> 00:21:26,040 私たちは、SELECTで作られています。 433 00:21:26,040 --> 00:21:28,873 だから、私たちは一緒のテーブルに参加しました 我々は、これらの2つの列が抽出され、 434 00:21:28,873 --> 00:21:31,610 ので、それは我々が得ることになるものです。 435 00:21:31,610 --> 00:21:33,370 しかし、SQLは複雑のようなものを結合します。 436 00:21:33,370 --> 00:21:36,770 おそらく、あまりにも多く、それらをしないだろう、 ちょうど骨格のいくつかのアイデアを持っています 437 00:21:36,770 --> 00:21:41,992 次の2つをマージするために使用することができること 一緒にテーブル、あなたがする必要がある場合。 438 00:21:41,992 --> 00:21:43,700 最後の二つがあります ビット単純な私は約束します。 439 00:21:43,700 --> 00:21:48,040 だから更新、我々は、UPDATEを使用することができます 表の情報を変更します。 440 00:21:48,040 --> 00:21:53,880 一般的な形式は、いくつかのアップデートです テーブルには、いくつかの値にいくつかの列を設定します 441 00:21:53,880 --> 00:21:55,540 一部の述語は満足です。 442 00:21:55,540 --> 00:21:57,850 したがって、たとえば、私たちはお勧めします ユーザーテーブルを更新します 443 00:21:57,850 --> 00:22:04,400 そして、矢田にパスワードを設定します ID番号が10である矢田、。 444 00:22:04,400 --> 00:22:06,400 >> したがって、この場合には、我々はしています ユーザーテーブルを更新。 445 00:22:06,400 --> 00:22:08,275 ID番号は10です そこの最初の行、 446 00:22:08,275 --> 00:22:10,690 我々は更新したいです 矢田の矢田へのパスワード。 447 00:22:10,690 --> 00:22:12,170 そして、そのためには何が起こるかです。 448 00:22:12,170 --> 00:22:13,628 それは右、非常に簡単ですか! 449 00:22:13,628 --> 00:22:17,990 それはちょうど非常に簡単です テーブルへの変更。 450 00:22:17,990 --> 00:22:22,250 >> 我々が使用する操作がされているDELETE テーブルから情報を削除します。 451 00:22:22,250 --> 00:22:24,817 WHEREテーブルFROM DELETE いくつかの述語が満たされます。 452 00:22:24,817 --> 00:22:26,900 私たちは、から削除します 例えば、ユーザーテーブル 453 00:22:26,900 --> 00:22:28,254 ここで、usernameはニューマンです。 454 00:22:28,254 --> 00:22:31,420 あなたは、おそらくに何が起こっているのかを推測することができます 我々はそのSQLを実行した後に、ここで起こります 455 00:22:31,420 --> 00:22:35,790 クエリは、ニューマンがテーブルから消えています。 456 00:22:35,790 --> 00:22:40,460 >> 私が言ったように、すべてのこれらの操作、 phpMyAdminの中で行うことは非常に簡単です。 457 00:22:40,460 --> 00:22:43,020 それは非常にユーザーフレンドリーなインターフェイスです。 458 00:22:43,020 --> 00:22:45,930 しかし、それは手作業を必要としません。 459 00:22:45,930 --> 00:22:47,840 我々は、手動努力を採用する必要はありません。 460 00:22:47,840 --> 00:22:51,280 我々は我々のプログラムにしたいです 私たちのためにこれを行うには、右? 461 00:22:51,280 --> 00:22:53,190 だから我々は何をしたいかもしれません このプログラムで。 462 00:22:53,190 --> 00:22:56,410 私たちは、SQLを組み込みたいとしてい 私たちのためにこれを行うには、何か他のもの。 463 00:22:56,410 --> 00:23:02,710 >> しかし、私たちはそのことができます何を見てきました 私たちは、プログラムに何かを行うには? 464 00:23:02,710 --> 00:23:03,690 我々は右、PHPを見てきましたか? 465 00:23:03,690 --> 00:23:05,760 これは、いくつかを紹介します 私たちのプログラムに活力。 466 00:23:05,760 --> 00:23:10,430 それで幸いにも、SQLおよび PHPは一緒に非常にうまく再生されます。 467 00:23:10,430 --> 00:23:13,230 PHPの関数があります 使用することができると呼ばれるクエリ。 468 00:23:13,230 --> 00:23:15,870 そして、あなたはのように渡すことができます パラメータまたは引数 469 00:23:15,870 --> 00:23:19,210 そのSQLクエリを照会します あなたが実行したいと思います。 470 00:23:19,210 --> 00:23:23,250 そして、PHPはあなたに代わってそれを行います。 471 00:23:23,250 --> 00:23:25,564 >> だから、接続した後に PHPを使用してデータベースに、 472 00:23:25,564 --> 00:23:26,980 これを行う2原色があります。 473 00:23:26,980 --> 00:23:29,230 MySQLiをと呼ばれるものがあります そして、PDOと呼ばれるもの。 474 00:23:29,230 --> 00:23:31,063 私たちは巨大に行くことはありません そこ量のディテール。 475 00:23:31,063 --> 00:23:32,957 CS50では、PDOを使用しています。 476 00:23:32,957 --> 00:23:34,790 あなたが接続した後 あなたのデータベースに、あなた 477 00:23:34,790 --> 00:23:40,980 その後、クエリをあなたのデータベースを作ることができます 引数としてクエリを渡すこと 478 00:23:40,980 --> 00:23:42,730 PHP関数に。 479 00:23:42,730 --> 00:23:46,460 あなたはそれを行うときに、あなたが保存します 結果は連想配列に設定してください。 480 00:23:46,460 --> 00:23:50,290 >> そして、我々はで動作する方法を知っています PHPの連想配列。 481 00:23:50,290 --> 00:23:52,630 だから私は何かを言うかもしれません 以下のようなthis-- $ results-- 482 00:23:52,630 --> 00:23:55,470 これはPHP--でクエリに等しいです。 483 00:23:55,470 --> 00:23:57,660 そして、内部の その引数のクエリ機能 484 00:23:57,660 --> 00:24:00,130 私は、クエリを実行するために渡していること それは、SQLのように見えます。 485 00:24:00,130 --> 00:24:01,160 そして、実際にSQLがあること。 486 00:24:01,160 --> 00:24:05,700 それは私がすることをクエリ文字列です 私のデータベース上で実行したいです。 487 00:24:05,700 --> 00:24:09,250 >> だから赤で、これはPHPのです。 488 00:24:09,250 --> 00:24:11,890 これは、私はSQLです することによってPHPに統合 489 00:24:11,890 --> 00:24:15,020 それクエリ関数の引数。 490 00:24:15,020 --> 00:24:19,640 私はからフルネームを選択します ID番号は10に等しく、ユーザー。 491 00:24:19,640 --> 00:24:22,560 そして多分私はそれをやった後、 私はこのような何かを言うかもしれません。 492 00:24:22,560 --> 00:24:25,550 私はプリントアウトしたいです にログインするためのメッセージをありがとう。 493 00:24:25,550 --> 00:24:32,530 >> そして、私はそれが私が欲しいinterpolate--たい $結果のフルネームを補間します。 494 00:24:32,530 --> 00:24:36,280 そしてそうそれは私がそれとどのように動作するかです 私が戻った連想配列。 495 00:24:36,280 --> 00:24:39,730 $結果フルネームだろう 基本的にプリントアウトしてしまいます、 496 00:24:39,730 --> 00:24:42,870 ログインするためのおかげで、ジェリー・サインフェルド。 497 00:24:42,870 --> 00:24:46,570 それは完全な名前でした どこIDNUMは10に等しいです。 498 00:24:46,570 --> 00:24:48,850 >> 私がやっているので、すべての 私は保存さnow--よさ 499 00:24:48,850 --> 00:24:52,780 私のクエリは、私のクエリの結果 連想配列で、その結果、 500 00:24:52,780 --> 00:24:56,330 そして、フルネームはの名前です 私が得ていた列。 501 00:24:56,330 --> 00:25:01,010 だから、結果に私の鍵です 私が欲しい連想配列。 502 00:25:01,010 --> 00:25:05,930 だから、おかげでログインするための、$結果、 フルネームは、プリントアウトされます固執します 503 00:25:05,930 --> 00:25:08,654 右カーリーそれらの間で ブレース、ジェリー・サインフェルド。 504 00:25:08,654 --> 00:25:11,820 そして、私はメッセージを出力したいですよ ジェリー・サインフェルドにログインしていただきありがとうございます。 505 00:25:11,820 --> 00:25:16,652 >> 今、私たちは、おそらくハードにしたくありません その中のようなコードのもの、右か? 506 00:25:16,652 --> 00:25:19,860 我々は、印刷のような何かをしたいかもしれません 我々は代わりに、おそらくすることができ、F、 507 00:25:19,860 --> 00:25:22,443 異なる情報を収集し、 または多分クエリプロセスを持っています 508 00:25:22,443 --> 00:25:23,370 異なる情報。 509 00:25:23,370 --> 00:25:27,920 だから、クエリ、クエリ機能を持っています 置換の種類のこの概念 510 00:25:27,920 --> 00:25:32,310 パーセントのfを印刷することが非常に似て パーセントcは、疑問符です。 511 00:25:32,310 --> 00:25:34,290 >> そして、私たちは質問を使用することができます 非常に類似したマーク 512 00:25:34,290 --> 00:25:38,400 代替変数にfを印刷します。 513 00:25:38,400 --> 00:25:44,120 だから、多分あなたのユーザーが以前に記録され、 あなたは自分のユーザーID番​​号を保存しました 514 00:25:44,120 --> 00:25:51,710 PHPスーパーの$ _SESSIONで キーIDのグローバル。 515 00:25:51,710 --> 00:25:55,947 ので、多分彼らはログインした後、 あなたは、IDが10に等しい$ _SESSIONを設定 516 00:25:55,947 --> 00:25:58,280 例から外挿する 私達はちょうど秒前に見ました。 517 00:25:58,280 --> 00:26:01,960 >> そして、私たちが実際に実行したとき これは、今の結果を照会 518 00:26:01,960 --> 00:26:08,440 それは10のプラグイン、または何だろう $ _SESSION ID値です。 519 00:26:08,440 --> 00:26:10,790 そしてそうそれは私たちがすることができます もう少し動的なもの。 520 00:26:10,790 --> 00:26:12,699 我々はハードもはやで物事をコーディングしていません。 521 00:26:12,699 --> 00:26:14,490 我々は情報を保存しています どこかで、その後、 522 00:26:14,490 --> 00:26:18,924 我々は再びその情報を使用することができます ソートの私たちが何をしたいのか一般化、 523 00:26:18,924 --> 00:26:21,090 ちょうどプラグインと変更を 私達のページの動作 524 00:26:21,090 --> 00:26:26,489 どのようなユーザのID番号に基づいて 彼らがログインした後、実際にです。 525 00:26:26,489 --> 00:26:28,530 これは、しかし、ことも可能です、 あなたの結果が設定されていること 526 00:26:28,530 --> 00:26:30,840 複数の行で構成されることがあります。 527 00:26:30,840 --> 00:26:33,990 その場合、あなたが持っています arrays--の配列 528 00:26:33,990 --> 00:26:35,334 連想配列の配列。 529 00:26:35,334 --> 00:26:37,000 そして、あなたはそれを反復処理する必要があります。 530 00:26:37,000 --> 00:26:41,950 そして、我々は反復処理する方法を知っています PHPの配列を介して、右か? 531 00:26:41,950 --> 00:26:45,600 そこでここでは、おそらく最もです 我々はこれまでに見てきた複雑なもの。 532 00:26:45,600 --> 00:26:49,640 これは、実際に統合します 一緒に3つの言語。 533 00:26:49,640 --> 00:26:52,920 >> ここでは赤で、これはいくつかのHTMLです。 534 00:26:52,920 --> 00:26:56,872 私は明らかにこれはstarting--よ 私が持っているいくつかのHTMLスニペット。 535 00:26:56,872 --> 00:26:59,580 私は新しい段落を開始しています テレビのサインフェルドのお母さんは言います。 536 00:26:59,580 --> 00:27:02,350 そして、その直後 私はテーブルを始めています。 537 00:27:02,350 --> 00:27:06,060 そしてその後、私 いくつかのPHPを持って、右か? 538 00:27:06,060 --> 00:27:08,229 私はそこで、このPHPコードのすべてを持っています。 539 00:27:08,229 --> 00:27:09,645 私は明らかにクエリを作るつもりです。 540 00:27:09,645 --> 00:27:14,180 そして、クエリを作るために、私はするつもりです ママから選択した母親を使用すること。 541 00:27:14,180 --> 00:27:15,970 >> だから、これはgetting--これはSQLです。 542 00:27:15,970 --> 00:27:17,300 だから、青はSQLです。 543 00:27:17,300 --> 00:27:19,680 我々は前に見た第二の赤は、HTMLました。 544 00:27:19,680 --> 00:27:21,360 そして、ここで緑のは、PHPです。 545 00:27:21,360 --> 00:27:23,400 だから私は、クエリを作ってるんです 私のデータベースに、私はよ 546 00:27:23,400 --> 00:27:26,040 すべてを選択 ママ・テーブルの母親。 547 00:27:26,040 --> 00:27:30,710 ただ特定に絞り込んはありません 行は、私はそれらのすべてのために求めています。 548 00:27:30,710 --> 00:27:33,290 >> 結果がある場合、私はチェック 偽等しい等しくありません。 549 00:27:33,290 --> 00:27:37,410 これは、単にソートチェックの私の方法です 結果がヌルに等しくないのならば、 550 00:27:37,410 --> 00:27:40,260 我々は、例えばCを参照してくださいだろうと。 551 00:27:40,260 --> 00:27:44,000 基本的に、これはただ作るためにチェックしています それは実際に戻ってデータを持っていることを確認してください。 552 00:27:44,000 --> 00:27:47,041 私は印刷を開始する必要はありませんので データ外に私はすべてのデータを取得できませんでした場合。 553 00:27:47,041 --> 00:27:50,690 そして、その結果として、各結果を得るために PHPからのforeach構文は、すべて私がやっています 554 00:27:50,690 --> 00:27:53,399 $結果母親をプリントアウトされます。 555 00:27:53,399 --> 00:27:55,940 そして、私はセットを取得するつもりです each--の母親のすべての 556 00:27:55,940 --> 00:27:59,980 それは連想配列です arrays--と私はプリントアウトしています 557 00:27:59,980 --> 00:28:03,649 テーブルの独自の行として各1。 558 00:28:03,649 --> 00:28:05,690 そして、それは本当にきれいです 多くのすべてのことにあります。 559 00:28:05,690 --> 00:28:07,750 私は少しあります知っています ビットは、ここで起こっ 560 00:28:07,750 --> 00:28:13,210 の配列と、この最後の例で 連想配列の配列をarrays--。 561 00:28:13,210 --> 00:28:17,340 しかし、それは本当にただ沸騰ん ダウンクエリを作るためのSQLで、 562 00:28:17,340 --> 00:28:21,102 我々はすでにした後、通常の選択 テーブルに情報を入れて、 563 00:28:21,102 --> 00:28:22,310 して、それを引き抜きます。 564 00:28:22,310 --> 00:28:25,710 >> そして、これは我々がそれを引くことになるであり、 この特定のケースでアウト。 565 00:28:25,710 --> 00:28:31,120 私たちは、個々のすべてを抽出することになります お母さんテーブルから母親。 566 00:28:31,120 --> 00:28:35,970 我々は彼らの全体のセットを持って、私たち 反復処理し、プリントアウトしたいです 567 00:28:35,970 --> 00:28:37,630 それぞれ。 568 00:28:37,630 --> 00:28:40,510 だから、再び、これはおそらくです 最も複雑な例 569 00:28:40,510 --> 00:28:44,510 私たちは3を混合しているので、我々が見てきました 異なる言語一緒に、右か? 570 00:28:44,510 --> 00:28:50,100 >> 繰り返しますが、私たちは赤でここにHTMLを持っています、 青で、ここでいくつかのSQLを混合し、 571 00:28:50,100 --> 00:28:52,049 緑の中のいくつかのPHPと混合。 572 00:28:52,049 --> 00:28:53,840 しかし、これらのすべてがプレイ うまく一緒に、それはです 573 00:28:53,840 --> 00:28:57,060 開発だけの問題 良い習慣あなたが得ることができるように 574 00:28:57,060 --> 00:28:58,780 彼らは、あなたが望むように一緒に動作するように。 575 00:28:58,780 --> 00:29:03,790 本当にそれを行うための唯一の方法 、練習練習、練習することです。 576 00:29:03,790 --> 00:29:06,740 私はダグロイドだけど、これはCS50です。 577 00:29:06,740 --> 00:29:08,647