MySQL_PostgreSQL_SQLite比較シート - yokohama/oreshic-record GitHub Wiki

MySQL / PostgreSQL / SQLite比較シート

Date: 2023-03-07 17:30:28

SQLiを実行する際の便利な文法なので、一般的なSQLの参考にはならない。

データベース一覧

DBMS固有の関数を使わずに、select文を使用。

MySQL select distinct table_schema from information_schema.tables;
PostgreSQL select datname from pg_catalog.pg_database;
SQLite -

さらに上記の結果を1つのカラムにまとめる方法。

MySQL select group_concat(distinct(table_schema)) from information_schema.tables;
PostgreSQL select array_to_string(array_agg(distinct(datname)), ',') from pg_catalog.pg_database;
SQLite -

テーブルのカラム一覧

MySQL
PostgreSQL
SQLite

さらに上記の結果を1つのカラムにまとめる方法。

MySQL
PostgreSQL
SQLite

DB名に存在するテーブル一覧

MySQL select table_name from information_schema.tables where table_schema = '<DB名>';
PostgreSQL select tablename from pg_catalog.pg_tables where schemaname = 'public';
SQLite select name from sqlite_master where type='table';

さらに上記の結果を1つのカラムにまとめる方法。

MySQL select group_concat(distinct(table_name), ',') from information_schema.tables where table_schema = '<DB名>';
PostgreSQL postgres=# select array_to_string(array_agg(distinct(tablename)), ',') from pg_catalog.pg_tables where schemaname = 'public';
SQLite select group_concat(distinct(name)) from sqlite_master where type='table';

テーブル作成

MySQL create table users (id int auto_increment, name varchar(255), email varchar(255), password varchar(255), primary key(id));
PostgreSQL create table users (id serial, name varchar(255), email varchar(255), password varchar(255), primary key(id));
SQLite create table users(id integer primary key, name string, email string, password, string);

idをauto incremetする場合。

⚠️ **GitHub.com Fallback** ⚠️