MySQLにおける区切り文字の定義と機能の詳細な説明

MySQLにおける区切り文字の定義と機能の詳細な説明

MySQL を初めて学ぶときは、区切り文字の本当の目的を理解していないかもしれません。区切り文字は、ストアド プロシージャ、トリガー、関数など、MySQL のさまざまな場所で使用されます。

Oracle を学習した人にとって、MySQL を学ぶのは非常に奇妙で困惑するでしょう。

実際には、コマンドが終了したかどうか、および MySQL がそれを実行できるかどうかを MySQL インタープリターに伝えます。

デフォルトでは、区切り文字はセミコロン (;) です。

コマンドライン クライアントでは、コマンド行がセミコロンで終わる場合、mysql は Enter キーを押すとコマンドを実行します。次の文を入力すると

mysql> select * from test_table;

次に Enter キーを押すと、MySQL はすぐにステートメントを実行します。

しかし、場合によっては、MySQL でこれを実行したくないことがあります。複数のステートメントを入力することができ、ステートメントにはセミコロンを含めることができます。

コマンドラインクライアントに次の文を入力しようとすると

mysql> CREATE FUNCTION `SHORTEN`(S VARCHAR(255), N INT)
mysql> varchar(255) を返します
mysql> 開始
mysql> ISNULLの場合
mysql> <strong> '' を返します; </strong>
mysql> N < 15の場合
mysql> RETURN LEFT(S, N);
mysql> それ以外の場合
mysql> CHAR_LENGTH(S) <= Nの場合
mysql> S を返します。
mysql> それ以外の場合
mysql> RETURN CONCAT(LEFT(S, N-10), '...', RIGHT(S, 5));
mysql> END IF;
mysql> END IF;
mysql> 終了;

デフォルトでは、ユーザーがすべてのステートメントを入力するまで待ってからステートメント全体を実行することはできません。

mysql はセミコロンに遭遇すると自動的に実行されるためです。

つまり、 RETURN ''; ステートメントが実行されると、MySQL インタープリタが実行されます。

この場合、区切り文字を // や $$ などの他の記号に事前に置き換える必要があります。

mysql> 区切り文字 //
mysql> CREATE FUNCTION `SHORTEN`(S VARCHAR(255), N INT)
mysql> varchar(255) を返します
mysql> 開始
mysql> ISNULLの場合
mysql> '' を返します。
mysql> N < 15の場合
mysql> RETURN LEFT(S, N);
mysql> それ以外の場合
mysql> CHAR_LENGTH(S) <= Nの場合
mysql> S を返します。
mysql> それ以外の場合
mysql> RETURN CONCAT(LEFT(S, N-10), '...', RIGHT(S, 5));
mysql> END IF;
mysql> END IF;
mysql> 終了;//

この方法では、MySQL インタープリターは // が出現した場合にのみこのステートメントを実行します。

その上。 MySQL のストレージ プロセスでは、次の点に注意する必要があります。

proc_while_test が存在する場合は PROCEDURE を削除します。
デリミタ;;
CREATE DEFINER = root@localhost PROCEDURE proc_while_test(IN n int)
始める 
  i int を宣言します。
  int を宣言します。
 i = 0 に設定します。
  s = 0 に設定します。
  i <= n の場合
    s = s + i を設定します。i++ を設定します。
    i = i + 1 と設定します。
  終了WHILE;
  s を選択します。
終わり
;;
区切り文字 ;

上記の例では、set i++; により while ループ全体でエラーが報告されます。 MySQL ストアド プロシージャでは、i++ をこのように記述することはできません。 i=i+1 の形式で記述する必要があります。

補足:Mysqlにおける区切り文字の役割を見てみましょう

1. 区切り文字

delimiter は MySQL の区切り文字です。MySQL クライアントのデフォルトの区切り文字はセミコロン (;) です。
一度に複数のステートメントを入力し、ステートメントの途中にセミコロンがある場合は、特別な区切り文字を指定する必要があります。

2. 区切り文字の使用

前の記事では、MySQLトリガーを設定する例があります。

mysql> 区切り文字 // 
mysql> アカウントの更新前にトリガー upd_check を作成する  
  -> 各行ごとに 
  -> 開始 
  -> new.amount < 0 の場合 
  -> new.amount=0 を設定します。 
  -> elseif new.amount > 100 の場合 
  -> new.amount を 100 に設定します。 
  -> 終了の場合; 
  -> 終了; 
  -> // 
クエリは正常、影響を受けた行は 0 行 (0.00 秒) 
mysql> 区切り文字;

上記は、まずセパレータを//に設定し、

次の // に遭遇するまで、ステートメント全体は実行されません。

実行後、最後の行 delimiter; は MySQL 区切り文字をセミコロンにリセットします。

変更しない場合、このセッション内のすべての区切り文字は // に基づきます。

要約する

上記は、Mysql における区切り文字の役割の詳細な説明です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。

以下もご興味があるかもしれません:
  • MySqlの区切り文字の役割は何ですか

<<:  ウェブ計算機を実装するためのjs

>>:  Centos7 での nginx のインストールと設定に関する詳細なチュートリアル

推薦する

Dockerはローカルイメージとコンテナの保存場所を設定します

指定したサイズより大きいファイルを検索するには、find コマンドを使用します。 検索 / -typ...

Vue の高度な使用方法チュートリアル 動的コンポーネント

目次基本的な説明AST 解析レンダリング機能通常コンポーネントと動的コンポーネントの比較ファクトリ関...

1 つ以上の Linux インスタンスから SSH キー ペアのバインドを解除します。

キーペアの分離1 つ以上の Linux インスタンスから SSH キー ペアのバインドを解除します。...

MySQL テーブルの断片化を解消し、スペースを再利用する方法

目次MySQL テーブルの断片化の原因行の断片化行内断片化空き領域の断片化MySQL で極度に断片化...

Robots.txtの詳細な紹介

Robots.txt はプレーンテキスト ファイルであり、Web サイト管理者は、ロボットによるアク...

リモート Linux システムでポートが開いているかどうかを確認する 3 つの方法

これは、Linux 管理者だけでなく、私たち全員にとって非常に重要なトピックです。つまり、IT イン...

Linux で cmake を使用して MySQL をコンパイルおよびインストールするための詳細なチュートリアル

1. cmakeをインストールする1. cmakeの圧縮パッケージを解凍する [root@mysql...

Mysql 更新マルチテーブル共同更新方法の概要

次に、2 つのテーブルを作成し、一連の SQL 文を実行します。SQL 文の実行後にテーブル内のデー...

Win7 システムでの MySQL 5.7.11 の詳細なインストール チュートリアル

オペレーティング システム: Win7 64 ビット Ultimate Edition MySQL ...

mysql8.0.19 でパスワードを忘れた場合の完璧な解決策

おすすめの読み物: MySQL 8.0.19 は、間違ったパスワードを 3 回入力するとアカウント ...

React、Angular、Vueの3つの主要なフロントエンド技術の詳細説明

目次1. 反応する基本的な使い方注目すべき機能クラスコンポーネント仮想DOMライフサイクルメソッドJ...

適応レイアウトの処理について(フロートとマージンネガティブマージンを使用)

適応型レイアウトは、実際のアプリケーションでますます一般的になっています。今日は、主にフローティング...

Linux IO 多重化 epoll ネットワーク プログラミング

序文この章では、基本的な Linux 関数と epoll 呼び出しを使用して、Linux 上で実行で...

WindowsはVMwareを使用してLinux仮想マシンを作成し、CentOS7.2オペレーティングシステムをインストールします。

目次1. ウィザードに従って仮想マシンを作成します2. オペレーティングシステムをインストールします...

CentOS7で新しいデータディスクをマウントするための完全な手順

序文新しい VPS を購入しました。新しい VPS のデータ ディスクはデフォルトではシステムにマウ...