본문 바로가기

DATABASE14

PostgreSQL COALESCE 함수 NULL 값 대체하는 방법과 활용 예시 PostgreSQL에서 COALESCE 함수는 NULL 값을 대체할 수 있는 값들 중에서 첫 번째로 나타나는 값을 반환하는 함수입니다. 이 함수는 인자로 받는 값들 중에서 NULL이 아닌 값이 존재하면, 첫 번째로 나타나는 NULL이 아닌 값을 반환하며, 모든 값이 NULL이면 NULL 값을 반환합니다. COALESCE 함수의 사용 방법은 다음과 같습니다. COALESCE(value1, value2, value3, ...) value1, value2, value3, ...은 체크할 값들을 의미합니다. 이 함수는 첫 번째 값부터 순서대로 체크하며, NULL이 아닌 값을 만나면 그 값을 반환합니다. 만약 모든 값이 NULL이면 NULL 값을 반환합니다. 예를 들어, 다음과 같이 COALESCE 함수를 사용할.. 2023. 4. 14.
인덱스 생성 Lock Wait 최소화 하기 - Postgres 큰 테이블에 인덱스 생성하기 무서워요. 작은 테이블이라고 하더라도 사용 중인 시스템에 뭔가 해야 한다는 것이 무서운 일인데요. 그래도 해야 하는 일은 언제나 발생합니다. 해야 한다면 Lock을 최소화하면서 작업하고 싶은데요. Postgres에서는 인덱스 생성작업에서 Lock을 최소화할 수 있는 옵션을 제공하고 있어요. 옵션 이름하여 Concurrently입니다. 보통 인덱스 생성하는 방법은 DB 대부분 비슷해요. create index 인덱스명 on 테이블명(컬럼1, 컬럼2) 이렇게 만들면 해당 테이블을 사용하는 작업들이 멈출 수 있어요. 서비스 장애로까지 이어질 수 있습니다. 오라클에서는 online을 제공하고 mysql에서는 lock=none과 같은 옵션을 제공해주고 있어요. 일반적인 인덱스 생성 구.. 2023. 3. 28.
MySQL 캐릭터셋 확인 COLLATION CHARACTER SET mysql 캐릭터 셋이 궁금한 경우 확인하는 방법입니다. 요즘에는 대부분 utf8mb4를 사용하고 있는데요. 새로운 mysql 서버에 접속했을 때 궁금할 수 있어요. 쿼리로 확인할 수 있는 방법입니다. 데이터베이스 문자셋 캐릭터셋 확인 select SCHEMA_NAME,default_character_set_name FROM information_schema.SCHEMATA; +--------------------+----------------------------+ | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | +--------------------+----------------------------+ | information_schema | utf8mb3 | | pe.. 2023. 3. 28.
mysql DB docker 로 빠르게 테스트 해보기 개발하면서 데이터베이스가 아주 잠지 필요한 경우가 있어요. 테스트만 잠깐 해보고 지우면 그만인 경우 도커를 이용해서 테스트하면 정말 좋아요. 요즘 postgres를 주로 사용하다가 mysql에서 테스트할 일이 있어서 서버를 직접 설치할까 고민하다가 그냥 도커로 했어요. 지우기도 깔끔하고 좋네요. 도커 아직 없다면 이전 글을 참고해서 설치하세요. https://tolovefeels.tistory.com/entry/UBUNTU-Docker-Install 도커 실행 mysql 도커 이미지를 다운로드하여서 실행하는 명령어를 실행하세요. name 옵션으로 원하는 이름으로 지정하세요. 저는 mysql이라고 지정했습니다. 설치하면서 root 암호를 MYSQL_ROOT_PASSWORD 변수 설정으로 지정하세요. 또한 .. 2023. 3. 28.
오라클 12c 오라클 리눅스 7에 설치하기 오라클 데이터베이스 12c에서 공식적으로는 오라클 리눅스 7까지만 지원합니다. 오라클 리눅스 8로 넘어가면서 오라클 데이터베이스 19c를 설치해서 사용해야 합니다. 공식적이지는 않지만 오라클 리눅스 8에 오라클 데이터베이스 12c를 설치하는 방법은 이 문서를 참조해부세요. 아래 내용은 오라클 12c를 오라클 리눅스 7에 설치하는 방법입니다. 처음 오라클 계정으로 접속하세요. oracle 계정은 없는 것이 오류 없이 설치됩니다. 가장 먼저 호스트명을 설정 하세요. localhost가 아닌 다른 것으로 설정하는 것이 좋습니다. vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localho.. 2023. 1. 13.
오라클 리눅스8에서 oracle 12c 설치하기 오라클 리눅스 8에 오라클 12c 설치하는 과정 남겨요. 주로 오라클 리눅스 7을 사용했었는데 기간이 얼마 남지 않아 곧 오라클 리눅스 8로 넘어갈 필요가 있어 보여서 테스트 먼저 해볼 필요가 있어요. 오라클 설치 방법 문서는 이전 문서를 참고하세요. 오라클 데이터베이스를 다운로드 받는데 시간이 걸려요. 미리 다운로드하여 놓으세요. 다운로드 관련 문서 링크입니다. /etc/hosts 파일을 열어서 가장 마지막에 hostname에 맞는 아이피 정보를 추가했습니다. 일단 처음에는 root 계정에서 작업합니다. vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localho.. 2023. 1. 10.
oracle 12c 다운로드받기 오라클 데이터베이스 이전 버전 다운로드하는 방법입니다. 지금은 최신 버전 다운로드하는 방법이 더 쉽긴 하지만 아직까지 예전 버전을 사용하고 있는 경우도 많으니까요. 요즘 오라클 데이터베이스가 21c까지도 나온 상황에라서 oracle.com에서는 오라클 12c를 다운로드할 수 없고 오라클의 edelivery라는 곳에서 받아야 합니다. 오라클 아이디 있어야 합니다. 없다면 이번 기회에 가입해놓으세요. Oracle Database 12c를 검색해서 DLP: Oracle Database 12c Enterprise Edition 12.2.0.1을 선택해서 다운로드하세요. 클릭하면 반응이 없는 것처럼 보일 수 있는데요. 오른쪽 위에 보면 View Items / Continue 부분이 있어요. 거기서 Continue.. 2023. 1. 10.
PostgreSQL 사용자 삭제 하기 PostgreSQL에서 유저 삭제하려고 할 때 권한이 부여되어 있어도 삭제가 안되더라고요 강제로 삭제 하려면 아래 명령어를 사용하면 됩니다. 그냥 삭제하려면 drop user 삭제하려는 이름을 넣어서 삭제하면 되는데요 SQL Error [2BP01]: 오류: 기타 다른 개체들이 이 롤에 의존하고 있어, "username" 롤을 삭제할 수 없음 Detail: "땡땡 데이터베이스"에 대한 권한 "땡땡 스키마"에 대한 권한 이런 오류가 날 수 있어요 강제로 삭제할 수 있어요 DROP OWNED BY username; DROP USER username; 이렇게 하면 오류 무시하고 삭제 할 수 있어요 2021. 11. 17.
반응형