본문 바로가기

개발 이야기/RDBMS5

Mysql을 Docker compose로 띄우기 Docker가 이미 설치되었다고 가정하고 Docker Compose를 통해 Mysql를 띄우는 방법을 소개합니다. 1. mysql.conf 파일 # Mysql-specific config file. # Read by /etc/mysql/my.cnf [client] # Default is Latin1, if you need UTF-8 set this (also in server section) #default-character-set = utf8 default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] # # * Character sets # # Default is Latin1, if you need UTF-8 set .. 2024. 1. 7.
MSSQL을 Docker Compose로 띄우기 MSSQL(SQL server)를 docker compose로 띄우는 방법!! (ms공식 문서에는 docker로 띄눈 방법은 있지만 yml파일을 활용한 방법은 없어서 정리해봅니다._.) docker, docker-compose는 미리 설치가 되어있어야합니다. 01. Docker Image 다운받기 docker pull mcr.microsoft.com/mssql/server:2019-latest 위와 같이 docker pull을 사용해 mssql docker image를 다운 받습니다. 02. docker-compose.yml 작성 version: '3.7' services: sqlserver: image: mcr.microsoft.com/mssql/server:2019-latest user: root c.. 2021. 7. 3.
Oracle_HINT, USE HASH로 성능 끌어올리기 얼마전 속도가 오래 걸리는 쿼리 튜닝 요청을 받고, 메뉴얼데로 튜닝해서 돌려봤는데 엄청난 속도차이를 경험했다. 아래 코드는 예시로 학과를 조회하는데 학과별로 학생수와 학과시험에서 50점 이하인 학생 수를 함께 조회하는 쿼리를 예로 들어보자. 12345678910111213SELECT A.DEPTID , A.DEPTNAME , (SELECT COUNT(*) FROM tSTUDENT -- 학생테이블 WHERE DEPTID = A.DEPTID ) AS TOTALCNT -- 학과학생수 , (SELECT COUNT(*) FROM tSTUDENT TS -- 학생테이블 INNER JOIN vTESTRESULT VT ON VT.STUDENTID = TS.STUDENTID AND VT.SCORE C로 읽어 드린다는 것을.. 2018. 5. 25.
Oracle_Column type 변경 시, 이미 데이터가 있을 때 어떻게? TBLSTUDENT 테이블의 SCORE를 varchar2(기존)에서 number(최신)으로 바꾸려고 할때, 이미 데이터가 있는 경우 변경이 불가능하다. 이때 꼼수로 아래와 같이 변경이 가능하다. 123456ALTER TABLE TBLSTUDENT ADD( SCORE_TEMP NUMBER(10,1)); -- 임시 컬럼 추가 (NUMBER(10,1)타입은 숫자형 소수점 1자리 허용)UPDATE TBLSTUDENT SET SCORE_TEMP = SCORE ; -- 임시 컬럼에 기존 값들 복사ALTER TABLE TBLSTUDENT DROP(SCORE); -- 기존 컬럼 삭제ALTER TABLE TBLSTUDENT RENAME COLUMN SCORE_TEMP TO SCORE; -- 임시컬럼 이름 변경COMMEN.. 2018. 5. 25.
Oracle_LISTAGG함수, 여러 데이터를 한 Row에 표현 어떤 그룹리스트를 화면에 뿌리는데 해당 그룹에 하위 아이템들을 동시에 뽑아 내야할 때 Oracle의 LISTAGG함수를 사용하면 된다.(Oracle 11g부터 지원되고, 이전버전에서는 WM_CONCAT이 있다.) 사용법은 아래와 같다.123456SELECT deptname , (SELECT LISTAGG(empname,',') WITHIN GROUP (ORDER BY empname) FROM tEMP WHERE deptcd = A.deptcd) AS empnames FROM tDEPT A Colored by Color Scriptercs 위와 같이 쓰면 부서 리스트를 뽑아오는데, 동시에 해당부서의 사원들을 ,로 구분해서 쭈욱~ 뽑을 수 있다. 2018. 5. 25.