てきとう

ワーワーゆうとります

MySQL MySQLにまつわるエトセトラ

コマンドラインで打っていていろいろ忘れそうになるのでメモします。
きれいにまとめようとかいう気が残念なくらいありません。

# mysql -u ユーザー名 -p
で、パスワード入れる。
ちなみに
# mysql -u ユーザー名 -p --default-character-set=utf8
とかやると文字が揃って出力されるので少し幸せ

・DATABASE

//DBを作る
CREATE DATABASE hogedb;

//DBを選択する
USE hogedb;

・TABLE確認

SHOW TABLES;
//DB内の全テーブルの一覧

SHOW CREATE TABLE hoge;
//テーブルの構造を表示

SHOW COLUMNS FROM hoge;
//カラムの名前やタイプなどの一覧 ↓こんな感じ
+-------------+--------------------------+------+-----+---------+----------------+
| Field       | Type                     | Null | Key | Default | Extra          |
+-------------+--------------------------+------+-----+---------+----------------+
| id          | int(10)                  | NO   | PRI | NULL    | auto_increment | 
+-------------+--------------------------+------+-----+---------+----------------+

SHOW INDEX FROM hoge;
//テーブル内のインデックス一覧
+--------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table        | Non_unique | Key_name    | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+--------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| advertisings |          0 | PRIMARY     |            1 | id          | A         |           0 |     NULL | NULL   |      | BTREE      |         | 
+--------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

・TABLE 削除関係

TRUNCATE TABLE hoge;
//テーブル内のデータを全削除

・TABLE セレクト関係

SELECT * FROM hoge WHERE date >= '2009-05-05';
//date形式のデータの取得

SELECT * FROM hoge WHERE date > 2009-05-05;
とかやっててとれませんでした。
こうやるのか。ふーん。

・ユーザー権限

GRANT 権限 ON DB名.テーブル名 TO ユーザ名 INDENTIFIED BY 'パスワード';

たとえばmogeさんをhoge_tbに対してidとnameだけSELECTをOKしたければ

GRANT SELECT (id, name), INSERT ON hoge_tb TO moge INDENTIFIED BY 'heslo';

とかできる。もちろん複数も。

GRANT SELECT, INSERT, UPDATE ON hoge_tb TO moge INDENTIFIED BY 'heslo';

無双モードはこれ

GRANT ALL PRIVILEGES ON *.* TO moge@localhost IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

ユーザー作ったらリフレッシュ

FLUSH PRIVILEGES;

作ったユーザー権限を確認

show grants for moge@localhost;

そもそもユーザー一覧が見たい場合

SELECT * FROM mysql.user;
//use mysqlして普通にテーブルよんでもよかろうなのだ

非常に長いので気をつけよう。