programming:db:postgresql_command_examples

PostgreSQLコマンド例集

自分用メモ

DBに接続

psql -U ユーザー名 -d データベース名 -H ホスト名
ALTER TABLE テーブル名 ADD COLUMN 列名 型 DEFAULT 黙認値;

既存の制約を一旦削除し、新たに制約を設定するという流れで行う。さもないと「multiple primary keys for table “テーブル名” are not allowed」と怒られる。

なお、制約名はテーブル名に「_pkey」を追加したものである。

ALTER TABLE テーブル名 DROP CONSTRAINT テーブル名_pkey;
ALTER TABLE テーブル名 ADD PRIMARY KEY (列名, 列名, ...);
ALTER TABLE テーブル名 DROP CONSTRAINT 制約名;
ALTER TABLE テーブル名 ADD FOREIGN KEY (制約をつける列名) REFERENCES 制約の参照先テーブル名(制約の参照先列名);

制約の名前を明示しないと「テーブル名_制約をつける列名_fkey」という名前が自動で付けられるっぽい。

SELECTの中に「固定値 as 列名」を入れる。

■SQL

SELECT id,
       name,
       '日本' AS country
FROM users;

■実行結果

id name country
1山田太郎日本
2佐藤花子日本
3鈴木一郎日本

合わせ技で固定値にとしてサブクエリの結果を使うこともできる。

■SQL

SELECT id,
       name,
       (SELECT CAST(c.code AS INTEGER) FROM countries AS c WHERE c.name='日本') AS country_id
FROM users;

■実行結果(contriesテーブルでname='日本', code='81'が定義されているとする)

id name country_id
1山田太郎 81
2佐藤花子 81
3鈴木一郎 81
  • programming/db/postgresql_command_examples.txt
  • 最終更新: 2019-10-24 14:49
  • by Decomo