[SQL] MySQLでSQLを学ぶ~DDL編①~


はじめに

前回に引き続きデータベース関連です。
ここからはMySQLを使ってSQLを学んでいきたいと思います。よろしくお願いします。

なお、これはあくまでSQLを学びアウトプットをすることを目的としており、私がMySQLを使ってきたのでMySQLで作業を行なっていきます。PCへMySQLを導入する方法や、設定方法は記載しておりません。

Railsを使っているとデータベース作成する時はコマンドでrails db:createを実行し作成します。シークエルプロというアプリを使いGUI操作をすることもありました。
しかしながら、GUIではできない操作やコマンドが用意されていない操作を行う場合はSQLを使う必要があります。

ターミナルでMySQLを扱う

ターミナルでMySQLを使うにはログインする必要があります。
まずはホームディレクトリに自分がいることを確認し下記のコマンドを実行します。

ターミナル
# ホームディレクトリに戻る
% cd

# MySQLに接続
% mysql -u root

-u rootというコマンドはオプションで「ルート」でログインするという意味になります。
このルートはMySQLで元々用意されているユーザーのことです。このユーザにはパスワードはありません。

ターミナル
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 744
Server version: 5.6.51 Homebrew

Copyright (c) 2000, 2021, 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> 

これで準備完了です。

DDL(Data Definition Language)

前回SQLは大きく分けて三つの命令に分類できると説明しました。
その中で今回はデータを定義するDDLを詳しく見ていきます。

DDLの主な命令文

命令 機能
CREATE データベースやテーブルの作成
ALTER データベースやテーブルの更新
DROP データベースやテーブルの削除

CREATE文

まずはデータベースやテーブルを作成できるSQL文CREATE文です。
いつもRailsでは、 rails db:createというコマンドでデータベースを作成していましたが、SQLを使ってデータベースを作成してみます。

データベースを作るにはCREATE DATABASE文を実行します。
実際実行する時はデータベース名も必要です。

ターミナル
mysql> CREATE DATABASE 《データベース名》;

実はSQL文は小文字でも動いてくれるそうなのですが、SQL文と他の文字列が混ざると読みづらくなるので、一般的には大文字で記述するそうです。
あと、文の最後には必ずセミコロンをつける必要があります。

今回は「sqltest」という名前でデータベースを実際に作ってみます。

ターミナル
mysql> CREATE DATABASE sqltest;
Query OK, 1 row affected (0.02 sec)

1行目を実行して、2行目が表示されたら成功です。データベースの作成ができました。
ちゃんとできているかデータベースの存在を確認するためにSHOW文を使います。

SHOW文

SHOW文はデータベースやテーブルを一覧表示できるSQL文です。
作成されているデータベースを一覧で表示させるにはSHOW DATABASES文を実行します。
個人的には、DATABASESって複数形だ、気をつけよって思いました

ターミナル
mysql> SHOW DATABASES;

を実行すると

ターミナル
mysql> SHOW DATABASES;
+------------------------+
| Database               |
+------------------------+
| 省略                    |
| sqltest                |
| 省略                    |
+------------------------+
65 rows in set (0.10 sec)

今まで作成してきたデータベースも含めたくさん出てきたかと思います。

DROP文

DROP文は、データベースやテーブルを削除できるSQL文です。
既に存在しているデータベースを削除するにはDROP DATABASE文を実行します。
削除したいデータベース名も必要です。

先ほど作成したsqltestを削除します。

ターミナル
mysql> DROP DATABASE sqltest;
Query OK, 0 rows affected (0.03 sec)

上記のように表示されれば成功です。SHOW文でちゃんと消されているか確認してもいいでしょう。

とりあえず今回はここまでとします。

最後に

今回はデータベースの作成と表示、削除の簡単な操作を行いました。
次回はここからデータベースの中にテーブルを作成し、カラムを作成したりといった作業をSQLでできるように学習します。