Back-End/PostgreSQL

만약 A,B,C,D 라는 데이터가 | 구분자로 다음과 같이 넣어져 있을때 분리 하는 방법은 regexp_split_to_table 를 사용하면 됍니다. 이거를 이용해서 쿼리에서 조건문을 걸수도 있습니다. SELECT 'A' IN (SELECT alpha FROM regexp_split_to_table('A|B|C|D', '\|') AS alpha) -- t SELECT 'E' IN (SELECT alpha FROM regexp_split_to_table('A|B|C|D', '\|') AS alpha) -- f'A|B|C|D' 데이터에 A가 존재하니 true 인 t가 출력이 되고, E는 존재하지 않으니 false 인 f가 출력이 됍니다. 위 쿼리를 이용해서 조건문을 걸어서 데이터를 변경 할 수도 있습니다...
문자열 분리 (SPLIT_PART)사용법 : split_part('문자열', '자를 문자', 위치)select SPLIT_PART('2000-01-01', '-', 1) 문자열 합치기 (CONCAT)사용법 : concat()안에 붙이기 원하는 필드 또는 문자열을 구분자 , 을 사용하여 적어주면 됌.select CONCAT('가나다','-','라') 문자열 필드
일단 데이터를 추가할 테이블을 확인 합니다. 저는 위 테이블에 2018년부터 2019년까지의 데이터만 있는데 2025년까지의 데이터를 추가 하려고 합니다. copy ( 데이터 select문 ) to '로컬 경로\파일명.tsv' 이런식으로 명령어를 날려주면 위와 같이 해당 경로에 tsv 파일이 생성되는걸 확인 할 수 있습니다. 해당 tsv 파일을 확인해보면 select 된 데이터들이 나열되어 있는것을 확인 할수 있습니다. 그 데이터들에 붙여서 2020년 이후의 데이터들을 넣어서 cpoy 테이블 from '로컬경로\파일명.tsv' 위와 같이 명령어를 날려보면 중복된 키 값이 존재한다고 오류가 발생합니다. 따라서 기존에 있던 데이터들은 지워주고 추가하고 싶은데이터들만 위와같이 tsv 파일에 입력을 해주고 다시..
대량의 데이터를 db에 집어넣어야 할때 사용 하는 방법입니다. 엑셀로 데이터를 다음과 같이 작업해서 전체를 복사해서 노트패드에 붙여넣으면 다음과 같이 tab 으로 구분되어져서 들어갑니다. 위 파일을 .tsv 파일로 저장을 하고 서버에 올려주어야 합니다. 그 전에 혹시모를 상황을 대비해 기존에 있던 테이블을 백업해 줍니다. COPY ( SELECT 컬럼명1,컬럼명2, ... FROM 테이블명 ) TO '리눅스서버경로/~~.tsv' 이렇게 PgAdmin 에서 쿼리를 날려주면 위와 같이 서버에 tsv 파일이 생성된 것을 확인할 수 있습니다. 이제 만들어둔 tsv 파일을 서버에 넣어 줍니다. 이제 이 tsv 파일을 테이블에 copy 해주면 모든 작업이 끝납니다. COPY 테이블명(컬럼명1, 컬럼명2, ...) ..
개발 진행하다가 아무리 생각해도 뭔가 돌려서 뽑아내는 데이터가 디비를 다른데 보고 있는거 같아서 확인 쿼리를 찾아보려는데 못 찾겠어서 해메다가 결국 Postgres Document 에서 확인 함.. 접속해 있는 IP 확인 쿼리 1 select inet_server_addr(); ( ::1은 IPv6 에서의 로컬 IP ) 현재 DB 확인 쿼리 1 select current_database(); 참조 : postgresql 홈페이지
컬럼 추가 ALTER TABLE 테이블명 ADD 추가할컬럼명 데이터형식 ex) ALTER TABLE t_abc_info ADD add_col character varying(32) 컬럼 명 변경 ALTER TABLE 테이블명 RENAME COLUMN 기존 컬럼명 TO 바뀌는 컬럼명 ex) ALTER TABLE t_abc_history RENAME COLUMN cron TO col_a 컬럼 데이터 타입변경 ALTER TABLE 테이블명 ALTER COLUMN 바꿀 컬럼명 TYPE 바뀌는 타입 ex) ALTER TABLE t_abc_history ALTER COLUMN col_a TYPE character varying(32) col_a 컬럼이 character_varying(32) 에서 timestamp ..
- 광속거북이 -
'Back-End/PostgreSQL' 카테고리의 글 목록 (2 Page)