개발/SQL 26

Postgresql Select export 명령어

1. 전체 테이블 추출시 COPY 테이블이름 TO '추출경로/추출파일이름.csv' WITH DELIMETER '구분자' CSV HEADER ENCODING 'UTF8'; 예시 ) Copy table_name To 'D:/test/test.csv' WITH DELIMITER ',' CSV HEADER ENCODING 'UTF8'; 2. 특정 컬럼 추출시 Copy table_name(column1, column2, ...) To 'D:/test/test.csv' WITH DELIMITER ',' CSV HEADER ENCODING 'UTF8'; 3. SELECT 문으로 추출시 Copy (SELECT * FROM table_name where column1='aa' order by column2) To 'D:..

개발/SQL 2019.09.24

Postgresql 구분자로 구분된 문자열을 array 배열로 받기

table fruit id data 과일 사과|배|복숭아|포도|수박 이런 데이터가 있다고 가정할 때 SELECT split_part(data, '|', 1) FROM fruit where id='과일'; 사과 SELECT string_to_array(data, '|') FROM fruit where id='과일'; {사과,배,복숭아,포도,수박} SELECT unnest(string_to_array(data, '|')) FROM fruit where id='과일'; 사과 배 복숭아 포도 수박 이렇게 가져올 수 있습니다.

개발/SQL 2019.06.17

MYSQL #HY000Row 4611 was cut by GROUP_CONCAT() 에러 해결 방법

MYSQL 에서 GROUP_CONCAT 함수를 사용시 #HY000Row 4611 was cut by GROUP_CONCAT() 같은 에러가 날 경우가 있습니다. 이때에는 https://stackoverflow.com/questions/7208773/mysql-row-30153-was-cut-by-group-concat-error MySQL "Row 30153 was cut by GROUP_CONCAT()" error I have a function listed below. When I call it with the LIMIT set at 0,60 as seen below, it works fine. However, whenever I increase that LIMIT to 70 or higher, or..

개발/SQL 2019.04.30

오라클(MySQL) DML (SELECT, INSERT, UPDATE, DELETE) 총정리

INSERT INTO TB_NAME(COL_NAME1, COL_NAME2, … , LAST_COL_NAME) VALUES('어쩌고', '저쩌고', '이러쿵'); -- INT 타입 데이터는 따옴표 안붙여도 됨 UPDATE TB_NAME SET COL_NAME='저러쿵'; --모든 행 바꾸기 UPDATE TB_NAME SET COL_NAME='저러쿵' WHERE COL_NAME1=5; -- ㅡ특정행 바꾸기 DELETE FROM TAB_NAME; -- 전체 삭제 DELETE FROM TAB_NAME WHERE COL_NAME='ABCD'; -- 특정행 삭제 SELECT * FROM TB_NAME --테이블의 모든 데이터 조회 SELECT COL_NAME1, COL_NAME2 FROM TB_NAME WHERE ..

개발/SQL 2019.04.14

MYSQL 순번 시퀀스 매기기 (그룹별 포함)

MYSQL 작업시 테이블에는 없는 순번을 매기는 방법입니다. 12345678910/*변수 선언을 위에 해주는 방식*/SET @rownum:=0; SELECT @rownum:=@rownum + 1 as rNum, t1.*FROM TABLE_NAME t1; cs혹은123456789/*변수 선언을 내부에 해주는 방식*/SELECT @rownum:=@rownum + 1 as rNum, t1.*FROM TABLE_NAME t1, (SELECT @rownum:=0) t2; cs 그냥 아무런 조건 없이 순번을 주실 때는 이렇게 해주시면 됩니다. 만약 그룹별로 순번을 다르게 매기고 싶으시다면 12345678910111213141516171819/* 변수 선언을 위에 해주는 방식*//* 만약 조건이 문자열이라면 */ /..

개발/SQL 2019.03.21

MySQL 문자열 구분자 여러개 있을 때 여러 행으로 분리하기

일을 하던 도중 MySQL 에서 한 문자열에 여러개의 구분자가 있을 때,예를 들면 '동해물과;백두산이;마르고;닳도록;하느님이;보우하사;우리나라;만세' 이런 테이블이 있다고 가정했을 때 1절 동해물과;백두산이;마르고;닳도록;하느님이;보우하사;우리나라;만세 2절 남산위에;저소나무;철갑을;두른듯;바람서리;불변함은;우리;기상일세 3절 가을하늘;공활한데;높고;구름없이;밝은달은;우리가슴;일편;단심일세 4절 이기상과;이맘으로;충성을;다하여;괴로우나;즐거우나;나라;사랑하세 후렴 무궁화;삼천리;화려강산;대한사람;대한으로;길이;보전하세 1절 동해물과 1절 백두산이 1절 마르고 1절 닳도록 1절 하느님이 1절 보우하사 1절 우리나라 1절 만세 2절 남산위에 2절 저소나무 ... 이런식으로 나누는 쿼리를 짜고 싶었습니다. 구..

개발/SQL 2019.03.07

MYSQL 함수 생성시 ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) 에러 해결..

MySQL 에서 함수를 만들려고 하는데CREATE FUNCTION 문을 선언하니 ERROR 1418 (HY000) : This function hasn none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) 이런 에러가 뜨면서 함수가 생성되지 않았습니다. 구글링을 하니 간단하게 해결 방법이 있었습니다. http://www.mysqlkorea.com/gnuboard4/bbs/board.php?bo_table=community_03&wr_id=19..

개발/SQL 2019.03.05

대용량 sql 파일 임포트 시키기

일을 하던 중에몇십만줄이 넘어가는 sql 파일을 DB에 임포트 시킬 일이 있었습니다. 보통 작업을 할 때는 tool 을 사용하기 때문에평소와 다름 없이 툴을 이용하여 sql 파일을 임포트 시키려고 하였으나 엄청난 양 때문인지 sql 파일을 로드조차 하지 못하고툴이 뻗어버리는 일이 발생했습니다. 구글링을 통하여 해결방법을 찾았고그 방법을 알려드리려고 합니다.출처는https://sir.kr/pg_tip/14631 이분의 글을 참조하였습니다. 작업 DB는 MYSql 입니다. 1. Mysql command 를 실행시키고 DB에 접속합니다. 2. use dbname; 라는 쿼리문을 이용해 대용량 sql 파일을 임포트 시킬 디비를 선택합니다. Database changed라는 응답이 돌아오면 데이터베이스가 변경된 ..

개발/SQL 2019.02.26