데이터베이스

수강신청 DB만들어보기

Barbarian developer 2024. 9. 8.

요구사항

  • 구조적인 설계를 해보기 위해서 예제를 만들어 봄.
  • 학생이 수강신청하는 DB를 만듦
  • 요구사항은 다음과 같다.
  • "학생정보는이름, 성별, 나이, 전공, 학년, 기숙사여부로선정한다.”
  • “교수정보는이름, 성별, 나이, 전공, 교수실호실로선정한다.”
  • “수강정보는수강명, 대상학생, 교수정보, 교실, 수업시간으로한다.”
  • 굳이 테이블개수가 3개일 필요는없다.
  • 필요한 속성은 추가해도 상관없다.
  • 요구사항에 있는 속성은 무조건 구현되어야 한다.

 

요구사항 설계도


요구사항 세분화


논리적 데이터 모델


테이블 생성

CREATE STUDENT

CREATE PROFESSOR

CREATE MAJOR

CREATE LESSON


DATA 제작 후 테이블에 저장하기

STUDENT PRINT

명령어:  INSERT INTO {테이블명} VALUES('COLUMN' 순서에 맞게 DATA 삽입.)

 

STUDENT 테이블 출력.

 

PROFESSOR PRINT

명령어:  INSERT INTO {테이블명} VALUES('COLUMN' 순서에 맞게 DATA 삽입.)

 

PROFESSOR 출력

LESSON PRINT

명령어:  INSERT INTO {테이블명} VALUES('COLUMN' 순서에 맞게 DATA 삽입.)

 

LESSON 출력


명령어 사용.

기본 명령어.

 

CLASSES란 데이터베이스를 생성.

.

 

방금 생성한 데이터 베이스를 사용합니다.

 

STUDENT라는 테이블을 생성하고 그에 들어갈 컬럼명과 제약조건, 데이터타입을 저장합니다.

 

 

 

외래키 COLUMN을 TABLE에 집어 넣기

ALTER TABLE {TABLE명} ADD {추가조건} {컬럼명} {데이터타입}을 사용하여 원하는 테이블에 집어 넣는다.

 

 

다시 ALTER TABLE을 사용하여 외래키로 지정해주는 명령문을 입력하면, 다른 테이블에서 값을 가져올 수 있게 된다.

 

컬럼 이름 바꾸기

 

테이블 내의 컬럼명을 바꾸는 명령어는 다음과 같다.

alter table {테이블_이름} change {현재_컬럼_이름} {새로운_컬럼_이름} {타입};
 

PORFESSOR내의 M_ID컬럼명을 MAJOR_ID로 변경했다.

칼럼에 NULL값 허용/비허용 하기

alter table Event modify column [칼럼 이름] [칼럼 타입] :

칼럼에 null 값 허용

 

alter table Event modify column [칼럼 이름] [칼럼 타입] not null :

 

칼럼에 null 값 비허용

 

 

외래키 추가/삭제

1.foreign key 추가

alter table [추가할테이블명] add constraint [제약조건명] foreign key(컬럼명)
references [부모테이블명] (PK컬럼명) [ON DELETE CASCADE / ON UPDATE CASECADE];
  • ON DELETE CASCADE
    외래 키에서 참조하는 키가 포함된 행을 삭제하려고 하면 해당 외래 키가 포함되어 있는 모든 행도 삭제
  • ON UPDATE CASCADE
    외래 키에서 참조하는 키 값이 포함된 행에서 키 값을 업데이트 하면 해당 외래 키를 구성하는 모든 값도 키에 지정된 새 값으로 업데이트되도록 지정

2. foreign key 삭제

alter table [테이블명] drop foreign key [제약조건명];
ALTER TABLE [테이블명] DROP COLUMN [컬럼명];

 

출처: https://allg.tistory.com/37 [프로그래밍 해볼까:티스토리]

 

'데이터베이스' 카테고리의 다른 글

pandas라이브러리 & matplotlib.pyplot  (0) 2024.10.10
프로시저와 트리거  (0) 2024.09.20
DB 만들어보기  (0) 2024.09.06
Data Base  (0) 2024.08.18

댓글