見出し画像

備忘録6:SQLについて(2/3)-DML

転職のための3月6日から某スクールにでプログラミング学習を始めた32歳のおっさんです。時系列でHTML⇨CSS⇨Rails & JavaScript &SQLを学習中。
前回に引き続きSQL。今回はDMLです。

学習内容:SQLによるデータベースの操作

1:開幕の自問自答

①今回はDMLなんすよね?
 ⇨そうだよ。
②DMLはデータの操作って書いてあったけど具体的に何するの?
 ⇨DDLで作成したテーブルに入ったレコードをいじります。
③本格的にデータ操作してる感がある感じなんすね。
 ⇨そうだよ。

と、いうことで今回はDMLです。
テーブルにデータを入れたり消したりします。


2:全体の流れ

⓪で?DMLって?
①データを検索する
②データを登録する
③データを更新する
④データを削除する


3:DMLとは??????????

DMLとは、主に3つに分けたSQLによる命令の1つです。

DDL:データの定義 ※Data Definition Language
DML:データの操作 ※Data Manipulation Language ←今回はこれ
DCL:データの制御 ※Data Control Language


そのうち、DMLには主に以下4つの命令文があります。

INSERT:データの登録
UPDATE:データの更新
DELETE:データの削除
SELECT:データの検索

非常にシンプルで分かり易いですね。
SQLホント分かりやすくて好き。今のところはですが。


4:データを検索す

少し順番が前後しますが、操作を行う度に都度データを確認する都合上
先にこちらについて紹介します。

スクリーンショット 2021-05-22 23.11.46

・データの検索方法

SELECT カラム名 FROM テーブル名;

このように検索を行うと、データの詳細を見ることが出来ます。
また、SS1枚目で使用している「*」はワイルドカードと呼ばれます。

*:ワイルドカード
  「全てのパターン」という意味を持つ特殊文字。
  つまり、SELECTに*を指定することで以下の意味が成立する。
  「全てのパターン = 全てのカラム」
  これにより、1枚目のSSは全てのカラム情報を取得している。
  ∀。



スクリーンショット 2021-05-22 23.17.52

以上のことから、ワイルドカードをカラムに置き換えるとこうなります。
黄枠は id について検索した結果です。
緑枠は name について検索した結果です。

よほどカラムが大量にならない限りは
SELECTの指定先はワイルドカードでいいんじゃあ無いかなぁと思います。
実際の現場では違うかもですけど。

と、言うわけで少々前後しましたが
次から実際にデータを扱っていきます。


5:データを登録する

スクリーンショット 2021-05-22 23.11.46

・データの登録方法

※全てのカラムにデータを登録する場合
INSERT INTO テーブル名 VALUES(カラム1の値, カラム2の値, カラム3の値, カラムの続く限り)

それは、このように登録します。
また、このSSは全てのカラムに値を保存する場合です。
せっかくなので、そうじゃあない場合もどうぞ。


スクリーンショット 2021-05-22 23.42.09

・データの登録方法

※特定のカラムにデータを登録する場合
INSERT INTO テーブル名(カラム1, カラム3, 省略) VALUES(カラム1の値, カラム3の値,省略)

このようにすると、特定のカラムのみにデータを登録することが出来ます。
もちろん、このNULLとなったカラムにもデータを後付け出来ます。
というわけでお次はデータの更新。


6:データを更新する

スクリーンショット 2021-05-22 23.50.07

・データの更新方法

UPDATE テーブル名 SET 更新するカラム = 更新する値 WHERE 条件;

このように更新します。
①SET の後に更新内容
②WHERE の後に条件
この2つを間違わなければOKです。

指定のカラムに、任意の値をセット(SET)する。場所(WHERE)はココ(条件)

って考えればスッとイメージ出来るかも知れませんねぇ。
SQLくん、直感的に操作出来るから好き。今のところは。


また、WHEREの条件はidが無難ですが、他でも出来ます。こんな風に。

スクリーンショット 2021-05-22 23.50.16

これは、 price が 180 のレコードを対象に変更を行なった場合。


ただし!!!!!!!!!!!!!!!!!


スクリーンショット 2021-05-23 0.01.15

こういう巻き込み事故が起きかねないので
他と値が重複する可能性があるカラムをWHEREに使うのは…

やめようね!!!!!

逆に、特定の価格の商品を一斉に値上げする!
とかだったら有りだと思います。使いようですね。

と、言う訳で次へ参りましょう。


7:データを削除する

スクリーンショット 2021-05-23 0.14.25

・データの削除方法

DELETE FROM テーブル名 WHERE 条件;

お前を○す(デデン!!
このようにして削除します。


もちろん、WHEREの条件付けはUPDATEと同じなので
条件付けで下手をこくと巻き込み事故が起こります。こんな風に。

スクリーンショット 2021-05-23 0.23.06

UPDATEの条件に id 以外を使った一斉更新はまだ使い道が浮かびますが
DELETEの一斉削除はちょっと使い道が浮かびませんね( ˘ω˘)

巻き込み事故怖いですね。
気を付けましょ。未来のわたくし。



8:終わり

と、いうことで今回は終了です。
次回はDCLです。
SQL3部作で一番長そうです。
大変じゃあ。


終わり!!!!!!!!!!!!!!!!!!!!!

この記事が気に入ったらサポートをしてみませんか?