Система управления оценками студентов

SQLBeginner
Практиковаться сейчас

Введение

В этом проекте вы научитесь создавать систему управления информацией о студентах с использованием MySQL. Эта система включает две таблицы: student_info и student_score, между которыми существует связь по внешнему ключу.

👀 Предварительный просмотр

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-инструкций
  • Как установить связь по внешнему ключу между двумя таблицами

🏆 Достижения

После завершения этого проекта вы сможете:

  • Понять концепцию реляционной базы данных и научиться создавать и управлять таблицами
  • Реализовать ограничение по внешнему ключу для обеспечения целостности данных между связанными таблицами
  • Применить свои знания SQL для создания простой системы управления информацией о студентах

Запустить MySQL и создать базу данных

На этом шаге вы научитесь запускать сервер MySQL и создавать базу данных studentSys.

  1. Запустите сервер MySQL:

    sudo /etc/init.d/mysql start
    
  2. Войдите в терминал MySQL:

    mysql -uroot
    
  3. Создайте новый файл с именем studentSys.sql в директории /home/labex/project.

  4. В файле 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.

  1. В файле studentSys.sql используйте базу данных studentSys:

    USE studentSys;
    
  2. Создайте таблицу 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 создает таблицу student_info с двумя столбцами: Id и name. Столбец Id установлен как первичный ключ и настроен на автоматическое увеличение.

Создать таблицу student_score и установить связь по внешнему ключу

На этом шаге вы научитесь создавать таблицу student_score и устанавливать связь по внешнему ключу между таблицей student_score и таблицей student_info.

  1. В файле 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 создает таблицу student_score с тремя столбцами: Id, score и Sid.

    Инструкция PRIMARY KEY (Id) устанавливает столбец Id как первичный ключ для таблицы student_score.

    Инструкция FOREIGN KEY (Sid) REFERENCES student_info(Id) устанавливает связь по внешнему ключу между столбцом Sid в таблице student_score и столбцом Id в таблице student_info. Это означает, что значения в столбце Sid таблицы student_score должны совпадать с значениями в столбце Id таблицы student_info.

  2. В командной строке MySQL выполните следующую команду для запуска скрипта studentSys.sql:

SOURCE ~/project/studentSys.sql

После выполнения этих шагов вы создали базу данных studentSys, таблицу student_info и таблицу student_score, а также установили связь по внешнему ключу между двумя таблицами.

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, чтобы улучшить свои навыки.

✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться