주니어 기초 코딩공부/Database 기초 37

[MySQL] With절 이란? select 말고 with으로 시작하는 구문? CTE

안녕하세요~ jju_developer 입니다. 비가 많이 오는데 건강 유의 하시길 바라며, 오늘도 어김 없이 퇴근 후 복습을 하러 돌아왔습니다. 근무하다가 복잡하고 중복되는 select 문을 만들어야 하는 부분이 있었습니다. 이에 가독성과 유지보수를 쉽게 하기 위해서 with절을 사용하게 되었습니다. CTE란? Common Table Expressions CTE는 쿼리 내에서 일시적으로 사용할 수 있는 이름 있는 결과 집합입니다.  즉, 일시적으로만 사용한다가 키 포인트 입니다! 복잡한 쿼리를 분해하고 재사용 가능하게 만드는 데 도움을 줍니다.  평소 서브쿼리가 복잡하게 있는 쿼리는 가독성도 떨어져서 with 절을 알아보고 적용하게 되었습니다. 꼬리에 꼬리를 물어 해결하고자 하는 의지!지금부터 시작합니다..

spring boot mysql -> mariadb로 연동시 났던 오류 모음집

안녕하세요 jju_developer입니다. 오늘은 mysql에서 mariadb로 연동시 났던 오류들을 총정리해보겠습니다~! [지난시간 내용 확인] [MariaDB] 데이터베이스 MYSQL에서 MariaDB로 연동하기 안녕하세요 jju_developer 입니다. 오늘은 기존 mysql을 사용하다가 maria db로 연동을 해야하는 일이 생겨서 해당 부분을 기록하려고 합니다. 우선 mysql에 있는 모든 테이블과 정보들을 덤프로 떠서 그 jju240.tistory.com [스프링] Tomcat MariaDB 연동 안녕하세요 jju_developer 입니다. 지난시간에 mysql에서 maria 디비로 연동하는 방법에 대해 알아보았습니다. 데이터베이스 MYSQL에서 MariaDB로 연동하기 안녕하세요 jju_d..

[스프링] Tomcat MariaDB 연동

안녕하세요 jju_developer 입니다. 지난시간에 mysql에서 maria 디비로 연동하는 방법에 대해 알아보았습니다. 데이터베이스 MYSQL에서 MariaDB로 연동하기 안녕하세요 jju_developer 입니다. 오늘은 기존 mysql을 사용하다가 maria db로 연동을 해야하는 일이 생겨서 해당 부분을 기록하려고 합니다. 우선 mysql에 있는 모든 테이블과 정보들을 덤프로 떠서 그 jju240.tistory.com 본 게시물은 톰캣, 마리아 디비가 설치되어 있는 환경에서 시작됩니다. 우리가 서버를 돌릴때 톰캣 설정을 해주었는데 설치된 곳에 들어가보면 D:\tomcat\apache-tomcat-9.0.30_jju\conf 여기 폴더에 들어가줍니다. 그러면 이렇게 server.xml이 있습니다..

[MariaDB] 데이터베이스 MYSQL에서 MariaDB로 연동 덤프 뜨기

안녕하세요 jju_developer 입니다. 오늘은 기존 mysql을 사용하다가 maria db로 연동을 해야하는 일이 생겨서 해당 부분을 기록하려고 합니다. 우선 mysql에 있는 모든 테이블과 정보들을 덤프로 떠서 그대로 마리아디비로 이관하는 작업 내용을 공유드립니다. 윈도우 찾기에서 mysql 클라이언트에 들어갔습니다. 그후 cmd로 하는것이 편해서 root 비밀번호를 먼저 생성해준후 데이터베이스명이랑 아이디를 생성하였습니다. 그후 사용자의 권한도 줬습니다. (모든 권한 부여) GRANT ALL PRIVILEGES ON 데이터베이스명.* TO '아이디'@'%'; 다 하고 나서 FLUSH PRIVILEGES; 도 해주면 깔끔하게 됩니다. 그다음 해당 계정으로 로그인을 하고 mysql workbench..

[MYSQL] 일정 시간단위로 데이터 가져오는 방법 (하루, 한시간, 한달)

안녕하세요 jju_developer 입니다. 백엔드 엔지니어로 코딩을 하다보면 데이터베이스를 다룰 일이 정말 많은데용! 하면 할수록 자바로 코딩을 해야할지 아니면 쿼리에서 데이터를 뽑아올지 참 고민이 많이 되는 시점입니다...! 아무튼 오늘은 특정 데이터들의 무리속에서 내가 원하는 날짜의 데이터를 뽑아오는 방법에 대해 알아보겠습니다. 과일가게 table 이라는 이름의 데이터베이스가 있다고 가정을 해보겠습니다. 해당 과일가게 테이블의 컬럼에는 사용자이름 과 사과바구니, 구매일이 있다고 가정을 해보겠습니다. 이때 오늘날짜의 구매한 사과 바구니의 총 개수를 구하고 싶을때에는 어떻게 할까요? select count(사과바구니) from 과일가게 where 사용자이름 = 'jju' and 구매일 >= DATE_F..

내 로컬 데이터베이스를 다른 사용자가 접근 할 수 있도록 변경하기

안녕하세요 jju_developer 입니다. 프로젝트를 설정하다보면 우선, 한명이 기본 틀을 만들어 놓고 gitHub에 푸시를 하는 경우가 있는데요, 이때, 내가 로컬 db를 설정하고 상대방이 나의 ip 주소의 db 에 접근을 허락하도록 하는 방법에 대해 알아보겠습니다. GRANT ALL PRIVILEGES ON *.* TO '아이디'@'%' IDENTIFIED BY '패스워드'; 제가 이번에 사용한 툴은 디비버를 활용했습니다. 저의 로컬 db 설정을 마치고 계정으로 로그인을 하고 스크립트에 내 계정 아이디와 비밀번호를 입력해주시고 엔터를 누르시면, 저의 아이피 주소를 아는 사람이 application.properties에 설정을 하면 됩니다...! spring.datasource.hikari.drive..

[MySQL] GROUP_CONCAT 사용하기

여러개의 데이터를 한줄로 보여주고 싶을때 사용. java나 자바스크립트에서 바로 for 문을 돌며 문자열을 붙여도 되긴 하지만! 개발자라면 항상 여러 상황에서 생각을 해보기 때문에 이번에는!!! Select 쿼리를 던질때 결과값으로 합쳐져 있는 문자열을 받는 GROUP_CONCAT을 사용해보았다. 실패했다 --> 그 이유는 group_concat은 공통된 어느 하나가 있어야지 한줄로 나오는데 위에서는 모든 메뉴 아이디가 다르기 때문에 여러 메뉴 아이디가 막 나오면서 한줄로 나오지 않았다. 이럴때에는 TB_MENU 테이블에서 중복될 수 있는 어떠한 것으로 group by를 해줘야 한다. 이 테이블에서는 메뉴 레벨이 1 또는 2로만 구분이 되어있기 때문에 공통된 예시라고 생각했다. 오늘의 결론! group_..

Error Code: 2013. Lost connection to MySQL server during query

mysql 쿼리문 오류 문제 해결 쿼리문을 때릴때 마다 자꾸 타임아웃됨.. TCP 연결을 맺는 과정(3-way handshake)에서, connect_timeout 동안에도연결 패킷이 들어오지 않으면 연결이 실패(취소가 아님)되고,bad handshake 로 응답. 슬슬 열받기 전에 고쳐보자.. wait_timeout 을 따로 튜닝 1. Global 설정 mysql> set global interactive_timeout=10; mysql> set global wait_timeout=10; 2. Session 설정 mysql> set interactive_timeout=10; mysql> set wait_timeout=10; ※ 단, 위와 같은 방법은 MySQL 재시작 시 초기 값으로 돌아감 주의! My..

오라클 데이터 삭제(DELETE, TRUNCATE)

안녕하세요 jju_developer입니다. 오늘부터는 프로젝트를 진행하면서 실제로 많이 필요한 오라클 데이터를 삭제하는 쿼리문에 대해서 알아보겠습니다. 1. DELETE FROM 테이블명 WHERE 조건절; 프로젝트를 진행하다 보면, 여러 데이터들로 실험을 계속하는 작업을 하는데요. 이럴 때 너무 지저분해서 모든 데이터를 삭제하고 싶다!! 하면 Delete문을 사용하여 삭제해 줍니다. ※ Delete문 주의 사항 DELETE 명령문을 사용할 경우 WHERE 조건절을 생략하게 되면 테이블의 모든 행이 삭제됩니다. 그러므로 DELETE 명령문을 사용할 때 WHERE 조건절을 유의해야 합니다. 저는 모든 데이터를 깔끔히 삭제하고 싶어서 where 조건 없이 사용해 보겠습니다! 그런데 잠깐!!!!!!!!!!!!..