728x90
반응형

Database 30

[오라클] 사용자 정의 특정 값 기준으로 정렬 ORDER BY DECODE()

보통 오라클 정렬을 할 때 order by 를 사용해 정렬했다. ORDER BY 컬럼명 ASC 이 방법으로, 특정컬럼의 오름차순이나 내림차순으로 정렬할 수 있다. RANK라는 테이블에는 A, S, SS, P 의 값이 있는데 해당 값을 P, SS, S, A, 순으로 정렬을 보여주려고 헀다. 기존방식으로 order by 했더니, SELECT RANK FROM RANK_TABLE ORDER BY RANK ASC; 이렇게 A, P, S, SS 순 (또는 이거 역순) 으로 밖에 정렬할 수 없다. ORDER BY 내에서 내가 원하는 대로 순서를 정렬하고 싶은 상황. 이럴때는 DECODE 를 사용해서 정렬할 수 있다. DECODE의 사용법은 ORDER BY DECODE(컬럼명, '값', 순서,'값',순서) 해서 이렇..

Database/Oracle 2022.03.22

[MySQL] 계층형 재귀 쿼리

계층형 구조(Hierarchical Structure) 는 부모와 자식 간의 관계를 깊이로 구분하여 표현하는 것으로 트리구조, 보통 카테고리를 분류나 조직도에 많이 사용된다. 오라클이였으면, START WITH ... CONNECT BY 를 사용하여 계층형 쿼리를 작성할 수 있다. 문제는 내가 지금 작업해야하는 곳의 DB가 MYSQL 이라는것..... 찾아보다가 발견한 사이트. 덕분에 원하는건 해결했다. 참고사이트 : https://isolution.pro/ko/q/so33213542/mysql-gyecheung-jeog-jaegwi-kwolileul-mandeuneun-bangbeob dept_no dept_name parent_no 1 부서 0 2 부서1 1 3 부서2 1 4 부서3 2 내가 가지고 ..

Database/Mysql 2022.02.14

REPLACE 함수 특정 문자열 바꾸기

REPLACE를 하면 특정 문자열을 변경할 수 있음. 사용방법 REPLACE(컬럼명, '바꾸려는 문자열', '바뀔 문자열') 예시 SELECT ID, NAME, TITLE, REPLACE(TITLE, '[TEST]', '[테스트]') AS RE_TITLE FROM TBL_TEST ; 하면 [TEST]로 작성된것들이 [테스트]로 변경되서 표시됨 REPLACE를 이용해서 컬럼 내용을 수정하여 업데이트 할수도있다. UPDATE 테이블명 SET 컬럼명 = REPLACE(컬럼명 ,'변경전 문자','변경후 문자') ;

Database 2022.01.21

[Mysql] 테이블에 데이터 특수기호 입력시 오류 발생

[오류] Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect string value: '\xF3\xB0\x8C\x9B \xEC...' for column 'CONTENTS' at row 7992 나같은 경우에는 한글파일에 있는 내용을 복붙해서 넣는 중에 특수문자가 들어가서 오류가 발생함 일부 특수문자는 잘 들어가는데 좀 이상한 특수문자는 종종 안들어감 󰌛 이렇게 생긴 특수기호라서 ■ 이걸로 수정함 여기서도 깨진다. 수정전 수정후 그리고 올리니 잘 올라간다.

Database/Mysql 2022.01.20

[Oracle]JAVA와 오라클 JDBC 연동하기 (ojdbc6.jar 위치)

자바와 오라클을 연동하기 위해서는 JDBC 드라이버가 필요함 JDBC 드라이버 위치는 오라클 설치한 위치마다 다르겠지만 보통 기본이면 아래와 같다. [JDBC 드라이버 경로] C:\app\admin\product\11.2.0\dbhome_1\jdbc\lib 사용하는 jdk버전에 따라 복사할 드라이버가 다른데, Oracle과 JDK버전에 따라 사용해야 하는 jar파일이 다르다. 오라클버전 jdk버전 jar orcale 12c JDK 1.7이상 ojdbc7.jar JDK 1.6이상 ojdbc6.jar oracle 11g JDK 1.6이상 ojdbc6.jar oracle 10g JDK 1.4, 1.5이상 ojdbc14.jar 위의 표를 참고하여 사용하면 된다. 이 드라이브를 추가하는 방법으론 1) Java가 ..

Database/Oracle 2022.01.15

[JDBC] mysql 연결할때 다른 인코딩으로 보내기

나 같은 경우에는 db 내의 인코딩이 latin1 로 되어있다보니 db에 직접 접속하여 쿼리를 날렸을때에는 오류가 없었으나, jdbc를 통해 날린 쿼리에서는 값이 안나오는 상황이였다. jdbc 연결하는 url에 characterEncoding 을 추가함 jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=latin1 이렇게 하고 실행하려고 했더니 톰캣 실행중 오류가 남 로그에오류 내용을 찾아보니 The reference to entity "characterEncoding" must end with the ';' delimiter. 라고 뜨는데, 해당 오류는 & 을 인식ㅇ하지 못해서 나는 오류로, & -> & ex) jdbc:mysql..

Database/Mysql 2022.01.15

[MariaDB] DEFAULT CHARACTER SET 변경하기(latin1->utf8mb4)

CentOS7에 설치한 마리아디비 5.5 버전의 들어가서, status 를 입력한 결과 아래와 같이 latin1이 나왔다. 혹시나 다른 상태 확인으로 해보았지만 여전했다. show variables like 'c%'; /etc/my.cnf 파일 안에 내용들을 추가하고 마리아디비를 재기동했다. --파일수정 sudo vi /etc/my.cnf [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqldump] default-character-set = utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci init-con..

Database/MariaDB 2022.01.15
728x90
반응형
LIST