본문 바로가기

SQL

학생 성적 테이블 생성: 학생 성적 정보를 저장하기 위한 테이블을 생성합니다.

반응형

학생 성적 정보를 저장하는 테이블은 학생들의 학업 성취도를 기록하고 분석하는 데 중요합니다. 이 테이블은 학생 ID, 과목, 성적, 학기, 평균 성적, 학생의 성적 등급 등의 정보를 포함할 수 있습니다. 다음은 학생 성적 정보를 저장하기 위한 테이블 생성을 위한 SQL 쿼리문 예제와 각각의 설명입니다.


1. 기본 학생 성적 테이블 생성
CREATE TABLE student_grades (
    grade_id INT AUTO_INCREMENT PRIMARY KEY,
    student_id INT,
    course_id INT,
    term VARCHAR(50),
    grade DECIMAL(3, 2),
    FOREIGN KEY (student_id) REFERENCES students(student_id),
    FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
설명: 학생의 과목별 성적, 학기, 성적을 저장합니다.

 

2. 과목 정보 테이블 생성
CREATE TABLE courses (
    course_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    description TEXT,
    credit_hours INT
);
설명: 과목의 이름, 설명, 학점 수 등을 저장합니다.

 

3. 학생 정보 테이블 생성
CREATE TABLE students (
    student_id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    enrollment_date DATE,
    major VARCHAR(100)
);
설명: 학생의 이름, 등록 날짜, 전공 등 기본 정보를 저장합니다.

 

4. 성적 분포 통계 테이블 생성
CREATE TABLE grade_distributions (
    distribution_id INT AUTO_INCREMENT PRIMARY KEY,
    course_id INT,
    term VARCHAR(50),
    a_count INT,
    b_count INT,
    c_count INT,
    d_count INT,
    f_count INT,
    FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
설명: 각 과목별, 학기별 성적 분포(A, B, C, D, F)를 저장합니다.

 

5. 성적 개선 기록 테이블 생성
CREATE TABLE grade_improvements (
    improvement_id INT AUTO_INCREMENT PRIMARY KEY,
    student_id INT,
    course_id INT,
    previous_grade DECIMAL(3, 2),
    new_grade DECIMAL(3, 2),
    improvement_date DATE,
    FOREIGN KEY (student_id) REFERENCES students(student_id),
    FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
설명: 성적이 개선된 기록과 개선 날짜를 저장합니다.

 

6. 학생 출석 기록 테이블 생성
CREATE TABLE attendance_records (
    record_id INT AUTO_INCREMENT PRIMARY KEY,
    student_id INT,
    course_id INT,
    date DATE,
    status VARCHAR(50),
    FOREIGN KEY (student_id) REFERENCES students(student_id),
    FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
설명: 학생의 과목별 출석 상태(출석, 결석, 지각 등)와 날짜를 기록합니다.

 

7. 학생 상담 기록 테이블 생성
CREATE TABLE counseling_records (
    counseling_id INT AUTO_INCREMENT PRIMARY KEY,
    student_id INT,
    counselor_id INT,
    counseling_date DATE,
    notes TEXT,
    FOREIGN KEY (student_id) REFERENCES students(student_id),
    FOREIGN KEY (counselor_id) REFERENCES employees(employee_id)  -- assuming counselors are also employees
);
설명: 학생과 상담자 간의 상담 일시와 내용을 저장합니다.

 

8. 학생 성적 경고 테이블 생성
CREATE TABLE grade_warnings (
    warning_id INT AUTO_INCREMENT PRIMARY KEY,
    student_id INT,
    course_id INT,
    issue_date DATE,
    reason TEXT,
    FOREIGN KEY (student_id) REFERENCES students(student_id),
    FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
설명: 성적이 불량한 학생에 대한 경고 발행 날짜와 이유를 저장합니다.

 

9. 학생 성적 증명서 테이블 생성
CREATE TABLE grade_certificates (
    certificate_id INT AUTO_INCREMENT PRIMARY KEY,
    student_id INT,
    issue_date DATE,
    document_url TEXT,
    FOREIGN KEY (student_id) REFERENCES students(student_id)
);
설명: 성적 증명서 발급 날짜와 문서 URL을 저장합니다.

 

10. 과목별 학습 자료 테이블 생성
CREATE TABLE learning_materials (
    material_id INT AUTO_INCREMENT PRIMARY KEY,
    course_id INT,
    title VARCHAR(100),
    material_url TEXT,
    upload_date DATE,
    FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
설명: 과목별 학습 자료의 제목, URL, 업로드 날짜를 저장합니다.

관련 전문용어 설명
CREATE TABLE: 새로운 테이블을 생성하는 SQL 명령어입니다.
INT, VARCHAR, DECIMAL, DATE, TEXT: 데이터 유형을 나타냅니다.
AUTO_INCREMENT: 자동으로 숫자를 증가시키는 속성입니다.
PRIMARY KEY: 각 행을 고유하게 식별하는 주 키입니다.
FOREIGN KEY: 다른 테이블의 주 키를 참조하는 외래 키입니다.

반응형