はじめに
このプロジェクトでは、MySQL を使用して学生情報管理システムを作成する方法を学びます。このシステムには student_info と student_score の 2 つのテーブルが含まれ、それらの間に外部キー(Foreign Key)関係があります。
👀 プレビュー
MySQL [studentSys]> DESC student_info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| Id | int | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.002 sec)
MySQL [studentSys]> DESC student_score;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| Id | int | NO | PRI | NULL | |
| score | varchar(4) | YES | | NULL | |
| Sid | int | YES | MUL | NULL | |
+-------+------------+------+-----+---------+-------+
3 rows in set (0.001 sec)
🎯 タスク
このプロジェクトでは、以下を学びます。
- MySQL サーバーを起動し、MySQL ターミナルにログインする方法
- SQL 文を使用してデータベースとテーブルを作成する方法
- 2 つのテーブル間に外部キー(Foreign Key)関係を確立する方法
🏆 成果
このプロジェクトを完了した後、以下ができるようになります。
- リレーショナルデータベースの概念を理解し、テーブルを作成および管理する方法を習得する
- 関連するテーブル間のデータ整合性を保証するために、外部キー(Foreign Key)制約を実装する
- SQL の知識を応用して、簡単な学生情報管理システムを構築する
MySQL を起動してデータベースを作成する
このステップでは、MySQL サーバーを起動し、studentSys データベースを作成する方法を学びます。
MySQL サーバーを起動します。
sudo /etc/init.d/mysql startMySQL ターミナルにログインします。
mysql -uroot/home/labex/projectディレクトリにstudentSys.sqlという名前の新しいファイルを作成します。studentSys.sqlファイルで、studentSysデータベースを作成します。DROP DATABASE IF EXISTS studentSys; CREATE DATABASE IF NOT EXISTS studentSys CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;DROP DATABASE IF EXISTS文は、studentSysデータベースが既に存在するかどうかを確認し、存在する場合は削除します。その後、CREATE DATABASE IF NOT EXISTS文は指定された文字セットと照合順序でstudentSysデータベースを作成します。
student_info テーブルを作成する
このステップでは、student_info テーブルを作成する方法を学びます。
studentSys.sqlファイルで、studentSysデータベースを使用します。USE studentSys;student_infoテーブルを作成します。DROP TABLE IF EXISTS student_info; CREATE TABLE student_info ( Id INT NOT NULL AUTO_INCREMENT, name VARCHAR(10), PRIMARY KEY (Id) );DROP TABLE IF EXISTS文は、student_infoテーブルが既に存在するかどうかを確認し、存在する場合は削除します。その後、CREATE TABLE文はIdとnameの 2 つの列を持つstudent_infoテーブルを作成します。Id列は主キー(Primary Key)として設定され、自動インクリメントに設定されています。
student_score テーブルを作成し、外部キー(Foreign Key)関係を確立する
このステップでは、student_score テーブルを作成し、student_score テーブルと student_info テーブルの間に外部キー(Foreign Key)関係を確立する方法を学びます。
studentSys.sqlファイルで、student_scoreテーブルを作成します。DROP TABLE IF EXISTS student_score; CREATE TABLE student_score ( Id INT NOT NULL, score VARCHAR(4), Sid INT, PRIMARY KEY (Id), FOREIGN KEY (Sid) REFERENCES student_info(Id) );DROP TABLE IF EXISTS文は、student_scoreテーブルが既に存在するかどうかを確認し、存在する場合は削除します。その後、CREATE TABLE文はId、score、Sidの 3 つの列を持つstudent_scoreテーブルを作成します。PRIMARY KEY (Id)文は、Id列をstudent_scoreテーブルの主キー(Primary Key)として設定します。FOREIGN KEY (Sid) REFERENCES student_info(Id)文は、student_scoreテーブルのSid列とstudent_infoテーブルのId列の間に外部キー(Foreign Key)関係を確立します。これは、student_scoreテーブルのSid列の値がstudent_infoテーブルのId列の値と一致しなければならないことを意味します。MySQL プロンプトで、以下のコマンドを実行して
studentSys.sqlスクリプトを実行します。
SOURCE ~/project/studentSys.sql
これらのステップを完了すると、studentSys データベース、student_info テーブル、student_score テーブルを作成し、2 つのテーブル間に外部キー(Foreign Key)関係を確立しました。
MySQL [studentSys]> DESC student_info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| Id | int | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.002 sec)
MySQL [studentSys]> DESC student_score;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| Id | int | NO | PRI | NULL | |
| score | varchar(4) | YES | | NULL | |
| Sid | int | YES | MUL | NULL | |
+-------+------------+------+-----+---------+-------+
3 rows in set (0.001 sec)
まとめ
おめでとうございます!このプロジェクトを完了しました。LabEx でさらに多くの実験を行い、スキルを向上させることができます。
