MySQLまとめ その4


PROCEDURE使い方

ProcedureとはMySQLにおけるコードの一連の処理を名前をつけて関数のように使うことができるもの。

作成

Procedureを使ってテーブルの中身を表示させる。

delimiter //
CREATE PROCEDURE プロシージャ名
BEGIN
SELECT * FROM REGION;
END
//

BEGINとENDの間にコードを書きます。

呼び出し

CALL できれば結果を表示される。

CALL プロシージャ名;

先ほど作成したProcedureを呼び出してテーブルの中身を表示させることができた。

一覧表示

作成したプロシージャの一覧を表示

SHOW PROCEDURE STATUS;

確認

作成したプロシージャの詳細を表示

SHOW CREATE PROCEDURE プロシージャ名;

削除

作成したプロシージャを削除

DROP PROCEDURE プロシージャ名;

URL

ビュー(view)

ビューとはselect文などを作成する際、コードを抜き出し別のテーブルのように扱うことができるもの

ビューの作成

コード

CREATE VIEW view名 
AS 抜き出したコード;

参照テーブル


参照したテーブルをid >= 100の条件で表示させる。

viewコード


条件のid >= 100の条件に当てはまる内容を表示できた。

URL

Trigger

Triggerとは、データの変更などによってあらかじめ指定した処理を自動的に実行する機能です。

Triggerの作成

記述するにはBEGIN END文の間に使ってコードを書きます。

DELIMITER //
CREATE TRIGGER (trigger名) AFTER DELETE ON (table名) FOR EACH ROW
BEGIN
DELETE FROM (table名) ... ;
INSERT INTO (table名) ... ;
END;
//

DELIMITER ;

Triggerの削除

drop trigger (trigger名);

Triggerの一覧

show triggers;


作成したトリガの情報が作成されています。

Trigger    トリガ名
Event      トリガの種類(INSERT, UPDATE, DELETE)
Table      対象テーブル
Statement  実行するSQL文
Timing     タイミング(BEFORE, AFTER)

URL

MySQL CSVファイル入出力

CSVファイルをMySQLに接続しテーブルに値を取り込む。

入力

コード解説

LOAD DATA INFILE "(ファイル名)" 
INTO TABLE (テーブル名) 
FIELDS TERMINATED BY '(区切り文字)' 
ENCLOSED BY '"';

コード

LOAD DATA LOCAL INFILE "c:/data.csv" 
INTO TABLE data FIELDS 
TERMINATED BY ',' 
ENCLOSED BY '"';

CSVファイルの中身

80,|"sample7"
90,|"sample8"
100,|"sample9"

出力

コード解説

SELECT * FROM テーブル名 
INTO OUTFILE "ファイル名" 
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '囲み文字の指定';

コード

SELECT * FROM data
INTO OUTFILE "c:/data" 
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"';

出力結果

id item
80 "sample7"
90 "sample8"
100 "sample9"

URL

エラー時 ファイルが見つからない場合

mysql --local-infile=1 
-uUser1 
-pPasswordA 
databaseD