データベース管理システムコマンドメモ
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