요구사항
- 구조적인 설계를 해보기 위해서 예제를 만들어 봄.
- 학생이 수강신청하는 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 |
댓글