- 구분된 텍스트 파일 형식의 소스 데이터 준비
- 마이크로엑세스 또는 MySQL과 같은 다른 데이터 베이스 프로그램 에서 PostgreSQL로 직접 데이터를 전송하려면, 서드파티 도구를 사용해야 한다고 합니다. ( 다른데이터베이스에서 PostgreSQL로 변환
- 데이터 저장할 테이블 만들기
- COPY 스크립트 작성해서 데이터 가져오기
CREATE TABLE us_counties_pop_est_2019 ( -- 10년 주기 카운티 인구조사 추정치 테이블 생성
state_fips text, -- 주 미국 연방 정보 처리 표준(FIPS) 코드
county_fips text, -- 카운티 미국 연방 정보 처리 표준(FIPS) 코드
region smallint, -- 구역
state_name text, -- 주 이름
county_name text, -- 카운티 이름
area_land bigint, -- 토지 면적 (제곱미터)
area_water bigint, -- 수면 면적 (제곱미터)
internal_point_lat numeric(10,7), -- 위도
internal_point_lon numeric(10,7), -- 경도
pop_est_2018 integer, -- 2018년 7월 1일 기준 인구 추정치
pop_est_2019 integer, -- 2019년 7월 1일 기준 인구 추정치
births_2019 integer, -- 2018년 7월 1일부터 2019년 6월 30일 사이 출생자 수
deaths_2019 integer, -- 2018년 7월 1일부터 2019년 6월 30일 사이 사망자 수
international_migr_2019 integer, -- 2018년 7월 1일부터 2019년 6월 30일 사이 순 국제 이주자 수
domestic_migr_2019 integer, -- 2018년 7월 1일부터 2019년 6월 30일 사이 순 지역 이주자 수
residual_2019 integer, -- 일관성을 위해 추정치를 조정하는 데 사용되는 숫자
CONSTRAINT counties_2019_key PRIMARY KEY (state_fips, county_fips)
);
탐색기의 해당 데이터베이스 마우스 오른쪽 > Refresh..
그리고 스키마 > public > 테이블 만들어졌는지 확인합니다.
빈 테이블이 정상적으로 만들어졌습니다.
데이터를 가져올 땐, 항상 먼저 데이터에 대한 정보를 확인해야 합니다.
인구 추정치에 대한 정보
COPY us_counties_pop_est_2019
FROM '/Users/beckhyejin/Desktop/computer/practical-sql-main/Chapter_05/us_counties_pop_est_2019.csv'
WITH (FORMAT CSV, HEADER);
FROM 에는 해당 파일 오른쪽 마우스 클릭 > copy path 후 붙혀넣기
COPY FROM instructs the PostgreSQL server process to read a file.
권한이 없다고 합니다!
맥북의 경우 chmod르 권한 부여를 해줬던 것 같습니다!
sudo chmod +r /Users/beckhyejin/Desktop/computer/practical-sql-main
해도 안됩니다.
PostgresSQL 다시 시작해야 한다고 합니다.
sudo -u postgres pg_ctl -D /Library/PostgreSQL/15/data restart
짜증나지만 데이터베이스 연결에 대해 착오가 있었던 것 같습니다.
분명 PostgreSQL 어제 설치할때만 해도, database가 아무것도 없어서 initialize로 새 데이터베이스를 만들어줬는데요!!!!!
왜 지금은 없는걸까요!!!!!
그래도 한 번 궁금하니 beckhyejin 으로 데이터베이스 연결하겠습니다.
데이터베이스가 바뀌었으니, pdAdmin도 재연결 해줍니다.
해당 데이터베이스 > 스키마 > public 까지 와주곤
위에 도구들 > 쿼리도구 다시 켜줍니다.
위에 있는 CREATE TABLE 복붙 후 실행 > refrash 도 다시 해줍니다.
COPY TABLE 도 다시 해줍니다.
오 뭔가 되는 것 같군요!
왜 analysis 데이터베이스를 이전에 만들고 저장까지 한 것 같은데, PostgreSQL 데이터베이스에는 없는걸까요?
그리고 처음 PostgreSQL 을 설치한 뒤 열었을 때엔, 아무런 데이터베이스가 없었습니다.
그 뒤 analysis 데이터베이스를 만들었는데
왜 지금은 analysis 데이터베이스가 없고 template1이란 다른 데이터베이스가 만들어진걸까요?
beckhyejin 은 제 컴퓨터 이름이니까 기본으로 생성되는 데이터베이스인것 같고,
postgres 은 PostgreSQL 관련 생성되는 데이터베이스인것 같은데
template1은 따로 만든게 없습니다.
그렇다면 혹시 analysis 데이터베이스를 만들때 이름을 제가 따로 저장하지 않았기에 template1로 자동저장된거일까요?
아무튼 아직 거기까지 신경쓸 여력이 없기에 조금 쉬고 ~~~
모든 제 자료가 들어있는 기본 beckhyejin 데이터베이스를 연결해서 다시 시도해보겠씁니다!!!~!