IT/기타

Oracle 테이블 생성, 데이터 추가/조회/수정/삭제

땅일단 2023. 7. 10. 00:08

※ SQL Developer와 SQL*Plus 의 2가지 방법을 모두 정리합니다.

※ SQL*Plus에서 작업한 후엔 commit; 명령을 통해 커밋해줘야 SQL Developer에서 새로고침을 했을 때 정상 반영이 됩니다.

 

1. 테이블 생성

(SQL Developer에서)

 

 

(SQL*Plus에서)

create table reservation_tbl (
	lentno varchar2(3) primary key,
    custname varchar2(20),
    bookno varchar2(3),
    outdate date,
    indate date,
    status char
);

 

 

 

2. 데이터 추가

(SQL Developer에서)

 

(SQL*Plus에서)

insert into reservation_tbl values(1, '김한국', 101, to_date('20221201', 'yyyymmdd'), null, 1);

 

- VARCHAR 형 데이터는 작은따옴표 써야됨

- DATE 형은 to_date 사용

 

3. 데이터 조회

select * from reservation_tbl;

 

4. 데이터 수정 및 삭제

(혹시 모를 일에 대비하여...)

update reservation_tbl set custname = '홍길동' where lentno = '1';
delete from reservation_tbl where lentno = '1';

 

5. 응용 문제

문제 : '시스템분석' 도서의 반납여부(status) 를 확인하는 조회를 작성하시오.

reservation_tbl
bookinfo_tbl

풀이 :

select r.status from reservation_tbl r join bookinfo_tbl b on r.bookno = b.bookno 
group by r.status, b.bookname having b.bookname='시스템분석';

결과에 사용된 컬럼인 r.status (반납 여부) 와 조건에 사용된 b.bookname (도서명) 은 group by 다음에 꼭 적어줘야 합니다.

그렇지 않다면 ORA-00979: not a GROUP BY expression 라는 오류 메시지가 표시됩니다.