はじめに
Yasuと申します.2週間ごとに学習成果をアウトプットする目的で記事を作成しています.自分のための記事にはなりますが,同じように学習している初学者の方にも参考になれば嬉しいです.
今回はデータベースを触るのが初めてだったので,環境構築を中心に記述します.
1. 環境構築
MySQLのインストール
まずはターミナルを開き,macOS向けのパッケージ管理ツール「Homebrew」を利用してMySQLをインストールします.
brew install mysql
サーバの起動・停止・状態確認
MySQLサーバの起動,停止,および状態を確認するには以下のコマンドを使用します.
mysql.server start # サーバを起動
mysql.server stop # サーバを停止
mysql.server status # サーバの状態を確認
MySQLサーバへの接続
MySQLサーバを起動したら,次にサーバへ接続します.
mysql -u root -p
Enter password:
# 初回ログイン時はパスワードが設定されていないため,そのままEnterを押してログインできます.
初回パスワードの設定
初回ログイン後,セキュリティを高めるためにパスワードを設定します.
ALTER USER 'root'@'localhost' IDENTIFIED BY '新しいパスワード';
exit; -- ログアウト
2. VSCodeの設定
MySQLのGUI操作拡張機能
VSCode上でMySQLをGUIで操作するために,「MySQL Shell for VS Code」という拡張機能をインストールします.これにより,GUIから視覚的にデータベースを操作できるようになります(私は基本的にターミナルで操作していますが,GUIでもできるようにしておくと何かと便利だと思います).
ER図作成のための拡張機能
データベース設計時に役立つER図をVSCodeで描くために,以下の拡張機能とアプリをインストールします.
- 拡張機能:PlantUML
- 必要なアプリ:openjdk と graphviz
brew install openjdk
brew install graphviz
これで,.puml
ファイルを作成し,opt
+d
でER図をコードから生成できます.
3. データベースの作成
データベースの新規作成
新しいデータベースを作成し,使用するためのコマンドです.
-- データベース「sample_db」を新規作成
CREATE DATABASE sample_db;
-- 作成したデータベースを使用
USE sample_db;
テーブルの作成
次に,データベース内にテーブルを作成します.ここでは主キーと外部キーの設定方法も示します.
CREATE TABLE example_table (
table1_id INT NOT NULL AUTO_INCREMENT,
table2_id INT,
name VARCHAR(50) NOT NULL,
PRIMARY KEY (table1_id),
FOREIGN KEY (table2_id) REFERENCES another_table(table2_id)
);
4. データの挿入
データの挿入方法
作成したテーブルにデータを挿入します.
INSERT INTO example_table (name, table2_id) VALUES
('サンプル1', 1),
('サンプル2', 2);
.sqlファイルを使った大量データの挿入
大量のデータを一括で挿入する場合は,.sqlファイルを作成して次のように読み込みます.
source ファイル名.sql;
データの削除とAUTO_INCREMENTのリセット
テーブル内のデータを消去し,AUTO_INCREMENTの値をリセットする方法です.全データが消去されるため,注意が必要です.
DELETE FROM example_table; -- テーブルの全データが消去されます
ALTER TABLE example_table AUTO_INCREMENT = 1; -- AUTO_INCREMENTをリセット
これで,基本的なMySQLの設定と操作方法が整いました.
5. クエリの記述
全カラム・全データの表示
テーブル内のすべてのカラムとデータを表示したい場合は,以下のようにクエリを記述します.
SELECT * FROM example_table;
このクエリは example_table テーブル内のすべてのデータを取得し,結果を表示します.* は「すべてのカラム」を意味します.クエリについての詳細は本記事では割愛します.
クエリのファイル実行
データ挿入と同様に,クエリをファイルから実行することができます.これにより,長いクエリを直接ターミナルに入力する手間を省き,簡単に実行できます.
-
SQLファイルの作成
テキストエディタを使用して,例えばquery.sql
ファイルを作成します. -
ファイルからのクエリ実行
MySQLに接続後,以下のコマンドでファイル内のクエリを実行します.
source query.sql;
こうすることで,複数行にわたるクエリや複雑なクエリをターミナルに入力することなく,一度に実行することが可能です.
終わりに
データベースはプログラミングにおいて欠かせない知識の一つです.データベース設計やSQLの学習が重要なのはもちろんですが,初学者にとってはその前段階の環境構築が難関であるのも事実です(実際,私も環境構築にかなりの時間を費やしました).
この記事が,環境構築をスムーズに進め,早くSQLの学習に取り組める一助となれば幸いです.