MySQLのビューとストアドプロシージャ

1、ビュー

1、ビューを作成します

作成 ビュー(フィールドエイリアス...)AS SELECT文を
例:
作成 ビュー(LN、FN)として 選択 last_nameの、FIRST_NAME からの学生を。

図2は、基礎となる表のビューを介してCRUD操作であってもよいです。

図2に示すように、ストアドプロシージャ

1、および複合文文の区切り文字

区切り区切り名は
 作成します)(プロシージャ、関数名を
 始めます
関数本体
エンド ; 
DELIMITER#閉じ区切り
コール関数名

例:
delemiter $
(手順show_timesを作成します)
を開始する
'ローカル時間' SELECT CURRENT_TIMESTAMP ASを、
SELECT UTC_TIMESTAMP AS 'UTC時間';
エンド$
delemiterの
コールshow_times();#コール

図2に示すように、ストレージ機能とストアドプロシージャ

作成 機能の関数名(パラメータリスト)は
タイプのAを返します。 STMT
作成 手順ストアドプロシージャ名(パラメータリスト)
のstmt

機能の例:

$ delemiter
 作成 機能のテスト(EMP_SALARY INT リターンを INT
SQLデータ読み出し
BEGIN 
 RETURN選択 *から EMP どこ給与>  5000と給与= EMP_SALARYを)。
ENDの$
delemiter;

機能だけで一つの値を返すことができますが、複数の値が複数の機能に書き込むことができ返すためには、複数回呼び出さまたはストアドプロシージャを使用して。

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

$ delemiter
 CREATE  PROCEDUREの show_born_in_year(p_year INTをBEGIN 
    SELECT FIRST_NAME、LAST_NAME、誕生、死
     から社長
     YEAR(誕生)= p_year
 ENDの$を 
delemiter;

プロセスは、式で使用することはできませんとだけ通話に呼び出し文を使用することができます。

ストアドプロシージャのパラメータ型の三種類:、アウト、INOUTでは、デフォルトではです:

3、フリップフロップ

トリガーは、テーブルがDELETE、INSERT、UPDATE文を実行したときに自動的にアクティブに定義される特定のテーブルに関連付けられているストアドプロシージャです。トリガーは、テーブルに属しています

構文:

作成 トリガTRIGGER_NAME番号のトリガー名を
 [ 前|後]                   #トリガー
 [ INSERTは|削除|更新]           #は、トリガー文をアクティブに
 ON table_nameのの#関連するテーブル
 FOR EACH ROW番号のtrigger_stmtコンテンツ

例:

登録 テーブル T(パーセント INT、DT DATETIMEを
区切り文字$
作成 トリガ BEFORE bi_tをINSERT  ONのトン
       FOR EACH ROW BEGIN 
           IF NEWを。パーセント <  0  その後、
                 SET NEW。パーセント= 0 
           ELSEIF NEW。パーセント >  100  その後、
                 SET NEW。パーセント= 100 END  IF ;
エンド $ NEW.dt = CURRENT_TIMESTAMP ;
エンド$
デリミタ;

 

おすすめ

転載: www.cnblogs.com/xiaolan-/p/12406016.html