학생 성적 정보를 저장하는 테이블은 학생들의 학업 성취도를 기록하고 분석하는 데 중요합니다. 이 테이블은 학생 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: 다른 테이블의 주 키를 참조하는 외래 키입니다.
'SQL' 카테고리의 다른 글
쿠폰 테이블 생성: 할인 쿠폰 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
---|---|
도서 대출 테이블 생성: 도서 대출 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
고객 지원 티켓 테이블 생성: 고객 지원 티켓 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.01 |
일정 테이블 생성: 업무 일정 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
프로젝트 테이블 생성: 프로젝트 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |