MySQLカスタム関数の原理と使用法の分析

MySQLカスタム関数の原理と使用法の分析

この記事では、例を使用して MySQL カスタム関数の原理と使用方法を説明します。ご参考までに、詳細は以下の通りです。

この記事の内容:

  • 関数とは何か
  • 関数の作成
  • 関数呼び出し
  • 機能ビュー
  • 機能変更
  • 関数の削除

リリース日: 2018-04-18


関数とは何か:

  • 関数は一連の SQL ステートメントを格納し、関数を呼び出すとこれらのステートメントが一度に実行されます。したがって、関数はステートメントの重複を減らすことができます。 [ただし、この関数は実行プロセスではなく戻り値に重点を置いているため、一部のステートメントは実行できないことに注意してください。したがって、この関数は単なる SQL ステートメントの集合ではありません。 】
  • MySQL関数には独自のカスタム関数(定義済み関数)があります。詳細については、私の別のブログ投稿「一般的なMySQL関数」を参照してください。
  • ここでは主に機能のカスタマイズ方法を紹介します。

補充:

  • 関数とストアド プロシージャの違い: 関数は値を返すことしかできず、結果セットを返すことはできません。関数は戻り値を重視するため、クエリ ステートメントであっても複数の値を返すことはできません。
    -- 受け入れられないコード: 関数から結果セットを返すことはできません
    関数myf()を作成し、intを返す 
    始める
    学生から*を選択します。
    100 を返します。
    終わり;

関数の作成:

  • 文法:
    関数を作成する 関数名([パラメータリスト]) データ型を返す begin
     SQL ステートメント;
     戻り値;
    終わり;
    • パラメータリストの形式は次のとおりです: 変数名 データ型
  • 例:
    -- 1 つの SQL ステートメントのみを使用する最も単純な関数: create function myselect2() returns int return 666;
    select myselect2(); -- 関数を呼び出す --
    関数myselect3()を作成するとintが返される
    始める 
      c int を宣言します。
      cname="python" のクラスから id を選択して c に格納します。
      c を返します。
    終わり;
    myselect3() を選択します。
    -- パラメータを渡す関数 create function myselect5(name varchar(15)) は int を返します
    始める 
      c int を宣言します。
      cname=name となるクラスから id を選択して c に入れます。
      c を返します。
    終わり;
    myselect5("python")を選択します。

補充:

  • 次のような、return の後、begin の前に記述される特別なオプションもあります。
    • コメント: 機能の説明
    • 他にもSQLセキュリティなどのオプションがいくつかあります。興味があれば、Baiduで検索してみてください。ここでは説明しません。この知識ポイントについてだけ述べます。

関数呼び出し:

  • 関数名()を使用して直接呼び出すことができます。[と言われているものの、結果を返します。SQLでselectが使用されていない場合は、結果を表示できません(そのため、単純な呼び出しではエラーが報告されます)。]
  • パラメータを渡したい場合は、関数名(パラメータ)を使用できます。
  • 呼び出し方法 [以下で呼び出される関数はすべて上記で作成されます。 】:
    -- パラメータなしで select myselect3() を呼び出します。
    -- select myselect5("python"); を呼び出します。
    id=myselect5("python") のクラスから * を選択します。

機能ビュー:

  • 関数作成ステートメントを表示します: show create function function name;
  • すべての関数を表示: 関数のステータスを表示します ['pattern' のように];

機能変更:

  • この関数はコメントなどの一部のオプションのみを変更できますが、内部 SQL ステートメントとパラメータ リストを変更することはできません。
  • 関数関数名オプションを変更します。

機能の削除:

  • 関数名をドロップします。

MySQL 関連のコンテンツに興味のある読者は、次のトピックを確認してください: 「MySQL 共通関数の概要」、「MySQL ログ操作スキルの概要」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの概要」、および「MySQL データベース ロック関連スキルの概要」。

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQLカスタム関数CREATE FUNCTIONの例
  • MySQL でのカスタム関数とストアド プロシージャの作成に関する詳細な説明
  • MySQL 中国語文字変換ピンインカスタム関数と使用例 (最初の単語の最初の文字)
  • MySQLカスタム関数についての簡単な説明
  • MySQL でカスタム関数を使用して文字列から数値を抽出する方法
  • MySQLでカスタム関数を作成する際の問題
  • MySQLカスタム関数の簡単な使用例
  • MySQL ストアド関数(カスタム関数)の定義と使用方法の詳細な説明
  • 正の整数かどうかを判断するMYSQLカスタム関数の例コード
  • MySQLカスタム関数とストアドプロシージャの詳細な説明
  • MySQLはカスタム関数を使用して親IDまたは子IDを再帰的に照会します

<<:  Nginx Linux のインストールと展開の詳細なチュートリアル

>>:  Vue の this.$store.state.xx.xx に関する簡単な説明

推薦する

3つの簡単な例を使ってハイパーリンクの下線を削除する方法

ハイパーリンクの下線を削除するには、スタイルシート CSS を使用する必要があります。当面は CSS...

Docker のポート解放失敗の解決策

今日、非常に奇妙な状況に遭遇しました。docker イメージを更新した後、docker-compos...

Mysql マルチテーブル結合クエリの実行の詳細について簡単に説明します。

まず、このブログのケースデモンストレーション テーブルを作成します。 create table a(...

Linux (CentOS7) で RPM を使用して MySQL 8.0.11 をインストールするチュートリアル

目次1. インストールの準備1. Linux関連情報の表示(Linuxコマンドライン操作) 2. M...

HTMLで下線を設定するには?HTMLでテキストに下線を付ける方法

HTML で下線を引くには、以前はテキストを <u></u> タグで囲む必要...

TypeScript インターフェースの紹介

目次1. インターフェース定義2. 属性2.1 オプション属性2.2 読み取り専用プロパティ3. ク...

Centos7はMySQLログに基づいてデータを復元するためのサンプルコードを実装します

導入Binlog ログ、つまりバイナリ ログ ファイルは、データベースに対するユーザー操作の SQL...

MySql エラー 1698 (28000) の解決策

1. 問題の説明: MysqlERROR1698 (28000) の解決方法、新しくインストールされ...

ネストされた HTML ページの使用例 (フレームセットの使用)

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

フレックスレイアウトが子要素によって引き伸ばされたときに、コンテンツをコンテナ内に保持する方法

モバイル デバイスでは、フレックス レイアウトが非常に便利です。デバイスの幅に応じてコンテナーの幅を...

Windows Server 2008 R2 マルチユーザー リモート デスクトップ接続ライセンス

仕事ではリモート サーバーが必要になることが多く、次の 2 つの問題に遭遇することがよくあります。 ...

Vueコンポーネントのカスタムイベントの詳細な説明

目次要約する <テンプレート> <div> 要素 <h2>{{メ...

docker ベースの mariadb のインストール構成プロセスの分析

1. インストール dockerhub を通じてインストールする mariadb のバージョンを検索...

ウェブサイト製品設計の参考となるいくつかの原則

以下の分析は製品設計原則に関するものですが、そのほとんどはウェブサイト製品に基づいているため、ユーザ...

Win10でIIS10を構成し、ASPプログラムのデバッグをサポートする手順

マイクロソフトIIS (Internet Information Server) は、Microso...