테이블 생성하기 

 

 

테이블 weather와 cities를 생성한다. varchar(80)은 길이 80짜리 문자열을 의미하고 나머지 데이터 타입은 뭐.. 직관적이다. 물론 point와 같은 자료형은 postgresql에만 있는 특이 데이터 타입으로 지리정보 표현을 위해 선언된 데이터 타입이다.

 

테이블에 값 입력하기

 

 

weather라는 테이블에 weather의 컬럼 순서대로 각 값들을 입력한다.

그런데 일반적인 숫자 데이터 타입을 제외한 복합적인 데이터 타입, 예를 들어 date나 varchar(80) 그리고 뒤에 나오겠지만, point와 같은 데이터 타입들은 입력시에 single qoute ' ' '으로 인용부호를 붙여야 한다.

 

그리고 테이블의 컬럼 순으로 데이터를 입력할 수도 있지만, 아래와 같이 특정 데이터를 지정해서 새로운 데이터 행을 추가 할 수도 있다.

 

 

텍스트 파일로부터 특정 테이블에 행 추가하기

 

아래와 같은 텍스트 파일이 있다고 하면 copy [table name] from '[파일경로]'; 명령어를 이용하여 한번에 많은 량의 행을 특정 테이블에 추가 할 수 잇다.

 

 

 

 

뭔가 이상한 점이 생겼다. 그렇다 콘솔창이 파래졌다. 이 이상한점의 원인은 특정테이블에 자료 행을 추가하는 작업을 누가 하느냐라는 문제와 맞 닿아 있다. 생각해 보면 이 작업은 psql.exe를 이용해 postgresql 서버에 접속한 client단이 하는 것이 아니고, postgresql이 이 작업을 수행한다.

 

따라서 copy 명령에 인자로 주어지는 파일경로는 postgresql서버가 접근이 가능한 경로여야 한다. 즉, 이 copy 명령은 반드시 postgresql 서버단에서 수행되어야만 자료행 추가가 가능하다.

 

테이블 쿼리하기

.

테이블 쿼리는 특정 테이블에 들어 있는 열을 선택하여 보는 기능을 의미한다. 정확히는 테이블에 있는 열만 가능한 것은 아니고 psql.exe를 사용하는 사용자가 정의한 열을 선택하여 테이블을 쿼리하는 것도 가능하다.

 

가장 기본적인 문법은 select 열,열,열 from 테이블명

변형은 select 열, 수식 as 열이름 from 테이블명

이런 식이다.

 

(참고로 여기서 as는 정확히는 출력 칼럼의 이름을 재정의 (relabel) 하는 의미이다.)

 

그리고 아래와 같이 출력요청 명령 이후에 where (boolean) 을 넣어서 출력물을 필터링 할수도 있다. boolean은 AND OR NOT 등의 연산자로 연산이 가능하다.

 

 

한가지 더 추가로 order by를 통해 정렬된 결과값을 얻을 수도 있는데 아래와 같이 사용이 가능하다. 그리고 order by 명령어 뒤에 오는 인자또한 ',' 으로 구분한 여러 인자가 될 수 있으며, 정렬인자가 여러개면 앞에 있는것으로 1차 정령하고 동 순위가 생기는 경우 2번째 인자로 정렬된다.

 

또한 인자명뿐 아니라 select의 칼럼 선정처럼 연산이 와도 되고, 인자뒤에 DESC를 붙이면 기본 오름차순 정렬이 아니라 역순으로 정렬도 가능하다.

 

 

그리고 어떤 칼럼을 쿼리 했을 때 중복된 결과물이 나오기도 하는데 아래와 같이 distinct 명령어를 select다음에 추가하면 해당 칼럼에 대해서 중복된 값을 제거하여 보여준다.

 

 

 

Posted by 굿쟌
,