init
This commit is contained in:
25
【練習問題】ストアドプロシージャ/01-ProcTraining.sql
Normal file
25
【練習問題】ストアドプロシージャ/01-ProcTraining.sql
Normal file
@@ -0,0 +1,25 @@
|
||||
DELIMITER //
|
||||
/*
|
||||
**********************************************
|
||||
【Question】
|
||||
以下のプロシージャをMySQLに登録、プロシージャの実行をしてください。
|
||||
その後、プロシージャを削除してください。
|
||||
|
||||
***********************************************
|
||||
*/
|
||||
|
||||
DROP PROCEDURE IF EXISTS emp_info;
|
||||
CREATE PROCEDURE emp_info()
|
||||
BEGIN
|
||||
# 検索処理
|
||||
SELECT
|
||||
employee.*
|
||||
,department.nm_department
|
||||
FROM
|
||||
employee inner join department
|
||||
ON employee.id_department = department.id_department
|
||||
;
|
||||
END;
|
||||
//
|
||||
---------------------
|
||||
|
||||
15
【練習問題】ストアドプロシージャ/02-ProcTraining.sql
Normal file
15
【練習問題】ストアドプロシージャ/02-ProcTraining.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
DELIMITER //
|
||||
/*
|
||||
**********************************************
|
||||
【Question】
|
||||
問1で作成したプロシージャの改修を行なってください。
|
||||
仕様は以下の通りです
|
||||
|
||||
- プロシージャを実行する際に値(名前)を指定できるようにしたい
|
||||
- その名前の部分一致検索で情報を取得できるようにしたい
|
||||
|
||||
***********************************************
|
||||
*/
|
||||
|
||||
END;
|
||||
//
|
||||
14
【練習問題】ストアドプロシージャ/03-ProcTraining.sql
Normal file
14
【練習問題】ストアドプロシージャ/03-ProcTraining.sql
Normal file
@@ -0,0 +1,14 @@
|
||||
DELIMITER //
|
||||
/*
|
||||
**********************************************
|
||||
【Question】
|
||||
02で作成したプロシージャの仕様追加を行なってください。
|
||||
仕様は以下の通り
|
||||
|
||||
- 呼び出し時の引数がnullだった場合は全件検索を行う
|
||||
|
||||
***********************************************
|
||||
*/
|
||||
|
||||
END;
|
||||
//
|
||||
42
【練習問題】ストアドプロシージャ/04-ProcTraining.sql
Normal file
42
【練習問題】ストアドプロシージャ/04-ProcTraining.sql
Normal file
@@ -0,0 +1,42 @@
|
||||
DELIMITER //
|
||||
/*
|
||||
**********************************************
|
||||
【Question】
|
||||
以下のSQLは社員IDの欠番を一時テーブルに登録するプロシージャの作成途中です。
|
||||
以下のルールに従ってプロシージャを完成させてください。
|
||||
|
||||
例)
|
||||
10000 山田
|
||||
10001 髙橋
|
||||
10004 佐藤
|
||||
|
||||
となっていた場合は、欠番は
|
||||
10002, 10003
|
||||
となる
|
||||
***********************************************
|
||||
*/
|
||||
|
||||
DROP PROCEDURE IF EXISTS search_missing_num;
|
||||
CREATE PROCEDURE search_missing_num()
|
||||
BEGIN
|
||||
# 変数の定義
|
||||
# 現在登録されているIDを取得するカーソルを定義する
|
||||
DECLARE empIdCursor CURSOR FOR
|
||||
SELECT id_employee FROM employee ORDER BY id_employee;
|
||||
|
||||
# 欠番IDを保管しておく一時テーブルを作成する
|
||||
DROP TABLE IF EXISTS tmpTable;
|
||||
CREATE TABLE tmpTable (missingId INT PRIMARY KEY);
|
||||
|
||||
# カーソルをオープンする
|
||||
|
||||
# 登録されているID一覧を1レコードづつ読み込む
|
||||
|
||||
# 最初の1行以外であった場合は、現在処理中のIDがプールされているIDの+1かどうかを判定
|
||||
|
||||
# カーソルのクローズ
|
||||
|
||||
# ここまででコミット
|
||||
COMMIT;
|
||||
END;
|
||||
//
|
||||
Reference in New Issue
Block a user