33강 SQL이 뭐지? PostgreSQL INSERT statement
PostgreSQL
SQL이 뭐지? 33강 시작합니다.
이번 강의에서는
▶ PostgreSQL INSERT statement
에 대해서 알아보겠습니다.
테이블에 새로운 행을 삽입하는 PostgreSQL INSERT 문을 학습합니다.
Introduction to PostgreSQL INSERT statement
PostgreSQL INSERT 문을 사용하여 테이블에 새 행을 삽입할 수 있습니다.
다음은 INSERT 문의 가장 기본적인 구문을 보여줍니다.
INSERT INTO table_name(column1, column2, …)
VALUES (value1, value2, …);
위 구문에서:
● 먼저 INSERT INSERT 키워드 뒤에 데이터를 삽입할 테이블 이름(table_name)과 쉼표로 구분된 열 목록(column1, column2, ...)을 지정합니다.
● 둘째, 값 키워드 뒤에 쉼표로 구분된 값 목록을 괄호 안에 입력합니다(값 1, 값 2, ...). 열과 값 목록의 열과 값은 순서가 같아야 합니다.
INSERT 문은 다음과 같은 형식의 명령 태그를 반환합니다.
INSERT oid count
OID는 개체 식별자입니다. PostgreSQL은 내부적으로 OID를 시스템 테이블의 기본 키로 사용한다. 일반적으로 INSERT 문은 값이 0인 OID를 반환합니다. 카운트는 INSERT 문이 성공적으로 삽입된 행의 수입니다.
RETURNING clause
INSERT 문에는 삽입된 행의 정보를 반환하는 선택적인 RETURNING 절도 있습니다.
삽입된 행 전체를 반환하려면 RETURNING 키워드 뒤에 별표(*)를 사용합니다.
INSERT INTO table_name(column1, column2, …)
VALUES (value1, value2, …)
RETURNING *;
삽입된 행의 일부 정보만 반환하려면 반환 절 뒤에 하나 이상의 열을 지정할 수 있습니다.
예를 들어, 다음 문은 삽입된 행의 ID를 반환합니다.
INSERT INTO table_name(column1, column2, …)
VALUES (value1, value2, …)
RETURNING id;
반환된 값의 이름을 변경하려면 AS 키워드와 출력 이름을 차례로 사용합니다. 예:
INSERT INTO table_name(column1, column2, …)
VALUES (value1, value2, …)
RETURNING output_expression AS output_name;
PostgreSQL INSERT statement examples
다음 문은 시연을 위한 링크라는 새 테이블을 만듭니다.
DROP TABLE IF EXISTS links;
CREATE TABLE links (
id SERIAL PRIMARY KEY,
url VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
description VARCHAR(255),
last_update DATE
);
1) PostgreSQL INSERT – Inserting a single row into a table
다음 문은 링크 테이블에 새 행을 삽입합니다.
INSERT INTO links (url, name)
VALUES('https://www.postgresqltutorial.com','PostgreSQL Tutorial');
문자 데이터를 삽입하려면 'PostgreSQL Tutorial'와 같이 작은따옴표(')로 묶습니다.
INSERT 문에서 필수 열을 생략하면 PostgreSQL에서 오류가 발생합니다. 선택적 열을 생략한 경우 PostgreSQL은 삽입에 열 기본값을 사용합니다.
이 예에서 설명에는 NOT NULL 제약 조건이 없으므로 선택적 열이 됩니다. 그러므로, PostgreSQL에서 NULL을 사용하여 설명 열에 삽입합니다.
PostgreSQL은 serial 열에 대한 순차 번호를 자동으로 생성하므로 INSERT 문에서 serial 열에 대한 값을 제공할 필요가 없습니다.
다음 SELECT 문은 링크 테이블의 내용을 보여줍니다.
SELECT * FROM links;
2) PostgreSQL INSERT – Inserting character string that contains a single quote
O'Reilly Media와 같이 하나의 따옴표(')가 포함된 문자열을 삽입하려면 하나의 따옴표(')를 추가로 사용하여 이스케이프 해야 합니다. 예:
INSERT INTO links (url, name)
VALUES('http://www.oreilly.com','O''Reilly Media');
다음 문장은 삽입을 확인합니다.
SELECT * FROM links;
3) PostgreSQL INSERT – Inserting a date value
DATE 유형의 열에 날짜 값을 입력하려면 'YYY-MM-DD' 형식의 날짜를 사용합니다.
다음 문은 지정된 날짜의 새 행을 링크 테이블에 삽입합니다.
INSERT INTO links (url, name, last_update)
VALUES('https://www.google.com','Google','2013-06-01');
다음 문장은 삽입을 확인합니다.
SELECT * FROM links;
4) PostgreSQL INSERT- Getting the last insert id
삽입된 행에서 마지막 삽입 ID를 가져오려면 INSERT 문의 RETURNING 절을 사용합니다.
예를 들어, 다음 문은 링크 테이블에 새 행을 삽입하고 마지막 삽입 ID를 반환합니다.
INSERT INTO links (url, name)
VALUES('http://www.postgresql.org','PostgreSQL')
RETURNING id;
요약
● 사용 테이블에 데이터를 삽입하는 PostgreSQL INSERT 문입니다.
● RETURNING 절을 사용하여 삽입된 행을 가져옵니다.
본 강의는 PostgreSQL Tutorial을 참조합니다.
실습용 테이블에 대해서는 3강을 참조하세요.
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다. |
'IT > SQL 기초강좌 (PostgreSQL)' 카테고리의 다른 글
35강 SQL이 뭐지? PostgreSQL UPDATE (3) | 2022.12.21 |
---|---|
34강 SQL이 뭐지? PostgreSQL INSERT Multiple Rows (1) | 2022.12.21 |
32강 SQL이 뭐지? PostgreSQL EXISTS Operator (3) | 2022.12.20 |
31강 SQL이 뭐지? PostgreSQL ALL Operator (1) | 2022.12.20 |
30강 SQL이 뭐지? PostgreSQL ANY Operator (2) | 2022.12.20 |
댓글