はい

ターブルって思い出しました。ベジータの弟という設定でした。

コマンド
  • SELECT * FROM tb_name WHERE column1 = 'サンプル';

 データの「取得」、「検索」「選択」、色んな言葉が使われますね。

    • SELECTとFROMの間には、「命令によって返され表示される列」が入ります。
    • *は「スター」と呼ばれ、「全ての列を選択」を意味します。*の形状から「スター」となったのかと思いきや、「セレクトアスタリスクフロム」→「セレクトスターフロム」→「スター」という事情のようです。
    • WHERE以降は、「表示するもの」ではなく、「条件を満たした行を返せ」というものです。
    • 端的に表現すると、【SELECT 表示列 FROM テーブル名 WHERE 検索列 = '検索文字';】のようです。
    • 検索文字の部分は、データ型が「INT」や「DEC」のような数値型であれば、シングルクォートは不要です。
    • 数値型をクォートで囲ってしまっても、文字型でダブルクォートを使ってしまっても、恐らく動作します。文字型でクォートを忘れるのはアウトです。
  • INSERT INTO tb_name (artist) VALUES ('B\'z');
    • 「B'z」のように、データにシングルクォートを入れたい場合は、二つ重ねる('')か、円記号(\)を前につける必要があります。
  • SELECT column1, column2 FROM tb_name;
    • スターで表示してしまうと画面をすべて占領してしまいます。SELECTとFROMの間に特定列を記述すれば、限定して表示されます。
  • SELECT ab_name FROM tb_mymusic WHERE at_name = 'B\'z' AND year = '1998';

 「AND」を使うことによって、条件を増やすことができます。

    • ANDで挟んで【検索列 = '検索文字';】を追加します。
    • ANDでは、「両方の条件を満たしたもののみ」が取得されます。一文でより細かい選択が可能になります。
  • SELECT sg_name FROM tb_mymusic WHERE at_name = 'B\'z' AND rating > 4;

 「比較演算子」がでてきました。データ型の数値型に適用できるのは分かりますが、文字型にも適用できるのは想定外でした。
 日本語には「以上」「以下」がありますが、「未満」の反対ってあるんでしょうか?

    • 「=」… 等しいもの。
    • 「<>」… 等しくないもの。後に出てくる「NOT」と似ています。
    • 「<」… 右に数字または文字がくるので、「小なり」「数字より小さいものを返せ」を意味します。
    • 「>」… 上の逆です。
    • 「<=」… 小なりイコール。日本語でいう「以上」にあたり、「自身を含めて」考えます。
    • 「=>」… 上に同じく、「以下」にあたります。

 面倒なのが、テキストデータでも動作するみたいなんですこれ。
 アルファベット順・50音順で、後にいくほど数字が大きいものとして扱うようです。
 特に下記の50音順が気になりました。でも名簿から抽出することを考えれば、こうでなければ困りますね。

    • ア、イ、ウ、エ、オ…ハ、バ、パ、ヒ、ビ、ピ、フ、ブ、プ、ヘ、ベ、ぺ、ホ、ボ、ポ…
  • SELECT sg_name FROM tb_mymusic WHERE category = 'soundtrack' OR category = 'OST';

 「OR」が出てきました。使い方は「AND」と同じでが、機能が違います。

    • ANDでは「両方の条件を満たしたもののみ」でしたが、ORでは「いずれかの条件を満たせば」になります。
    • ANDとORを組み合わせたWHEREも可能なようですが、まだ試してないです。
  • SELECT sg_name FROM tb_mymusic WHERE category IS NULL;

 未記入項目は、デフォルト文字を設定してないければ「NULL」になります。
 そのNULLを抽出しようとしても、【= NULL;】【= 0;】【= 'NULL';】では動作しません。

    • 【WHERE 検索列 IS NULL;】とすることで、抽出できます。
  • SELECT at_name FROM tb_mymusic WHERE category LIKE '%metal';

 メタルにはいろんなジャンルがありますが、各名称をいちいちORで入力してはいられません

    • 【WHERE 検索列 LIKE '%metal';】とすることで、パーセントの部分は「あらゆる長さの文字」に代わってくれます。
    • パーセントの部分がアンダースコア【LIKE '_metal';】に代われば、「一文字の代わり」を意味します。
  • SELECT sg_name FROM tb_mymusic WHERE rating BETWEEN 2 AND 4;

 「一定以上一定以下」であれば、不等号を複数用いなくても可能です。

    • 【WHERE rating BETWEEN 2 AND 4;】つまりは【WHERE rating >= 2 AND rating <=4;】の代わりです。
    • 【WHERE rating > 2 AND rating <4;】の場合は、数字を変えなければ使えません。
  • SELECT sg_name FROM tb_mymusic WHERE category IN ('deathmetal', 'melodicdeathmetal', 'slashmetal');
    • ORをいくつもつなげるのが面倒な場合は、【WHERE 検索列 IN (' ', ' ',...etc);】ができます。
    • いずれかに該当すれば拾ってきてくれるので、OR文をいくつも入れるよりかは効率的ですね。
  • SELECT at_name FROM tb_mymusic WHERE category LIKE '%metal' AND NOT at_name = 'Labyrinth';

 「指定排除」という表現でいいでしょうか。

    • WHEREの後や検索列の前など、できるだけ前に置いた方がいいようです。

数学チックになってきました。
テキスト通りにサンプルのテーブルを作成する箇所があったんですけど、DECを使うところがイマイチ思い通りにいきません。
データ型の文字数のあたりも、完全に掌握してない感じです。