データベースの事前準備
★MySQLコマンドライン起動
mysql -u username -p
その後パスワード入力
★MySQLコマンドライン終了
mysql> exit
★ステータスの表示
mysql> status
★MySQLの中にあるデータベースの確認
mysql> show databases;
★データベースの利用
mysql> use databasename;
★データベースの中にあるテーブルの確認
mysql> show tables;
★テーブルの中にあるcolumn(カラム:フィールド)の構造の確認
mysql> show columns from tablename;
★テーブルの中にあるデータの確認
mysql> select * from tablename;
★
ユーザ管理:MySQLのrootユーザ(管理者)は「rootユーザのパスワード変更」「ユーザの参照追加削除変更」「ユーザ権限の参照追加削除変更」「ユーザのパスワード変更」「データベースの参照追加削除変更」「テーブルの参照追加削除変更」「データの参照追加削除変更」などなど、MySQL上のありとあらゆるすべての権限をもつ。
だからこそ、プログラム上でむやみにテーブル操作などをroot権限で行ってしまうと、誤ってデータベースを削除してしまったり、SQLインジェクションでMySQL自体を乗っ取られてしまう危険性があるので、その時必要な最低限の権限を与えたユーザを作成し、データベース操作をするようにしなければならない。
http://dev.mysql.com/doc/refman/4.1/ja/user-account-management.html
★ユーザ権限:ユーザの権限は「グローバルレベル」「データベースレベル」「テーブルレベル」「カラムレベル」の4つのレベルがある。
権限の詳細に関しては、http://dev.mysql.com/doc/refman/4.1/ja/grant.html
★データベースの利用手順例
1、rootユーザにて、GRANT構文の実行権限をもつユーザ1を作成(以後基本的にはrootユーザは利用せず、ユーザ管理者としてユーザ作成はユーザ1を利用)
2、ユーザ1にて、GRANT構文の実行権限がなくデータベース作成権限をもつユーザ2を作成(以後データベース管理者としてデータベース作成はユーザ2を利用)
3、ユーザ2にて、データベース1を作成(ユーザ2を作らず、ユーザ1で対応しても良い)
4、ユーザ1にて、データベース1のみに限定で、すべてのテーブル操作の実行権限をもつユーザ3を作成
5、ユーザ3にて、必要なテーブル群を作成し、必要なデータを追加/削除/変更
6、ユーザ1にて、当該データベース/テーブル/カラムへのデータ参照追加削除変更権限のみを与えたユーザ4を作成
7、ユーザ1にて、当該データベース/テーブル/カラムへのデータ参照追加変更権限のみを与えたユーザ5を作成
8、ユーザ1にて、当該データベース/テーブル/カラムのデータ参照権限のみを与えたユーザ6を作成
9、Webサイトでの利用をし、サイト訪問者としてユーザ6の権限でデータを参照(例えば掲示板のROM)
10、サイト登録者としてユーザ5の権限でデータ追加/変更(例えば掲示板の書き込みや自分の書き込みの訂正)
11、サイト管理者としてユーザ4の権限でデータ削除(例えば掲示板の書き込み削除)
★ユーザの作成
GRANT構文の実行権限をもつユーザ例
mysql> GRANT ALL PRIVILEGES ON *.* TO
username@localhost IDENTIFIED BY 'password'
WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
※FLUSH PRIVILEGESはユーザ定義情報の変更を現データベースにて反映させる命令
特定の実行権現をもつユーザ例
mysql> GRANT CREATE,DROP,ALTER,SELECT,INSERT,UPDATE,DELETE ON *.* TO
username@localhost IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
※特定の権限については以下の通り
CREATE:データベース/テーブル作成
DROP:データベース/テーブル削除
ALTER:データベース/テーブル変更
SELECT:データの抽出(参照)
INSERT:データの追加
UPDATE:データの変更(更新)
DELETE:データの削除
★ユーザの削除
ユーザの削除はDROPだが、DROPで削除できるユーザは権限のないユーザに限定されるため、REVOKEで権現を削除してからユーザ削除することになる
1.SHOW PRIVILEGES を使用してユーザの権限を確認する。
2.REVOKE を使用してユーザから権限をすべて削除する。
3.DROP USER を使用してユーザを削除する。
★データベースの作成手順
1、データベースの作成
2、データベースに(複数の)テーブルを作成
3、テーブルに(複数の)フィールドを作成
4、各フィールドにデータを格納
★データベースの作成
mysql> create database databasename;
★データベースの削除
mysql> drop database batabasename;
★データベースの利用(上記にも記載)
mysql> use databasename;
★データベースの中にあるテーブルの確認(上記にも記載)
mysql> show tables;
★テーブルの作成
mysql> create table tablename(列名1
データ型1,列名2 データ型2,・・・);
mysql> create table t1(
-> code char(5) not null primary key,
-> name varchar(30),
-> post int
-> );
セミコロンまでが1ステートメントなので、改行は自由にできる。もちろん1行で書いても良い。
★テーブルの確認
mysql> describe tablename;
★テーブルの削除
mysql> drop table tablename;
★CSVファイルからのデータの取り込み
ローカルファイルからデータをインポートするユーザとして「--local-infile」オプションをつけてログインする
mysql -u username -p --local-infile
filename.csvファイルの中身
e0981,浅岡寛,4450123
e0982,伊藤隆,4450102
e0983,宇野博之,4450116
e0984,江崎克也,4450111
e0985,小原清,4450102
e0986,加古満,4450109
e0987,木村一郎,4450121
e0988,久世真一,4450109
e0989,剣先明,4450102
e9890,小坂井達也,4450116
LOAD DATA LOCAL INFILE "pathname/filename.csv"
INTO TABLE tablename FIELDS
TERMINATED BY "," LINES TERMINATED BY "\n";
★テーブルの中にあるデータの確認(上記にも記載)
mysql> select * from databasename;
★これ以降のINSERT,SELECT,DELETEなどは国家試験に準ずるので、色々と試してみましょう!