Einführung
In diesem Projekt lernen Sie, wie Sie mithilfe von MySQL ein Studenteninformationsverwaltungssystem erstellen. Dieses System umfasst zwei Tabellen: student_info und student_score, die durch eine Fremdschlüsselbeziehung miteinander verknüpft sind.
👀 Vorschau
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)
🎯 Aufgaben
In diesem Projekt lernen Sie:
- Wie Sie den MySQL-Server starten und sich in die MySQL-Kommandozeile einloggen
- Wie Sie mithilfe von SQL-Anweisungen eine Datenbank und Tabellen erstellen
- Wie Sie eine Fremdschlüsselbeziehung zwischen zwei Tabellen herstellen
🏆 Errungenschaften
Nach Abschluss dieses Projekts können Sie:
- Das Konzept einer relationalen Datenbank verstehen und wissen, wie Sie Tabellen erstellen und verwalten
- Eine Fremdschlüsselbeschränkung implementieren, um die Datenintegrität zwischen verwandten Tabellen sicherzustellen
- Ihr SQL-Wissen anwenden, um ein einfaches Studenteninformationsverwaltungssystem zu erstellen
Starten Sie MySQL und erstellen Sie die Datenbank
In diesem Schritt lernen Sie, wie Sie den MySQL-Server starten und die studentSys-Datenbank erstellen.
Starten Sie den MySQL-Server:
sudo /etc/init.d/mysql startMelden Sie sich in die MySQL-Kommandozeile an:
mysql -urootErstellen Sie eine neue Datei namens
studentSys.sqlim Verzeichnis/home/labex/project.Erstellen Sie in der Datei
studentSys.sqldiestudentSys-Datenbank:DROP DATABASE IF EXISTS studentSys; CREATE DATABASE IF NOT EXISTS studentSys CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;Die Anweisung
DROP DATABASE IF EXISTSprüft, ob diestudentSys-Datenbank bereits existiert, und löscht sie, falls dies der Fall ist. Die AnweisungCREATE DATABASE IF NOT EXISTSerstellt dann diestudentSys-Datenbank mit dem angegebenen Zeichensatz und der Kollation.
Erstellen Sie die Tabelle student_info
In diesem Schritt lernen Sie, wie Sie die Tabelle student_info erstellen.
Verwenden Sie in der Datei
studentSys.sqldie DatenbankstudentSys:USE studentSys;Erstellen Sie die Tabelle
student_info:DROP TABLE IF EXISTS student_info; CREATE TABLE student_info ( Id INT NOT NULL AUTO_INCREMENT, name VARCHAR(10), PRIMARY KEY (Id) );Die Anweisung
DROP TABLE IF EXISTSprüft, ob die Tabellestudent_infobereits existiert, und löscht sie, falls dies der Fall ist. Die AnweisungCREATE TABLEerstellt dann die Tabellestudent_infomit zwei Spalten:Idundname. Die SpalteIdwird als Primärschlüssel festgelegt und auf automatische Inkrementierung eingestellt.
Erstellen Sie die Tabelle student_score und setzen Sie die Fremdschlüsselbeziehung her
In diesem Schritt lernen Sie, wie Sie die Tabelle student_score erstellen und eine Fremdschlüsselbeziehung zwischen der Tabelle student_score und der Tabelle student_info herstellen.
Erstellen Sie in der Datei
studentSys.sqldie Tabellestudent_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) );Die Anweisung
DROP TABLE IF EXISTSprüft, ob die Tabellestudent_scorebereits existiert, und löscht sie, falls dies der Fall ist. Die AnweisungCREATE TABLEerstellt dann die Tabellestudent_scoremit drei Spalten:Id,scoreundSid.Die Anweisung
PRIMARY KEY (Id)legt die SpalteIdals Primärschlüssel für die Tabellestudent_scorefest.Die Anweisung
FOREIGN KEY (Sid) REFERENCES student_info(Id)stellt eine Fremdschlüsselbeziehung zwischen der SpalteSidin der Tabellestudent_scoreund der SpalteIdin der Tabellestudent_infoher. Dies bedeutet, dass die Werte in der SpalteSidder Tabellestudent_scoremit den Werten in der SpalteIdder Tabellestudent_infoübereinstimmen müssen.Führen Sie in der MySQL-Eingabeaufforderung den folgenden Befehl aus, um das Skript
studentSys.sqlauszuführen:
SOURCE ~/project/studentSys.sql
Nach Abschluss dieser Schritte haben Sie die Datenbank studentSys, die Tabelle student_info und die Tabelle student_score erstellt und eine Fremdschlüsselbeziehung zwischen den beiden Tabellen hergestellt.
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)
Zusammenfassung
Herzlichen Glückwunsch! Sie haben dieses Projekt abgeschlossen. Sie können in LabEx weitere Labs üben, um Ihre Fähigkeiten zu verbessern.
