覚えろって話ですが、結構DBから離れる時期があったりして、まあ、忘れますよ。
普通にselect
select * from TABLE_NAME where COLUMN_NAME = 'foo';
降順にならべる(新しい順に並べる)
select * from TABLE_NAME where COLUMN_NAME1 = 'foo' order by COLUMN_NAME2 desc;
指定の複数行を選択する
select * from TABLE_NAME where COLUMN_NAME in ('foo','bar','baz');
最新一行
select * from TABLE_NAME order by COLUMN_NAME desc limit 1;
普通にインサート。オートインクリメントとかのカラムは単純に無視すればいい。
insert into TABLE_NAME (COLUMN_NAME1, COLUMN_NAME2) values (value1, value2);
本番環境触るときは、オートコミットとかになっていないか一度確認した方がよいと思う。基本手動コミットでいつでもロールバックできるようにしておきましょう。大量のレコードに更新をかけるときはバックアップも忘れずに。
全レコードに更新かける (危ないので注意)
UPDATE TABLE_NAME SET COLUMN_NAME = 'foo';
特定の一行レコードに更新をかける
UPDATE TABLE_NAME SET COLUMN_NAME1 = 'foo' where COLUMN_NAME2 = 'bar';
複数のカラムをアップデートする
UPDATE TABLE_NAME SET COLUMN_NAME1 = 'foo', COLUMN_NAME2 = 'bar' where COLUMN_NAME3 = 'baz';
レコードを削除する(一行など)
delete from TABLE_NAME where COLUMN_NAME = 'foo';
レコードを削除する(複数行など)
delete from TABLE_NAME where COLUMN_NAME in ('foo','bar','baz');
select count(*), COLUMN_NAME from TABLE_NAME group by COLUMN_NAME order by count desc;
カラム追加。boolでデフォルトfalseの場合は、こんな感じ。
alter table TABLE_NAME add column COLUMN_NAME bool DEFAULT false;
2021年07月26日以降のものは以下のように書きます。不等式の方向が時々よくわからなくなる。
select * from TABLE_NAME where COLUMN_NAME > '2021-07-26 00:00:00';
以前の場合は逆。
select * from TABLE_NAME where COLUMN_NAME < '2021-07-26 00:00:00';
2021.6.24 (木)