1.DB操作
・DB作成
CREATE DATABASE 【DBの名前】;
・DB削除
DROP DATABASE 【DBの名前】;
・DB一覧の取得
SHOW DATABASES;
最初にやることはデータベースを作成することです。
まずは【test_db】というデータベースを作成します。
mysql> CREATE DATABASE test_db; Query OK, 1 row affected (0.01 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test_db | +--------------------+ 5 rows in set (0.00 sec)
2.テーブル操作
テーブルを作成する場合は、どのデータベースを使用するか選択する必要があります。
また、特別なことがない限り特定のカラムに【PRIMARY KEY】を指定することになります。
【PRIMARY KEY】は指定しなくても動作しますが、指定しないという選択はほぼないと言っていいでしょう。
【PRIMARY KEY】を指定することで
・データの重複を防ぐ
・テーブルデータの検索が早くなる
というメリットがあります。
また【AUTO_INCREMENT】を設定することで
カラムに格納されている値に【1】をプラスした値が
自動で設定されます。
これは連続した値を格納する場合非常に便利です。
・データベース選択
USE 【DBの名前】;
・テーブルの作成
CREATE TABLE db_name.tbl_name(col_name1 data_type1 NOT NULL PRIMARY KEY AUTO_INCREMENT, col_name2 data_type2, ...);
・テーブルの削除
DROP TABLE 【テーブル名】
・テーブル一覧の取得
SHOW TABLES;
・カラム一覧の取得
SHOW COLUMNS FROM 【テーブル名】;
【test_db】に【user_auth】というテーブルを作成します。
カラム詳細は下記のとおりとします。
auth_id | varchar(50) | primary key |
---|---|---|
auth_pass | varchar(50) | |
user_name | varchar(50) |
mysql> USE test_db; Database changed mysql> CREATE TABLE test_db.user_auth(auth_id varchar(50) NOT NULL PRIMARY KEY, auth_pass varchar(50), user_name varchar(50)); Query OK, 0 rows affected (0.05 sec) mysql> SHOW TABLES; +-------------------+ | Tables_in_test_db | +-------------------+ | user_auth | +-------------------+ 1 row in set (0.00 sec) mysql> SHOW COLUMNS FROM user_auth; +-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | auth_id | varchar(50) | NO | PRI | NULL | | | auth_pass | varchar(50) | YES | | NULL | | | user_name | varchar(50) | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+ 3 rows in set (0.01 sec)
3.カラムの操作
カラムの操作は基本的には仕様の変更があった時などに行います。
DB設計がしっかりしていて、仕様の変更がなければ基本的には使わないですが
そんなことはあり得ないので、覚えておく必要があります。
・カラムの名前変更
ALTER TABLE 【テーブル名】 RENAME COLUMN 【oldカラム名】 to 【newカラム名】;
・カラムの定義変更
ALTER TABLE 【テーブル名】 MODIFY COLUMN 【カラム名】 【new定義】;
・カラムの追加(最後に)
ALTER TABLE 【テーブル名】 ADD COLUMN 【追加カラム名】 【追加定義】;
・カラムの追加(指定カラムの後に)
ALTER TABLE 【テーブル名】 ADD COLUMN 【追加カラム名】 【追加定義】 AFTER 【指定カラム名】;
・カラムの削除
ALTER TABLE 【テーブル名】 DROP COLUMN 【削除カラム名】;
4.ユーザーの操作
データベースの操作をするユーザーにrootユーザーを使うのは好ましくありません。
特定の権限を持ったユーザーを作成し
このユーザーがデータベースの読み書きを行うのが一般的です。
・ユーザー一覧の取得
select User,Host from mysql.user;
・ユーザーを作成する
CREATE USER 【ユーザー名】@【接続元】 IDENTIFIED BY 【パスワード】;
・権限の変更
GRANT ALL ON 【データベース名】.* to 【ユーザー名】@【接続元】;
・ユーザーの削除
DROP USER 【ユーザー名】@【接続元】;
【localhost】から【test_db】にのみ接続可能なユーザーを作成します。
mysql> CREATE USER testuser@localhost IDENTIFIED BY 'hogehoge'; Query OK, 0 rows affected (0.01 sec) mysql> GRANT ALL ON test_db.* to testuser@localhost; Query OK, 0 rows affected (0.01 sec) mysql> SHOW GRANTS for testuser@localhost; +---------------------------------------------------------------+ | Grants for testuser@localhost | +---------------------------------------------------------------+ | GRANT USAGE ON *.* TO `testuser`@`localhost` | | GRANT ALL PRIVILEGES ON `test_db`.* TO `testuser`@`localhost` | +---------------------------------------------------------------+ 2 rows in set (0.00 sec)
5.データの操作
・データの追加
INSERT INTO 【テーブル名】 (col_name1, col_name2, ...) VALUES (value1, value2, ...);
・データの削除
DELETE FROM 【テーブル名】 WHERE 【指定カラム名】 = 【データ】;
・データの編集
UPDATE 【テーブル名】 SET 【編集カラム名】 = 【編集データ】 WHERE 【指定カラム名】 = 【データ】
・テーブルデータの取得
select * from 【テーブル名】
【user_auth】テーブルにデータを追加します。
mysql> INSERT INTO user_auth (auth_id, auth_pass, user_name) VALUES ('test', 'test', 'テスト'); Query OK, 1 row affected (0.01 sec) mysql> SELECT * FROM user_auth; +---------+-----------+-----------+ | auth_id | auth_pass | user_name | +---------+-----------+-----------+ | test | test | テスト | +---------+-----------+-----------+ 1 row in set (0.00 sec)