일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- jquery
- swift
- maven
- WebClient
- php
- Apache
- RSocket
- Ajax
- Spring
- SQLite
- mybatis
- bootstrap
- angularjs
- webflux
- gradle
- Python
- xml
- 일본
- Java
- JavaFX
- node.js
- Linux
- pdo
- SQL
- 외국인 노동자
- javadoc
- 개발자 이야기
- Eclipse
- build tool
- spring boot
- Today
- 122
- Total
- 3,456,555
슬기로운 개발자 생활
[SQL][DML] INSERT 본문
기본적으로 데이터를 테이블에 입력하는 방법이 두 가지 있다. 하나는 한번에 하나의 데이터를 등록한다. 또 하나는 한번에 여러 개의 데이터를 입력한다.
INSERT 문법
제일 기본이 되는 데이터를 등록하는 SQL는 아래와 같다.
INSERT INTO "테이블명" ("필드1", "필드2", ...)
VALUES ("값1", "값2", ...);
테이블이 생성된 필드의 순서와 입력한 값의 순서만 맞다면 필드명은 생략할 수도 있다.
INSERT INTO "테이블명"
VALUES ("값1", "값2", ...);
SELECT로 한번에 여러 개의 데이터를 입력 할 수도 있다. 앞에서 언급한 예제와 달리 SELECT 명령을 사용하여 입력하는 테이블의 데이터를 명시합니다. 그러면 데이터가 다른 테이블에서 온 건가요,라는 질문이 있으시면, 전혀 그렇지. 한 번에 여러 개의 데이터를 입력하는 SQL은 다음과 같다.
INSERT INTO table2
SELECT * FROM table1
WHERE condition;
여기서 가장 기본 형식으로 SQL 문에서 WHERE, GROUP BY 및 HAVING 등 외에 테이블의 결합이나 별명 등이 포함되는 것도 가능하다.
INSERT 예제: 한번에 1건 등록
다음과 같은 구조의 테이블이 있다고 하자.
store_information 테이블
필드명 | 자료형 |
---|---|
store_name | char(50) |
sales | float |
txn_date datetime |
그리고 다음에 Los Angeles 매장에 Jan-10-2018, 매출 $900 데이터를 해당 테이블에 넣는 경우 다음과 같은 SQL 문을 입력한다.
INSERT INTO store_information (store_name, sales, txn_Date)
VALUES ('Los Angeles', 900, 'Jan-10-2018');
혹은, 아래와 같이도 입력할 수 있다.
INSERT INTO store_information VALUES ('Los Angeles', 900, 'Jan-10-2018');
INSERT 예제: 한번에 여러 건 등록
2017년의 판매한 데이터를 store_information 테이블에 등록한다고 할때, 그 데이터가 sales_information 테이블에서 얻어서 넣은 경우 다음과 같은 SQL을 입력한다.
INSERT INTO store_information (store_name, sales, txn_date)
SELECT store_name, sales, txn_date
FROM sales_information
WHERE Year(txn_date) = 2017;
여기에서 SQL Server의 함수에서 날짜의 연도를 검색했는데, 데이터베이스에 따라 문법이 다르다. 예를 들어, Oracle에서는 WHERE TO_CHAR(Txn_Date, 'yyyy') = 2017
와 같이 사용한다.
'IT 개발 > SQL' 카테고리의 다른 글
[SQL][DML] DELETE (0) | 2018.01.09 |
---|---|
[SQL][DML] UPDATE (0) | 2018.01.09 |
[SQL][DML] MINUS (0) | 2018.01.09 |
[SQL][DML] INTERSECT (0) | 2018.01.09 |
[SQL][DML] UNION, UNION ALL (0) | 2018.01.09 |
- Tag
- SQL