실용 sql 5장

2023. 11. 26. 23:42실용 SQL

320x100
320x100

COPY를 사용하여 데이터 가져오기

COPY table_name  --COPY : 대상 테이블의 이름
FROM 'CSV 파일의 경로'  --FROM : 이름을 포함하여 소스 파일의 전체 경로를 식별
WITH (FORMAT CSV, HEADER);  --WITH : 원하는 옵션을 괄호로 감싸 입출력 파일에 맞게 조정할 수 있는 옵션을 지정할 수 있게 해줌

 

 

입출력 파일 형식

  • FORMAT format_name : 읽거나 쓰는 파일의 유형을 지정
  • 형식 이름
    • CSV
    • TEXT(탭 문자는 구분 기호 기본값, 백슬래시 문자는 해당 ASCII 문자로 인식)
    • BINARY(일련의 바이트로 저장)

헤더 행 포함 여부

  • HEADER : 소스 파일에 제외할 헤더 행이 있음을 지정
  • 헤더의 열 이름이 테이블의 데이터 일부가 되지 않도록 파일의 두 번째 줄부터 가져옴

구분 기호

  • DELIMITER 'character' : 가져오기 또는 내보내기 파일에서 구분자로 사용할 문자를 지정
  • 단일 문자
  • 캐리지 리턴이 될 수 없음

데이터 삭제하기

DELETE FROM 테이블명
--테이블에서 데이터 삭제
--ID열의 IDENTITY 열 값은 재설정되지 않음

 

WHERE로 행 하위 집합 가져오기

COPY supervisior_salaries (town, supervisior, salary)  --테이블 열을 데이터베이스에 명시
FROM 'CSV 파일 경로'
WITH (FORMAT CSV, HEADER)
WHERE town = 'New Brilling';  --가져온 데이터 필터링

SELECT * FROM supervisior_salaries;  --테이블의 내용 살펴보기

데이터를 가져오는 과정에서 편집(== 임시 테이블)

CREATE TEMPORARY TABLE supervisor_salaries_temp
	(LIKE supervisor_salaries INCLUDING ALL); --임시 테이블 생성

COPY supervisor_salaries_temp (town, supervisor, salary)  --파일을 임시 테이블로 가져오기
FROM 'C:\CSV 파일 경로\파일이름.csv'
WITH (FORMAT CSV, HEADER);

INSERT INTO supervisor_salaries (town, county, supervisor, salary)  --테이블 채우기
SELECT town, 'Mills', supervisor, salaries  --임시 테이블 쿼리
FROM supervisor_salaries_temp;

DROP TABLE supervisor_salaries_temp;  --임시 테이블 삭제

--결과 : county 열에 Mills 값 생성

데이터 내보내기

--C모든 데이터 추출
COPY 테이블
TO 'C:\추출하는 디렉터리 위치\파일이름.txt'
WITH (FORMAT CSV, HEADER, DELIMITER '|');  --파이프 기호를 구분 기호로 사용


--선택된 열 추출
COPY 테이블
	(county_name, internal_point_lat, internal_point_lon)  --추출할 열 입력
TO 'C:\추출하는 디렉터리 위치\파일이름.txt'
WITH (FORMAT CSV, HEADER, DELIMITER '|');

--쿼리 결과 내보내기
COPY (
	SELECT county_name, state_name  --해달 열의
	FROM us_counties_pop_est_2019  --이 파일로부터
	WHERE county_name ILIKE '%mill%'  --county_name에 mill이 대소문자 구분하지 않고 포함 된 경우에 출력
	)
TO 'C:\추출하는 디렉터리 위치\파일이름.csv'
WITH (FORMAT CSV, HEADER);

 

320x100
320x100

'실용 SQL' 카테고리의 다른 글

실용 sql 7주차 과제  (0) 2023.10.16
실용 sql 4장  (2) 2023.10.16
실용 sql 3장  (2) 2023.10.09
실용 sql 2장, 3장 과제  (0) 2023.10.09
실용 sql 2장  (0) 2023.10.09