職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

データベースの作成、ユーザの追加と権限の設定

2016年04月15日 | mySQL
データベースの作成、ユーザの追加と権限の設定



■データベースにユーザーを追加し、権限を設定するには
1)phpMyAdminの場合
IT学習サイトのユーザーの作成を参考

2)コマンドプロンプトの場合
本日も乙」サイトを参照の事

grant 権限 on データベース名.* to 'ユーザー名'@'localhost' identified by 'パスワード';

【例】
データベース:testdatabase
ユーザー:testuser
パスワード:password
権限:all

コマンド
mysql>grant all on testdatabase.* TO 'testuser@localhost' identified by 'password';




 
1)データ権限
・SELECT・・・データの表示
・INSERT・・・データの挿入
・UPDATE・・・データの修正
・DELETE・・・データの削除

2)構造権限
作成するユーザーに対して、権限を設定します。
•all privileges ・・・ GRANT(権限の付与)以外の権限を付与
•alter ・・・ テーブル変更
•create ・・・ テーブル作成
•drop ・・・ テーブル削除
•index ・・・ インデックス作成、削除
•select ・・・ select文
•insert ・・・ insert文
•update ・・・ update文
•delete ・・・ delete文

3)管理権限
作成するユーザーに権限が付与される対象を設定します。
•グローバル権限 ・・・ すべてのデータベースが対象
•データベース ・・・ 指定したデータベースが対象
•テーブル ・・・ 指定したデータベースのテーブルが対象

■ユーザとその権限の確認方法
mysql> show grant for testuser@localhost;


■ユーザーの削除方法
mysql> revoke all privileges on *.* from testuser@localhost;


■ユーザでアクセス
C:\Users\hnaka>mysql -u testuser -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 48
Server version: 5.6.20

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
■コマンドプロンプで文字化けする時は
mysql>set nemes cp932;
データーベースのテーブル表示の日本語が文字化けしない

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

テキストファイルからデータをインポート

2015年05月13日 | mySQL
テキストファイルからデータをインポート

mysql> select * from tb1n;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
5 rows in set (0.01 sec)

インポートするテキストファイル(t.csv)
c:/data/t.csv
N551,佐々木,37
N552,伊藤,41
N553,斉藤,31
N554,井上,43
N555,阿部,31

mysql> load data infile 'c:/data/t.csv' into table tb1n
-> fields terminated by ',';
Query OK, 5 rows affected (0.07 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0

mysql> select * from tb1n;
+------+--------+------+
| bang | nama | tosi |
+------+--------+------+
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
| N551 | 佐々木 | 37 |
| N552 | 伊藤 | 41 |
| N553 | 斉藤 | 31 |
| N554 | 井上 | 43 |
| N555 | 阿部 | 31 |
+------+--------+------+
10 rows in set (0.03 sec)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ストレージエンジンとトランザクション

2015年05月13日 | mySQL
ストレージエンジンとトランザクション


◎ストレージエンジン
通常、RDMBSはいくつかの構成要素によって成り立っており、SQL文を受け取って結果を返すデータベースエンジン部、アプリケーションとデータベースエンジンを結びつけるクライアントモジュールや様々なツール群などから成り立っています。
つまり、何かを検索したり、ファイル操作の際に動くやつ

◎ストレージエンジンの種類
MYSQL5.5以上では、InnoDBを使う

◎ストレージエンジンの確認
mysql> show create table tb \G
*************************** 1. row ***************************
Table: tb
Create Table: CREATE TABLE `tb` (
`bang` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
`uria` int(11) DEFAULT NULL,
`tuki` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
1 row in set (0.13 sec)

■トランザクション
SQLではデータ更新処理を行う際、複数の更新処理を連続して実行し、1つの関連性のある集まりとして管理する必要があるものがあります。SQLでは、このような複数のデータ更新処理を1つの単位にまとめ、管理することが可能です。この処理単位のことをトランザクションと呼びます。

mysql> select * from tb;
+------+------+------+
| bang | uria | tuki |
+------+------+------+
| A103 | 101 | 4 |
| A102 | 54 | 5 |
| A104 | 181 | 4 |
| A101 | 184 | 4 |
| A103 | 17 | 5 |
| A101 | 300 | 5 |
| A102 | 205 | 6 |
| A104 | 93 | 5 |
| A103 | 12 | 6 |
| A107 | 87 | 6 |
+------+------+------+
10 rows in set (0.02 sec)

■トランザクションの実行
mysql> start transaction;
Query OK, 0 rows affected (0.02 sec)

テーブル削除
mysql> delete from tb;
Query OK, 10 rows affected (0.06 sec)

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

復活
mysql> rollback;
Query OK, 0 rows affected (0.08 sec)

mysql> select * from tb;
+------+------+------+
| bang | uria | tuki |
+------+------+------+
| A103 | 101 | 4 |
| A102 | 54 | 5 |
| A104 | 181 | 4 |
| A101 | 184 | 4 |
| A103 | 17 | 5 |
| A101 | 300 | 5 |
| A102 | 205 | 6 |
| A104 | 93 | 5 |
| A103 | 12 | 6 |
| A107 | 87 | 6 |
+------+------+------+
10 rows in set (0.00 sec)

mysql> delete from tb;
Query OK, 10 rows affected (0.06 sec)

コミットする
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
コミットする
mysql> rollback;
Query OK, 0 rows affected (0.00 sec)
復活できない
mysql> select * from tb;
Empty set (0.00 sec)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

トリガ

2015年05月11日 | mySQL
トリガとは
テーブルに対してある処理が行われると、それが引き金に成ってあるコマンドが実行される仕組みの事。

■Aテーブルのレコードを削除すると、Bテーブルにコピーされるトリガ(tr1)を作成
mysql> DELIMITER //
mysql> CREATE TRIGGER tr1(トリガ名) BEFORE DELETE ON tb1 FOR EACH ROW
-> BEGIN
-> INSERT INTO tb1M VALUES(OLD.bang,OLD.nama,OLD.tosi);
-> END
-> //
Query OK, 0 rows affected (0.11 sec)

■コピーされるテーブルを作成
mysql> create table tb1M like tb1;
Query OK, 0 rows affected (0.47 sec)

■Aテーブルのレコードを削除
mysql> DELIMITER ;
mysql> DELETE FROM tb1;
Query OK, 5 rows affected (0.14 sec)
確認
mysql> select * from tb1;
Empty set (0.00 sec)

mysql> select * from tb1m;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
5 rows in set (0.00 sec)

■元に戻す
mysql> insert into tb1 select * from tb1M;
Query OK, 5 rows affected (0.05 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> select * from tb1;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
5 rows in set (0.00 sec)

■トリガ削除
mysql> drop trigger tr1;
Query OK, 0 rows affected (0.00 sec)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ストアドファンクションとは

2015年05月10日 | mySQL
ストアドファンクションとは
ストアドプロシージャと同じで、違うのは「実行した時に値を返す」と言う点である。ちなみに、ファンクションとは関数の事である。

1)ストアドファンクションの作成
mysql> delimiter //
mysql> create function fu1(sintyo int) returns double
-> begin
-> return sintyo * sintyo *22/10000;
-> end
-> //
Query OK, 0 rows affected (0.12 sec)

2)ストアドファンクションの実行
mysql> delimiter ;
mysql> select fu1(174) ;
+----------+
| fu1(174) |
+----------+
| 66.6072 |
+----------+
1 row in set (0.03 sec)

3)ストアドファンクションの実行
mysql> drop function fu1;
Query OK, 0 rows affected (0.08 sec)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする