データベース管理システムコマンドメモ

SQL_

MySQL、PostgreSQL、SQLite3で使用できるSQL文が微妙に違うとことがあるのに留意。

SQL_

SELECT_

条件付き検索:idが1のものを検索

SELECT * FROM table_name WHERE field_name LIKE 'string%';
SELECT * from users where id = 1; 

ユーザーIDでソート

SELECT * FROM users ORDER BY id;

そのテーブルに登場するユーザーIDの種類を表示(重複登場をまとめる)

SELECT id FROM users GROUP BY id;

UPDATE_

UPDATE table_name SET field_name = 'value' WHERE field_name = 'string';

DELETE_

DELETE FROM table_name WHERE field_name = 'string';

ALTER_

COLUMNの追加_

> ALTER TABLE table_name ADD COLUMN column_name string;
> VACUUM;

PostgreSQL_

データベース作成_

Railsプロジェクトからアクセスするためのユーザーとデータベースを作成する。

  • ユーザー名: hogehoge_rails
  • ログインパスワード: 12345
  • データベース名: hogehoge_rails_db

コマンドは以下のとおり。

% sudo su
% su postgres
% createdb --encoding="utf-8" -T template0 hogehoge_rails_db
% psql hogehoge_rails_db
> \l (データベースの一覧を確認)
> CREATE ROLE hogehoge_rails WITH LOGIN PASSWORD '12345';
> GRANT ALL ON DATABASE hogehoge_rails_db to "hogehoge_rails";
> \q (psqlの終了)
% exit
% exit

データベースの利用_

% psql データベース名

メタコマンド_

  • データベース一覧表示: \l
  • テーブル一覧表示: \d
  • テーブル表示: \d テーブル名
  • psql終了: \q

バックアップとリストア_

SQL文でバックアップ

% su postgres
% pg_dump データベース名 > バックアップファイル名

上記をリストア

% su postgres
% dropdb データベース名
% createdb データベース名
% psql -f バックアップファイル名 データベース名

SQLite3_

対話モード_

% sqlite3 データベース名

非対話モード_

% sqlite3 データベース名 "コマンド"

SQL文の出力(非対話モード)_

% sqlite3 データベース名 ".dump" > ファイル名

SQL文の入力_

% rm dbname
% sqlite3 dbname < sql_file.sql