SQL文 – 基本 コピペ用 –

すごくよく使うSQL文

覚えろって話ですが、結構DBから離れる時期があったりして、まあ、忘れますよ。

select

普通に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

普通にインサート。オートインクリメントとかのカラムは単純に無視すればいい。

insert into TABLE_NAME (COLUMN_NAME1, COLUMN_NAME2) values (value1, value2);

update

本番環境触るときは、オートコミットとかになっていないか一度確認した方がよいと思う。基本手動コミットでいつでもロールバックできるようにしておきましょう。大量のレコードに更新をかけるときはバックアップも忘れずに。

全レコードに更新かける (危ないので注意)

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

レコードを削除する(一行など)

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;

alter系

カラム追加。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';

  • News

  • Categories

  • Tags

  • Archives

  • Page index