Hyperskill - 컴퓨터 CS 및 영어 독해/Introducing to SQL

Basic INSERT statement - 기초적인 INSERT 문법

코딩크리처 2024. 4. 15. 23:28

Basic INSERT statement - 기초적인 INSERT 문


당신은 이제 데이터베이스에 더 더 친숙해 졌을 겁니다.

이제 더 앞으로 나아 갑시다!

데이터베이스를 사용하기 위해서, 데이터베이스 테이블에 새로운 레코드들을 넣는 방법에 대해서 알아야 합니다.

이 주제에서는, SQL에서 이것이 어떻게 되는지 보여주겠습니다.


테이블에 새로운 레코드를 삽입 할 수 있는데, 간단한 쿼리인 INSERT INTO 문을 사용하여 넣을 수 있습니다.


예를 들어, customers 테이블에 새로운 고객에 대한 레코드를 추가하는데,

  • name (VARCHAR(20))
  • surname (VARCHAR(20))
  • zip_code (INT)
  • city (VARCHAR(10))

컬럼을 가지고 있습니다.

name surname zip_code city
Tom Black 11643 New Youk
Hermione Smith 20599 Washington

우리의 새로운 고객의 이름은 Bobby, 성은 Ray, 우편번호는 60601, 사는 곳은 Chicago 입니다.

밑의 쿼리는 테이블에 정보를 넣습니다.

INSERT INTO customers (name, surname, zip_code, city)
VALUES ('Bobby', 'Ray', 60601, 'Chicago');

당신이 볼 수 있듯이, 해야 할 것은 키워드 VALUES 다음에 와야 할 값들의 목록을 작성 하는 것 입니다.


이 쿼리를 한 번 실행하고 나면, 우리의 테이블 customers는 새로운 줄을 가집니다.

name surname zip_code city
Tom Black 11643 New York
Hermione Smith 20599 Washington
Bobby Ray 60601 Chicago

만약, 테이블의 컬럼에 대한 순서를 정확하게 안다면,

컬럼의 이름을 표기하는 것을 생략하고 INSERT INTO 쿼리에 대한 더 짧은 버전을 사용 할 수 있습니다.


이 경우, 아까 작성했던 SQL 쿼리는 이것과 같이 다시 작성 될 수 있습니다. :

INSERT INTO customers
VALUES ('Bobby', 'Ray', 60601, 'Chicago');

Insert multiple rows - 한 번에 여러 개의 줄 삽입하기


만약 여러 개의 줄을 넣고 싶다면, 하나 하나 씩 추가 할 필요가 없습니다. :

우리는 동시에 여러 개의 줄을 추가 할 수 있습니다.

INSERT INTO customers (name, surname, zip_code, city)
VALUES ('Mary', 'West', 75201, 'Dallas'),
        ('Steve', 'Palmer', 33107, 'Miami');

이 예제에서는, 단 하나 대신 콤마 (,) 로 분리된 리스트의 값을 작성했습니다.


INSERT into specified columns - INSERT에 컬럼 표기하기


가끔 몇몇 사라진 값들이 있는 레코드를 추가해야 할 때가 있습니다.

우리는 빈 테이블 cats를 가지고 있다고 가정하겠습니다.

이 테이블은 세 개의 컬럼을 가지고 있습니다.

  • name (VARCHAR(20))
  • age (INT)
  • owner (VARCHAR(40))

어떠한 컬럼에도 기본 값은 가지고 있지 않습니다.


name age owner

우리는 집을 잃은 고양이 Felix에 대한 정보를 추가하고 싶습니다.

Felix가 주인(owner) 이 없기 때문에, INSERT INTO 쿼리에 이 컬럼을 스킵 할 수 있습니다.

INSERT INTO cats (name, age)
VALUES ('Felix', 3);

결과적으로, 테이블은 하나의 줄을 가집니다. :

name agew owner
Felix 3 NULL

첫 번째 줄의 owner컬럼 값은 NULL 이 됩니다. 우리가 이를 표기하지 않았기 때문입니다.


만약 컬럼이 기본 값을 가지고 있으며, Insert 과정에서 이 컬럼을 건너뛴다면, 그 값은 기본 값으로 세팅됩니다.


Conclution - 결론


여기 INSERT INTO 문에 대한 기초적인 템플릿이 있습니다. :

INSERT INTO table_name (column_1, column_2, ..., column_n)
VALUES (list_of_values_1) [, (list_of_values_2), ..., (list_of_values_n)];

이 표기의 의미는 하나의 줄은 필수적이며, 그 이상은 선택적이라는 의미입니다.


당신이 컬럼의 순서를 알고 모든 컬럼들에 값들을 넣고 싶을 때,

밑의 짧은 버전의 INSERT INTO 문 테플릿을 사용 할 수 있습니다.

INSERT INTO table_name
VALUES (value_1, value_2, ..., value_n);