目次
#2. ストアド プロシージャの作成、呼び出し、表示" >#2. ストアド プロシージャの作成、呼び出し、表示
ホームページ データベース mysql チュートリアル MySQL ストアド プロシージャの高度な SQL ステートメントの概要

MySQL ストアド プロシージャの高度な SQL ステートメントの概要

Dec 07, 2022 pm 05:16 PM
mysql

この記事では、mysql に関する関連知識を紹介し、主にストアド プロシージャの高度な SQL ステートメントに関する関連内容を紹介します。一緒に見ていきましょう。皆様のお役に立てれば幸いです。

MySQL ストアド プロシージャの高度な SQL ステートメントの概要

推奨学習: mysql ビデオ チュートリアル

MySQL の高度な SQL ステートメント (ストアド プロシージャ)

1. ストアド プロシージャの概要

1.1 ストアド プロシージャとは

ストアド プロシージャは、特定の機能を実行するために設計された一連の SQL ステートメントです。
ストアドプロシージャの利用では、よく使うタスクや複雑なタスクをあらかじめSQL文で記述し、指定した名前で格納し、コンパイル・最適化してデータベースサーバーに格納します。このストアド プロシージャを使用する必要がある場合は、それを呼び出すだけです。ストアド プロシージャは、従来の SQL よりも高速かつ効率的に実行されます。

1.2 ストアド プロシージャの利点

  1. 一度実行すると、生成されたバイナリ コードはバッファに保存されます。実行効率を向上させます。
  2. SQL ステートメントと制御ステートメントのコレクションで、柔軟性が高くなります。
  3. これはサーバー側に保存され、クライアントから呼び出されたときにネットワーク負荷を軽減します。
  4. クライアント呼び出しに影響を与えることなく、複数回呼び出すことができ、いつでも変更できます。
  5. すべてのデータベース操作を完了し、データベースの情報アクセス許可を制御できます。

#2. ストアド プロシージャの作成、呼び出し、表示

#2.1 ストアド プロシージャの作成
delimiter $$                 #将语句的结束符号从分号;临时改为两个$$(可以自定义)
create procedure proc ()     #创建存储过程,过程名为proc,不带参数
-> begin                     #过程体以关键字begin开始
-> select * from store_info; #过程体语句
-> end $$                    #过程体以关键字end结束

delimiter ;                   #将语句的结束符号恢复为分号
ログイン後にコピー
例:

delimiter $$create procedure proc01 ()-> bengin
-> create table student(id int,name char(10),age int);-> insert into student values(1,'zhangsan',18);-> insert into student values(2,'lisi',18);-> select * from student;-> end $$delimiter ;
ログイン後にコピー

MySQL ストアド プロシージャの高度な SQL ステートメントの概要

##2.2 ストアド プロシージャの呼び出しと表示
call proc;               #调用存储过程



show create procedure [数据库.]存储过程名;  #查看某个存储过程的具体信息

show create procedure proc;
show create procedure proc\G

show procedure status [like '%proc%'] \G
ログイン後にコピー
例:
call proc01;   

 show create procedure proc01;
 show create procedure proc01\G       #查看存储过程的具体信息
 
 show procedure status like '%Proc01%'\G
ログイン後にコピー

MySQL ストアド プロシージャの高度な SQL ステートメントの概要
MySQL ストアド プロシージャの高度な SQL ステートメントの概要
MySQL ストアド プロシージャの高度な SQL ステートメントの概要

##2.3 ストアド プロシージャの削除
 #存储过程内容的修改方法是通过删除原有存储过程,之后再以相同的名称创建新的存储过程。
drop procedure if exists proc;
 #仅当存在时删除,不添加If EXISTS 时,如果指定的过程不存在,则产生一个错误。
ログイン後にコピー
例:
drop procedure if exists proc01;
ログイン後にコピー

MySQL ストアド プロシージャの高度な SQL ステートメントの概要

3. ストアド プロシージャのパラメータ

IN 入力パラメータ
    : 呼び出し元がプロセスに値を渡すことを示します。 (受信値はリテラルまたは変数にすることができます)
  • OUT 出力パラメーター
  • : プロシージャが呼び出し元に値を渡すことを示します。 (複数の値を返すことができます) (出力される値は変数のみです)
  • INOUT 入力パラメータと出力パラメータ
  • : 呼び出し元がプロセスに値を渡すことを意味し、プロセスは呼び出し元に値を渡します。 (値は変数のみです)
  • 注: 変数名にはアンダースコアを含めることはできません。
delimiter $$create procedure proc2(in stuname char(20))  #参数为stuname,数据类型一定要与下面的where语句后字段的数据类型相同-> begin
-> select * from student where name = stuname;-> end $$delimiter ;call proc2('zhangsan');       #调用存储过程,并传入参数‘zhangsan’
ログイン後にコピー

MySQL ストアド プロシージャの高度な SQL ステートメントの概要

4. ストアド プロシージャの制御ステートメント

MySQL ストアド プロシージャの高度な SQL ステートメントの概要

4.1 条件文: if-then-else … end if
 delimiter $$  
 create procedure proc03(in innum int)   #创建存储过程proc03,参数为innum,类型为int 
 -> begin 
 -> declare var int;         #定义变量var为int类型 
 -> set var=innum*2;         #变量var的值等于传入的参数值乘2
 -> if var>=10 then          #当var的值大于10时,id值会加1,否则减1
 -> update ss set id=id+1;  
 -> else 
 -> update ss set id=id-1;  
 -> end if;  
 -> end $$
  
 delimiter ;
 
 call proc03(8);    #调用存储过程,并传入参数8
 
 call proc03(3);    #调用存储过程,并传入参数3
ログイン後にコピー

MySQL ストアド プロシージャの高度な SQL ステートメントの概要

##4.2 ループ文: while ... · end while

 delimiter $$                   #修改默认结束符为$$
 create procedure proc05()      #创建存储过程proc04
 -> begin                       #过程体以关键字begin开始
 -> declare var int(10);        #定义变量var为int类型
 -> set var=0;                  #var的起始值为0
 -> while var insert into ss values(var);  
 -> set var=var+1;              #每次循环后var值自增1
 -> end while;                  #结束while循环
 -> end $$                      #创建存储过程结束
 
 delimiter ;                    #重新修改默认结束符为原始的;
 
 call proc05;                   #调用存储过程proc04
ログイン後にコピー

推奨学習:

mysql ビデオ チュートリアルMySQL ストアド プロシージャの高度な SQL ステートメントの概要

以上がMySQL ストアド プロシージャの高度な SQL ステートメントの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQL:初心者向けのデータ管理の容易さ MySQL:初心者向けのデータ管理の容易さ Apr 09, 2025 am 12:07 AM

MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

NAVICATでデータベースパスワードを取得できますか? NAVICATでデータベースパスワードを取得できますか? Apr 08, 2025 pm 09:51 PM

NAVICAT自体はデータベースパスワードを保存せず、暗号化されたパスワードのみを取得できます。解決策:1。パスワードマネージャーを確認します。 2。NAVICATの「パスワードを記憶する」機能を確認します。 3.データベースパスワードをリセットします。 4.データベース管理者に連絡してください。

Navicatプレミアムの作成方法 Navicatプレミアムの作成方法 Apr 09, 2025 am 07:09 AM

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

MySQLでテーブルをコピーする方法 MySQLでテーブルをコピーする方法 Apr 08, 2025 pm 07:24 PM

MySQLでテーブルをコピーするには、新しいテーブルの作成、データの挿入、外部キーの設定、インデックスのコピー、トリガー、ストアドプロシージャ、および機能が必要です。特定の手順には、同じ構造を持つ新しいテーブルの作成が含まれます。元のテーブルからデータを新しいテーブルに挿入します。同じ外部キーの制約を設定します(元のテーブルに1つがある場合)。同じインデックスを作成します。同じトリガーを作成します(元のテーブルに1つがある場合)。同じストアドプロシージャまたは関数を作成します(元のテーブルが使用されている場合)。

MariadBのNAVICATでデータベースパスワードを表示する方法は? MariadBのNAVICATでデータベースパスワードを表示する方法は? Apr 08, 2025 pm 09:18 PM

Passwordが暗号化された形式で保存されているため、MariadbのNavicatはデータベースパスワードを直接表示できません。データベースのセキュリティを確保するには、パスワードをリセットするには3つの方法があります。NAVICATを介してパスワードをリセットし、複雑なパスワードを設定します。構成ファイルを表示します(推奨されていない、高リスク)。システムコマンドラインツールを使用します(推奨されません。コマンドラインツールに習熟する必要があります)。

NavicatでMySQLへの新しい接続を作成する方法 NavicatでMySQLへの新しい接続を作成する方法 Apr 09, 2025 am 07:21 AM

手順に従って、NAVICATで新しいMySQL接続を作成できます。アプリケーションを開き、新しい接続(CTRL N)を選択します。接続タイプとして「mysql」を選択します。ホスト名/IPアドレス、ポート、ユーザー名、およびパスワードを入力します。 (オプション)Advanced Optionsを構成します。接続を保存して、接続名を入力します。

NAVICATでSQLを実行する方法 NAVICATでSQLを実行する方法 Apr 08, 2025 pm 11:42 PM

NAVICATでSQLを実行する手順:データベースに接続します。 SQLエディターウィンドウを作成します。 SQLクエリまたはスクリプトを書きます。 [実行]ボタンをクリックして、クエリまたはスクリプトを実行します。結果を表示します(クエリが実行された場合)。

MySQL:簡単な学習のためのシンプルな概念 MySQL:簡単な学習のためのシンプルな概念 Apr 10, 2025 am 09:29 AM

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

See all articles