[16, 17, 18, 19강] 데이터의 추가, 삭제, 갱신

신은지·2021년 11월 6일
0

SQL 첫걸음

목록 보기
12/14

INSERT, DELETE, UPDATE, 논리삭제와 물리삭제

INSERT : 행 추가하기

  • INSERT
    : DB테이블에 행을 추가할 때 사용
    : INSERT INTO 테이블명 VALUES (값1, 값2, ...)
    : INSERT INTO 테이블명 (열1, 열2, ...), VALUES (값1, 값2, ...)

  • NOT NULL 제약이 있는 경우 INSERT 명령시 NULL 사용 불가능

  • Default 설정을 이용하면 INSERT 명령시 값(또는 열)을 명시하지 않아도 행을 추가할 수 있다.


DELETE : 행 삭제하기

  • DELETE
    : DB테이블에서 행을 삭제할 때 사용
    : DELETE FROM 테이블 WHERE 조건식
    : 조건식에 해당되는 모든 행을 삭제하므로 사용시 주의 필요

UPDATE : 행 갱신하기

  • UPDATE
    : DB테이블에 저장된 데이터(행) 값을 수정한다
    : UPDATE 테이블 SET 열명 = 값, ... WHERE 조건식
    : SET구를 이용해 갱신할 열과 값을 지정하며, 값은 열 자료형에 맞는 상수로 표기한다.
    : 리스트 형식을 이용, 복수의 열과 값을 동시에 갱신할 수 있다.

  • 복수 열 갱신
    : Oracle의 경우, SET구에 기술된 식의 순서가 처리에 영향을 주지 않는다.
    : MySQL의 경우, SET구에 기술된 순서로 갱신이 처리된다. 처리 순서의 고려 필요!

  • 주의사항
    : SET구에 사용되는 =가 대입 연산자이므로, 갱신 전과 갱신 후 값에 주의해야한다.
    : EX) 갱신 대상이 되는 열을 포함한 갱신 값 사용. SET no = no+1 등


논리삭제와 물리삭제

시스템 구축에 사용되는 개념. 시스템 설계 분야 관점

  • 물리삭제
    : SQL의 DELETE를 사용, 직접 데이터를 삭제한다

  • 논리삭제
    : '삭제 플래그' 열을 이용, 테이블에서 실제로 행을 삭제하는 것이 아닌, UPDATE를 이용해 '삭제 플래그' 의 값을 유효하게 갱신해둔다.
    : 실제 데이터는 테이블 안에 남아있지만 '삭제 플래그' 열을 참조하여 SELECT하므로 삭제된 것처럼 보인다.
    : 장점 - 이슈 발생 시 데이터가 삭제되기 전의 상태로 돌릴 수 있다.
    : 단점 - 삭제해도 DB 저장공간이 늘어나지 않으며, DB크기 증가함에 따라 검색 속도가 떨어진다. 어플리케이션 관점에서 혼란이 야기될 수 있다.

  • 선택 방안
    : 용도에 맞게 삭제 방법은 선택해야한다.
    : 논리삭제 유용 - 삭제할 정보가 완전히 불필요한 것이라고 확신할 수 없는 경우
    : 물리삭제 유용 - 개인정보 등 필수적으로 삭제해야할 정보, 하드웨어 제한

profile
호그와트 장학생

0개의 댓글