Schülerleistungsverwaltungssystem

SQLSQLBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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 von MySQL und Erstellen der Datenbank

In diesem Schritt lernen Sie, wie Sie den MySQL-Server starten und die studentSys-Datenbank erstellen.

  1. Starten Sie den MySQL-Server:

    sudo /etc/init.d/mysql start
  2. Melden Sie sich in die MySQL-Kommandozeile an:

    mysql -uroot
  3. Erstellen Sie eine neue Datei namens studentSys.sql im Verzeichnis /home/labex/project.

  4. Erstellen Sie in der Datei studentSys.sql die studentSys-Datenbank:

    DROP DATABASE IF EXISTS studentSys;
    CREATE DATABASE IF NOT EXISTS studentSys CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

    Die Anweisung DROP DATABASE IF EXISTS prüft, ob die studentSys-Datenbank bereits existiert, und löscht sie, falls dies der Fall ist. Die Anweisung CREATE DATABASE IF NOT EXISTS erstellt dann die studentSys-Datenbank mit dem angegebenen Zeichensatz und der Kollation.

Erstellen der Tabelle student_info

In diesem Schritt lernen Sie, wie Sie die Tabelle student_info erstellen.

  1. Verwenden Sie in der Datei studentSys.sql die Datenbank studentSys:

    USE studentSys;
  2. 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 EXISTS prüft, ob die Tabelle student_info bereits existiert, und löscht sie, falls dies der Fall ist. Die Anweisung CREATE TABLE erstellt dann die Tabelle student_info mit zwei Spalten: Id und name. Die Spalte Id wird als Primärschlüssel festgelegt und auf automatische Inkrementierung eingestellt.

Erstellen der Tabelle student_score und Herstellen der Fremdschlüsselbeziehung

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.

  1. Erstellen Sie in der Datei studentSys.sql die Tabelle 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)
    );

    Die Anweisung DROP TABLE IF EXISTS prüft, ob die Tabelle student_score bereits existiert, und löscht sie, falls dies der Fall ist. Die Anweisung CREATE TABLE erstellt dann die Tabelle student_score mit drei Spalten: Id, score und Sid.

    Die Anweisung PRIMARY KEY (Id) legt die Spalte Id als Primärschlüssel für die Tabelle student_score fest.

    Die Anweisung FOREIGN KEY (Sid) REFERENCES student_info(Id) stellt eine Fremdschlüsselbeziehung zwischen der Spalte Sid in der Tabelle student_score und der Spalte Id in der Tabelle student_info her. Dies bedeutet, dass die Werte in der Spalte Sid der Tabelle student_score mit den Werten in der Spalte Id der Tabelle student_info übereinstimmen müssen.

  2. Führen Sie in der MySQL-Eingabeaufforderung den folgenden Befehl aus, um das Skript studentSys.sql auszufü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)
✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Sie haben dieses Projekt abgeschlossen. Sie können in LabEx weitere Labs üben, um Ihre Fähigkeiten zu verbessern.