[Powered by Google Translate] [SQL] [クリストファーBARTHOLOMEW] [ハーバード大学] [これはCS50 IS] [CS50テレビ] だから、プログラマが保存および整理するためのツールと​​してデータベースを使用する テーブル内の永続データ。 これは、データがハードドライブなどの不揮発性の中央値に格納されていることを意味します とコンピュータの電源がオフのときでも、データはそのまま残っています。 そして、プログラマーとして、私たちのプログラムは、そのような保管などのシナリオでデータベースを利用する 在庫を見上げて、Webフォームからユーザー情報、 やサイトによっては表示内容に関する情報を更新。 しかし、どのように我々は、実際には、私たちのデータベースと対話ん あるいは我々は、読んで保存、削除するために使用するのですか そして、これらのデータベーステーブル内に我々のデータを更新する? よく、答えは、我々はデータベース言語の特殊なタイプを使用するということです それは私達のデータベーステーブルと直接対話します。 それの名前は、クエリ言語を構造化されている、 [のStructured Query Language] または私はSQLなどを参照してください。 さて、[SE-QUEL]、またはSQL、プログラミング言語ではありません その代わりに、それはコマンドの標準セットを提供する言語だ データベース管理システムの様々なデータを取得して操作する。 CS50の目的のために、私たちは4つの基本的なコマンドをあげてみたいと思います: 選択、挿入、更新、および削除します。 さらに、我々は、phpMyAdminのと呼ばれるデータベースのWebインターフェイスを利用します その我々のSQL文を記述するアプライアンスにインストールされている。 だから、あなたは、これらのコマンドを覚えやすくするために、 私は我々のシナリオを支援するために棚にいくつかのカップケーキを持ってきた。 あなたはケーキのデータベースを持っていると言う、 あなたは、あなたのカップケーキに関するすべての情報を格納する場所。 今では、データベースは多数の表を含めることができます とテーブル自体は、多くの列を含めることができます。 私たちのカップケーキのデータベースの内部では、まずcupcake_cupboardと呼ばれるテーブルを持っています。 このテーブルは、カップケーキに関するすべての情報を格納するために使用されます それはあなたの食器棚に、よく、されています。 あなたのテーブル内にある列はカップケーキの属性を表します。 たとえば、cupcake_cupboardのカラムです ケーキのID、CakeType、CakeColor、とCakeIsNice。 このブール型指定された列は、ケーキはニースであるか否かを決定するために使用されます。 我々は、select文を書くことから始めるつもりです。 SELECTステートメントは、特定のデータベーステーブルのデータを取得するために使用されています。 このシナリオでは、すべてを知りたい 私達の食器棚に存在するすべてのカップケーキ約。 これを行うための構文は、 "選択"スペーススター、または*、宇宙から宇宙私達のテーブルです cupcake_cupboardはどれですか。 先に進み、それを実行してみましょう。 我々が見ることができるように、これらは私たちの食器棚にすべてのカップケーキです。 それは*を注意することが重要だ、またはアスタリスクは、ワイルドカード文字である それはいくつかのテーブルのすべての列の集まりを意味する。 通常、我々は、特定の列または列にアクセスすることができます 実際の列名で*を置き換えることによって。 我々はすべて、複数の列をしたいが、そうでなかったら、私達はこれを達成することができます コンマで各列を区切る列名を書き込むことにより、。 たとえば、唯一cupcake_cupboardテーブル内CakeIdとCakeTypeを取得してみましょう。 これを行うための構文は次のとおりです。SELECTスペースCakeIDのコンマ 私たちのテーブルからCakeTypeスペース、cupcake_cupboard。 先に進み、これを実行してみましょう。 そしてここで、我々は現在だけでなく、我々は、指定した2つの列を持つ 私達の食器棚内の各カップケーキのために。 また、指定することによって、私たちのクエリ結果を絞り込むことができます ちょうどテーブル名の後に "where"句。 例えば、我々の戸棚にケーキがあるように見える それは、まあ、そう見て良いことではありません。 のが見て、よく、とても素敵されていない私達の食器棚にあるすべてのカップケーキを把握しましょう "where"句を使用しています。 これを行うための構文は次のとおりです。スペースcupcake_cupboard、SELECT FROMスペース*スペース 宇宙空間のWHERE私たちの条件列、この場合CakeIsNice =、 Falseの場合、ブール値。 それはあなたの文字列を使用している場合は、単一引用符で囲む必要があることに注意することが重要です。 これは、SQLのすべての文字列に当てはまるものであり、または、SQLデータベースの用語では、変形文字 VARCHARデータ型として知られている。 この場合において、我々はブール値ではなく文字列である、TrueまたはFalseを使用しています。 先に進み、このコマンドを実行してみましょう。 驚くなかれ、それは我々が1チョコレートを持っているケースである 私達の食器棚でとても素敵ではないカップケーキ。 次に、我々は、insert文を記述するつもりです。 insert文は挿入または追加するために使用され データベースのテーブルにデータの追加行。 私たちのシナリオを再考、我々はちょうど真新しいカップケーキを作ったと仮定してみましょう。 我々は非常にカップケーキを食べる人を組織しているので、我々はこの新しいケーキを挿入する必要があるとしている 当社cupcake_cupboardテーブルインチ 、我々のテーブルスペースにスペースを挿入しますこれを行うための構文はこれです cupcake_cupboard、スペース(、 そしてここで我々は、カンマで区切って列名を指定する CakeTypeコンマCakeColor CakeIsNiceカンマ)スペース。 これに続いて、我々はここにワード値空間(書き込み、 我々は、コンマで区切られ、また、それぞれ各列の値を入力します。 彼らはすべてのVARCHAR値であるため、単一引用符は、我々は、単一引用符で囲みます ピーナッツバター 'コンマ'、LIGHT BROWN 'コンマ真。 さて、それはそれぞれの行自体を識別するための固有の番号を付与することが重要です。 カラムを自動インクリメントすると、このように提供しています  "いいえtwo、同じIDはこれまで、このテーブルに存在することはありません。" 先に進み、実行してみましょう。 我々はすべての整理、そこに行く。 我々は、記述しようとしている次のSQL文は、UPDATEステートメントである。 UPDATE文は、列内のデータを変更するために使用することができ データベーステーブル内の既存の行の。 以前の私たちのシナリオでは、SELECTステートメントを使用して、我々はカップケーキを同定 そのCakeIsNice値Falseであった私たちのcupcake_cupboardのテーブル内。 、私たちのピーナッツバターのカップケーキはオーブンに入ったままの状態と仮定してみましょう 我々はそれほど素敵なカップケーキは非常にいいました。 ので、非常に組織されて、私達は私達のカップケーキはこの値を反映したい 当社cupcake_cupboardテーブルインチ したがって、のはこれを反映して、データベース内の私達のチョコレートケーキを更新してみましょう。 構文は次のとおりです。UPDATEのスペース我々のテーブル、cupcake_cupboard、スペースのSETスペース 我々は変更したい列、CakeIsNice =。 その後、ここで我々は、我々の新しい値をTrueスペースを入れてください。 今、私たちは、この値を持つすべての行を更新したくないので、 私たちは私たちを特定するでしょう "where"句を提供したい 我々は、変更したい正確な行へ。 この場合において、我々は1つだけのカップケーキがあることを知っている それは偽のCakeIsNice値を持っています。 さらに、我々はまた、我々は正しい行を更新していることを保証します "そして、"句を使用します。 我々は、クエリをさらに絞り込むために "そして"句を使用します。 この場合において、我々はカップケーキはチョコレートであることを知っているので、 我々はこのCakeType列を使用します。 WHEREスペースわれわれの条件列空間CakeIsNiceスペースは= Falseにすると、 とスペースCakeType = "チョコレート"。 だから、それをすべて一緒に入れて、この更新ステートメントは言う 私たちのカップケーキ戸棚にすべてのケーキを見つけ、 と、その列CakeIsNiceがFalseの値が含まれているケーキがある場合 とCakeTypeは、値chocolateを含んでいる 我々はTrueに、特定の行のCakeIsNice値を更新したいと思います。 それでは、先に行くと、文を実行してみましょう。 そして今、私たちが組織している。 カップケーキのすべてのこの話は、私は少し空腹にな​​りました。 私は、1つに自分自身を助けるべきだと思う。 しかし、私は実際にこのケーキを食べれば、私は、少なくとも、その存在を削除する必要があります  当社cupcake_cupboardテーブルから。 これを行うには、我々は、 "delete"文を使用します。 "削除"ステートメントは、テーブルからすべての行または一部の行を削除するために使用することができます。 あなたはテーブルからいくつかの特定の行を削除したい場合は、 次にあなたは、このように列を指定して、 "where"句を指定する必要があります それはあなたが削除したい行に一意である必要があります。 これは、構文は次のとおりです。宇宙から宇宙我々のテーブル、cupcake_cupboard、スペースを削除します。 さて、この時点で、あなたは、これははるかにあなたのdelete文の中にある場合、 あなたは非常に慎重になりたい。 私はこのクエリを実行したい場合例えば、いくつかの "where"句を提供しなくてもです 私は、このcupcake_cupboardテーブルのすべてのデータを失うことになる しかし、私はすでに私のケーキIDが一意であることを知っているので、私が使用します 私の "where"句のための赤いビロードのケーキのID。 WHEREスペースのコラム、CakeID = 1。 これは整数値であるため、単一引用符で囲む必要はありません。 だから、文を実行してみましょう。 さて、今私たちは、このカップケーキの存在を一掃したこと 当社cupcake_cupboardテーブルから、我々は唯一の左の1点を持っている: それが消えることを確認します。 私はクリストファー·バーソロミューだ。これはCS50です。