• Home
  • About
    • Che1's Blog photo

      Che1's Blog

      Che1's Dev Blog

    • Learn More
    • Facebook
    • Instagram
    • Github
    • Steam
    • Youtube
  • Posts
    • All Posts
    • Django
    • Python
    • Front-end
    • Algorithm
    • etc
    • All Tags
  • Projects

[SQL] INSERT INTO

07 Oct 2017

Reading time ~3 minutes

예제 테이블

Customers
CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglun Berguvsvägen 8 Luleå S-958 22 Sweden

INSERT INTO 는 테이블에 새 레코드를 삽입할 때 사용한다.

데이터를 삽입할 필드 이름과 해당 필드에 들어갈 값을 아래와 같이 입력한다.

INSERT INTO 테이블이름 (필드이름1, 필드이름2, 필드이름3, ...)
VALUES (값1, 값2, 값3, ...);

모든 필드에 값을 삽입하는 경우 필드이름을 생략할 수 있다. 이 때, 값들의 입력 순서는 테이블의 필드 순서에 맞춰서 입력해주어야 한다.

INSERT INTO 테이블이름
VALUES (값1, 값2, 값3, ...);

아래의 명령은 새로운 레코드를 추가한다.

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES  ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
You have made changes to the database. Rows affected: 1

아래의 명령으로 전체 테이블을 확인해본다.

SELECT *
FROM Customers;

Result
CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden
6 Cardinal Tom B. Erichsen Skagen 21 Stavanger 4006 Norway

6 번째 레코드가 추가되었다.

CustomerID 필드는 자동으로 추가되는 필드이므로 따로 추가해주지 않는다.


특정 필드에만 값을 지정해주는 경우, 값을 지정하지 않은 필드에는 null 값이 들어간다.

INSERT INTO Customers (CustomerName, PostalCode, Country)
VALUES ('Cardinal',  '4006', 'Norway');

Result
CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden
6 Cardinal null null null 4006 Norway

NULL 값

필드의 값이 NULL 인 경우 필드에 값이 없음을 의미한다.

필드에 값이 필수적이지 않은 경우 필드 값이 NULL 이 될 수 있다.

필드에 값이 없다는 것은 필드가 완전히 비어있다는 뜻이며 필드의 값이 0 이거나 “” 인 것과는 다르다.

NULL 값을 테스트 할 때는 일반적인 연산자를 사용하지 않고 IS NULL 또는 IS NOT NULL 을 사용한다.

아래 명령은 Customer 테이블에서 Address 필드가 비어있는 레코드의 CustomerName, Country, Address 필드 값을 가져온다.


IS NULL
SELECT CustomerName, Country, Address
FROM Customers
WHERE Address IS NULL;

Result
CustomerName Country Address
Cardinal Norway null

IS NOT NULL

아래 명령은 Customers 테이블에서 Address 필드 값이 비어있지 않은 레코드들의 CustomerName, Country, Address 필드 값을 가져온다.

SELECT CustomerName, Country, Address
FROM Customers
WHERE Address IS NOT NULL;

Result
CustomerName Country Address
Alfreds Futterkiste Germany Obere Str. 57
Ana Trujillo Emparedados y helados Mexico Avda. de la Constitución 2222
Antonio Moreno Taquería Mexico Mataderos 2312
Around the Horn UK 120 Hanover Sq.
Berglunds snabbköp Sweden Berguvsvägen 8

위로


SQL 목차
  • [SQL] JOIN, UNION
  • [SQL] DELETE
  • [SQL] UPDATE
  • [SQL] INSERT INTO
  • [SQL] SELECT를 꾸며주는 옵션 모음
  • [SQL] WHERE
  • [SQL] SELECT
  • [SQL] SQL 이란?

Reference

W3School: https://www.w3schools.com/sql/



SQL Share Tweet +1