2012年1月11日水曜日

MYSQL 入門4

-------------------ストアード-----------------
DELIMITER //
CREATE PROCEDURE TEST_1()
BEGIN
SELECT * FROM C1;
END
//
DELIMITER ;

CALL TEST_1;--ストアドの呼出
+----+---------------------+------------------+
| ID | NAME | HOYA_CATEGORY_ID |
+----+---------------------+------------------+
| 1 | BOOK | NULL |
| 2 | Fashion | NULL |
| 3 | electronics | NULL |
| 4 | Picture BOOK | 1 |
| 5 | IT BOOK | 1 |
| 6 | COOKING BOOK | 1 |
| 7 | TV electronics | 3 |
| 8 | Music electronics | 3 |
| 9 | Cooking electronics | 3 |
| 10 | Man Fashion | 2 |
| 11 | WOMAN Fashion | 2 |
| 12 | TEST | 100 |
+----+---------------------+------------------+

------------引数ありのストアド----------------
DELIMITER //
CREATE PROCEDURE TEST_2(OUT o_1 INT)
BEGIN
SELECT COUNT(*) INTO o_1 FROM C1;
END
//


mysql> CALL TEST_2(@i)--ストアドの呼出
-> //
Query OK, 1 row affected (0.00 sec)

mysql> SELECT @i--戻りのOUTを表示
-> //
+------+
| @i |
+------+
| 12 |
+------+

---------ストアードファンクション------------

DELIMITER //
CREATE FUNCTION tEST9()
RETURNS DOUBLE
BEGIN
DECLARE r DOUBLE;
SELECT AVG(ID) INTO r FROM C1;
RETURN r;
END
//

------------ストレージエンジン---------------
/*MyISAM(マイアイサム)  もっともよく利用される高速エンジン  トランザクションは利用できない*/

/*InnoDB(イノディービー) トランザクションに対応*/

/*ストレージエンジンの確認*/
| tb1 | CREATE TABLE `tb1` (
`id` int(11) DEFAULT NULL,
`name` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

/*レコードの確認*/
mysql> select * from tb1;
+------+-------+
| id | name |
+------+-------+
| 1 | test1 |
+------+-------+
1 row in set (0.00 sec)

/*トランザクションのスタート*/
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)

mysql> delete from tb1;
Query OK, 1 row affected (0.00 sec)

mysql> select * from tb1;
Empty set (0.00 sec)

/*ロールバック*/
mysql> rollback;
Query OK, 0 rows affected (0.05 sec)

/*レコード確認*/
mysql> select * from tb1;
+------+-------+
| id | name |
+------+-------+
| 1 | test1 |
+------+-------+

/*--------------ファイルの取り扱い--------------------*/
CREATE TABLE address_zip (
jis varchar(10) NULL,
zip_old varchar(5) NULL,
zip varchar(7) NULL,
addr1_kana varchar(100) NULL,
addr2_kana varchar(100) NULL,
addr3_kana varchar(100) NULL,
addr1 varchar(100) NULL,
addr2 varchar(100) NULL,
addr3 varchar(100) NULL,
c1 int NULL,
c2 int NULL,
c3 int NULL,
c4 int NULL,
c5 int NULL,
c6 int NULL
);


LOAD DATA LOCAL INFILE 'C:/ken_all/KEN_ALL.CSV'
INTO TABLE `address_zip`
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"';


SELECT * INTO OUTFILE 'C:/DATA.CSV'
FIELDS TERMINATED BY ','
FROM ADDRESS_ZIP;

/*--------------バッチファイル--------------------*/
/*下記test.batで保存し実行するとdataファイルが作成されます*/
mysql test -uroot -pmysql -e "SELECT * INTO OUTFILE 'C:/DATA2.CSV' FIELDS TERMINATED BY ',' FROM ADDRESS_ZIP;"

/*--------------リダイレクト処理--------------------*/
/*下記はc直下にlog.txtファイルに実行結果を出力します*/
tee C:/log.txt /*出力開始*/
SELECT * FROM ADDRESS_ZIP LIMIT 5;
notee /*出力終了*/

/*-----------------------------------------------------------*/
/*          バックアップ              */
/*-----------------------------------------------------------*/

mysqldump -uroot -pmysql test>C:/back_up.txt;







0 件のコメント:

コメントを投稿