【イラストで分かる】初心者が知っておくべきSQL文を学ぼう!

データベースを作成 IT関連
ジョージ・眉間シワ男
ジョージ・眉間シワ男

環境を作って動かせる状態にしてみたけど、

次は 何をしたらいいんだろう……。

データベースは、SQL文という命令文で操作をします。
まずはそれだけ押さえておけばOK。

ジョージ・眉間シワ男
ジョージ・眉間シワ男

で、どういうSQL文を書けばいいの!?

それを今回は深掘りしていきます!

前提条件

  • MySQLを導入済み
  • コマンド操作(CUI)の環境が整っている

データベース一覧を確認する

DBを一覧表示

SHOW DATABASES;

注意しよう!
「;」のつけ忘れにご注意ください。
つけ忘れた場合は、「->」という状態になるので、そこで「;」を入力しましょう。
SQL文では、「;」を文の最後であることを意味します。

◯◯schemaなどがありますが、MySQL自身が動作するために必要なデータベースです。

ジョージ・眉間シワ男
ジョージ・眉間シワ男

MySQL を導入したら、

自動で作られる DBのことなんだね。

データベースを作成する

データベースを作成

知っておこう!
・小文字でも大文字でもOKです。見分けやすいようにSQL文を大文字にしています。
・ちなみに、大文字小文字混合していても動きはします(例:CrEAtE)。

DBを試しに2つ作ってみましょう!

ジョージ・眉間シワ男
ジョージ・眉間シワ男

DBは、ユーザ情報などを保存しておくための

大きな貯蔵庫をイメージすればいいね。

データベースを削除する

データベースを削除

先ほど作成したDBの1つを削除してみましょう。

データベース一覧を確認する」SQL文を実行して、DBが削除されていることを確認してみましょう。

使用するデータベースを指定する

データベースを指定

ここからは、「ex_db」を使っていきます。

これでDBの指定が出来ました。
単純に、このDBを使う(USE)よ〜としているだけです。

テーブルを作成する

テーブルを作成

画像の色抜けがありますが、、、
気にせずテーブルを2つ作っていきましょう!

テーブルとは、実際のデータが格納される表のようなものです。

知っておこう!
・テーブル作成時、カラムの定義が必要です。
・カラムとは、データの構造を表すものです。

エラーが出た時
・ERROR 1046 (3D000): No database selected
これが出た場合、USE文を使ってDBを選択していません!
データベースを選択しましょう。

先ほどのSQL文だと、こういうことになります。

数値型のid, 文字列型のname, 数値型のageを持った「ex_users」テーブルを作成

注意しよう!
SQL文では、カラム名→データ型の順番に定義します。

テーブルの一覧を表示する

テーブル一覧を表示

作成したら、先ほどのテーブル一覧確認SQLを実行してみましょう!
あれ?どんなテーブルがあったっけ?という時に「SHOW」句が使えます。

「データベース一覧を確認する」の時と同じようにやってみましょう。

※ちなみに、DB作成直後は何もないので、「Empty」と出ます。

DBのなかにテーブルを作成することができました!

テーブルのカラムを確認する

作成したテーブルがどんなカラムを持っていたのか忘れるときがあります。
テーブルの内容を確認するためのSQL文を試してみましょう。

表のように綺麗に整列して出力されました!

テーブルを削除する

テーブルを削除

テーブルを削除してみましょう。

テーブル一覧確認SQL文を実行して、テーブルが無くなっていればOKです!

データベース内のデータを操作する

ここからは、データベースを扱う際の使用頻度9割以上を占めるSQL文を解説します。

データを挿入する

データを挿入

idが「1」、nameが「yutori」、ageが「22」のデータを挿入しますという意味のSQL文です。

カラムの数と、挿入する値の個数は必ず同じです。

もしこれが、カラムと合っていない場合、
ERROR 1136 (21S01): Column count doesn't match value count at row 1
といったエラーが出力されます。

多くのデータを挿入する際、「このカラムは最初、NULLなんだよな〜」という時があります。
毎回面倒な時は、

このようにすると、デフォルトに設定しているNULLとして挿入されます。
ここでは、年齢隠しになりますね。

え、デフォルトなんて設定したっけ?と思う方は、「テーブルのカラムを確認する」を確認してみてくださいね。

データを検索する(全てのデータを取得)

データを全て検索する

データを取得する、ではなく検索をします。

試しに、全てのデータを確認してみましょう。

出ました!
「*」は、全てを意味しています。

私と、年齢不詳の山田が出ていますね。

データを条件付きで検索する

データを条件付きで検索する

条件付きで検索する上で、もっとデータが欲しいので、データを3件追加しましょう

ちなみに
一度に複数のデータを挿入することもできます!

データを3件追加できたでしょうか?

では、さっそく条件付きで検索していきます。

1つのカラムのみ

全てのデータを取得するけど、年齢だけ知りたいな、名前だけ見たいな……という時があります。
そんな時は単純にカラム名のみ指名してみましょう。

nameカラムのみ取得できましたね!
nameの部分を「*」にしたり、「id」にしてみて、試してみてくださいね。

条件に一致したデータのみ

次に、「◯◯さんって何歳だっけ?」のような、特定のデータを取得したい場合に条件を付け足します。

「WHERE」句をつけることで、条件を付け足すことができます!
検索以外にも、様々な場面で使用します。
次を見てみましょう。

データを更新する

データの更新

「あ、山田の年齢間違えてた!」
そんな時には、データの更新が必要ですね。

最初に、山田の年齢を確認してみましょう。

年齢不詳でしたね。

注意しよう!
もしこのSQL文で、WHERE句で条件を加えなかった場合、全てのデータが更新されます。

更新できたら、再度、年齢を確認してみましょう。

山田を6歳児に更新できました!
明らかに値がおかしい時は、idと間違えてないか?など確認しましょうね。

ちなみに山田は6歳児だったようです(という設定)。

データを削除する

データを削除

必要なくなったデータを削除することもできます。
ユーザから「この投稿を削除する!」という操作が起きた時、実行するイメージですね。

今回は、idが5の横田のデータを削除しました。
WHERE句で、名前一致、ID一致など条件を変えて、まとめて削除することも可能です。

注意しよう!
・DBとテーブルの削除は「DROP」、データの削除は「DELETE」です。
・WHRE句での条件次第で、意図しないデータまで削除する恐れがあるので、確認しましょう。

まとめ

これまでに挙げたSQL文以外にも、多くの命令文があります。

SQL文だけで1冊の本が出版されるほどです。

さらに深く学んでみたい方は「SQL 一覧」など検索して調べてみてはいかがでしょうか。

また、MySQL公式のチュートリアルもあるので、ぜひ試してみてくださいね。
https://dev.mysql.com/doc/refman/8.0/en/tutorial.html

タイトルとURLをコピーしました