hbsnow.dev

MySQL と PostgreSQL のコマンド

よく使うMySQLとPostgreSQLのコマンドの対応表です。

説明MySQLPostgreSQL
DB 一覧SHOW databases;\l
DB 選択USE db_name;\c db_name
テーブル一覧SHOW table_name;\d
テーブル構造DESC table_name;\d table_name
トランザクションBEGIN;BEGIN TRANSACTION;

SQL 文逆引き

久々に使うと忘れてることもあるので、基本的なものからあまり使わないものも列挙しています。

DB の作成

CREATE DATABASE
  db_name
;

DB の削除

DROP DATABASE
  db_name
;

テーブルの作成

CREATE TABLE
  table_name(
    id         integer      not null,
    name       varchar(255) not null,
    created_at date,
    primary key (id)
  )
;

テーブルの削除

DROP TABLE
  table_name
;

テーブルのリネーム

-- MySQL
RENAME TABLE
  before_table_name
TO
  after_table_name
;

-- PostgreSQL
ALTER TABLE
  before_table_name
RENAME
  after_table_name
;

カラムの追加

ALTER TABLE
  table_name
ADD
  column_name slug varchar(255) not null
;

カラムの削除

ALTER TABLE
  table_name
DROP
  column_name slug
;

重複の除外

SELECT DISTINCT
  category
FROM
  table_name
;

重複を除外した集計

-- 重複とNULLの除外
SELECT
  count(DISTINCT column_name)
FROM
  table_name
;

範囲

SELECT
  *
FROM
  table_name
WHERE
  column_name BETWEEN 2 AND 5
;

この場合、column_name25 は含まれる。

複数条件

SELECT
  *
FROM
  table_name
WHERE
  column_name IN ('A', 'B', 'C')
;

部分一致・前方一致・後方一致

SELECT
  *
FROM
  table_name
WHERE
  column_name LIKE '%foo%'
;

前方一致なら foo%、後方一致なら %foo。不一致であれば NOT LIKE

ソート

SELECT
  *
FROM
  table_name
ORDER BY
  column_name DESC
;

取得件数の制限

SELECT
  *
FROM
  table_name
LIMIT
  10
;