関数(FUNCTION)を削除する方法

関数を削除する方法を紹介します。

-- 関数「testfnc」を削除する。
DROP FUNCTION 関数名(引数);

-- 引数のパターンが一つだけの関数は、関数名だけで削除できます(引数を省略できます。)
DROP FUNCTION 関数名;  -- ()なしで書く

-- 例
DROP FUNCTION testfnc(arg1 character varying,arg2 numeric);
DROP FUNCTION testfnc;

 

 

構文まとめを書いています。

「基本構文・こんな時どう書くんだっけ?」をまとめました

 

関数(FUNCTION)を実行する・呼び出す方法

関数を実行する・呼び出す方法を紹介します。

-- 関数を実行する(呼び出す)
-- 次の2つともどちらでもOK(同じ意味です)
select * from 関数名(引数1 , 引数2 , ・・・);
select 関数名(引数1 , 引数2 , ・・・);        -- * from は省略しても実行できます。


-- 関数の実行例(呼び出し例)
select * From testfnc('a',1);
select testfnc('a',1);       --どちらでも同じ(結果も変わらない)

 

 

こちらも参考に!関数の関連記事

関数(FUNCTION)の作り方・書き方を解説する

変数の宣言、変数宣言時に代入する、定数を宣言する方法

IF文の書き方(条件分岐)

For文(ループ文)の書き方

配列をループさせる

SQL(SELECT文)の結果をループする方法

SQLの結果を変数に格納する

変数の値を画面に出す(raise)

インデックスを追加、削除する構文

インデックスを追加、削除する構文です。

-- インデックスの作成
CREATE INDEX インデックス名 ON テーブル名 (列名1 , 列名2 , ・・・ );

-- インデックスの削除
DROP INDEX インデックス名;

 

 

構文まとめを書いています。

「基本構文・こんな時どう書くんだっけ?」をまとめました

 

ロールにテーブル、ビューの権限を付与する

ユーザー(ロール)にテーブル、ビューの権限を付与する構文は次のとおりです。

GRANT SELECT ON テーブル名 TO ロール名;          --SELECT権限を付与する
GRANT SELECT ON ビュー名 TO ロール名;            --SELECT権限を付与する
GRANT ALL PRIVILEGES ON テーブル名 To ロール名;  --すべての権限を付与する

 

 

ロールにテーブル、ビューの権限を削除する

削除する構文は次のとおりです。

REVOKE ALL PRIVILEGES ON テーブル名 FROM ロール名;
REVOKE ALL PRIVILEGES ON ビュー名 FROM ロール名;

 

あわせて読みたい

https://postgresweb.com/create-role

 

ユーザー(=ロール)の作成、削除

ユーザー(=ロール)の作成、削除する構文です。

※ PostgreSQLではユーザーをロールといいます。

-- ユーザー(=ロール)を作成する
CREATE ROLE ロール名 WITH LOGIN PASSWORD 'password'; 

--ユーザーの削除
DROP ROLE ロール名; 

 

 

 

ユーザーに関連付けられている特権を削除する

ユーザーに関連付けられている特権を削除する構文です。

ユーザー削除時に、権限が割り当てられていることによりエラーが出るケースがあります。

その際にこの構文を実行して下さい。

-- ユーザーに関連付けられている権限を削除する
DROP OWNED BY ロール名;

 

 

構文

1行のコメントを入れるには、半角のマイナス2個「--」をコメントにしたい文字の前に入れます。

複数行のコメントを入れるには、「/**/」ををコメントにしたい文字の前後に入れます。

-- 1行のコメント:マイナス二個でコメント扱いになります。

-- 複数行のコメントにするには/* */で文字を囲みます
/* ここから

ここまでがコメントです*/

PostgreSQLの構文まとめを書いています

「基本構文・こんな時どう書くんだっけ?」のまとめ

 

比較演算子の紹介

よく使う比較演算子を紹介します。

-- イコール
if (a = b) then

-- ノットイコール
if (a != c) then

-- 大なり
if (a > b) then

-- 小なり
if (a < c) then

-- 大なりイコール
if (a >= b) then

-- 小なりイコール
if (a <= c) then

-- 条件 かつ 条件の書き方
if (a > b) and (a < c) then

-- 条件 または 条件の書き方
if (a > b) or (a < c) then

 

 

PostgreSQLの構文まとめを書いています

「基本構文・こんな時どう書くんだっけ?」のまとめ

 

MySQLの構文をまとめました

MySQLの構文をまとめてみました。(随時更新予定です。)

PostgreSQLの構文まとめもやっていますので、こちらも参考になれば幸いです。

 

文字列操作

1.文字列の結合(concat)

select CONCAT('abc','def');                   # 'abcdef'
select CONCAT('abc','def','efg');             # 'abcdefefg'
select CONCAT('abc','def',ifnull(null,''));   # 'abcdef'
# nullを結合すると、返り値がnullになるため注意。(上はその対応にifnullで置換した例)

 

2.文字数の取得(char_length)

select char_length('a');          # 1(文字)
select char_length('あ');         # 1(文字)
select char_length('123あいう');  # 6(文字)

 

3.文字列のバイト数を取得(length)

select length('a');          # 1(バイト)
select length('あ');         # 3(バイト)
select length('123あいう');  # 12(バイト)

 

4.文字列の一部分を取得(substring、left、right)

select substring('abcdefghijk',2,3);  # 'bcd'  (2文字目から3文字取得する)
select left('abcdefghijk',5);         # 'abcde'(左から5文字取得する)
select right('abcdefghijk',5);        # 'ghijk'(右から5文字取得する)

 

5.検索文字位置の取得(locate)

select locate('ef','abcdefg');  # 5(5文字目にある)

 

6.スペース除去(trim)

SELECT TRIM('   abc   ');   # 'abc'   : 先頭・後方のスペースを除去
SELECT LTRIM('   abc   ');  # 'abc   ': 先頭のスペースを除去
SELECT RTRIM('   abc   ');  # '   abc': 後方のスペースを除去

 

7.大文字・小文字の変換(upper、lower)

select upper('abc');  # 'ABC' (大文字へ変換)
select lower('EFG');  # 'efg' (小文字へ変換)

 

8.置換(replace)

select replace('everywhere','e','E');  # 'EvErywhErE'(e ⇒ Eへ置換)

 

9.前0埋め(lpad)

select lpad('12345',10,'0');  # '0000012345'(10桁前0埋め)

 

10.後ろスペース埋め(rpad)

select rpad('12345',10,' ');  # '12345     '(後ろスペース埋め10桁)

 

11.Nullの場合の処理(COALESCE)

select ifnull(null , 'abc');  # 'abc'(一つ目の引数がnullなら二つ目の引数を返す)

 

 

数値操作

1.数値の書式設定(format)

select format(12345.67, '3'); # 12,345.67  少数3桁カンマ区切り

 

2.絶対値を取得(abs)

select abs(-5);  # 5

 

3.割り算の余りを取得(mod)

select mod(11,3);  # 2(11÷3の余り)

 

4.四捨五入(round、trunc)

select round(123.45678,3);     # 123.457(小数第3位四捨五入)
select truncate(123.45678,3);  # 123.456(小数第3位切り捨て)
# 切り上げを小数第1位までとする時:0.09を足して、小数第1位で切り捨てる

 

5.ランダム値(random)

select rand(); # 0.896430・・・
# 範囲指定したランダム値
select round(( rand() * (下限値 - 上限値) ), 0) + 上限値;  # 50

 

 

日付操作

1.現在日時の取得

select current_date();           # 2020-07-19
select current_time();           # 23:01:23
select now();                    # 2020-07-19 23:01:23
select current_timestamp();      # 2020-07-19 23:01:23
select curdate();                # 2020-07-19(現在日時の文字列)
select curdate()+0;              # 20200719(現在日時の数値)

 

2.日付の書式設定(to_char)

select DATE_FORMAT(now(),'%Y/%m/%d');          # yyyy/mm/dd形式
select DATE_FORMAT(now(),'%k:%i:%s');          # hh:mm:ss形式
select DATE_FORMAT(now(),'%Y/%m/%d %k:%i:%s'); # yyyy/mm/dd hh:mm:ss形式

 

3.月、週、日、時刻を加算する

select DATE_ADD(now(),INTERVAL 5 MONTH);   # 月の加算
select DATE_ADD(now(),INTERVAL 5 WEEK);    # 週の加算
select DATE_ADD(now(),INTERVAL 5 DAY);     # 日の加算
select DATE_ADD(now(),INTERVAL 5 HOUR);    # 時間の加算
select DATE_ADD(now(),INTERVAL 5 MINUTE);  # 分の加算
select DATE_ADD(now(),INTERVAL 5 SECOND);  # 秒の加算

 

4.曜日を取得する(date_part)

select DAYOFWEEK(current_date());  # 1:日、2:月、3:火、4:水、5:木、6:金、7:土
select WEEKDAY(current_date());    # 0:月、1:火、2:水、3:木、4:金、5:土、6:日

 

5.月末の日を取得する

SELECT LAST_DAY(now()); # 2020-07-31 

 

 

型の変換(cast)

1.文字⇒日付

select cast('20200101' as date);  # 2020-01-01

 

2.文字⇒datetime

select cast('20200401123456' as datetime);  # 2020-04-01 12:34:56

 

3.文字⇒数値

select cast(123456789 as SIGNED);         # 123456789 
select cast(123456.789 as DECIMAL(9,3));  # 123456.789
# Decimal(全体桁数 , 小数点以下の桁数)で指定する

 

4.数値⇒文字

select cast(123456789 as char);  # '123456789'

 

5.数値⇒日付

select cast(20200701 as date);  # 2020-07-01

 

 

テーブル・列の変更

1.列の追加・変更・削除

# 列の追加
ALTER TABLE テーブル名 add 列名 型;

# Not Null制約の追加
ALTER TABLE テーブル名 MODIFY COLUMN カラム名 データ型 NOT NULL;

# デフォルト値の追加
ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET DEFAULT デフォルト値;

# 列の削除
ALTER TABLE テーブル名 DROP COLUMN 列名;

# インデックスの作成
CREATE INDEX インデックス名 ON テーブル名 (列名1 , 列名2 , ・・・ );

# インデックスの削除
ALTER TABLE テーブル名 DROP INDEX インデックス名;

 

2.データベース・テーブル・列にコメントを付加する

# テーブルにコメント追加
ALTER TABLE テーブル名 COMMENT 'コメント'

# 列にコメント追加
ALTER TABLE テーブル名 MODIFY 列名 型 NOT NULL COMMENT 'コメント'; 
# NOT NULLの場合、「NOT NULL」は必ず含める(NullOKになってしまうため)

# 列のコメント削除
ALTER TABLE テーブル名 MODIFY 列名 型 NOT NULL COMMENT 'コメント'; 
# NOT NULLの場合、「NOT NULL」は必ず含める(NullOKになってしまうため)

 

3.生成列(自動で計算される列)

列名 型 as 式 STORED  # STORED   # 通常の列情報のように扱える
列名 型 as 式 VIRTUAL # VIRTUAL  # 実データを持たず、読み込むタイミングで計算
bmi int AS (weight / ((height / 100) * (height / 100))) STORED # BMI列の例

 

 

ビュー

1.ビューの作成

CREATE VIEW ビュー名 AS select文;

 

2.ビューの削除

DROP VIEW ビュー名;

 

 

データベースやテーブル情報の取得

1.テーブル一覧の取得

show tables from データベース名;

 

2.テーブルの列一覧の取得

show columns from テーブル名;

 

3.ビュー一覧の取得

SELECT * FROM information_schema.tables
WHERE table_type = 'VIEW' and  TABLE_SCHEMA = 'データベース名';  
# データベース名はシングルクオーテーションありで指定

 

4.データベース一覧の取得

show databases;  # このまま実行可

 

5.オートインクリメント

--オートインクリメントの列ありのテーブル作成
CREATE TABLE テーブル名 (列名 INT AUTO_INCREMENT NOT NULL, 他の列, PRIMARY KEY (列名));

# オートインクリメントの値設定
ALTER TABLE テーブル名 AUTO_INCREMENT = 10;

# オートインクリメントの値確認
SHOW TABLE STATUS WHERE name = 'テーブル名' # AUTO_INCREMENT列に表示される

 

文字列操作

2つの文字列を比較して一致するかチェックする

文字を左のX文字目から○文字切り取る(Mid関数)

文字列から検索文字の位置を取得する(IndexOf)

検索文字を後ろから検索する(LastIndexOf)

文字列をバイト数で計算する

文字列の追加したい箇所に文字を入れる

ひらがなをカタカナに置換する

カタカナをひらがなに置換する

半角から全角へ変換する

全角から半角へ変換する

単語の先頭文字を大文字に変換する

文字列中に指定した文字が含まれるかのチェック

文字列から指定した文字数を削除する

ファイルパス(フルパス)からファイル名を取得する

カンマ区切り文字列の指定カンマ箇所を取得する

指定した文字の出現回数をカウントする

 

 

数値操作

数値であるかのチェック(IsNumeric)

四捨五入(Round)

消費税を計算する(8%、10%対応)

ランダム値を生成する(Rand)

数値をカンマで区切る

Decode関数

引数の最大の整数値を返す(FLOOR関数)

 

 

日付・時間操作

日付を加算する(Date型)

日付を加算する(timestamp型)

日付であるかのチェック(IsDate)

日付の差を計算する

西暦から和暦へ変換する

曜日を取得する

月末日を取得する

年月日の文字列から日付を作成する

次の月曜日、火曜日、○曜日を求める(next_day関数)

 

 

配列

配列に特定の文字列が含まれるかをチェックする

2つの配列を結合する

配列の要素数を取得する

配列が全て空かチェックする

配列の指定箇所に値を入れる(文字列)

配列の指定箇所に値を入れる(数値)

 

記事一覧

PostgreSQLに関する記事一覧です。(検索用にも)

 

SQL(文字列操作)

文字列の結合、nullの結合

改行コードで結合、置換する

文字数のカウント(length)、バイト数を取得する

文字の切り取り(Left、Right、Substring)

検索文字位置の取得(strpos)

lower(大文字を小文字に変換する)

全角半角スペースを除去する(trim)

upper(小文字を大文字に変換する)

大文字小文字を変換する、区別せず比較する

文字を置換する、複数置換する(replace、translate)

前0埋め、後ろ0埋め(lpad、rpad)

Nullの時に別の値に置き換える

nullif関数

 

 

SQL(数値操作)

数値を文字に変換する(to_char)

絶対値を取得する(ABS)

余りを計算する(mod)、偶数奇数によって処理を分ける

ランダム値を生成する(random)

 

 

SQL(日付操作)

現在日時、システム日時の取得

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

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

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

日付の切り捨て(date_trunc)の使い方

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

 

 

SQL(配列)

配列の要素数を取得する

配列の先頭・末尾に追加する

 

 

SQL(型変換)

文字から数値、数値から文字へ変換する

文字を日付に変換する、書式を設定する

 

 

SQL

PostgreSQLでdual表の使い方

文字列中にシングルクオーテーションを入れる方法(エスケープ)

Case文(複数条件分岐、Case When)

whereで配列、in句で配列を使う

GROUP BY(グループ化)

月ごとに集計する、年ごとに集計するSQL

ROLLUPを使って合計行を作ってみる

中央値を求める方法

offsetの使い方

 

 

PostgreSQL入門

PostgreSQLとはをわかりやすく解説する(2021年版)

PostgreSQLの読み方

pgAdmin4の使い方(見方から操作まで)

データベースクラスタ(DBクラスタとは)

 

 

PostgreSQLインストール

PostgreSQLのインストール(PostgreSQL13)

PostgreSQLのインストール(PostgreSQL12)

PostgreSQLのインストール(PostgreSQL11)

pgAdmin4の日本語化

インストールなしで使用する(ポータブル版)

WindowsへPostgreSQLのODBCのインストール

 

 

psql

Windowsでpsqlの起動の仕方

sqlファイルをコマンドプロンプトで実行する

psqlでパスワードを省略する

データベースへの接続(pgAdmin)

データベースを切り替えるコマンド

 

 

データベース定義

データベースを作成する

データベースを削除する(DROP DATABASE)

 

 

テーブル定義

テーブルを作成する方法(pgAdminで作成する)

テーブルを作成する方法(CREATE文で作成する)

テーブルを作成する(CREATE TABLE文の構文説明)

テーブルにデータを登録する方法(pgAdmin、INSERT文、UPDATE文での登録)

テーブルのデータを取得する(SELECT文、pgAdmin)

テーブルのデータを削除する方法(pgAdmin、DELETE文での削除)

テーブルに列を追加する、削除する方法、桁数を変更する方法

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

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

データベース、テーブル、列へコメントをつける

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

プライマリーキーとユニークキーの違い

INDEXを追加、削除する

INDEXを再構築する(REINDEX)

なんとなくわかるWindow関数とは

 

 

データ型

文字型の型について整理してみた

textからvarcharへの変換、varcharからtextへの変換の方法

textとvarchar(character varying)の違い

数値型の型について整理してみた

boolean(論理型)について整理してみた

timestampのwithout time zoneとwith time zoneの違い

シーケンス(serial)を作成する

列挙型(ENUM)の書き方

生成列を定義する

 

 

ビュー他

ビュー(VIEW)を作成する、削除する

マテリアライズドビュー(マテビュー)を作成する

 

 

関数

関数(FUNCTION)の作り方・書き方を解説する

CREATE FUNCTIONのテンプレート

関数(FUNCTION)を実行する・呼び出す方法

関数(FUNCTION)を削除する方法

プロシージャ(PROCEDURE)を実行する・呼び出す方法

CREATE PROCEDUREのテンプレート

変数の宣言、変数宣言時に代入する、定数を宣言する方法

IF文の書き方(条件分岐)

比較演算子の紹介

For文の書き方、ループから抜ける方法

While文の書き方、途中で抜ける方法

配列をループさせる

SQLの結果を変数に格納する

SQL(SELECT文)の結果をループする方法

引数にデフォルト値を設定する

変数の値を画面に出す(raise)

コメントの書き方

 

 

ユーザー・ロール

ユーザー(ロール)の作成、削除の方法

ユーザーを作成する(CREATE USER文、CREATEUSER)

ユーザー情報を変更する(ALTER ROLE、ALTER USER)

ユーザーを削除する(DROP USER文、DROPUSER)

CREATE USERとCREATE ROLEの違い

ユーザー(ロール)にテーブル、ビューの権限を付与する、削除する

 

 

システム情報

データベース情報を取得する(ビュー、トリガー、インデックス)

テーブルサイズを確認するSQL

テーブル一覧とデータ件数を取得するSQL

テーブルの列一覧を取得する

template1の文字コードを変更する

データベースのtemplate1、template0とはを調べてみた

Windowsで文字コード(client_encoding)を変更する

データベースの文字コードを変更する

システムカタログとinfomation schema

 

 

メンテナンス

ANALYZEとは

AUTOVACUUMとは

VACUUMとは、VACUUM FULLの実行

CLUSTER(データをインデックス順に並び替える)

データベースのパフォーマンスチューニング

Explainの見方(analyze , cost , scan , sort)についてのまとめ

サービスの停止・再起動コマンド

接続中のセッションを確認する

 

 

バックアップ

pg_dumpコマンドを初心者向けに解説します

pg_dumpでパスワードを省略する(簡単)

pgAdminでデータベースのバックアップを取る方法

データベースをバックアップする(コマンド、bat)

Windowsでpg_dumpとpg_restoreの実行方法

データベース(DB)を復元(リストア)する

 

 

PostgreSQL設定ファイル

接続設定の方法(Windows)

pg_hba.confのmethodに設定する値

ファイルpg_hba.confの場所(Windows)

 

 

エラー対応

エラーを取得する(EXCEPTION)

pgAdmin4が読み込み中のまま起動しない

『'psql' は内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。』の対応

syntax error(SQL 状態: 42601)とは

「ERROR: source database "template1" is being accessed by other users」の対処方法

テーブル削除できない時の対処方法(cannot drop table because other objects depend on it)

pgAdmin4 依存性画面が消えない

エラー「database is being accessed by other users DETAIL:There is other session using the datanase」

postmaster.pidがありませんの対処方法

データが編集できない時の原因と対処方法

 

 

PostgreSQLその他

チートシート作りました

バージョンの違い・変更点まとめ(9、10、11、12)

各バージョンのサポート期限(EOL)のまとめ

予約語、未予約語とは

OIDとは?について調べたことのメモ

pgAdminのマスターパスワードを変更する方法

postgresユーザーのパスワードを忘れた場合の手順

PostgreSQLでバージョン確認を確認する方法・コマンド(windows)

EDB Postgresとは?価格・費用は?

Windows Defenderへ除外登録する

テストデータを作成する(pgbench)

locale(ロケール)とは

PostgreSQLライセンス

 

 

自作関数の実行

自作関数の実行の仕方

 

 

自作関数(文字列)

カンマ区切り文字列の指定カンマ箇所を取得する【自作関数】

文字列の追加したい箇所に文字を入れる【自作関数】

文字列から指定した文字数を削除する【自作関数】

配列に特定の文字列が含まれるかをチェックする【自作関数】

2つの文字列を比較して一致するかチェックする【自作関数】

文字を左のX文字目から○文字切り取る(Mid関数)【自作関数】

文字列から検索文字の位置を取得する(IndexOf)【自作関数】

ひらがなをカタカナに置換する【自作関数】

カタカナをひらがなに置換する【自作関数】

文字列が空であるかのチェック【自作関数】

文字列のバイト数を取得する【自作関数】

検索文字を後ろから検索する(LastIndexOf)【自作関数】

単語の先頭文字を大文字に変換する【自作関数】

文字列中に指定した文字が含まれるかのチェック【自作関数】

全角から半角へ変換する【自作関数】

半角から全角へ変換する【自作関数】

指定した文字の出現回数をカウントする【自作関数】

 

 

自作関数(数値)

数値であるかのチェック(IsNumeric)【自作関数】

四捨五入・切り上げ・切り捨て(Round)【自作関数】

消費税を計算する(8%、10%対応)【自作関数】

数値をカンマで区切る【自作関数】

ランダム値を生成する自作関数(Rand)【自作関数】

Decode関数【自作関数】

引数の最大の整数値を返す(FLOOR関数)【自作関数】

ファイルパス(フルパス)からファイル名を取得する【自作関数】

 

 

自作関数(日付)

曜日を取得する【自作関数】

日付であるかのチェック(IsDate)【自作関数】

日付を加算する(timestamp型)【自作関数】

日付を加算する(Date型)【自作関数】

2つの日付の差を計算する【自作関数】

次の月曜日、火曜日、○曜日を求める(next_day関数)【自作関数】

年月日の文字列から日付を作成する【自作関数】

月末日を取得する(LAST_DAY)【自作関数】

西暦から和暦へ変換する【自作関数】

 

 

自作関数(配列)

2つの配列を結合する【自作関数】

配列の指定箇所に値を入れる(数値)【自作関数】

配列の指定箇所に値を入れる(文字列)【自作関数】

配列が全て空かチェックする【自作関数】

配列の重複値を除外する【自作関数】