>데이터 베이스 >MySQL 튜토리얼 >MySQL 테이블 디자인 실습 : 수강시간표 및 학생 수강과목 선택 일정 작성

MySQL 테이블 디자인 실습 : 수강시간표 및 학생 수강과목 선택 일정 작성

WBOY
WBOY원래의
2023-07-01 11:33:225820검색

MySQL 테이블 디자인 실습 : 강좌일정 및 학생과목 선택일정 작성

실제 데이터베이스 디자인 과정에서 테이블 디자인은 중요한 연결고리 중 하나입니다. 이 기사에서는 MySQL 테이블 설계의 실무 경험과 기술을 소개하기 위해 과목 일정 및 학생 과목 선택 일정을 만드는 것을 예로 들겠습니다. 데이터베이스 관리 시스템으로 MySQL을 사용하고 코드 예제를 제공하겠습니다.

  1. 강좌 시간표 만들기

강좌 시간표는 강의 정보를 저장하는 테이블입니다. 다음 SQL 문을 사용하여 코스 테이블을 생성할 수 있습니다.

CREATE TABLE course (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  code VARCHAR(10) NOT NULL,
  credits INT NOT NULL,
  department_id INT,
  CONSTRAINT fk_department
    FOREIGN KEY (department_id)
    REFERENCES department (id)
);

위 코드에서는 CREATE TABLE 문을 사용하여 코스라는 테이블을 생성합니다. 테이블에는 다음 필드가 포함되어 있습니다.

  • id: 강좌 ID, 정수 유형이며 기본 키입니다. 자동 증가를 위해 AUTO_INCREMENT 키워드를 사용합니다.
  • 이름: 강좌 이름으로, 255자를 초과하지 않는 문자열 형식이며 비워둘 수 없습니다.
  • 코드: 강좌 코드, 10자 이내의 문자열 유형이며 비워둘 수 없습니다.
  • 학점: 정수 유형이며 비워둘 수 없는 강좌 학점입니다.
  • department_id: 해당 강좌를 제공하는 학과의 ID로, 정수형입니다. 외래 키 제약 조건을 설정하고 이를 다른 테이블에 있는 부서의 ID 필드에 연결합니다.
  1. 학생 과목 선택 테이블 만들기

학생 과목 선택 테이블은 학생 과목 선택 정보를 저장하는 테이블입니다. 다음 SQL 문을 사용하여 학생 강좌 선택 테이블을 생성할 수 있습니다.

CREATE TABLE student_course (
  id INT PRIMARY KEY AUTO_INCREMENT,
  student_id INT,
  course_id INT,
  grade FLOAT,
  CONSTRAINT fk_student
    FOREIGN KEY (student_id)
    REFERENCES student (id),
  CONSTRAINT fk_course
    FOREIGN KEY (course_id)
    REFERENCES course (id)
);

위 코드에서는 CREATE TABLE 문을 사용하여 Student_course라는 테이블을 생성합니다. 테이블에는 다음 필드가 포함됩니다.

  • id: 강좌 선택 ID로 정수 유형이며 기본 키입니다. 자동 증가를 위해 AUTO_INCREMENT 키워드를 사용합니다.
  • student_id : 학생번호, 정수형. 외래 키 제약 조건을 설정하고 이를 다른 테이블인 학생의 ID 필드에 연결합니다.
  • course_id: 강좌 ID, 정수형입니다. 물론 외래 키 제약 조건을 설정하고 이를 다른 테이블의 id 필드에 연결합니다.
  • 학년: 학생의 과목 선택 성적, 부동 소수점 숫자 형식입니다.
  1. 데이터 삽입

테이블 구조를 생성한 후 테이블 디자인이 올바른지 테스트하기 위해 일부 샘플 데이터를 삽입할 수 있습니다. 다음은 일부 샘플 데이터의 삽입 예입니다.

INSERT INTO course (name, code, credits, department_id)
VALUES ('数据库原理', 'CS101', 3, 1),
       ('计算机网络', 'CS201', 3, 1),
       ('操作系统', 'CS301', 4, 1),
       ('数据结构', 'CS401', 3, 1);

INSERT INTO student_course (student_id, course_id, grade)
VALUES (1, 1, 90),
       (1, 2, 85),
       (2, 1, 88),
       (3, 3, 92),
       (4, 4, 75);

위 코드에서는 INSERT INTO 문을 사용하여 테이블에 데이터를 삽입합니다. 구체적으로는 코스 테이블에 4개 과목에 대한 정보를 삽입하고, 학생_코스 테이블에 5개 학생 과목 선택 기록을 삽입했다.

  1. 데이터 쿼리

테이블 디자인이 완료되면 SELECT 문을 사용하여 테이블의 데이터를 쿼리할 수 있습니다. 다음은 몇 가지 일반적인 쿼리의 예입니다.

모든 강좌 정보 쿼리:

SELECT * FROM course;

지정된 학생의 강좌 선택 정보 쿼리:

SELECT s.name AS student_name, c.name AS course_name, sc.grade
FROM student_course sc
JOIN student s ON sc.student_id = s.id
JOIN course c ON sc.course_id = c.id
WHERE s.id = 1;

위 예제 코드는 Student_course, Student 및 Course 세 테이블의 연결을 보여줍니다. JOIN문을 통해 쿼리하면 학생ID가 1인 학생의 과목 선택 정보가 출력되며, 학생의 이름, 과목명, 성적이 출력된다.

요약:

본 실습 사례를 통해 수업일정 및 학생과목 선택 테이블을 생성하는 방법을 배웠고, 테이블 생성, 데이터 삽입, 데이터 쿼리 과정을 코드 예시를 통해 시연했습니다. 실제 데이터베이스 설계에서는 합리적인 테이블 설계를 통해 데이터 저장 효율성과 쿼리 성능을 향상시킬 수 있습니다. 테이블 구조를 설계할 때 데이터의 정확성과 일관성을 보장하기 위해 데이터 관계, 데이터 유형 선택, 외래 키 제약 조건 설정 등의 요소를 고려해야 합니다. 이 글이 MySQL 테이블 디자인에 도움이 되기를 바랍니다.

위 내용은 MySQL 테이블 디자인 실습 : 수강시간표 및 학생 수강과목 선택 일정 작성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.