Cloud9で mysql を操作するために mysql-ctl
というコマンドが用意されています。
mysqlサーバーの起動/停止/状態確認/再起動 そしてcli(Command Line Interface)
というサブコマンドがあります。
cliを使ってDBを作ったり、新しいテーブルを作ったりすることができます。
Contents
DDL
1 2 3 4 |
CREATE TABLE ... ALTER TABLE ... DROP TABLE ... |
このように、データを定義する言語のことを DDL(Data Definition Language)
といいます。
DML
データを操作するための言語は DML(Data Manipulation Language)
といいます。
1 2 3 4 5 |
SELECT * FROM .... INSERT INTO .... UPDATE ... DELETE FROM ... |
DCL
トランザクションを制御するための SQLサブセットは DCL(Data Control Language)
といいます。
1 2 3 |
COMMIT ROLLBACK |
DDLを記述したSQLファイルを作る
今回は、 DDL を使って Cluod9 の MySQLデータベースにテーブルを新しく定義してみましょう。
まずは、Cloud9のワークスペースに入って、以下のようなテキストファイルを作ります。
ファイル名は、 ddl.sql として、 workspaceフォルダ
の直下に保存します。
1 2 3 4 5 6 7 8 9 10 11 |
-- ddl.sql CREATE DATABASE IF NOT EXISTS `mydb1` CHARACTER SET utf8; use `mydb1`; DROP TABLE IF EXISTS `contacts`; CREATE TABLE `contacts` ( `form_id` int unsigned NOT NULL, `field_name` varchar(127) CHARACTER SET utf8 DEFAULT NULL, `field_value` longtext CHARACTER SET utf8 ) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; |
テーブル名 contacts
は、とりあえずお問合わせフォームのデータを格納することを想定しています。
DDLを実行してDBを構築する
以下のようにCloud9のターミナルからコマンド実行することで、
SQLが実行され、DBとテーブルが作られるはずです。
{Cloud9ユーザー名}は自身のログインアカウント名です。
1 2 |
$ mysql -u {Cloud9ユーザー名} < ddl.sql |
コマンド実行後、なにもメッセージが表示されなければ
、成功です。
他のやり方としては、mysqlのsourceコマンドを使って以下のようにしてDDLを読み込むこともできます。
1 2 3 |
$ mysql-ctl cli > source /home/ubuntu/workspace/ddl.sql |
DBとテーブルが作成されたか確認
mysqlのcliを起動します。
1 2 |
$ mysql-ctl cli |
すると mysqlにログインすることができます。
以下のコマンドでDBの一覧を出力できます:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | c9 | | mydb1 | | mysql | | performance_schema | | phpmyadmin | +--------------------+ |
定義したDBの名前(mydb1)があるか確認します。
次にDBを選択します:
1 2 |
mysql> use mydb1; |
DBが持っているテーブル一覧を出力します:
1 2 3 4 5 6 7 8 9 |
mysql> show tables; +-----------------+ | Tables_in_mydb1 | +-----------------+ | contacts | +-----------------+ |
定義したテーブルの名前(contacts)が存在すればOKです。
テーブルのデータをselect
テーブルの中身を表示するには以下のように DML の select を使います。
1 2 3 4 |
mysql> select * from contacts; Empty set (0.00 sec) |
現在のところ、データが空っぽなので、このように表示されました。
テーブルにデータを登録する
データを登録するにはINSERTを使います:
1 2 3 4 |
mysql> INSERT INTO contacts (`form_id`, `field_name`, `field_value`) VALUES (1, 'fullName', 'お名前太郎'); Query OK, 1 row affected (0.00 sec) |
Query OK
と表示されれば成功です。
再度 select してみてデータが登録できたか確認してみます:
1 2 3 4 5 6 7 8 9 |
mysql> select * from contacts where form_id = 1; +---------+------------+-----------------+ | form_id | field_name | field_value | +---------+------------+-----------------+ | 1 | fullName | お名前太郎 | +---------+------------+-----------------+ 1 row in set (0.00 sec) |
データが登録できていますね。ここでは、whereを使って form_id が 1 のレコードのみを抽出しています。
いまは、データが1件しか無いのでよいのですが、データが増えてきたら、whereを使って絞込んで必要なデータのみを取得することになります。
UPDATE文を使って変更
field_valueの値を変更してみます:
1 2 |
mysql> update contacts set field_value = 'お名前太郎2' where form_id = 1; |
ここでも、 form_id で絞り込んでいます。
whereを使わないと、全レコードが更新対象になってしまうので注意しましょう。
更新確認:
1 2 3 4 5 6 7 8 9 |
mysql> select * from contacts where form_id = 1; +---------+------------+------------------+ | form_id | field_name | field_value | +---------+------------+------------------+ | 1 | fullName | お名前太郎2 | +---------+------------+------------------+ 1 row in set (0.00 sec) |
DELETE文でデータを削除
1 2 |
mysql> delete from contacts where form_id = 1; |
削除確認:
1 2 3 4 |
mysql> select * from contacts where form_id = 1; Empty set (0.00 sec) |
以上 簡単ですが DDL、DML を使ったMySQLの操作についてのご説明でした。
No comment yet, add your voice below!