MySQLをローカルで試してわかったこと 初心者向け基本コマンドまとめ

はじめに

「Pythonで取得したデータって、そのあとどこに保存されるのだろう?」

そんな疑問を持ったことはないでしょうか。

私も、Pythonでブラウザからデータを取得してGoogleスプレッドシートの数値を自動更新する処理を学んでいたときに、取得した数字の扱いが気になりました。調べてみると、単にメモリに置かれているだけのデータは、再起動などで消えてしまうことがあるとわかりました。

そこで気になったのが、アプリなどで使われるデータベースです。名前は知っていても、実際にどんな仕組みなのかはよくわかっていませんでした。今回はその入口として、無料で使える MySQL をローカル環境に入れて、基本的なコマンドを試してみました。

この記事では、次のような内容をまとめます。

  • MySQLをローカルで使い始めるときの基本的な流れ
  • データベースやテーブルを扱う基本コマンド
  • 実際に触ってみて感じたこと

今回学んだこと

今回あらためて学べたのは、主に次の2点です。

  • MySQLをローカルに導入して起動、停止、ログインする方法
  • ターミナルからデータベースやテーブル、カラムを操作する基本コマンド

最初は「SQL」や「データベース」という言葉だけが先にあって、少し遠い存在のように感じていました。ですが、実際にコマンドを打ってみると、データベースを作る、テーブルを作る、データを追加するといった流れが少しずつイメージしやすくなりました。

なぜMySQLを触ってみようと思ったのか

きっかけは、データの保存先への疑問でした。

Pythonで取得した値をGoogleスプレッドシートに反映していれば結果は残りますが、もしそれがアプリの中だけで使われるデータだったら、どこかに保存しておかないと消えてしまいます。その「保存しておく場所」の代表例がデータベースなのだと理解しました。

また、Progateでコマンドを学んだあとに、ローカル環境でも試してみたくなったのも大きかったです。学習サービス上で見るだけでなく、自分のパソコンで動かしてみることで、理解が少し現実的になったように感じました。

MySQLを使い始める基本の流れ

ここでは、自分用の備忘も兼ねて、最初に使った基本コマンドをまとめます。

MySQLを起動する

MySQL 8.4 がインストールされている場合は、次のコマンドで起動できます。

brew services start mysql@8.4

まずはMySQL本体を起動しないと、ログインや操作ができません。最初の入口として覚えておくと使いやすいと思います。

MySQLにログインする

mysql --user=root --password

コマンドを入力するとパスワード入力を求められます。入力後にターミナルが mysql > のような表示になれば、MySQLにログインできています。

ログアウトする

ログアウトするときは、mysql > のあとに次のように入力します。

exit;

Bye と表示されたらログアウト完了です。

MySQLを停止する

brew serveices stop mysql@8.4

使い終わったあとに停止したいときは、このコマンドを使います。

データベースとテーブルの基本コマンド

MySQLを触り始めたばかりの段階では、まず「データベースを作る」「その中にテーブルを作る」「中身を見る」という流れを押さえると理解しやすいと感じました。

データベースを作成する

CREATE DATABASE データベース名;

まずはデータベースそのものを作ります。

データベース一覧を確認する

SHOW databases;

ちゃんと作成できたか確認したいときに便利です。

使用するデータベースを切り替える

USE データベース名;

この操作をしておくことで、「これからどのデータベースを使うか」を明確にできます。

データベースを削除する

DROP DATABASE データベース名;

不要になったデータベースを削除するときのコマンドです。削除系のコマンドは戻しにくいので、実行前に対象をよく確認したほうが安心です。

テーブルを作る・見る・削除する

データベースを作ったら、次はデータを入れるためのテーブルを作ります。

テーブルを作成する

CREATE TABLE テーブル名(id INT AUTO_INCREMENT PRIMARY KEY, name TEXT);

この例では、idname を持つシンプルなテーブルを作成しています。id は自動で番号が振られる主キー、name は名前を入れるためのカラムというイメージです。

Windowsの場合は、最後に CHARSET=utf8 を付ける方法もあるとメモしていました。

テーブル一覧を確認する

SHOW tables;

作成したテーブルがあるか確認したいときに使います。

テーブルの中身を確認する

SELECT * FROM テーブル名;

現在入っているデータをまとめて確認する基本コマンドです。

データを追加する

INSERT INTO テーブル名(カラム名) VALUE('値');

実際に値を入れてみると、テーブルが単なる箱ではなく、データを持つ場所だとイメージしやすくなります。

テーブルを削除する

DROP TABLE テーブル名;

こちらも削除系のコマンドなので、誤って消さないよう注意が必要です。

カラム操作で覚えておきたいこと

テーブルを作ったあとに、「あとから項目を増やしたい」「名前を変えたい」と思うこともあります。そういうときに使うのがカラム操作のコマンドです。

カラムを追加する

ALTER TABLE テーブル名 ADD COLUMN カラム名 データ型;

データ型の例としては、次のようなものがあります。

  • INT: 数値
  • TEXT: 長文
  • VARCHAR(50): 50文字までの文字列

カラムの値を更新する

UPDATE テーブル名 SET カラム名 = 値;

ここで特に注意したいのが、レコードを指定していないと全てのレコードが更新されるという点です。

対象を絞りたい場合は、WHERE を付けて更新します。

UPDATE テーブル名 SET カラム名 = 値 WHERE id = 対象のレコード番号;

このあたりは、コマンドを覚えること以上に「何を対象にしているか」を意識するのが大事だと感じました。

データ型を確認する

DESCRIBE items;

テーブルの構造を確認したいときに便利です。

カラム名を変更する

ALTER TABLE テーブル名 CHANGE COLUMN 元のカラム名 変更後カラム名 データ型;

カラムを削除する

ALTER TABLE テーブル名 DROP COLUMN カラム名;

つまずいたこと・やってみて感じたこと

今回の学習では、大きく詰まったところはありませんでした。強いて言えば、コマンドの打ち間違いで動かないことがあったくらいです。

ただ、実際に触ってみて強く感じたのは、ターミナルだけでデータベースを管理するのは少し大変そうだということでした。

もちろん、基本を理解するためにはコマンド操作はとても勉強になります。ですが、レコードの確認や修正、構造の把握などを毎回ターミナルで行うのは、作業ミスや効率の面であまり向いていないのではないかと思いました。

そのため、実務ではGUIで管理できるツールを使うことが多いのではないか、と自分なりに理解しています。今回の学習の中で、NavicatDataGrip のようなソフトがあることも知りました。実際にDataGripでデータベースを読み込ませてみたので、そのあたりはまた別で整理したいと思っています。

まとめ

今回は、MySQLをローカル環境で動かして、基本的なコマンドを一通り確認してみました。

今回の学びをまとめると、次のようになります。

  • データベースは、アプリなどでデータを保存しておくための仕組みとして重要そうだと実感できた
  • MySQLを実際に触ることで、データベース、テーブル、カラムの関係が少し見えやすくなった
  • コマンド操作は理解の助けになる一方で、運用ではGUIツールのほうが扱いやすそうだと感じた

名前だけ知っている状態と、実際に触ってみた状態では、理解のしやすさがかなり違うと思います。もし「データベースって聞いたことはあるけれど、よくわからない」と感じているなら、まずはローカルでMySQLを動かしてみるところから始めてみるのもよいのではないでしょうか。

IT活用

Posted by hiro