ストアド プロシージャを削除する
ストアド プロシージャが作成されると、削除されるまで使用できるようにサーバー上に保存されます。 delete コマンド (第 21 章で紹介したステートメントと同様) は、サーバーからストアド プロシージャを削除します。 新しく作成されたストアド プロシージャを削除するには、次のステートメントを使用できます:
入力:
drop procedure productpricing;
分析: このステートメントは、新しく作成されたストアド プロシージャを削除します。次の () は使用されず、ストアド プロシージャ名のみが指定されることに注意してください。
DROP ONLY IF EXISTS DROP PROCEDURE は、指定されたプロシージャが存在しない場合にエラーを生成します。プロシージャが存在し、それを削除したい場合は、DROP PROCEDURE IF EXISTS を使用します (プロシージャが存在しない場合はエラーは生成されません)。
パラメータの使用
productpricing は、単に SELECT ステートメントの結果を表示する単純なストアド プロシージャです。通常、ストアド プロシージャは結果を表示しませんが、指定した変数に結果を返します。
変数 データを一時的に保存するために使用されるメモリ内の特定の場所。以下は、productpricing の修正バージョンです (最初にこのストアド プロシージャを削除しないと、再度作成することはできません):
入力:
create procedure productpricing( out pl decimal(8,2), out ph decimal(8,2), out pa decimal(8,2) ) begin select min(prod_price) into pl from products; select max(prod_price) into ph from products; select avg(prod_price) into pa from products; end;
分析: このストアド プロシージャは 3 つのパラメータを受け入れます: pl は製品の最低価格を格納し、ph は製品の最低価格を格納します製品の最高価格、pa には製品の平均価格が格納されます。各引数は指定された型を持つ必要があります。ここでは 10 進数値が使用されます。キーワード OUT は、ストアド プロシージャから値を渡す (呼び出し元に返される) ために、対応するパラメーターが使用されることを示します。 MySQL は、IN (ストアド プロシージャに渡される)、OUT (ここで使用されているようにストアド プロシージャから渡される)、および INOUT (ストアド プロシージャに出入りする) タイプのパラメータをサポートします。ストアド プロシージャのコードは、BEGIN ステートメントと END ステートメント内にあります。これらは、前に見たように、値を取得し、(INTO キーワードを指定して) 適切な変数に保存する一連の SELECT ステートメントです。
パラメータのデータ型 ストアド プロシージャのパラメータに許可されるデータ型は、テーブルで使用されるデータ型と同じです。付録 D にこれらのタイプをリストします。
レコードセットは許可されたタイプではないため、1 つのパラメーターを介して複数の行と列を返すことはできないことに注意してください。前の例で 3 つのパラメーター (および 3 つの SELECT ステートメント) を使用しているのはこのためです。この変更されたストアド プロシージャを呼び出すには、次のように 3 つの変数名を指定する必要があります:
入力:
call productpricing(@price low, @pricehigh, @priceaverage);
分析: このストアド プロシージャには 3 つのパラメータが必要であるため、正確に 3 つのパラメータを渡す必要があります。したがって、この CALL ステートメントには 3 つのパラメータが与えられます。これらは、ストアド プロシージャが結果を保持する 3 つの変数の名前です。
変数名 すべての MySQL 変数は @ で始まる必要があります。
このステートメントを呼び出すと、データは表示されません。後で表示できる (または他の処理で使用できる) 変数を返します。 取得した製品の平均価格を表示するには、次の手順を実行できます:
入力:
select @priceaverage;
出力:
3 つの値を取得するには、次のステートメントを使用できます:
入力:
select @pricehigh,@pricrlow,@priceaverage;
出力:
ここに別の例を示します。今回は IN パラメーターと OUT パラメーターを使用します。 ordertotal は注文
番号を受け入れ、注文の合計を返します:
入力:
create procedure ordertotal( in onumber int, out ototal decimal(8,2) ) begin select sum(item_price*quantity) from orderitems where order_num = onumber into ototal; end;
分析: 注文番号がストアド プロシージャに渡されるため、onumber は IN として定義されます。合計はストアド プロシージャから返されるため、ototal は OUT として定義されます。 SELECT ステートメントはこれら 2 つのパラメーターを使用し、WHERE 句は onumber を使用して正しい行を選択し、INTO は ototal を使用して計算された合計を保存します。
この新しいストアド プロシージャを呼び出すには、次のステートメントを使用できます:
入力:
call ordertotal(20005,@total);
分析: 2 つのパラメーターを ordertotal に渡す必要があります。最初のパラメーターは注文番号で、2 番目のパラメーターには計算された合計変数が含まれます。名前。 この合計を表示するには、次の手順を実行します:
入力:
select @total;
出力:
分析: @total は ordertotal の CALL ステートメントによって入力され、SELECT はそれに含まれる値を表示します。 別の注文の合計表示を取得するには、ストアド プロシージャを再度呼び出して、変数を再表示する必要があります:
Input:
call ordertotal(20009,@total); select @total;
以上がMySQLストアドプロシージャの削除操作の詳細説明とパラメータの使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

MySQLインデックスのカーディナリティは、クエリパフォーマンスに大きな影響を及ぼします。1。高いカーディナリティインデックスは、データ範囲をより効果的に狭め、クエリ効率を向上させることができます。 2。低カーディナリティインデックスは、完全なテーブルスキャンにつながり、クエリのパフォーマンスを削減する可能性があります。 3。ジョイントインデックスでは、クエリを最適化するために、高いカーディナリティシーケンスを前に配置する必要があります。

MySQL学習パスには、基本的な知識、コアの概念、使用例、最適化手法が含まれます。 1)テーブル、行、列、SQLクエリなどの基本概念を理解します。 2)MySQLの定義、作業原則、および利点を学びます。 3)インデックスやストアドプロシージャなどの基本的なCRUD操作と高度な使用法をマスターします。 4)インデックスの合理的な使用や最適化クエリなど、一般的なエラーのデバッグとパフォーマンス最適化の提案に精通しています。これらの手順を通じて、MySQLの使用と最適化を完全に把握できます。

MySQLの実際のアプリケーションには、基本的なデータベース設計と複雑なクエリの最適化が含まれます。 1)基本的な使用法:ユーザー情報の挿入、クエリ、更新、削除など、ユーザーデータの保存と管理に使用されます。 2)高度な使用法:eコマースプラットフォームの注文や在庫管理など、複雑なビジネスロジックを処理します。 3)パフォーマンスの最適化:インデックス、パーティションテーブル、クエリキャッシュを使用して合理的にパフォーマンスを向上させます。

MySQLのSQLコマンドは、DDL、DML、DQL、DCLなどのカテゴリに分割でき、データベースとテーブルの作成、変更、削除、データの挿入、更新、削除、複雑なクエリ操作の実行に使用できます。 1.基本的な使用には、作成可能な作成テーブル、INSERTINTO INSERTデータ、クエリデータの選択が含まれます。 2。高度な使用法には、テーブル結合、サブQueries、およびデータ集約のためのグループに参加します。 3.構文エラー、データ型の不一致、許可の問題などの一般的なエラーは、構文チェック、データ型変換、許可管理を介してデバッグできます。 4.パフォーマンス最適化の提案には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、およびデータの一貫性を確保するためのトランザクションの使用が含まれます。

INNODBは、ロックメカニズムとMVCCを通じて、非論的、一貫性、および分離を通じて原子性を達成し、レッドログを介した持続性を達成します。 1)原子性:Undologを使用して元のデータを記録して、トランザクションをロールバックできることを確認します。 2)一貫性:行レベルのロックとMVCCを介してデータの一貫性を確保します。 3)分離:複数の分離レベルをサポートし、デフォルトでrepeatable -readが使用されます。 4)持続性:Redologを使用して修正を記録し、データが長時間保存されるようにします。

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

MySQLは、中小企業に適しています。 1)中小企業は、顧客情報の保存など、基本的なデータ管理にMySQLを使用できます。 2)大企業はMySQLを使用して、大規模なデータと複雑なビジネスロジックを処理して、クエリのパフォーマンスとトランザクション処理を最適化できます。

INNODBは、次のキーロックメカニズムを通じてファントムの読み取りを効果的に防止します。 1)Next-KeyLockingは、Row LockとGap Lockを組み合わせてレコードとギャップをロックして、新しいレコードが挿入されないようにします。 2)実際のアプリケーションでは、クエリを最適化して分離レベルを調整することにより、ロック競争を削減し、並行性パフォーマンスを改善できます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6
ビジュアル Web 開発ツール
