# 웹 개발/프레임워크

PostgreSQL insert into(자료입력), copy ~ form

dev-jjong 2013. 9. 1. 12:54

특정 테이블에 자료를 입력할 때는 다음과 같이 INSERT 구문이 사용됩니다:

INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');

각 칼럼의 실재 자료들은 그 테이블을 만들 때 지정한 자료형과 완벽하게 일치해야한다는 것을 명심해야합니다. 특히 숫자가 아닌 자료일 경우는 윗 예제처럼 작은 따옴표(')로 둘러쌓야합니다. 날짜형(date) 자료를 입력해야할 경우는 그 값이 정확하게 날짜표현이어야합니다. (주, PostgreSQL에서는 날짜형처리가 비교적 엄격한 편입니다. 날짜가 아닌 표현에 대해서는 그 입력 자체가 허용되지 않습니다. 예: 0년 0월 0일, 2003년 2월 29일같은 것). 날짜형의 입력에 대한 자세한 이야기는 이 자습서의 범위를 벗어나기에 여기서는 이쯤으로 생략합니다

point 자료형은 다음과 같이 하나의 쌍으로 입력되어야합니다:

INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)');

한편, 각 칼럼의 입력 순서를 사용자가 다음과 같이 칼럼명을 미리 원하는 순서대로 지정하고 그 순서에 맞추어 입력할 수도 있습니다:

INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)
    VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');

이때는 굳이 테이블을 만들 때의 그 칼럼 순서와 같아야할 이유도 없으며, 특정 칼럼을 생략하고, 입력할 수도 있습니다.

INSERT INTO weather (date, city, temp_hi, temp_lo)
    VALUES ('1994-11-29', 'Hayward', 54, 37);

많은 개발자들이 처음에 언급한 전체 칼럼을 순서대로 입력하는 방식보다 지금의 칼럼 이름을 같이 지정해서 원하는 값만 입력하는 방식을 선호합니다.

이제 윗 방식으로 다음 섹션에서 사용할 데이터를 몇 개 입력해 보십시오.

데이터를 입력하는 또 다른 하나의 방법으로 COPY 명령을 사용하는 방법이 있는데, 이것은 대용량의 데이터를 빠르게 입력해야할 때 사용됩니다. 이 명령은 데이터베이스 백업/복구를 위해서 PostgreSQL 전용으로 특별히 만들어진 명령입니다. 그래서, 자료를 한꺼번에 입력할 때 아주 유용하게 사용됩니다. 사용법은 다음과 같습니다:

COPY weather FROM '/home/user/weather.txt';

이때 지정한 파일은 서버가 가동 중인 호스트에 있어야 합니다. 접속한 서버가 원격호스트 경우라면 윗 파일을 원격호스트에서 찾을 것입니다.