MySql ビュー、トリガー、ストアド プロシージャに関する簡単な説明

MySql ビュー、トリガー、ストアド プロシージャに関する簡単な説明

ビュー

ビューとは何ですか?ビューの役割は何ですか?

ビューは仮想テーブルであり、データ自体を含まない論理テーブルです。選択ステートメントとしてデータ ディクショナリに保存されます

ビューを通じて、ベース テーブル (ビューを作成するために使用されたテーブルはベース テーブルと呼ばれます) のデータの一部を表示できます。簡単に言えば、ビューのデータはベース テーブルから取得されます。

ビューの利点:

  • シンプル: ビューを使用するユーザーは、対応するテーブルの構造、結合条件、フィルター条件を気にする必要がありません。ユーザーにとって、結果セットは複合条件によって既にフィルター処理されています。
  • セキュリティ: ビューを使用するユーザーは、クエリを許可された結果セットにのみアクセスできます。テーブルの権限管理は特定の行または列に制限することはできませんが、ビューを通じて簡単に実現できます。
  • データの独立性: ビューの構造が決定されると、テーブル構造の変更がユーザーに与える影響を遮断できます。ソース テーブルに列を追加しても、ビューには影響しません。ソース テーブルで列名が変更された場合は、訪問者に影響を与えることなくビューを変更することで解決できます。
  • スペースは占有されません: ビューは論理テーブルであり、メモリ スペースを占有しません。

つまり、ほとんどの場合、ビューはデータのセキュリティを確保し、クエリの効率を向上させるために使用されます。

ビューの欠点:

  • パフォーマンスが低い: SQL Server は、ビュー クエリを基本テーブルに対するクエリに変換する必要があります。ビューが複雑な複数テーブル クエリによって定義されている場合、ビューに対する単純なクエリであっても、SQL Server によって複雑な組み合わせに変換されるため、一定の時間がかかります。
  • 変更の制限: ユーザーがビュー内の特定の情報を変更しようとすると、データベースはそれをベース テーブル内の特定の情報の変更に変換する必要があります。これは単純なビューでは非常に便利ですが、より複雑なビューでは変更できない場合があります。

ビューの作成と変更

--作成するための基本的な構文は次のとおりです。
select ステートメントとしてビュー <ビュー名> を作成します。
select ステートメントとしてビュー <ビュー名> (フィールド) を作成します。
ビュー <ビュー名> を作成または置換します。

--変更された構文は次のとおりです。
alter view <ビュー名> as select statement;

--削除構文を表示します:
ビュー <ビュー名> を削除します。

トリガー

トリガーとは何ですか?

トリガーは特定の状況を監視し、アクションをトリガーします。

トリガーを作成および削除するための構文:

--トリガーを作成するための構文:
各行のテーブル名に対する挿入/更新/削除の前後にトリガートリガー名を作成します。
始める
SQL ステートメント;
終わり

--after/before: イベント発生前または発生後に設定できます --insert/update/delete: 挿入、更新、または削除の実行中にトリガーできます --for each row: 1 行おきにアクションを実行します --delete トリガー構文:
トリガートリガー名をドロップします。

デモ

--従業員の遅刻テーブルを作成します。
work_time_delayテーブルを作成する(
empno int not null コメント '従業員番号',
ename varchar(50) コメント '従業員名',
ステータス int コメント 'ステータス'
);

--delimiter // カスタムステートメント終了記号​
区切り文字 //

work_time_delay に挿入した後にトリガー trig_work を作成します。
各行ごとに
始める
 従業員を更新します。sal=sal-100 を設定します。empno=new.empno;
終わり
//

--new: イベント発生前または発生後に保存された新しいデータを参照します

ストアドプロシージャ

ストアド プロシージャとは何ですか?

ストアド プロシージャは、一連の複雑な操作をプロセスにカプセル化します。シェル、Python スクリプトなどに似ています。

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

  • 複雑な操作、シンプルな呼び出し
  • 高速

ストアド プロシージャの欠点:

  • 複雑なパッケージ
  • 柔軟性がない

ストアドプロシージャ構文を作成する

--ストアド プロシージャ構文を作成します。
プロシージャ名(パラメータ....)を作成します
始める
 手順本体;
 手順本体;
終わり
--パラメータ:
-- in|out|inout パラメータ名 タイプ (長さ)
-- in: 呼び出し元がプロシージャに値を渡すことを示します (渡される値はリテラルまたは変数です)
--out: プロシージャが呼び出し元に値を渡すことを示します(複数の値を返すことができます)(出力値は変数のみになります)
-- inout: 呼び出し元がプロシージャに値を渡し、プロシージャが呼び出し元に値を渡すことを示します (値は変数のみになります)

--変数を宣言します: 変数名、型 (長さ)、デフォルト、デフォルト値を宣言します。
-- 変数に値を割り当てます: set @variable name = value;
--ストレージコマンドを呼び出します: call name(@variable name);
--ストアド プロシージャを削除するコマンド: drop procedure name;
--作成されたストアド プロシージャを表示するコマンド: show create procedure name\G;

デモ

-- 簡単なストアド プロシージャを作成します。
区切り文字 //
プロシージャ名を作成します(in n int)
始める
 従業員制限 n から * を選択します。
終わり
//

-- ストアド プロシージャ セットを呼び出します @n=5;
//

名前(@n)を呼び出します。
プロシージャ名の作成()
始める
 n int のデフォルトを 6 と宣言します。
 従業員制限 n から * を選択します。
終わり
//

--ストアド プロシージャ call name() を呼び出します。
//

上記は、MySql ビュー、トリガー、およびストアド プロシージャの詳細に関する簡単な説明です。MySql ビュー、トリガー、およびストアド プロシージャの詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • ストアド プロシージャの復号化 (関数、プロシージャ、トリガー、ビューのクラッキング。SQLSERVER2000 でのみ使用可能)
  • SQLSERVER は暗号化されたストアド プロシージャ、ビュー、トリガーを復号化します (推奨)
  • MySQL トランザクション、ビュー、ストアド プロシージャ、トリガーに基づくアプリケーション分析
  • MySql ビュー トリガー ストアド プロシージャの詳細な説明
  • MySQLシリーズ5つのビュー、ストアド関数、ストアドプロシージャ、トリガー

<<:  webpackでvue環境を構築する際の異常なエラーを解決する

>>:  Mac ノードの削除と再インストールのケーススタディ

推薦する

JavaScript スロットリングとアンチシェイクに関する簡単な説明

目次スロットルと手ぶれ防止コンセプト:違いスロットリングの実装スロットル機能手ぶれ補正の実装手ぶれ防...

フロントエンドエンジニアが作ったクールなインタラクティブウェブサイトを推薦します

ウェブサイトリンク: http://strml.net/サミュエル・リード著ヒント: 昨日、Mome...

mysqlのkey_lenの計算方法についての簡単な説明

MySQL の explain コマンドは SQL のパフォーマンスを分析できます。その 1 つが ...

JavaScript の数値および数学オブジェクトの概要

目次1. JavaScript における数値2. Javascript の Math オブジェクト1...

React + Threejs + Swiper パノラマ効果を実現するための完全なコード

パノラマビュー効果を見てみましょう: 住所を表示スクリーンショット: 体験してみると、周囲の環境がぐ...

Dockerに証明書を追加する方法

1. アップグレードプロセス: sudo apt-get updateパッケージが見つからない、パッ...

各グループの最新データを取得するためにMySQLベースのグループを実装する

序文:グループ化関数はグループ内の最初のデータを取得しますが、各グループ内の最新のデータを取得する必...

WeChatアプレットのスクロールビューは、プルアップ時にデータの読み込みを重複させるソリューションを実装しています。

WeChat アプレットのスクロール ビューでは、プルアップして読み込むときにバグが多く発生します...

CSS 位置固定左と右の二重配置実装コード

CSS 位置position 属性は、要素の配置タイプを指定します。位置プロパティには 5 つの値が...

CSSはcalc()を使用して現在の表示画面の高さを取得します

まず、CSS3 の相対的な長さの単位を見てみましょう (詳細なチュートリアルを参照してください)。相...

Alibaba CloudがCloud Shieldから無料のSSL証明書(https)を申請

プロジェクトでは https サービスを使用する必要があるため、Alibaba Cloud では無料...

MySQL テーブル構造を Excel にエクスポートする方法

要件は次のとおりですテーブル構造、フィールドコメント情報、テーブル名などをエクスポートします。これは...

Linux 構成で MySQL データベースへのリモート接続が失敗する問題の解決方法

今日は、Linux でリモート アクセス用に MySQL データベースを構成する方法について質問があ...

Navicatを使ってMySQLを操作する方法

目次序文: 1. Navicatの紹介2. シンプルなチュートリアルの共有接続管理ライブラリテーブル...