16. 행 추가 – INSERT
데이터 추가를 위해 클라이언트에서 서버로 데이터를 보내는 형식
INSERT로 행 추가
INSERT : 한 번에 한 행씩 테이블에 데이터 삽입INSERT INTO 테이블명 VALUES(...) 형식의 행이 추가될 테이블을 지정합니다. VALUES 구문을 사용하여 추가할 데이터 지정
- 이때 컬럼의 데이터 타입에 따라 추가할 데이터를 지정해야 한다.
INSERT데이터가 클라이언트에서 서버로 전송될 때 명령은 결과를 인쇄하지 않습니다.
값을 저장할 열 지정
INSERT INTO 테이블명(열1, 열2, ...) VALUES(값1, 값2, ...)값을 추가할 열을 지정할 수 있습니다.
- 이때
VAULES구문은 지정된 열과 동일한 수의 값을 사용해야 합니다. - 지정되지 않은 열의 기본값
NULL저장
NOT NULL 제약
VALUES 구문으로 추가할 값 NULL로 지정하면 오류가 발생할 수 있습니다.
그건 NOT NULL제한이 있을 수 있기 때문에
제한은 설정을 통해 테이블에 저장된 데이터를 제한하는 것을 의미합니다. NOT NULL 그 외에도 여러가지 제약이 있습니다
기본
기본값: 값이 명시적으로 지정되지 않은 경우 사용되는 초기 값
- 테이블 정의 시 지정 가능
- 컬럼을 지정하여 행을 추가할 때 추가할 데이터가 지정되지 않은 컬럼은 기본값으로 저장됩니다.
VALUES구문에 삽입할 값DEFAULT다음과 같이 명시적으로 지정할 수도 있습니다.
17. 삭제 – DELETE
하드 드라이브와 같은 저장 장치에 데이터를 저장하고 관리하는 데이터베이스의 특성상 데이터를 무한정 저장할 수 없습니다.
따라서 디스크 공간 문제로 인해 데이터를 삭제해야 하는 경우가 종종 발생합니다.
DELETE로 행 삭제
DELETE : 데이터를 한 줄씩 삭제DELETE FROM 테이블명 WHERE 조건식의 형태로 사용
- 데이터 삭제 전
SELECT명령으로 어떤 데이터가 저장되어 있는지 확인 WHERE식을 생략하면 모든 행에 작업이 적용되고 테이블의 모든 데이터가 삭제됩니다.- 열을 지정할 수 없습니다.
DELETE 명령 구문
WHERE 표현식에 조건을 지정하여 삭제할 행을 선택할 수 있습니다.
어떤 줄을 먼저 삭제해야 하는지는 의미가 없습니다. ORDER BY세트를 사용할 수 없습니다.
18. 업데이트 데이터 – 업데이트
UPDATE로 데이터 업데이트
UPDATE : 테이블의 셀 값 업데이트UPDATE 테이블명 SET 열명 = 값 WHERE 조건식의 형태로 사용
DELETE와 달리 셀 단위로 데이터를 업데이트할 수 있습니다.WHERE표현식을 생략하면 테이블의 모든 행이 업데이트됩니다.SET구문을 사용하여 업데이트할 열 및 값 지정SET 열명 = 값~에=할당 연산자입니다- 테이블에 존재하지 않는 열을 지정하면 오류가 발생합니다.
- 데이터 유형에 적합한 값을 제공해야 합니다.
UPDATE로 업데이트 시 주의사항
UPDATE 이 명령은 이미 존재하는 행의 값을 업데이트하기 때문에 이전 값과 이후 값의 두 가지 상태가 있습니다.UPDATE 테이블 SET no=no+1; 의 경우 업데이트 후 값은 원래 값(업데이트 전 값)에 1을 더한 결과입니다.
다중 열 업데이트
SET 필요한 경우 구문에 쉼표를 사용하여 업데이트할 여러 열을 지정할 수 있습니다.
이때 업데이트 처리 순서는 각 데이터베이스마다 다릅니다.
- Oracle의 경우 설명된 식의 순서는 처리에 영향을 주지 않습니다.
- MySQL의 경우
SET업데이트 처리는 절에 기술된 순서대로 발생
NULL로 업데이트
업데이트할 값 포함 NULL지정하는 경우 NULL 초기화이라고도 불리는
단계, NOT NULL제한적으로 허용되지 않음
19. 물리적 및 논리적 삭제
데이터베이스에서 데이터를 삭제하는 방법에는 물리적 삭제와 논리적 삭제의 두 가지가 있습니다.
그러나 전용 SQL 명령은 없습니다.
두 가지 유형의 지우기 방법
물리적 삭제: SQL DELETE 명령을 통해 직접 데이터를 삭제하는 방법
논리적 삭제: 테이블에 “삭제 플래그”와 같은 열을 포함하여 해당 열의 데이터를 업데이트합니다.
즉, 실제 데이터는 테이블에 남아있지만 데이터베이스에 참조될 때 삭제 플래그가 설정된 행을 제외하여 삭제된 것처럼 나타납니다.
- 실제로 데이터를 지우지 않으므로 쉽게 백업할 수 있습니다.
- 삭제하더라도 데이터베이스 저장 공간은 줄어들지 않고 검색 속도가 느려질 수 있습니다.
삭제 방법 선택
시스템의 특성/테이블에 저장된 데이터의 특성에 따라 달라지므로 상황에 따라 선택해야 합니다.
- 개인정보 취급 시 물리적 삭제가 안전합니다.
- 주문이 취소되면 논리적으로 삭제되어 통계에 사용됩니다.

