개키우는개발자 : )

PostgreSQL INSERT 문 본문

PostgreSQL/데이터 조작 및 테이블 관리

PostgreSQL INSERT 문

DOGvelopers 2019. 11. 11. 23:07
반응형

INSERT 란?

테이블이 만들어지면 빈 공간이 만들어 지는 것이며 테이블 안에 데이터를 저장하는것 입니다.

 

기본문법

 

- 테이블 이름만 작성하면 테이블에 포함되어 있는 컬럼 순서대로 입력

INSERT INTO
	TABLE_NAME
VALUES
(
	VALUE1,
    	VALUE2,
    	VALUE3,
    	...
);

 

- 테이블의 특정 컬럼을 작성하면 컬럼을 지정하여 저장할 수 있습니다.

INSERT INTO
	TABLE_NAME
(
	COLUMN1,
    	COLUMN2
)
VALUES
(
	VALUE1,
    	VALUE2
);

 

실습준비

 

- LINK 테이블 만들기

CREATE TABLE LINK(
	ID SERIAL PRIMARY KEY,
	URL VARCHAR(255) NOT NULL,
	NAME VARCHAR(255) NOT NULL,
	DESCRIPTION VARCHAR(255),
	REL VARCHAR(50)
);

 

- LINK 테이블의 데이터를 조회하면 아무 값도 없는걸 확인할 수 있습니다.

SELECT * FROM LINK

 

실습

 

- LINK 테이블중 URL컬럼과 NAME 컬럼에 http://naver.com , Naver를 INSERT 합니다.

INSERT
	INTO
	LINK (URL,NAME)
VALUES ('HTTPS://NAVER.COM','NAVER');

COMMIT;

- 저장후엔 반드시 COMMIT을 해준 후 LINK 테이블의 데이터를 조회합니다.

SELECT * FROM LINK

지정하지 않은 컬럼은 자동으로 NULL 값이 저장됩니다. 그리고 ID컬럼의 1은 테이블을 생성시 SERIAL 타입 을 작성하면 값이 자동증가 됩니다. 그렇기 때문에 자동으로 첫번째 행인 1값이 저장됩니다.

실습1

 

SQL에서는 문자열을 저장할 때 '  ' 작은 따옴표(Single quotes) 사이에 값을 입력하여 ,(comma)로 구분을 지어 작성 합니다.

 

- LINK 테이블중 URL컬럼과 NAME 컬럼에 작은 따옴표를 포함하여 http://naver.com , Naver를 INSERT 합니다.

INSERT
	INTO
	LINK (URL,NAME)
VALUES ('''HTTPS://NAVER.COM''','''NAVER''');

COMMIT;

조회하면 ' 을 포함하여 저장합니다. 

실습2

 

- LINK 테이블 URL,NAME컬럼에 동시에 여러개의 INSERT를 합니다.(다중 INSERT)

INSERT
	INTO
	LINK (URL,NAME)
VALUES 
('http://www.google.com','Google'),
('http://www.yahoo.com','Yahoo'),
('http://www.bing.com','Bing');

COMMIT;

() 감싸 , 로 구분지어 데이터를 담습니다.

실습3

 

- LINK 테이블 구조를 똑같이 복사 하여 데이터는 없는 LINK_TMP 테이블 만들기

CREATE TABLE LINK_TMP AS
SELECT * FROM LINK WHERE 0=1;

- LINK 테이블의 데이터를 LINK_TMP 테이블에 저장합니다.

INSERT INTO LINK_TMP
SELECT * FROM LINK;

COMMIT;

- LINK_TMP 조회

SELECT * FROM LINK_TMP;

LINK테이블에 있는 모든 데이터가 LINK_TMP에 그대로 저장됩니다.

실습4

두개의 테이블은 완전 동일한 테이블 데이터 입니다.

반응형

'PostgreSQL > 데이터 조작 및 테이블 관리' 카테고리의 다른 글

PostgreSQL EXPORT 작업  (0) 2019.11.16
PostgreSQL UPSERT 문법  (0) 2019.11.16
PostgreSQL DELETE 문  (0) 2019.11.16
PostgreSQL UPDATE JOIN 문  (0) 2019.11.16
PostgreSQL UPDATE 문  (2) 2019.11.16
Comments