본문 바로가기

DataBase81

[펌] [MySQL] MySQL WITH 재귀쿼리 계층구조 MySQL 에서도 재귀쿼리가 된다;;너무 심플해서 울뻔;; ㅎㅎㅎ 참 마리아 디비에서도 된다. 테스트 해봄. [MySQL] MySQL WITH 재귀쿼리 계층구조 보통 WITH 문 재귀쿼리 를 이용해서 계층 구조를 나타내는데 사용한다. 일단 재귀쿼리란..? 재귀 - 원래의 자리로 되돌아가거나 되돌아옴 이란 뜻을 갖고 있다. 쉽게 생각하면 같은걸 반복한다고 생각하면 쉬울까.. 즉 재귀쿼리는 한 쿼리가 반복되어 실행된다고 생각하면 된다.이러한 반복 쿼리는 계층구조를 SELECT 할때 유용하게 쓰인다. 기본적으로 코드 테이블 구조를 만들때code 와 parent_code(부모코드) 컬럼으로 구성하게 되면계층구조로 select 하기 편해진다. WITH 문을 이용한 계층쿼리 부터 확인해보자 CODE_TABLEcod.. 2019. 1. 25.
몽고디비 종료 (already process port 27017) 몽고디비를 기반으로 개발하다보면 가끔씩 정상적으로 프로세스가 종료되지 않았을때mongod 명령어가 실행되지 않을때가 있다. 이때는 몽고디비 콘솔에 접속하여 어드민으로 스위칭하고 종료하면 된다. $ mongo$ use admin$ db.shutdownServer() 2018. 7. 11.
[ERWIN] 오브젝트및 속성 명 일괄적으로 대/소문자 변경 알아두면 매우 유용 ToolsNamesModel Naming Options... 2018. 5. 10.
[패스워드 분실] 리눅스 기준 MySQL root 패스워드 분실 2018. 4. 19.
[TroubleShooting] Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details. CentOS 기준 Error MessagesJob for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.Aria engine is not enabled or did not start. The Aria engine must be enabled to continue as mysqld was configured with --with-aria-tmp-tables위 에러 내용중 하나가 발생하면서, MariaDB 가 기동이 안된다면 다음과 같이 처리한다. $ systemctl status mariadb.. 2018. 4. 18.
Table '$TABLE_NAME' is specified twice, both as a target for 'UPDATE' and as a separate source for data 쓰면서 처음 보는 에러 발생;;; UPDATE 시에 대상 테이블의 값을 대상 테이블에서 직접 접근하여 조회하여 조건에 사용했을 경우 에러 발생.UPDATE 에서만 발생하는지는 모르겠음. 정리된 내용은 이러함.SELECT * FROM `TABLE` WHERE ID = 'JKUN.NET' AND IDX = ( SELECT MAX_IDX FROM (SELECT MAX(IDX) AS MAX_IDX FROM `TABLE` WHERE ID = 'JKUN.NET') ) _dummy ) 2018. 3. 5.
오라클 달력 및 날짜 테이블 오라클에서 통계 관련 쿼리를 작성하다보면,기간성 정보 기준으로 데이터를 도출해야할 경우가 있다. 예를 들자면 (일간, 월간, 년간) 하지만 영업일이 없었던 경우 0 원으로 표시해야하거나 주말같은 경우는 뭔가 표시를 해주어야 하는데,이게 필요할 때 찾으면 없거나 보통 귀찮은일이 아님. 해서 테이블부터 데이터 등록 PL/SQL 까지 같이 올림. 그냥 바로 돌리시면 됩니다.^^ CREATE TABLE DATE_STANDARD ( YEAR_ID CHAR(4 BYTE), MONTH_ID CHAR(2 BYTE), DAY_ID CHAR(2 BYTE), DATE_ID VARCHAR2(8 BYTE), WEEK_NO CHAR(1 BYTE), WEEK_TXT VARCHAR2(5 BYTE) ) CREATE INDEX IDX_.. 2018. 1. 25.
오라클 컬럼을 로우로 오라클 컬럼을 로우로 SELECT DECODE (MOD (ROWNUM - 1, 3) + 1, 1, SUM_TARGET_SALES_AMT, 2, MALL_TARGET_SALE_AMT, 3, MALL_OUT_CHANNEL_TARGET_SALE_AMT) AS TARGET_SALE_AMT FROM (SELECT 1 FROM DUAL CONNECT BY LEVEL 2018. 1. 10.
오라클 11g 문자열 연결 (횡) 가끔 데이터 조회 결과를 1:N 인데 1:1 로 합쳐서 표시할때 유용하다.예제는 다음과 같다. /* 엘클라시코 포워드 라인업 */ /* 오라클 11g 기준 문자열 연결 예제 (LISTAGG .. ) */ WITH EL_CLASICO_FORWARD_LINE_UP AS ( SELECT '크리스티아누 호날두' AS PLAYER, '레알 마드리드' AS CLUB FROM DUAL UNION ALL SELECT '가레스 베일', '레알 마드리드' FROM DUAL UNION ALL SELECT '카림 벤제마', '레알 마드리드' FROM DUAL UNION ALL SELECT '리오넬 메시', 'FC 바르셀로나' FROM DUAL UNION ALL SELECT '네이마르', 'FC 바르셀로나' FROM DUAL .. 2017. 12. 15.
오라클 DIRECT-PATH INSERT (인서트 성능향상) 먼저 DIRECT-PATH INSERT 에 대한 구조를 대략적으로나마 이해하면 좋을 듯 싶다. 나도 데이토의 올라온 내용을 따라해보고 까먹을까봐 일단 예제 순서만 메모.해당 세션에 패러렐 DML 허용;임시 테이블에 로깅해제;APPENT 힌트 사용테이블 로깅;다시 패러렐 DML 비허용여기에 대한 관련 링크들은 다음과 같음. INSERT 유형 (DIRECT-PATH INSERT)오라클 INSERT 속도 개선 2017. 12. 14.
오라클 쿼리 수행계획 확인 오라클에서 쿼리 수행계획을 찾다보니 확인하고, 다음과 같이 샘플 예제를 넣어서 확인해버릇 해야겠다. 내가 이해하기로는 크게 3 블럭으로 나눈다.PLAN_TABLE(플랜계획내용을 저장하는 테이블) 에 STATEMENT_ID 를 부여실행할 쿼리플랜계획내용 조회 SET SERVEROUTPUT ON; EXPLAIN PLAN SET statement_id = 'EX1' INTO PLAN_TABLE FOR SELECT * FROM "대상테이블" /* 수행계획을 확인할 대상쿼리 */ SELECT * FROM PLAN_TABLE WHERE STATEMENT_ID = 'EX1' 위 쿼리가 실행할 샘플 예제 입니다. 참고링크 : http://najuung.tistory.com/56 2017. 12. 14.
sqldeveloper - locale not recognized Mac OS 에서 sqldeveloper 로 접속시 locale not recognized 에러머세지로 연결불가.아마 로케일 문제인듯.설치된 sqldeveloper 는 영문판임.구글링중 발견. {sqldeveloper 설치위치}/Contents/Resources/sqldeveloper/sqldeveloper/bin/sqldeveloper.conf 파일을 열고 VMOption 에서 AddVMOption -Duser.language=koAddVMOption -Duser.country=KR 이분은 친절한 캡쳐포스팅 : http://ending1.tistory.com/49 2017. 11. 27.
오라클 조인 업데이트 (다중업데이트) - Case 1 오라클에서 데이터를 다중 조건에 맞게 업데이트하기 위한 방법중 첫번째.SET 절과 (WHERE, AND) 조건 절과 동일한 내용으로 업데이트 쿼리를 수행. 샘플 데이터는 다음과 같다. 테이블 : JKUN위 테이블에서 업데이트 대상은 NUM_1 필드(전체)이다. 이 데이터들을 순번으로 업데이트 할 예정.다음은 가상 데이터 SELECT 1 AS RN, 4 AS NUM_SEQ FROM DUAL UNION ALL SELECT 2 AS RN, 5 AS NUM_SEQ FROM DUAL UNION ALL SELECT 3 AS RN, 6 AS NUM_SEQ FROM DUAL UNION ALL SELECT 4 AS RN, 7 AS NUM_SEQ FROM DUAL UNION ALL SELECT 5 AS RN, 8 AS N.. 2017. 11. 22.
오라클 WITH WITH 구문내의 쿼리 결과를 Alias 를 지정하여 이어서 SELECT 절과 이용.옵티마이저에서 인라인뷰나 임시테이블로 여김.WITH WITH_EX AS ( SELECT ROWNUM R, 'TEST1' STR, SYSDATE DT FROM DUAL UNION ALL SELECT ROWNUM, 'TEST2', SYSDATE FROM DUAL UNION ALL SELECT ROWNUM, 'TEST3', SYSDATE FROM DUAL ) SELECT * FROM WITH_EX; 조인도 가능SELECT * FROM WITH_EX A LEFT OUTER JOIN ( SELECT 1 R, 'TESTSSSSS' STR, SYSDATE DT FROM DUAL UNION ALL SELECT 2 R, 'TESTSSSS.. 2017. 11. 22.
오라클 시퀀스 ( Sequence ) 오라클 시퀀스 정리구루비 강좌 : 시퀀스(Sequence)의 이해 및 활용 아래 내용은 심플하게 정리된 포스팅입니다. 출처 : 오라클 sequence 의 사용이유와 주의점 ( http://javakorea.tistory.com/175 ) 시퀀스 사용이유가 데이터 입력시 동시성 때문에 register가 겹칠때 이를 방지 하기 위해 commit이 완료되지 않더라도 시퀀스를 사용하면 여러사용자가 중복되지않은 register(회원가입번호) 를 얻을수있어서 정상적 으로 회원가입이 가능하다. syntax) create sequence 시퀀스명 minvalue 1 // 최소 생성 시퀀스값 max value 99999999999 // 최대 생성 increment by 1 // 증가값 이값은 max-min보다 작아야함 .. 2017. 11. 22.
MariaDB - JSON 테이블 마리아 디비에서 보면 JSON 테이블 형태가 존재하는것 같다.일단은 테스트를 해봐야하나 ㅋㅋ차후 로 미루고 메모포스팅을. Guide : https://mariadb.com/kb/en/mariadb/connect-json-table-type/Blog Post : http://estenpark.tistory.com/350 위에 포스팅에서 꽤 상세하고 자세하게 포스팅되어있어 그대로 따라해보면 될듯. 2017. 6. 9.
MySQL 정규식으로 치환 함수 MySQL 정규식으로 치환 함수DELIMITER $$ CREATE FUNCTION `regex_replace`(pattern VARCHAR(1000),replacement VARCHAR(1000),original VARCHAR(1000)) RETURNS VARCHAR(1000) DETERMINISTIC BEGIN DECLARE temp VARCHAR(1000); DECLARE ch VARCHAR(1); DECLARE i INT; SET i = 1; SET temp = ''; IF original REGEXP pattern THEN loop_label: LOOP IF i>CHAR_LENGTH(original) THEN LEAVE loop_label; END IF; SET ch = SUBSTRING(orig.. 2017. 2. 2.
UNIXTIME 관련 함수 1. UNIXTIME(타임스탬프) → DATE FROM_UNIXTIME('1485874832', '%Y%m%d %H%i%s') 2. DATE → UNIXTIME UNIX_TIMESTAMP() UNIX_TIMESTAMP('YYYY-MM-DD HH:mm:ss') 2017. 2. 2.