본문 바로가기

DATABASE

ORACLE DATABASE - 데이터의 CRUD

 

저번 게시글에서도 말했지만 어떤 데이터베이스를 다루건 데이터베이스는 공통적으로 CRUD의 기능을 가진다.

이번 게시글에서는 표(테이블) 안의 데이터를 CRUD 하는 방법에 대해 알아보자

  • C : 데이터를 추가하기(생성하기)
  • R : 데이터를 읽어오기
  • U : 데이터를 수정하기
  • D : 데이터를 삭제하기

 

<1> 어떻게 데이터를 생성하는가? 데이터 추가하기

만들어진 테이블에는

INSERT INTO 키워드로 컬럼에 데이터를 추가할 수 있다.

//topic 테이블에 행을 추가하고 싶을때

INSERT INTO topic
	(id,title,description,created) 
	//해당 컬럼에 값을 넣는다
	VALUES 
	//값의 구체적인 내용
	(1,'ORACLE','ORACLE is ...', SYSDATE);

행을 추가했다면, 혹은 수정작업을 했다면 커밋이라는 명령을 내린다

 

위와 같이 INSERT INTO + 테이블 이름을 적고

VALUES 뒤에 추가할 데이터를 작성하여 테이블에 데이터(행)을 추가할 수 있다.

 

<2> 어떻게 데이터를 읽는가? 데이터 가져오기

어떤 데이터를 가져오는가를 선택하는 것이 데이터베이스의 핵심이다.

  • 행을 가져오기
//topic에서 가져올 행을 select한다.
SELECT * FROM topic;
  • 컬럼을 제한하기

컬럼이 100~200개가 되면 정보 과잉이 되는데, 이럴땐 hide column을 하게 된다.

SELECT id, title, created FROM topic;
  • 로우(행)을 제한하기 WHERE
//id가 1인 행만 보고싶을 때
SELECT * FROM topic WHERE id = 1;

//id가 1보다 큰 행을 보고 싶을 때
SELECT * FROM topic WHERE id > 1;

//id가 1인 id, title, created 컬럼만 보고 싶을 때(행, 열 둘다 제한)
SELECT id, title, created FROM topic WHERE id = 1;
  • 출력된 결과의 정렬 상태를 바꾸고 출력되는 행의 갯수를 바꾸는 방법

정렬은 ORDER BY 키워드를 사용한다.

정렬기준을 주는데, 큰 것이 먼저 나오도록 정렬할때는 DESC를, 작은 것이 먼저 나오도록 정렬할때는 ASC를 쓴다.

SELECT * FROM topic ORDER BY id DESC;
//id를 기준으로 정렬한다
//DESC : 큰 숫자가 먼저 <-> ASC

행을 어디부터 가져 올지 결정할 때는 OFFSET 키워드를 사용한다.

SELECT * FROM topic OFFSET 1 ROWS; 
//IDX 0번째(=1번째) 이후의 행 들을 가져온다
SELECT * FROM topic OFFSET 0 ROWS; 
//전체 행들을 가져온다

그렇게 가져오는 행들의 갯수를 제한할 때는 FETCH NEXT 키워드를 사용한다.

SELECT * FROM topic OFFSET 1 ROWS FETCH NEXT 1 ROWS ONLY;
//IDX 0번째 이후의 행들 중 1개만 가져온다

 

 

<3> 어떻게 데이터를 수정하는가? 저장된 데이터 변경하기

 

[주의사항]

UPDATE나 DELETE를 하여 데이터를 수정하거나 삭제할땐 반드시 WHERE문을 확인해야 한다.

자칫 잘못하면 모든 데이터가 수정되거나 삭제될수 있기 때문이다.

또한 데이터를 추가하거나 삭제하거나 변경하는 변경사항이 있을 때는 작업 이후 반드시 commit(커밋)을 해주자!

 

데이터의 수정은 UPDATE SET 키워드를 사용한다.

UPDATE topic SET title = 'MSSQL', description = 'MSSQL is ...';
//전체 행의 title과 description 데이터를 바꾼다

UPDATE topic SET title = 'MSSQL', description = 'MSSQL is ...'WHERE id = 3;
//id가 3인 행의 title과 description 데이터를 바꾼다

이후 commit으로 실제로 작업을 반영해주자

 

<4> 어떻게 데이터를 삭제하는가?

데이터(행)의 삭제는 DELETE 키워드를 사용한다.

DELETE FROM topic;
//topic 테이블의 모든 데이터가 사라진다

DELETE FROM topic WHERE id=3;
//id가 3인 행의 데이터를 삭제한다.

참고로 테이블을 삭제할때는 DROP 키워드를 사용한다.

DROP TABLE topic;

 

 

 

 

 

 

해당 게시글은 '생활코딩' 님의 오라클 강의를 참고하였습니다.

출처 https://www.youtube.com/playlist?list=PLuHgQVnccGMB5q5uJIDhLlcC2V6tyXhY6