본문 바로가기

Database/실습

[DB] Notebook

Alter문으로 실습을 진행해보겠습니다.

Notebook에 대한 Table을 만들어봅시다.

요구 조건은 다음과 같습니다.

 

 

요구 조건

 

1. 노트북에 대한 테이블을 생성

노트북의 이름, 가격, CPU, RAM(MB, 64MB가 최대라고 가정)

HDD(GB 단위), 보증 기간을 속성으로 갖게 하고 싶음

조건에 부합하는 테이블을 생성하는 문장

[하나의 기본 키(PK)를 가져야하고, 모든 값은 채워 넣어야함]

 

2. 노트북의 사양이 좋아져서 128GB짜리 RAM을 사용하게 되었음

RAM 컬럼의 용량을 변경하는 문장 작성

 

3. 노트북의 크기(인치)에 대한 컬럼을 추가하는 문장 작성

[단위 CM, 소수점 두번째자리까지 나타낼 것]

[이 컬럼은 값으로 넣을 없음]

 

4.노트북에는 앞으로 HDD대신 SSD가 장착됨

HDD컬럼의 이름을 SSD 컬럼명으로 변경하는 문장 작성

 

5. 보증기간 컬럼을 삭제하는 문장 작성

 

6. 노트북의 가격이 [800000~2300000]사이의 값만 들어갈 있게끔

변경

 

7. 만든 테이블을 완전히 삭제

 

 

1. 노트북에 대한 테이블을 생성

먼저 테이블을 만들겠습니다.

 

create table notebook(

n_name varchar2(20 char) primary key,

n_price number(7) not null,

n_cpu varchar2(10 char) not null,

n_ram number(2) not null check (n_RAM between 0 and 64),

 

=> check는 입력할 때 조건을 지정해서

입력 받을 수 있습니다.

between and를 써서

구간을 지정할 수 있습니다.

 

n_hdd number(4) not null,

n_date date not null

);

 

2. 노트북의 사양이 좋아져서 128GB짜리 RAM을 사용하게 되었음

  RAM 컬럼의 용량을 변경하는 문장 작성

 

alter table notebook modify n_ram number(3) not null check (n_ram between 0 and 128);

 

table의 용량을 3자리로 바꾸고

not null 제약 조건과

check 제약 조건을

0부터 128까지로 걸어둡니다.

 

하지만 에러가 뜨게 됩니다.

 

ORA-01442: column to be modified to NOT NULL is already NOT NULL

 

데이터를 삽입할 때 이미 not null 제약 조건을 걸었기 때문에

에러가 뜨는 것입니다.

not null을 지웁시다.

 

3. 노트북의 크기(인치)에 대한 컬럼을 추가하는 문장 작성

[단위 CM, 소수점 두번째자리까지 나타낼 것]

[이 컬럼은  값으로 넣을  없음]

 

alter table notebook add n_Size number(4,2) not null;

 

=> number의 인자로 숫자 2개를 넣었는데

이때 앞의 숫자는 전체 수의 자릿수, 

뒤의 숫자는 소수 점에 해당하는 자릿수입니다.

 

즉, 48.72와 같은 실수 2자리, 정수 2자리 (총 4자리) 데이터 형식이 되는 것입니다.

 

4.노트북에는 앞으로 HDD대신 SSD가 장착됨

HDD컬럼의 이름을 SSD 컬럼명으로 변경하는 문장 작성

 

alter table notebook rename column n_HDD to n_SDD;

 

이떄는 rename을 사용하여 이름을 변경합니다.

 

5. 보증기간 컬럼을 삭제하는 문장 작성

 

alter table notebook drop column n_date;

 

drop을 사용합니다.

 

6. 노트북의 가격이 [800000~2300000]사이의 값만 들어갈  있게 변경

 

alter table notebook modify n_price number(7) check (n_price 800000 and 2300000);

 

이때도 check를 사용해서 범위 제약 조건을 걸 수 있습니다.

 

alter table notebook modify n_price number(7) constraint n_check check(n_price between 800000 and 2300000);

 

constraint를 써서도 동일하게 제약 조건을 걸 수 있습니다.

 

7. 만든 테이블을 완전히 삭제

 

drop table notebook cascade constraint purge;

 

drop과 purge를 사용해서 만든 테이블을 휴지통에서도 삭제할 수 있습니다.

 

이번 시간에는 DDL의 종류 중 하나인Alter를 사용해서 실습해보는 시간을가져보았습니다.check를 사용해서 데이터의 제약 조건을 거는 부분이중요한 것 같습니다.읽어주셔서 감사합니다!

 

'Database > 실습' 카테고리의 다른 글

[DB] 게시판  (0) 2024.12.27