※ この記事にはアフィリエイトリンクが含まれます

Postgresでテーブル列を追加することになったときに、どう追加したら良いか忘れてしまうことが結構あるので、備忘録のために記載いたします。
これから本格的にプログラミングを学びたい方へ
もしあなたがSQLのスキルだけでなく、「正規表現だけじゃなく、もっと本格的にプログラミングを学びたい」と思っているなら、実務レベルでのスキルが身につく「RareTECH」という学習サービスがおすすめです。

本気でやってみたい。でも何から始めたらいいか分からない。そんなときこそ、信頼できる学習環境に頼っていいんです。一人で悩む時間を、実務レベルの力に変えられます!
少しでも気になった方は、まずは無料カウンセリングで話を聞いてみるのがおすすめです。
テーブルに列を追加する
テーブルに列を追加します。
ALTER TABLE [テーブル名] ADD COLUMN [追加する列名] [データ型][オプション]
例えば、usersというテーブルにageという整数型の列を追加したいという場合は以下のように書きます。
ALTER TABLE users ADD COLUMN age INTEGER;
列を追加する際に設定できるオプション
下記のようなものがあります。
- DEFAULT値の設定
- NOT NULL制約
- ユニーク制約
DEFAULT値の設定
追加する列にデフォルトの値を設定できます。
ALTER TABLE users ADD COLUMN age INTEGER DEFAULT 0;
NOT NULL制約
その列にNULLを許可しない場合、NOT NULLと入れることでNULLを許容できなくすることができます。
ALTER TABLE users ADD COLUMN age INTEGER NOT NULL;
ユニーク制約
その列の値が一位である必要がある場合、UNIQUE制約を追加します。
ALTER TABLE users ADD COLUMN email TEXT UNIQUE;
上記のように、一度作ったテーブルに列を追加することができます。
データ列を追加した際に、データをまとめてINSERTしたい!という方向けにこちらの記事も投稿しています。こちらもよろしければご覧ください。
テーブルの列を削除する
一度作ったテーブルの列を削除します。
ALTER TABLE [テーブル名] DROP COLUMN [列名] [オプション]
例えば、usersというテーブルからageという列を削除したい場合、以下のようにして実行します。
ALTER TABLE users DROP COLUMN age;
列を削除する際に設定できるオプション
下記のようなものがあります。ただ、削除という処理は慎重に行う必要があるため、下記の処理はあまり使いません。参考までに、紹介します。
- CASCADE
- IF EXISTS
CASCADE
ほかの制約や依存関係がある場合、それらも一緒に削除したい場合はCASCADEオプションを利用します。
ALTER TABLE users DROP COLUMN age CASCADE;
IF EXISTS
指定した列が存在しない場合でもエラーを出さないようにしたい場合は、IF EXISTSを使用します。
ALTER TABLE users DROP COLUMN age IF EXISTS;
列の削除は重い処理であるため、実行するときは慎重に実行してください。
テーブル列のデータ型を変換する
テーブル列のデータ型を変換します。
ALTER TABLE [テーブル名] ALTER COLUMN [列名] TYPE [変換するデータ型] USING [式]
例によってusersテーブルのage列をINTEGER からTEXTに変更したい場合、以下のように実行します。
ALTER TABLE users ALTER COLUMN age TYPE TEXT;
場合によって、データ型の制約によって型変換がうまくいかない場合があります。
その際は、USING句を使って明示的に型変換をします。
ALTER TABLE users ALTER COLUMN age TYPE INTEGER USING age::INTEGER;
データ型を変換することによって、データが損失する可能性があるので、その点はご注意ください。
念のため事前にバックアップを取っておくのをお勧めします。
最後に
本記事では、Postgresを使ってテーブル列の追加、削除、データ型の変換方法をご紹介しました。
個人的に、データ型変換する際に使用するUSING句が曖昧だったりしたので、調べていて勉強になりました。
PostgreSQLは、現場でも広く使われている信頼性の高いデータベースです。もしこれから本格的に学び、実務で通用する力をつけたい方には、RareTECHをチェックしてみてください。実案件ベースのカリキュラムで、あなたのスキルを次のステージへ引き上げてくれるはずです。

「本当にエンジニアとしてやっていけるか不安…」という方も、実践的な開発に関わることで、転職後の働き方を事前に体感できますよ。
実務で使えるDBスキルとともに、プログラミングスキルをちゃんと身につけたいなら、
RareTECHの無料カウンセリングで、学ぶ目的やゴールをプロと一緒に明確にしてみましょう。独学では得られない「実践的な成長の道筋」が見えてきます。

もしこの内容を通して、PostgreSQLについてさらに理解を深めたいと感じられたなら、信頼できる講座や書籍を紹介した別記事をご覧いただくのも良いかと思います。ご自身の学びに、きっとお役立ていただけるはずです。
コメント