UPDATE文、DELETE文、そして正規化

浴室の換気扇をオンにしながらエアコンも使うと湿度がゴリゴリに削られますが、加湿器くんの働きで乾湿はちょうど均衡するようです。

  1. DELETE文
  2. UPDATE文
  3. 正規化
  4. ALTER文

DERETE文

DELETE FROM your_table WHERE first_name ='data';

行を削除できます。
しかし、正確に削除したい行を絞れているか不安なのです。
SESELECT文で、FROM以下の絞りが正しいかを確認してからにしましょう。

SELECT * FROM your_table WHERE first_name ='data';

この命令で消したい行のみが抽出されれば、確認完了です。
一行のみの削除なら懸念は小さいですが、=ではなく他の不等号やANDやORを活用した場合、命令ミスの可能性が増えるでしょう。

UPDATA文

既存のテーブル情報を更新する場合、INSERT文とDELETE文の繰り返しで可能です。
しかし、UPDATE文を使えばさらに簡単に可能です。

UPDATE your_table SET first_name ='new' WHERE last_name ='old';

「SET ○ ='△' 」は「○列を△に更新しろ」を意味し、「WHERE ☆ ='□'」によって「☆列の中の□と記録されている行に限る」と限定します。
これも、不安ならSELECT文で事前確認をしたほうがいいです。

正規化

テーブルは、検索しやすいように、一行の情報単位を目的に沿うように細かく記録されているべきです。ディスクスペースを節約できますし、検索も早くなります。
「長髪、褐色肌、喫煙、長身」という身体描写列があるとしたら、それらは四つの列に分けられるべきだということです。
そして各行は、他の行と区別できる一意のデータを持っていると便利です。
上の四つの特徴を持つ人は、複数存在しても不思議ではありません。となると、テーブルでは全く同じ行が生まれてしまいます。
単純なID列があるといいでしょう。

ALTER文

テーブルに列を追加できます。

ALTER TABLE your_table ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (id);

id列をINT型で、未定義不可欄指定(NOT NULL)で、追加行毎に数字が増えるように、一番最初の列に挿入。
そしてid列は主キーであると指定。
既存テーブルのCREATE TABLE文(SHOW CREATE TABLE文で参照)の中にid列を加えたものを再度書き、新しいテーブルを作成するのも一つの手段です。
しかし、ALTER文を使えば新テーブルを作ることなく、既存のテーブルを活用できます。