Files
2021-12-13 21:23:43 +09:00

4.4 KiB

행 추가하기 - INSERT

INSERT 명령

INSERT INTO 테이블명 VALUES(값 1, 값 2, ...)
  • SELECT 명령은 데이터 검색을 위한 것으로, 질의를 하면 데이터베이스 서버가 클라이언트로 결과를 반환하는 형식으로 처리된다.
  • 데이터를 추가할 경우에는 이와 반대로 클라이언트에서 서버로 데이터를 전송하는 형식을 취한며 서버 측은 전송받은 데이터를 데이터베이스에 저장한다.

1. INSERT로 행 추가하기

  • RDBMS에서는 INSERT 명령을 사용해 테이블의 행 단위로 데이터를 추가한다.
  • INSERT 명령을 통해 행을 추가하려면 각 열의 값을 지정해야 한다.
  • 먼저 INSERT INTO 뒤에 행을 추가할 테이블을 지정한다.
INSERT INTO sample41
  • 저장할 데이터를 지정하지 않았기 때문에 아직은 INSERT 명령문이 완성되지 않은 상태이다.
  • 행의 데이터는 VALUES 구를 사용해 지정한다.
INSERT INTO sample41 VALUES(1, 'ABC', '2014-01-25');
  • 값을 지정할 때는 해당 열의 데이터 형식에 맞도록 지정해야 한다.
  • 다만, INSERT 명령을 실행해도 처리상태만 표시될 뿐 SELECT 명령을 실행했을 때처럼 결과를 출력하지는 않는다.
  • SELECT 명령의 경우 실행하면 그 결과가 클라이언트에게 반환되지만, INSERT 명령은 데이터가 클라이언트에서 서버로 전송되므로 반환되는 결과가 없는 것이다.
INSERT 명령으로 테이블에 행을 추가할 수 있다!

2. 값을 저장할 열 지정하기

  • INSERT 명령으로 행을 추가할 경우 값을 저장할 열을 지정할 수 있다.
  • 열을 지정할 경우에는 테이블명 뒤에 괄호로 묶어 열명을 나열하고 VALUES 구로 값을 지정한다.
  • VALUES 구에 값을 지정할 경우에는 지정한 열과 동일한 개수로 값을 지정해야 한다.

INSERT의 열 지정

INSERT INTO 테이블명 (열1, 열2, ...) VALUES(값1, 값2, ...)
  • 위의 문법을 적용하면 지정한 열에 값을 넣어 행을 추가할 수 있다.

3. NOT NULL 제약

  • 행을 추가할 때 유효한 값이 없는 상태(NULL)로 두고 싶을 경우에는 VALUES 구에서 NULL로 값을 지정할 수 있다.
  • 하지만 NULL 값을 허용하지 않는 NOT NULL 제약이 걸려있으면 에러가 발생한다.
  • 이와 같이 테이블에 저장하는 데이터를 성정으로 제한하는 것을 통틀어 제약이라 부른다.
  • NOT NULL 제약은 그중 하나로 이 외에도 다양한 제약이 있다.
NOT NULL 제약이 걸려있는 열은 NULL 값을 허용하지 않는다!
  • NULL은 여러 측면에서 주의해야 한다.
  • NULL의 조건을 비교할 때는 IS NULL을 이용해야 하며 NULL을 포함한 연산 결과는 모두 NULL이 되어버리기도 한다.
  • NULL을 허용하고 싶지 않다면 NOT NULL 제약을 걸어두는 편이 좋다.

4. DEFAULT

  • DESC 명령으로 열 구성을 살펴보면 Default라는 항목을 찾을 수 있다.
  • Default는 명시적으로 값을 지정하지 않았을 경우 사용하는 초깃값을 말한다.
  • Default 값은 테이블을 정의할 때 지정할 수 있다. 열을 지정해 행을 추가할 때 지정하지 않은 열은 Default 값을 사용하여 저장된다.
  • 즉, 값을 생략하면 초깃값으로 지정된 Default 값으로 저장된다.

값을 생략하지 않고 행 추가하기

INSERT INTO sample411(no, d) VALUES(1, 1);
  • VALUES 구에서 DEFAULT 키워드를 사용하면 디폴트값이 저장된다.
  • 아래 예시처럼 디폴트값을 지정하는 것을 DEFAULT를 명시적으로 지정하는 방법이라고 한다.

DEFAULT로 값을 지정해 행 추가하기

INSERT INTO sample411(no, d) VALUES(2, DEFAULT);

암묵적으로 디폴트 저장

  • 암묵적으로 지정하는 방법도 있다.
  • 여기서 암묵적인 방법이란 디폴트값으로 저장할 열을 INSERT 명령문에서 별도 지정하지 않는 것을 말한다.
  • 그 결과, 명시적 방법과 암묵적 방법 중 어떤 것을 사용해도 지정하지 않은 열의 값이 디폴트로 저장됨을 확인할 수 있다.

암묵적으로 디폴트값을 가지는 행 추가하기

INSERT INTO sample411(no) VALUES(3);
열을 지정하지 않으면 디폴트값으로 행이 추가된다!