概要

誕生日から年齢を計算するにはage関数を使用します。

結果は次の例のようにinterval値(XX years XX mons XX days)という値になります。

--誕生日から年齢を計算する
age( 誕生日の日付 ) 

-- 実行例
select age(timestamp '1980-01-01');  -- 41 years 1 day
select age(timestamp '1990-04-01');  -- 30 years 9 mons 1 day
select age(timestamp '1997-07-07');  -- 23 years 5 mons 26 days

 

 

実行例(呼び出し例)

上のままでは少々使いづらいので、年、月、日付だけ取得する例です。

--誕生日から年(何歳か)を取得
select date_part('year', age(timestamp '1980-01-01'));  -- 41
select date_part('year', age(timestamp '1997-07-07'));  -- 23

--誕生日から月(何ヶ月か)を取得
select date_part('month', age(timestamp '1980-01-01'));  -- 0
select date_part('month', age(timestamp '1997-07-07'));  -- 5

--誕生日か日(何日か)を取得
select date_part('day', age(timestamp '1980-01-01'));    -- 1
select date_part('day', age(timestamp '1997-07-07'));    -- 26

 

 

 

関連記事

日時、時刻の書式設定をする(yyyymmdd形式)

日付の加算、週の加算、月の加算

2つの日付の差を計算する

誕生日から年齢を計算する

 

デフォルト値(初期値)を追加、削除する

テーブルの列にデフォルト値を追加、削除する方法です。

--デフォルト値の追加
ALTER TABLE テーブル名 ALTER COLUMN 列名 SET DEFAULT デフォルト値;

--例:「m_school」テーブルの列「hoge_flg」を初期値「1」で設定する
ALTER TABLE m_school ALTER COLUMN hoge_flg SET DEFAULT 1;


--デフォルト値の削除
ALTER TABLE テーブル名 ALTER COLUMN 列名 DROP DEFAULT;

--例:「m_school」テーブルの列「hoge_flg」のデフォルト値を削除する
ALTER TABLE m_school ALTER COLUMN hoge_flg DROP DEFAULT;

 

 

 

関連記事

列を追加・削除する方法、桁数を変更する方法

列にNOT NULL制約を追加・削除する方法

外部キーを追加・削除する方法

 

外部キー制約を追加、削除する

テーブルに外部キーを追加・削除する方法です。

--外部キー制約の追加
ALTER TABLE テーブル名
ADD FOREIGN KEY (外部キーを付けるテーブルの列名) 
REFERENCES 参照先テーブル名 (参照先列名);

/*例:「department」テーブルに対する外部キーを、
列「department_code」で設定する*/
ALTER TABLE employee ADD FOREIGN KEY (department_code) 
REFERENCES department (department_code);


--外部キー制約の削除
ALTER TABLE テーブル名 DROP CONSTRAINT 外部キー名;

--例:「employee」テーブルの外部キー「employee_department_code_fkey」を削除する
ALTER TABLE employee DROP CONSTRAINT employee_department_code_fkey;

 

 

関連記事

列を追加・削除する方法、桁数を変更する方法

列にデフォルト値(初期値)を追加・削除する方法

列にNOT NULL制約を追加・削除する方法

 

Not Null制約を追加、削除する

テーブルの列にNot Null制約を追加、削除する方法です。

--Not Null制約の追加
ALTER TABLE テーブル名 ALTER COLUMN 列名 SET NOT NULL;

--例:「m_school」テーブルの列「hoge」をNOT NULLにする
--すでにNullが入っている場合はエラーになるので、値を入れてから実行します
ALTER TABLE m_school ALTER COLUMN hoge SET NOT NULL;


--Not Null制約の削除
ALTER TABLE テーブル名 ALTER COLUMN 列名 DROP NOT NULL;

--例:「m_school」テーブルの列「hoge」をNOT NULL制約を削除する
ALTER TABLE m_school ALTER COLUMN hoge DROP NOT NULL;

 

 

デフォルト値(初期値)を追加、削除する

テーブルの列にデフォルト値を追加、削除する方法です。

--デフォルト値の追加
ALTER TABLE テーブル名 ALTER COLUMN 列名 SET DEFAULT デフォルト値;

--例:「m_school」テーブルの列「hoge_flg」を初期値「1」で設定する
ALTER TABLE m_school ALTER COLUMN hoge_flg SET DEFAULT 1;


--デフォルト値の削除
ALTER TABLE テーブル名 ALTER COLUMN 列名 DROP DEFAULT;

--例:「m_school」テーブルの列「hoge_flg」を初期値「1」で設定する
ALTER TABLE m_school ALTER COLUMN hoge_flg DROP DEFAULT;

 

 

関連記事

列を追加・削除する方法、桁数を変更する方法

列にデフォルト値(初期値)を追加・削除する方法

外部キーを追加・削除する方法

 

offsetとは

offsetは、「offset 開始位置」と書き、開始位置より後のデータを取得する時に使用します。

※ 開始位置は0からカウントアップするので、気を付けて下さい。

limitと一緒に使うことで、「開始位置から〇行取得する」というような使い方ができます。

--5行目からデータを取得する(offsetは0からカウントに注意)
select * from テーブル名 offset 4;

--2行目からデータを取得する
select * from テーブル名 offset 1;

--5行目からデータを2行取得する(limitは1からカウント)
select * from テーブル名 limit 2 offset 4;

--4行目からデータを5行、列名1の昇順で取得する
select * from テーブル名 order by 列名1 limit 5 offset 3;

--4行目からデータを5行、列名1の降順で取得する
select * from テーブル名 order by 列名1 desc limit 5 offset 3;

 

psqlのエラーメッセージの対応方法

Windowsでpsqlコマンドを打った時、

'psql' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイル

として認識されていません。』のメッセージが表示された時の対応方法です。

 

                psqlのエラーメッセージ

 

対応方法は2つあり、どちらか一方の方法でOKです。

① cdコマンドでpsql.exeのあるフォルダまで移動する

② 環境変数に登録する

簡単なのは①ですが、毎回同じ方法法を取る必要があります。

②は少し手間ですが1度作業してしまえば次回以降はする必要はありません。

 

 

①cdコマンドでpsql.exeのあるフォルダまで移動する

cdコマンドでpsql.exeのあるフォルダまで移動する方法です。

 

次の1~3までの手順で行ってください。

※ この作業はコマンドプロンプトを閉じてしまったら毎回必要です。

 

1.psql.exeのあるフォルダを探す

インストール時に次へ次へで意識せずに進んでいた場合、

次のフォルダに「psql.exe」があると思いますので見つけます。

自分でフォルダを指定した場合は、その配下にあるbinフォルダを見てみて下さい。

 

PostgreSQL12の場合:C:\Program Files\PostgreSQL\12\binフォルダ

         psql.exeのありか(PostgreSQL12の例)

 

2.コマンドプロンプトを開く

キーボードのWindowsボタン(キーボードの左下)+Rを押します。

ファイル名を指定して実行画面が表示されるので、「cmd」と入力しOKボタン。

 

コマンドプロンプトが表示されたら、「cd」と半角スペースを押し、

先ほどの「psql.exe」があるフォルダを入力、または貼り付けます。

※貼り付けは右クリックでできます。

 

貼り付けたらENTERキーでディレクトリを移動します。

ちなみにcdコマンドは、change directoryの略でフォルダ移動のコマンドです。

 

3.動作確認をする(psqlコマンドを入力してみる)

試しに「psql --help」と入力してみて下さい。

ずらずらと使い方の文字が表示されたらpsqlが使えるようになった証拠です。

この後からは普通にログイン等のコマンドが入力できます。

 

うまくいかない場合は、そのフォルダにpsql.exeがあるか等を確認してみて下さい。

 

あわせて読みたい

psqlでログオンする方法はこちらに紹介しています

https://postgresweb.com/post-5407#h2-2

 

 

 

② 環境変数に登録する

二つ目は環境変数に登録する方法です。

次の1~3までの手順で行ってください。

 

1.psql.exeのあるフォルダを探す

インストール時に次へ次へで意識せずに進んでいた場合、

次のフォルダに「psql.exe」があると思いますので見つけます。

自分でフォルダを指定した場合は、その配下にあるbinフォルダを見てみて下さい。

 

PostgreSQL12の場合:C:\Program Files\PostgreSQL\12\binフォルダ

         psql.exeのありか(PostgreSQL12の例)

 

2.環境変数画面を開く

エクスプローラーのPCを選択した状態で、

右クリックのプロパティをクリックします。

 

左のメニューからシステムの詳細設定をクリック。

 

詳細設定タブの環境変数をクリック。

 

上部のPathを選択し、編集ボタンをクリックします。

 

右上の新規ボタンを押します。

 

1で確認した、psql.exeのあるフォルダを入力します。

画面の例では、「C:\Program Files\PostgreSQL\12\bin」としています。

 

ここまでで環境変数の登録が完了しました。

 

3.動作確認をする(psqlコマンドを入力してみる)

試しにコマンドプロンプトを開き「psql --help」と入力してみて下さい。

ずらずらと使い方の文字が表示されたらpsqlが使えるようになった証拠です。

この後からはコマンドが入力できます。

 

この環境変数の登録作業は一度のみでOKです。

登録してもうまくいかない場合、環境変数の登録後一度再起動してみてください。