본문 바로가기

Database32

MySQL 그룹 함수 GROUP_CONCAT GROUP_CONCAT은 GROUPING된 레코드들을 원하는 구분자를 이용하여 문자열로 만들 수 있습니다. 아래 예제에서 사용된 데이터베이스 IDE는 CHEQUER에서 개발한 QueryPie 제품입니다. 예제 테이블 생성 스크립트 # 테이블 생성 CREATE TABLE TEST_TABLE ( NO INTEGER, ADDRESS VARCHAR(20) ); # 데이터 삽입 INSERT INTO TEST_TABLE values (1, '경기도'); INSERT INTO TEST_TABLE values (1, '성남시'); INSERT INTO TEST_TABLE values (1, '대왕판교로'); INSERT INTO TEST_TABLE values (2, '서울특별시'); INSERT INTO TEST_T.. 2020. 2. 5.
Oracle 테이블 통계 정보를 수집하는 명령어 gather_table_stats 프로시저 호출을 통해서 테이블, 컬럼, 인덱스 통계 정보를 수집할 수 있습니다. -- CTAS로 테이블 생성 select * from scott.emp; create table t_emp as select d.no, e.* from scott.emp e , (select rownum no from dual connect by level 2020. 2. 5.
Oracle 순위를 반환하는 함수 (RANK, DENSE_RANK, ROW_NUMBER) 테이블에서 특정 값을 기준으로 순위를 매겨서 보고 싶을 때 ORDER BY 절을 사용합니다. 동일한 점수가 나온 경우 순위를 동일하게 하거나 또는 점수가 동일하더라도 순위를 다르게 매겨야 하는 경우가 있습니다. Oracle에서는 순위를 나타날 때 편하게 사용할 수 있도록 RANK, DENSE_RANK, ROW_NUMBER 함수를 제공합니다. 순위 함수 Oracle에서 제공하는 순위 함수는 아래와 같습니다. 해당 함수에 대한 설명보다는 실습을 통해 이해하는 것이 더 쉬울 수 있습니다. RANK : 동일한 값이면 중복 순위를 부여하고, 다음 순위는 해당 개수만큼 건너뛰고 반환한다. DENSE_RANK : 동일한 값이면 중복 순위를 부여하고, 다음 순위는 중복 순위와 상관없이 순차적으로 반환한다. ROW_NU.. 2020. 1. 23.
JDBC 드라이버에서 MySQL 데이터베이스 문자 인코딩 설정 JDBC 드라이버를 이용해서 MySQL 데이터베이스에 연결할 때, 프로퍼티에 따로 값을 설정하지 않으면 문자 인코딩(characterEncoding) 값은 자동으로 감지합니다. 연결 프로퍼티에 문자 인코딩 설정 Properties properties = new Properties(); properties.put("user", "USER_NAME"); properties.put("password", "PASSWORD"); properties.put("characterEncoding", "UTF-8"); Connection connection = DriverManager.getConnection("JDBC_URL", properties); MySQL to Java Encoding Name Translatio.. 2019. 6. 23.
MySQL "Cannot get geometry object from data you send to the GEOMETRY field" 에러 해결방법 임시 테이블 생성 id, geometry 두 개의 컬럼을 구성된 테이블을 생성한다. CREATE TABLE `geo_test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `geo` geometry DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; 테이블에 geometry 타입 데이터 추가 (에러 발생) 아래 SQL 구문을 실행하면 "Cannot get geometry object from data you send to the GEOMETRY field" 에러가 발생한다. geometry 필드에 텍스트 값을 넣으려고 했기 때문에 발생한 에러이다. INSER.. 2019. 5. 13.
H2 대소문자 구분 없이 Like 검색 (case insensitive like query) H2 데이터베이스는 기본적으로 대소문자를 구별한다. 즉 sensitive 하다라는 뜻이다. 따라서 대소문자 구분 없이 검색하려면, ILIKE 키워드를 사용해야 한다. 이러한 특징은 PostgreSQL 데이터베이스에서도 동일하다. # case insensitive SELECT * FROM users WHERE name ILIKE '%jayden%'; # case sensitive SELECT * FROM users WHERE name LIKE '%jayden%'; 참고자료 H2 공식 문서 2019. 4. 29.