본문 바로가기

DBMS(DataBase Management System)60

728x90
반응형
[PostgreSQL] 데이터베이스 생성 및 삭제 데이터베이스 생성 아래의 쿼리를 입력하면 PostgreSQL에서 데이터베이스를 생성할 수 있다. CREATE DATABASE {테이블명} [TEMPLATE] [템플릿명]; 데이터베이스 삭제 아래의 쿼리를 입력하면 PostgreSQL에서 데이터베이스를 삭제할 수 있다. DROP DATABASE {데이터베이스명}; 참고문서 "23.2. Creating a Database", PostgreSQL 지침서, 2023년 7월 11일. @원문보기 2023. 8. 2.
[PostgreSQL] 비밀번호 변경 아래의 쿼리를 입력하면 특정 사용자의 비밀번호를 변경할 수 있다. alter user {계정명} with password {비밀번호} 2023. 8. 1.
[티베로] 메모리 설정을 출력하는 쿼리 티베로(Tibero)에서 메모리 설정을 확인할 수 있는 쿼리는 아래와 같다. SELECT * FROM v$sga; 참고문서 "Appendix G. Shared Memory 크기 산정", 티베로 공식 문서. @원문보기 2023. 7. 30.
[PostgreSQL] 인코딩 확인 아래의 쿼리(Query)를 이용하면 PostgreSQL 데이터베이스의 인코딩을 확인할 수 있다. SELECT pg_encoding_to_char(encoding), datcollate, datcollate FROM pg_database 참고문서 "53.15. pg_database", PostgreSQL, 2023년 7월 11일. @원문보기 2023. 7. 29.
[티베로] 오토커밋(Autocommit) 설정 확인 명령어 티베로에서 오토커밋(Autocommit) 설정을 확인하는 명령어는 아래와 같다. 이 기능은 기본적으로는 비활성화되어 있다. 필자는 업무할 때 활성화해서 쓴 경험이 없다. show autocommit; 참고문서 "1.3.1. AUTOCOMMIT", Tibero 6 유틸리티 안내서, 2020년 8월 21일. @원문보기 2023. 7. 27.
[오라클] 중복 데이터를 확인하는 방법 중복 데이터 확인 방법 오라클 데이터베이스에서 중복 데이터를 확인해야 하는 경우 아래와 같이 쿼리(Query)를 작성하여 확인할 수 있다. SELECT {COLUMN_A, ...}, COUNT(*) AS CNT FROM {TABLE_NAME} GROUP BY {COLUMN_A, ...} HAVING COUNT(*) > 1 2023. 7. 11.
[Oracle 21c XE] 초기 설치 중 "ERROR: ORA-12560: TNS:프로토콜 어댑터 오류" 해결 방법 오류 발생 시점 오라클 데이터베이스를 설치하여 테스트할 것이 있는데 설치 후 데이터베이스에 접속하려고 해도 "ERROR: ORA-12560: TNS:프로토콜 어댑터 오류"가 떠서 접속이 되지 않았다. 해결 방법 데이터베이스와 TNS 리스너가 서비스에 나타나 있음에도 불구하고 접속이 되지 않는 문제가 발생했다. 그래서 나는 이런 저런 해결 방법을 시도하다가 완전 삭제 후 재설치로 해결했다. 완전 삭제를 위해서는 아래와 같은 순서로 데이터를 삭제해야 한다. 오라클 삭제 레지스트리 삭제 파일 경로 삭제 삭제가 완료되면 재부팅 후 설치를 진행한다. 참고문서 "[SQL200제] - Oracle DB 18c 삭제 방법", 이지업클래스 (easyupclass), 2021년 7월 16일. @원문보기 "sqlplus로 .. 2023. 7. 9.
[티베로] 오류 설명 - 'JDBC-90609:Invalid column index.' 오류의 의미 티맥스 티베로(Tmax Tibero)를 사용하다보면 'JDBC-90609:Invalid column index.' 같은 오류 메시지를 볼 수 있다. 컬럼을 지칭하는 부분이 틀려서 발생한다. 오류 원인과 조치방법 'JDBC-90609'는 컬럼을 지칭하는 부분이 틀려서 발생한다. SQL의 컬럼명칭과 테이블에 있는 컬럼의 명칭이 일치하는지 확인한다. 참고문서 "제31장 90000 ~ 90999", Tibero 에러 참조 안내서, 티베로 6, 티맥스데이터, 2020년. @원문보기 2023. 3. 30.
[윈도우] MariaDB 데이터를 SQL 파일로 백업하는 스크립트 데이터베이스 백업은 아주 중요하다. 백업하는 방법은 여러가지가 있겠지만 본 글에서는 특정 데이터를 SQL 파일로 가공하는 방법을 설명한다. 백업 스크립트 SQL 파일로 MariaDB 데이터베이스를 백업하는 스크립트는 아래와 같다. 필자의 경우 아래와 같이 파일명에 작업일시를 붙여서 파일을 저장하도록 스크립트를 작성한다. @echo off set YEAR=%date:~0,4% set MONTH=%date:~5,2% set DAY=%date:~8,2% set HOUR=%time:~0,2% set MINUTE=%time:~3,2% set SECOND=%time:~6,2% set date_format=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND% mysqldump -u[계정명] -p[.. 2023. 3. 8.
[MariaDB] 함수 생성 때 'SQL Error (1418): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in ....' 오류 발생시 조치 방법 함수를 생성할 때 아래처럼 오류가 발생하는 경우가 있다. SQL Error (1418): 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) 이런 경우 아래의 명령어를 입력하여 함수 생성 설정을 확인하고 'OFF'로 설정되어 있는지 확인한다. SHOW GLOBAL VARIABLES LIKE 'log_bin_trust_function_creators'; 'OFF'로 설정되어 있으면 함수 생성이 되지 않기 때문에.. 2023. 2. 21.
[티베로] 오류 설명 - 'JDBC-90603:Invalid Operation: disconnected from the server.' 오류의 의미 티맥스 티베로(Tmax Tibero)를 데이터베이스로 활용하는 프로그램을 운영하다보면 'JDBC-90603:Invalid Operation: disconnected from the server.'라는 오류를 볼 수 있다. 이 오류는 티베로 데이터베이스 서버가 세션(연결)을 끊어서 발생한다. 오류 원인 'JDBC-90603'는 세션(연결)이 없어져서 발생한다. 이 오류가 반복적으로 발생하는 경우 세션 관련 설정을 확인한다. 조치 방법 이 오류가 발생하면 데이터베이스 서버가 정상인지를 확인해야 하며 응용 프로그램에게는 적절한 예외처리 기능이 구현되어 있어야 한다. 주로 티베로 데이터베이스 세션을 새로 생성(연결)하는 기능으로 처리한다. 참고문서 "제31장 90000 ~ 90999", Tibero.. 2023. 2. 5.
[티베로] 오류 설명 - 'JDBC-90405:I/O error while reading from the server. - End Of Stream' 오류의 의미 티맥스 티베로(Tmax Tibero) 데이터베이스를 활용하는 프로그램을 개발하다보면 'JDBC-90405:I/O error while reading from the server. - End Of Stream'라는 오류를 볼 수 있다. 이 오류는 티베로 데이터베이스 서버가 통신 중에 연결을 끊어 버려서 발생한다. 오류 원인 'JDBC-90405'의 경우 다양한 원인이 있을 수 있으므로 가장 의심이 되는 것부터 조치하는 것이 좋다. 세션과 메모리, 운영체제, 티베로 버전, 쿼리, 네트워크 설정, 네트워크 하드웨어 상태 등 다양한 원인으로 오류가 발생할 수 있다. 조치 방법 이 오류가 발생하면 데이터베이스 서버가 정상인지를 확인해야 하며 응용 프로그램에게는 적절한 예외처리 기능이 구현되어 있어야 .. 2023. 2. 4.
[티베로] 세션 목록 확인하고 세션 강제 종료하기 세션 목록을 확인하고 강제로 세션을 끊어야 하는 상황이 종종 생긴다. 나의 경우 티맥스 티베로(Tmax Tibero) 또는 데이터베이스 서버의 운영체제나 하드웨어 자체에 문제가 생겨서 백엔드(Back-End) 쪽 프로그램과 연결이 끊어진 경우를 테스트할 때 세션 강제 종료를 한다. 세션 목록 조회 세션 목록을 조회하는 쿼리(Query)는 아래와 같다. 이 쿼리를 실행하면 아래의 사진처럼 결과가 나타난다. SELECT * FROM V$SESSION 세션 강제 종료 아래의 쿼리를 실행하면 특정 세션이 종료된다. 종료할 세션을 특정하기 위한 파라미터로 'SID'와 'SERIAL#'을 받는데 세션 목록에서 확인가능하다. ALTER SYSTEM kill SESSION(SID, SERIAL#); 2023. 2. 3.
[티베로/SQL] UPPER 대문자로 변환, LOWER 소문자로 변환 값을 대문자나 소문자로 변환해야 하는 경우가 있다. 이 경우 티베로에서는 UPPER 함수와 LOWER 함수로 대소문자 변환이 가능하다 대문자로 변환 아래의 쿼리(Query)처럼 UPPER 함수를 사용하면 대문자로 문자열을 변환할 수 있다. UPPER(문자열) SELECT UPPER('aBcDe12345') FROM dual; 소문자로 변환 아래의 쿼리처럼 LOWER 함수를 사용하면 소문자로 문자열을 변환할 수 있다. LOWER(문자열) SELECT LOWER('aBcDe12345') FROM dual; 참고문서 "4.2.182. UPPER", Tibero 6, Tibero SQL 참조 안내서, 티맥스데이터, 2020년 8월 21일. @원문보기 "4.2.80. LOWER", Tibero 6, Tibero .. 2023. 1. 27.
[티베로] SQLGate for Tibero Developer 6개월 사용 후기 티베로를 GUI(Graphical User Interface)로 제어하는 도구가 여러가지 있겠지만 나는 그 중에서 최근에 SQLGate for Tibero를 몇달 써봤다. 무료 라이센스로 사용한거라 제약이 있었지만 꽤 사용하기 편했다. 당장 무료로 사용가능한 도구를 사용해야 했기에 지금까지 써보지 않았던 SQLGate를 써봤는데 쓸만 했다. 웨어밸리 사의 오렌지라는 도구 위주로 썼었던 나에게는 조금 불편한 것도 있었지만 이제 나에게 SQLGate는 다음에 예산이 생겨서 유료 라이센스 구매가 가능할 때 긍정적으로 도입을 검토할 수 있는 도구이다. 2023. 1. 23.
[티베로] LPAD, RPAD - 부족한 문자열 길이를 특정 문자로 채우거나 특정 길이를 넘는 문자열을 자르기 입력된 값을 보고 원하는 형식으로 바꿔줘야 하는 경우가 있다. 특히, 문자열 길이를 맞춰야 하는데 부족한 길이에 해당하는 영역을 특정 문자로 채우는 함수로 티베로에서는 LPAD 함수와 RPAD 함수를 제공한다. 1. RPAD 함수 RPAD 함수를 쓰면 지정한 길이로 문자열을 자르고 부족하면 오른쪽부터 채운다. 문법은 아래와 같다. RPAD(문자열, 길이, 문자) 2. RPAD 함수 예제 아래와 같이 RPAD 함수를 사용할 수 있다. 2-1. 지정한 길이보다 입력값이 긴 경우 SELECT RPAD('20230117010101000', 14, '0') FROM dual 2-2. 지정한 길이보다 입력값이 짧은 경우 SELECT RPAD('20230117', 14, '0') FROM dual 3. LPAD 함수.. 2023. 1. 18.
[티베로] 'TBR-8027: Column name is ambiguous' 해결 방법 오류 발생 이유 쿼리(Query)를 작성하다보면 'TBR-8027: Column name is ambiguous'를 만날 때가 있다. 이 경우는 조인(Join) 등의 이유로 컬럼(Column)의 명칭이 중복되는 경우에 발생한다. 오류 예시 아래의 쿼리 처럼 A 테이블과 B 테이블을 가게명(STORE_NAME)으로 조인할 때 A 테이블의 가게명과 B 테이블의 가게명이 존재하게 되므로 명시적으로 어느 테이블의 가게명을 사용할 것인지를 지정해야 한다. SELECT STORE_NAME, STORE_SALES, PRODUCT_PRICE FROM (SELECT 'APPLE' AS STORE_NAME, '100' AS STORE_SALES FROM dual) A LEFT JOIN (SELECT 'APPLE' AS S.. 2023. 1. 16.
[MySQL] 3306 포트를 사용 중인 프로그램을 종료하는 방법 MySQL을 설치할 때 3306 포트를 사용하도록 설정했는데 나중에 MySQL을 실행하려고 보니 해당 포트가 이미 사용 중이어서 사용이 되지 않을 때 해결하는 방법을 안내한다. 동영상 설명 3306 포트를 사용 중인 프로그램을 종료하는 방법 해당 포트를 사용 중인 프로그램 확인 아래의 명령어를 입력하여 해당 포트를 사용 중인 프로그램을 확인한다. 제일 오른쪽에 나타난 PID 번호를 기억해둔다. netstat -ano | findstr 포트번호 아래의 명령어를 입력하여 해당 PID의 프로그램을 확인한다. tasklist | findstr PID번호 해당 프로그램 종료 프로그램을 종료하면 해당 포트가 비어지기 때문에 설치한 MySQL을 실행할 수 있다. 대게 3306 포트의 경우 서비스 프로그램에 가서 My.. 2023. 1. 10.
[오라클/티베로] 특정 범위의 숫자 생성 일을 하다보면 SQL 만으로 특정 범위의 숫자를 생성해야 할 때가 있다. 그 경우에 활용 가능한 방법은 아래와 같다. 특정 숫자 이하의 일련의 수를 생성하는 쿼리 먼저 설명하는 방법은 ROWNUM 또는 LEVEL을 활용하는 방법인데 오라클에서 제공하는 CONNECT BY 문을 활용한다. 아래와 같은 형식으로 쿼리(Query, 질의어)를 작성한다. SELECT ROWNUM FROM DUAL CONNECT BY ROWNUM 2023. 1. 4.
[MariaDB] HeidiSQL로 CSV로 저장한 데이터를 불러오는 방법 1. CSV 파일은 무엇인가? 다양한 분야에서 많이 활용하는 파일형식으로 CSV(Comma-Separated Values)가 있다. 간단한 구조이고 라이센스 프로그램에서 주로 데이터를 다른 형식으로 저장할 때 흔히 지원하는 파일 구조이다. 서로 다른 프로그램에서 공통적으로 사용할 수 있는 파일 형식이기에 자료를 공유할 때 흔히 CSV로 주고 받는다. 2. HeidiSQL로 CSV을 MariaDB에 입력하는 방법 CSV 파일의 정보를 읽어서 MariaDB에 입력하는 기능을 HeidiSQL은 지원한다. CSV 파일을 읽을 때 사용할 옵션도 충분히 제공하기에 CSV 파일을 가공할 필요가 없어서 편리하다. 사용하는 방법은 아래와 같다. 2.1. CSV 파일 가져오기 활성화 HeidiSQL을 실행하여 '도구' -.. 2022. 12. 2.