備忘録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:データを検索する
少し順番が前後しますが、操作を行う度に都度データを確認する都合上
先にこちらについて紹介します。
・データの検索方法
SELECT カラム名 FROM テーブル名;
このように検索を行うと、データの詳細を見ることが出来ます。
また、SS1枚目で使用している「*」はワイルドカードと呼ばれます。
*:ワイルドカード
「全てのパターン」という意味を持つ特殊文字。
つまり、SELECTに*を指定することで以下の意味が成立する。
「全てのパターン = 全てのカラム」
これにより、1枚目のSSは全てのカラム情報を取得している。
∀。
以上のことから、ワイルドカードをカラムに置き換えるとこうなります。
黄枠は id について検索した結果です。
緑枠は name について検索した結果です。
よほどカラムが大量にならない限りは
SELECTの指定先はワイルドカードでいいんじゃあ無いかなぁと思います。
実際の現場では違うかもですけど。
と、言うわけで少々前後しましたが
次から実際にデータを扱っていきます。
5:データを登録する
・データの登録方法
※全てのカラムにデータを登録する場合
INSERT INTO テーブル名 VALUES(カラム1の値, カラム2の値, カラム3の値, カラムの続く限り)
それは、このように登録します。
また、このSSは全てのカラムに値を保存する場合です。
せっかくなので、そうじゃあない場合もどうぞ。
・データの登録方法
※特定のカラムにデータを登録する場合
INSERT INTO テーブル名(カラム1, カラム3, 省略) VALUES(カラム1の値, カラム3の値,省略)
このようにすると、特定のカラムのみにデータを登録することが出来ます。
もちろん、このNULLとなったカラムにもデータを後付け出来ます。
というわけでお次はデータの更新。
6:データを更新する
・データの更新方法
UPDATE テーブル名 SET 更新するカラム = 更新する値 WHERE 条件;
このように更新します。
①SET の後に更新内容
②WHERE の後に条件
この2つを間違わなければOKです。
指定のカラムに、任意の値をセット(SET)する。場所(WHERE)はココ(条件)
って考えればスッとイメージ出来るかも知れませんねぇ。
SQLくん、直感的に操作出来るから好き。今のところは。
また、WHEREの条件はidが無難ですが、他でも出来ます。こんな風に。
これは、 price が 180 のレコードを対象に変更を行なった場合。
ただし!!!!!!!!!!!!!!!!!
こういう巻き込み事故が起きかねないので
他と値が重複する可能性があるカラムをWHEREに使うのは…
やめようね!!!!!
逆に、特定の価格の商品を一斉に値上げする!
とかだったら有りだと思います。使いようですね。
と、言う訳で次へ参りましょう。
7:データを削除する
・データの削除方法
DELETE FROM テーブル名 WHERE 条件;
お前を○す(デデン!!
このようにして削除します。
もちろん、WHEREの条件付けはUPDATEと同じなので
条件付けで下手をこくと巻き込み事故が起こります。こんな風に。
UPDATEの条件に id 以外を使った一斉更新はまだ使い道が浮かびますが
DELETEの一斉削除はちょっと使い道が浮かびませんね( ˘ω˘)
巻き込み事故怖いですね。
気を付けましょ。未来のわたくし。
8:終わり
と、いうことで今回は終了です。
次回はDCLです。
SQL3部作で一番長そうです。
大変じゃあ。
終わり!!!!!!!!!!!!!!!!!!!!!
この記事が気に入ったらサポートをしてみませんか?