본문 바로가기

TIL

[DB][SQL][WHERE][TRUNCATE,DELETE,DROP 차이]

728x90

1. WHERE문 - 테이블에서 특정 조건에 부합하는 데이터만 조회하고 싶을 때 사용한다

예)

SELECT * FROM EMPLOYEE

WHERE JOP ="사원"'

2. 논리 연산자(and/or) 문 -where문 + or/and 문

SELECT * FROM EMPLOYEE

WHERE JOP !="사장"'

AND salary >= 500

SELECT * FROM EMPLOYEE

WHERE JOP!="사장"

OR salary >= 500

  >> 사장이 아니거나, salary가 500 이상이거나 둘 중 하나만 맞아도 출력됨

 

3.BETWEEN A AND B

SELECT * FROM EMPLOYEE

WHERE SALARY BETWEEN 300 AND 500;

4. IN

SELECT * FROM EMPLOYEE

WHERE SALARY IN(300, 400, 500, 600);

원하는 값을 추출해서 나타냄

[데이터베이스] TRUNCATE , DELETE, DROP 차이점

TRUNCATE table 명령어는 개별적으로 행을 삭제할 수 없으며, 테이블 내부의 모든 행을 삭제한다.

TRUNCATE 특징

TRUNCATE는 DDL(데이터 정의 언어) 명령이다.

TRUNCATE는 테이블 잠금을 사용하여 실행되지만 각 행은 잠기지 않는다

TRUNCATE와 where 절을 함께 사용할 수 없다(개별적으로 행 삭제 불가능)

TRUNCATE는 테이블에서 모든 행을 제거한다

트랜잭션 로그에 한 번만 기록되므로 delete보다 성능 면에서 더 빠르다

인덱싱 된 view와 함께 사용할 수 없다

테이블에서 TRUNCATE table 명령어를 사용하려면 테이블에 대한 alter 권한이 필요하다

rollback(실행 취소)이 불가능하다

테이블의 용량이 초기화된다

 

DELETE : 테이블의 내부의 행을 모두 삭제하며, where 절을 사용하며 개별적으로 행을 삭제할 수 있다.

DELETE 특징

DELETE는 행 잠금을 사용하여 실행된다

DELETE는 DML(데이터 조작 언어) 명령이다

DELETE는 where절과 함께 사용하여 특정 행을 삭제할 수 있다.

DELETE는 삭제된 각 행에 대해 트랜잭션 로그를 기록한다 따라서 TRUNCATE보다 느리다

DELETE 명령어를 사용하려면 테이블에 대한 DELETE권한이 필요하다

인덱싱 된 view와 함께 사용할 수 있다

TRUNCATE보다 많은 트랜잭션 공간을 사용한다.

rollback(실행 취소)를 할 수 있다.

테이블의 용량은 감소하지 않는다.

 

DROP : 데이터베이스에서 테이블 정의 및 해당 테이블에 대한 모든 데이터, 인덱스, 트리거, 제약조건 및 권한을 제거한다

DROP의 특징

DROP은 DDL(데이터 정의 언어) 명령이다

DROP명령은 데이터베이스에서 테이블을 제거한다

테이블의 행, 인덱스 및 권한도 제거된다

ㅔ이블의 행이 제거될 때 , DML(데이터 조작 명령어) 트리거가 실행되지 않는다

rollback(실행 취소) 불가능하다.

 

728x90

'TIL' 카테고리의 다른 글

[Spring][DI]  (0) 2022.10.13
[데이터베이스와 SQL][SQL문정리]  (0) 2022.10.10
[HTTP][HEADER][캐시와 조건부 요청]  (1) 2022.10.10
[HTTP][헤더(일반정보,인증,쿠키)]  (0) 2022.10.09
[HTTP][헤더(표현,협상,전송방식)]  (1) 2022.10.07