오라클 행 삭제 - olakeul haeng sagje

SQL FOR EVERYONE

오라클 행 삭제 - olakeul haeng sagje

DELETE 명령어는 테이블의 데이터를 삭제할 때 사용합니다. UPDATE 명령어와 마찬가지로 WHERE 절을 사용할 수 있습니다. WHERE 절을 생략하면 조건식이 없기 때문에 모든 데이터가 삭제되므로 주의합니다.

오라클 행 삭제 - olakeul haeng sagje

그림 8-8 DELETE 개념

DELETE [FROM] 테이블 이름

[WHERE 조건식];

신간 소식 구독하기

뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.

데이터베이스는 하드디스크와 같은 저장장치에 데이터를 저장해 관리한다.

따라서 저장용량에 경우 한계가 있다.

(클라우드 서비스를 사용시 용량이 높아질 수록 비용이 증가하는 이유기도 하다. 물리적으로 "서버"가 필요하기 때문이다.)

RDBMS에서의 데이터를 삭제해야하는 경우 행 단위 로 DELETE 명령을 수행한다.

SELECT와 같이 열 단위로 지정하여 삭제 할 수는 없다.

또한, DELETE 명령 실행 후 재확인 의사를 묻지 않고 바로 적용되므로 의도치 않게 중요한 데이터를 지우지 않도록 유의해야한다.


DELETE 행 삭제하기

DELEFT FROM genders WHERE 조건식;
delete from genders where id=10;
오라클 행 삭제 - olakeul haeng sagje
오라클 행 삭제 - olakeul haeng sagje

조건식을 활용하여 여러개의 (행) 데이터를 삭제할 수 있다.

delete from genders where id=4 or id=5;
오라클 행 삭제 - olakeul haeng sagje

주의

아래와 같이 where 구를 생략할 경우 모든 행을 대상으로 한다는 의미가 되므로

해당 테이블의 모든 데이터가 삭제 된다

delete from genders;

표준 SQL에서는 DELEST 명령과 함께 WHERE구를 지정하여 삭제할 수 있지만, 

ORDER BY 구를 사용하여 삭제를 진행 할 수 없다. (MySQL은 가능)

MySQL ==> DELETE 와 ORDER BY, LIMIT 구 지정하여 삭제가 가능하다.

delete from table_09 order by age asc limit 2;
오라클 행 삭제 - olakeul haeng sagje
출처 : https://comster.tistory.com/m/785?category=752407

출처 :

SQL 첫걸음/ 아사이 아츠시 지음/ 한빛미디어

https://comster.tistory.com/m/785?category=752407

Kim VamPa

카테고리 없음

[Oracle 기본사용법][03] UPDATE(행수정), DELETE(행삭제), DROP(테이블 삭제)

Kim VamPa 2020. 4. 6. 09:33

오라클 행 삭제 - olakeul haeng sagje

"생활코딩 Oracle"을 개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.


목표

  • UPDATE, DELETE, DROP 명령어에 대해 공부합니다.
  • DELETE, DROP에 대해 명확히 이해합니다.

*해당 글의 실습은 Oracle XE버젼을 환경을 바탕으로 진행 행하였습니다..

목차

1. UPDATE

2. DELETE

3. DROP

4. DELETE vs DROP

0.  실습에 사용하는 표(Table)

 앞의 글 [02]의 표를 기준으로 하겠습니다.

[표 1]

테이블 이름 : topic

id title description created
1 ORACLE ORACLE is ... 2020.04.03
2 MySQL MySQL is .... 2020.04.03
3 NoSQL NoSQL is ... 2020.04.03

*COMMIT 명령어

  • 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어입니다.
  • 내용을 삽입, 수정, 삭제 명령어(Transaction 명령어)를 수행한 후 반드시 commit;명령어를 실행해주어야만 데이터베이스에 적용이 됩니다.
  • commit 명령을 하지 않고 종료 시엔 실제 DB에 적용되지 않습니다.

1. UPDATE

UPDATE 테이블명 SET 지정컬럼명 = 수정내용 WHERE 컬럼조건;
  • 특정 테이블에서 조건을 만족하는 행에서 지정 컬럼을 수정합니다.
  • 2개이상의 컬럼을 수정 시 ","를 붙여서 다음 수정 내용을 작성하면 됩니다.

실습

1. topic테이블에서 id가 3인 행중 title칼럼을 'MSSQL', description칼럼을 'MSSQL is..." 로 변경합니다.

UPDATE topic SET title = 'MSSQL', description = 'MSSQL is ...' WHERE id = 3;
오라클 행 삭제 - olakeul haeng sagje
그림 1-1

- 정상적으로 요청한 명령이 수행될 시 '업데이트되었습니다'라는 문구가 뜹니다.

- 데이터가 등록, 수정, 삭제가 있을 시엔 반드시 commit;을 해줍니다.

- 변경된 내용이 적용되었는지를 확인하기 위해 "SELECT * FROM topic;"를 쳐서 확인해봅니다.(그림 1-2 참고)

오라클 행 삭제 - olakeul haeng sagje
그림 1-2

- 결과물을 보시면 'NoSQL' => 'NSSQL' / 'NoSQL IS ...' => 'NSSQL IS ...'로 변경되신 것을 확인하실 수 있습니다.

2. DELETE

1.DELETE FROM 테이블명;
2.DELETE FROM 테이블명 WHERE 조건;

- DELETE는 테이블에 등록된 행을 삭제하는 명령어입니다.

- 1번의 경우 해당 테이블의 모든 행을 삭제합니다.

- 2번의 경우 해당 테이블 중 조건을 만족하는 행만 삭제를 합니다.

실습

1. topic 테이블(표1)에서 id가 3인 행을 삭제합니다.

DELETE FROM topic WHERE id = 3;
오라클 행 삭제 - olakeul haeng sagje
그림 2-1

- 정상적으로 명령이 실행되었을 시 "삭제되었습니다"라는 문구가 뜹니다.

- 해당 명령을 실행 후 "commit;" 명령어를 요청해야만 해당 삭제명령이 데이터베이스에 적용이 됩니다.

- 변경된 내용이 적용되었는지를 확인하기 위해 "SELECT * FROM topic;"를 쳐서 확인해봅니다.(그림 2-2 참고) 

오라클 행 삭제 - olakeul haeng sagje
그림 2-2

- 결과 창을 보시면 테이블의 모든 데이터를 검색을 요청하였음에도 삭제를 진행한 행(id=3)을 제외한 행들만 검색된 것을 보실 수 있습니다.

3. DROP

DROP TABLE 테이블명;

- 테이블을 통째로 삭제를 요청하는 명령어입니다.

실습

1. topic테이블(표1) 삭제를 요청합니다.

DROP TABLE topic;
오라클 행 삭제 - olakeul haeng sagje
그림 3-1

- 삭제요청이 정상적으로 진행 시 "테이블이 삭제되었습니다"라는 문구가 뜹니다.

- 테이블 삭제요청은 commit 명령어가 필요 없습니다.

- 삭제가 정상적으로 진행되었는지 확인하기 위해 검색 명령어(SELECT * FORM topic;)를 실행해봅니다.

오라클 행 삭제 - olakeul haeng sagje
그림 3-2

- 결과창을 보시면 테이블의 모든 정보 검색을 요청하였음에도 테이블이 존재지 않기 때문에 오류가 발생한 것을 보실 수 있습니다.

3. DELETE vs DROP

  • DELETE
    - 테이블 안에 존재하는 데이터를 삭제하는 명령어입니다.
    - 테이블 안의 모든 데이터가 삭제되어도 테이블은 존재합니다.
    - 적용을 위해선 commit; 명령어가 반드시 필요합니다.
  • DROP
    - 테이블 자체를 삭제하는 명령어입니다.
    - commit; 명령어를 실행하지 않아도 해당 명령이 적용됩니다.

Reference

  • https://opentutorials.org/course/3885

Date

  • 2020.04.06 작성

오라클 행 삭제 - olakeul haeng sagje