B L O G

  1. TOP
  2. BLOG
  3. はじめてのSQL【初心者編:DMLについて】
プログラミング
2022.03.07

はじめてのSQL【初心者編:DMLについて】

こんにちは。
スタッフブログ担当の岩でございます。

前回はSQLのDDLについての記事を公開いたしました。
https://vift.co.jp/blog/はじめてのsql【初心者編-ddlについて】/

今回はDMLの詳細について説明いたします。

DML(データ操作言語)

DMLに分類される命令は次の通りです。
・SELECT:テーブルから行を検索する。
・INSERT:テーブルに新規行を登録する。
・UPDATE:テーブルの行を更新する。
・DELETE:テーブルの行を削除する。
・TRUNCATE:テーブルの行をすべて削除する。

それぞれの書き方を説明いたします。

SELECT
・列の出力

SELECT <列名> FROM <テーブル名>;

もしshohinというテーブルからshohin_nameという列を出力する場合はこのようになります。

SELECT shohin_name FROM shohin;

SELECTにはASキーワードで列に別名を付けたり、WHERE句で検索条件を付けることができますが、今回は省略いたします。

DML君が列を出力したよ

INSERT
・行の挿入

INSERT INTO <テーブル名> (列1, 列2, 列3, ...) VALUES (値1, 値2, 値3, ...);

もしshohinテーブルにshohin_idを’1’、shohin_nameを’Tシャツ’、shohin_tankaを’1500’という値を挿入する場合はこのようになります。

INSERT INTO shohin (shohin_id, shohin_name, shohin_tanka) 
                                          VALUES ('1', 'Tシャツ', '1500');

INSERT分を作成する際に注意点があります。
・文字列を挿入する場合は値を’(シングルコーテーション)で囲む。
・列の数と値の数が異なるとエラーが発生する。

また、INSERT文はSELECT文を使って、他のテーブルからデータをコピーすることもできますが、今回は省略いたします。

DML君が行を挿入したよ

UPDATE
・データの更新

UPDATE <テーブル名> SET <列名> = <値>;

もしshohinテーブルのshohin_tankaを全て’5000’とする場合はこのようになります。

PDATE shohin SET shohin_tanka = '5000';

UPDATEにはWHERE句で更新する行の条件を付けたり、値ではなく式を入れることもできますが、今回は省略いたします。

DML君が行を更新したよ

DELETE
・データの削除

DELETE FROM <テーブル名>;

データを削除する方法は複数あります。
前回紹介したDROP TABLE文かDELETE文になります。
DROP TEBLE文はテーブルごと削除するため、CREATE TABLE文でテーブルの作成から始めなければなりませんが、DELETE文はデータを削除してもテーブルは残っているため、INSERT文ですぐにデータを再登録することができます。

もしshohinテーブルのデータを削除する場合はこのようになります。

DELETE FROM shohin;

DELETE文にはWHERE句を使って、削除する行の条件を付けることができますが、今回は省略いたします。

DML君が行を削除したよ

TRUNCATE
・データの高速削除

TRUNCATE TABLE <テーブル名>;

実はデータを削除する方法はまだあります。
DROP TABLE文、DELETE文の他にはTRUNCATE文もあります。
TRUNCATE文はDELETE文と似た処理結果で処理は高速ですが、いろいろと制約もございます。テーブルの複数指定が出来ない、条件で指定しての削除が行えない(テーブル内のデータは全て削除されます)など。
DROP TABLE文、DELETE文、TRUNCATE文の使い分けが重要となります。

もしshohinテーブルのデータを削除する場合はこのようになります。

TRUNCATE TABLE shohin;

まとめ

今回はSQL文のDML(データ操作言語)について説明いたしました。
途中で何度かでてきたWHERE句は条件を付けるために必要となってきますが、できることがたくさんある分とても複雑になってきます。
まずは基本の書き方を学びましょう。

最後まで読んでくださいありがとうございました。
次回はSQLのDCL(データ制御言語)について説明いたします。
どうぞよろしくお願いいたします。