반응형 Database59 Postgresql Download 및 설치 for windows, 유저생성, 권한부여 1. download postgresql site 로 이동하여 OS 에 맞는 설치파일을 다운로드 합니다. Link : https://www.postgresql.org/download/ PostgreSQL: Downloads www.postgresql.org download 가 완료되는 설치파일을 실행합니다. Next. 설치 경로 선택 후 Next. 구성요소 전체 선택 후 Next. Data 경로 선택 후 Next. superuser 의 password 입력 후 Next. Port 입력 후 Next. Locale Korean, Korea 선택 후 Next. 확인 후 Next. Next. 설치 진행. 설치가 완료되었습니다. 이제 DBeaver 와 같은 툴로 접속하시면 됩니다. Database는 툴을 사용해 .. Database 2024. 4. 2. ORACLE LAG, LEAD 함수 사용법 (이전, 다음 행의 값에 접근) ORACLE LAG, LEAD 함수 사용법 (이전, 다음 행의 값에 접근) 오라클에서 조회한 데이터의 이전, 다음 행에 접근해야 하는 경우가 있습니다. 뭔가 순서가 있는 데이터에서 사용을 하는데요, 이번 포스팅에서는 이전, 다음 행에 접근하는 LAG, LEAD 함수의 사용법을 알아보겠습니다. LAG : 이전 행의 값에 접근 LEAD : 다음 행의 값에 접근 예를들어 학생별로 수학 점수가 있는 데이터가 있을 때, 점수로 정렬 한 후 다음 학생과의 점수차를 구하고 싶다고 한다면 아래와 같이 작성할 수 있습니다. WITH STUDENT AS ( SELECT '이루리' AS STDT_NM, '수학' AS SBJT, 80 AS SCORE FROM DUAL UNION ALL SELECT '이건' AS STDT_NM.. Database/SQL 2021. 10. 7. 자주 발생하는 오라클 에러 정리 Oracle Error 자주 발생하는 오라클 에러 정리 [Error] ORA-01741: 길이가 0인 식별자는 부적합합니다 [Solution] 쿼리 내 더블쿼텐션(") 이 사용됐는지 확인해서 싱글쿼텐션(') 으로 변경 [Error] ORA-01722: 수치가 부적합합니다 [Solution] 숫자와 문자가 섞인 컬럼일 경우 발생. 정규식을 사용해 숫자만 추출한 후 사용 TO_NUMBER(REGEXP_REPLACE(컬럼, '[^0-9]')) [Error] ORA-01438: 이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다. [Solution] DB 컬럼에 설정된 길이보다 큰 값이 넘어갈 때 발생하는 에러, 저장 할 파라미터의 크기를 체크! [Error] ORA-01789: 질의 블록은 부정확한 수의 결과 열을 가지고 있습.. Database/SQL 2021. 9. 6. [NULL 처리]Incorrect decimal value: '' for column 1 java 에러 수정 방법 [NULL 처리]Incorrect decimal value: '' for column 1 java 에러 수정 방법 이번 포스팅에서는 MARIADB, MYSQL 에서 발생하는 Incorrect decimal value 에러에 대해서 수정하는 방법을 알아보도록 하겠습니다. 해당 에러는 DB에서 컬럼 타입이 numeric 으로 설정했을 때 빈값 이나 null을 전송하면 발생하는 에러입니다. 숫자형인데 공백을 넣을 수 없다. 어찌보면 당연한 얘기지요. 그럼 numeric 타입으로 설정한 컬럼에 null 을 넣기 위해서는 어떻게 해야 할까요? 바로 NULLIF 함수를 사용하면 됩니다. 자주 사용하는 IFNULL 함수와는 약간 차이가 있습니다. IFNULL(컬럼, 치환할 값) IFNULL 함수는 컬럼값이 NULL일.. Database/SQL 2021. 4. 12. MySql, MariaDB에서 connect by level 사용방법 MySql, MariaDB에서 connect by level 사용방법 오랜만에 포스팅에서는 MySql, MariaDB에서 connect by level 사용방법을 알아보겠습니다. connect by level 은 증가하거나 감소하는 데이터를 동적으로 생성할때 사용하는데요, 사용방법은 아래와 같습니다. SELECT LEVEL FROM DUAL CONNECT BY LEVEL Database/SQL 2021. 2. 23. 오라클 최근 몇달, 최근 몇일 데이터 행으로 조회하기 오라클 최근 몇달, 최근 몇일 데이터 행으로 조회하기 기준이 되는 날짜가 출력이 되야하고, 그 날짜에 해당하는 데이터를 붙여 출력할 때 활용하는 방법입니다. LEVEL과 CONNECT BY 구분을 활용합니다. 최근 몇 달 데이터 행으로 조회 (최근 10달, 현재 : 2020년12월) SELECT TO_CHAR(ADD_MONTHS(SYSDATE, 1-LEVEL), 'YYYYMM') FROM DUAL CONNECT BY LEVEL Database/SQL 2020. 12. 9. Oracle, MySql, MsSql 2개이상 복수 테이블 update 하는 방법 Oracle, MySql, MsSql 2개이상 복수 테이블 update 하는 방법 한번에 복수의 테이블에 값을 업데이트 하는 방법은 Oracle, MySql, MsSql 에서 모두 같은 방식으로 가능합니다. Inner Join(Right Join)으로 데이터를 가져와 업데이트 하면됩니다. Inner Join 에 대한 설명은 아래의 링크를 참고하세요. aljjabaegi.tistory.com/13 INNER JOIN, LEFT JOIN(OUTER JOIN) 비교 이너조인, 아우터조인 * INNER JOIN 과 OUTER JOIN(LEFT, RIGHT) 의 비교 이너조인, 아우터조인 [JOIN사용법] SELECT * FROM 테이블1 T1 LEFT JOIN 테이블2 T2 ON (T2.테이블을 연결할 컬럼 =.. Database/SQL 2020. 9. 11. java.sql.SQLSyntaxErrorException: ORA-01745: 호스트/바인드 변수명이 부적합합니다 java.sql.SQLSyntaxErrorException:ORA-01745: 호스트/바인드 변수명이 부적합합니다 해당 에러는 Insert, Update 시 주로 발생하는 에러입니다. 말 그대로 호스트(테이블의 컬럼) 이 바인드 변수(입력하고자 하는 변수) 가 부적합 할때 발생합니다. 예를 들어 Insert 나 Update 쿼리에서 콤마(,) 가 빠져있는 경우 해당 에러 메시지가 표출됩니다. INSERT INTO TEST_TABLE ( A_COLUMN, B_COLUMN ) VALUES ( #{columnA} #{columnB} ) 위의 쿼리에서 #{columnA} 다음에 콤마(,) 가 누락되었기 때문에 위의 에러가 발생하게 됩니다. Database/SQL 2020. 9. 2. mySql, mariaDB 사용자 생성 및 권한 설정 mySql, mariaDB 사용자 생성 및 권한 설정 [사용자 생성] create user '사용자ID'@'접속가능ip' identified by '비밀번호' 접속가능 ip에 '%' 로 설정한 경우 모든 ip 접속 가능. 'localhost' 일 경우 해당 하드웨어에서만 접속 가능. [ex] create user 'test'@'%' identified by 'test1234' [사용자 별 테이블 권한 설정] 모든 권한 설정의 경우 grant all privileges on 스키마.테이블 to 사용자ID@'접속가능ip' identified by '비밀번호' with grant option 조회권한만 설정할 경우 grant select on 스키마.테이블 to 사용자ID@'접속가능ip' identified .. Database/SQL 2020. 8. 31. ORACLE 테이블 데이터 비교, 교집합 차집합 데이터 추출 ORACLE 테이블 데이터 비교, 교집합 차집합 이번 포스팅은 ORACLE 테이블 데이터 비교가 주제입니다.! 같은 포멧의 두 테이블을 비교하거나, SELECT 한 두 SQL문의 데이터를 비교할때 사용됩니다. 같은 데이터 만 추출하기 (교집합) INTERSECT SELECT * FROM TABLE_A INTERSECT SELECT * FROM TABLE_B 두 테이블 SQL문 사이에 INTERSECT 가 들어가게 됩니다. 두 테이블의 컬럼이 같고, 같은 데이터 포멧이어야 비교가 가능합니다. 위 테이블의 결과는 처음 테이블(TABLE_A)의 일치하는 데이터 ROW 가 출력이 됩니다. 아래의 예를 보시죠. SELECT * FROM ( SELECT '사과' , '배' , '오랜지' FROM SYS.DUAL U.. Database/SQL 2019. 9. 24. Oracle 오라클 행열 변환, 카테시안 조인, CASE문 활용 Oracle 오라클 행열 변환, 카테시안 조인, CASE문 활용 카테시안 조인과 CASE문을 활용하여 행열을 변환하는 방법을 알아보도록 하겠습니다. 카테시안 조인과 CASE문에 대해서는 아래의 Link를 참고하세요. Link : Oracle 오라클 데이터 복제 방법, 카테시안 조인 Oracle 오라클 데이터 복제 방법, 카테시안 조인 Oracle 오라클 데이터 복제 방법, 카테시안 조인 이번 포스팅에서는 원하는 만큼 데이터를 복사해 SELECT 하는 방법에 대해서 포스팅 하겠습니다. 데이터의 복제는 카테시안 조인을 사용하여 간단히 할 수 있습니.. aljjabaegi.tistory.com Link : Oracle 오라클 CASE문 사용법 CASE WHEN THEN END Oracle 오라클 CASE문 사.. Database/SQL 2019. 8. 30. Oralce 오라클 UNIX Timestamp 변환 timestamp to date String Oralce 오라클 UNIX Timestamp 변환 timestamp to date String Unix timestamp 를 Date String으로 변환하는 방법 TO_CHAR(변환컬럼명 / (60 * 60 * 24) + TO_DATE('19700101090000', 'YYYYMMDDHH24MISS'), 'YYYYMMDDHH24MISS') Ex) SELECT TIMESTAMP_ACCI , TO_CHAR(TIMESTAMP_ACCI / (60 * 60 * 24) + TO_DATE('19700101090000', 'YYYYMMDDHH24MISS'), 'YYYYMMDDHH24MISS') AS DATE_ACCI FROM ACCI_TABLE Result) Link : Java 자바 UNIX Timestamp 변.. Database/SQL 2019. 8. 1. 오라클 형변환 알짜만 빼먹기, TO_NUMBER(), CAST(), TO_CHAR(), TO_DATE() 오라클 형변환 알짜만 빼먹기, TO_NUMBER(), CAST(), TO_CHAR(), TO_DATE() 오라클에서도 다른 몇몇 프로그래밍 언어처럼 암시적 형변환을 제공합니다. 하지만 정확한 예측이 어렵기 때문에 반드시 명시적으로 형변환을 해야만 합니다. 예를들어 M_CODE 테이블의 CD_ID 컬럼이 VARCHAR2(2 BYTE) 타입이라 할때 SELECT * FROM M_CODE WHERE CD_ID = 10 위의 쿼리가 가능한 이유는 아래와같이 암시적 형변환이 일어났기 때문입니다. SELECT * FROM M_CODE WHERE TO_NUMBER(CD_ID) = 10 그래서 불필요한 암시적 형변환이 발생하지 않기 위해 아래와 같이 작성을 해야합니다. 데이터의 양이 많아질 수록 기존 컬럼의 형변환은 .. Database/SQL 2019. 7. 24. Oracle IN, NOT IN 문 알짜만 빼먹기 Oracle IN, NOT IN 문 알짜만 빼먹기 값이 포함되는 혹은 포함되지 않는 데이터를 추출하고 싶을 때 사용하는 것이 IN, NOT IN 문입니다. 용법을 보도록 하죠. [용법] IN 문 SELECT * FROM TABLE WHERE COLUMN IN ('A' , 'B') [IN문 풀이] SELECT * FROM TABLE WHERE COLUMN = 'A' OR COLUMN = 'B' [용법] NOT IN 문 SELECT * FROM TABLE WHERE COLUMN NOT IN ('A' , 'B') [NOT IN문 풀이] SELECT * FROM TABLE WHERE COLUMN 'A' AND COLUMN 'B' 위의 쿼리를 보면 IN문은 'A'와 'B' 가 포함되는 데이터만 추출되고, NOT .. Database/SQL 2019. 7. 17. oracle 오라클 과거 데이터 조회, 복구 AS OF 몇분전, 몇시간전 oracle 오라클 과거 데이터 조회, 복구 AS OF 몇분전, 몇시간전 실수로 delete, commit 으로 데이터를 날렸을때......... 간단히 복구 할 수 있는 방법이 있습니다. 1 2 3 SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '30' MINUTE) cs AS OF TIMESTAMP 를 사용해 과거 데이터를 조회 할 수 있습니다. 위의 코드에서 붉은 색으로 표시된 MINUTE 은 SECOND, HOUR, DAY 로 바꾸어 30초전, 30시간전, 30일 전으로 조회 할 수도 있습니다. 아래는 SQL Developer 에서 조회한 화면인데요, 아주 잘 조회 되는 것을 확인 하실 수 있습니다. 이제 이것을 쭉~~드래그해 복사해서 붙여넣.. Database/SQL 2018. 1. 30. 이전 1 2 3 4 다음 💲 추천 글 반응형