PHP 『 超 』 初心者勉強会(PHPでMySQL) 3回目に参加して来ました。

MySQLの3回目。今回はUPDATEとDELETE。ゆっくり前の週にやったことを思い出しながら受けてちょうどいいかんじ。

http://atnd.org/events/4632
*今回も自分用のメモなので、いきなりコレを読んでもわからないだろうけど、ご容赦。

大文字小文字の区別

大文字小文字を区別する場合にはBINARYをつける。
SELECT * FROM t_sample WHERE text = BINARY ‘ABC’
(復習)=のときは完全一致。LIKEだと%のワイルドカードが使える。
SELECT * FROM t_sample WHERE text LIKE BINARY ‘A%’

UPDATE

FROMは使わない。

UPDATE t_sample SET text = ‘change’
で、指定が無いので全部が変更された。

idを指定することにより、一部だけの書き換えができる。
UPDATE t_sample SET text = ‘ABC’ WHERE id = 1
で、id1だけがABCに変更された。
UPDATE t_sample SET text = ‘DEF’ WHERE id = 2
で、id2だけがDEFに変更された。
UPDATE t_sample SET text = ‘GHI’ WHERE id != 2
で、ide2以外が変更

orもつかえる。
UPDATE t_sample SET text = ‘XYZ’ WHERE id = 3 OR id = 4
で、id3と4がXYZに変更された。

出力の順番

SQLでは一般的に出力の順番は保証されていない。必要な場合はかならず昇順、降順の指定をする。

DELETE

FROMが必要。
DELETE FROM t_sample
で全削除

次に追加する場合はオートインクリメントの場合、idが1からではなく、前の続きから番号がつけられる。
差し替えた際の誤認識をさけるため。

DELETE FROM t_sample WHERE id = 8
で8番のみを削除する。
DELETE FROM t_sample WHERE id = 9 or id = 10
で9と10を削除。
DELETE FROM t_sample WHERE timestamp LIKE ‘2010-06-01%’
で、2010/6/1のものが全部削除。

DELETEは実務ではあまりつかわない。削除する場合には、deleteのフィールドを用意しておいて、フラグを立てる。

テーブル名の指定方法

t_sampleでもt_sampleでもどちらでも通る。
ちなみに、正確にはシングルクオーテーションではなく、ブラケット?
データベース名を指定する場合には、
sample2.t_sample
という書き方もするし、
sample2.t_sample
でもいい。
データベース名やテーブル名に予約語が入る場合があるので、が用意されている。