Oracle3 『DataBase』 Oracle SQL & MyBatis Mapper 부먹 복잡한 결재 시스템을 구축한다고 가정하고, Oracle SQL과 MyBatis Mapper를 조합해서 다양한 쿼리들을 구현해 보자.간단한 예제 쿼리로는 복잡한 비즈니스 로직이 녹아있는 실무의 쿼리를 이해할 수 없기에 조금 복잡한 내용들을 다루어 보려고 한다. 우선 쿼리를 작성하려면 테이블이 존재해야 되기 때문에 아래와 같이 4개의 예제 테이블을 정의하겠다. 하나의 사용자는 여러 결재 요청을 생성할 수 있어 둘 사이에는 1대 N(One-to-Many) 관계가 성립한다. 동시에 결재 단계 테이블을 매개로 하나의 결재 요청은 여러 사용자에게 결재를 받을 수 있고, 한 사용자도 여러 결재 요청의 승인자가 될 수 있어 결재 단계와 사용자 사이에는 N대 N(Many-to-Many) 관계가 성립한다. 또한 사용.. 2024. 12. 22. 『DataBase』 Oracle SQL 중급 문법 Oracle SQL 기초 문법에 이어서 Oracle 중급 문법을 살펴보자.기초 문법에서 Oracle에서 제공해 주는 기본적인 내장 함수들 몇 개를 살펴봤다. 중급 문법에서는 실질적으로 실무에서 자주 사용하는 문법에 대해 알아보자. GROUP BY GROUP BY 절은 쿼리 결과를 지정한 표현식(expression)에 따라 그룹으로 묶어 집계 작업을 수행할 때 사용한다. 각 그룹에 대해 하나의 행을 반환하며 집계 함수와 함께 사용하여 그룹별 통계 값을 얻을 수 있다. department_id별로 그룹화한 후 HAVING 절을 사용하여 평균 급여가 5000 이상 인 부서만 선택한다. GROUP BY 확장 기능 Oracle SQL은 그룹화 및 집계 작업을 더욱 유연하게 수행할 수 있도록 ROLLUP,.. 2024. 11. 18. 『DataBase』 Oracle SQL 기초 문법 MySQL, MariaDB만 사용해 왔는데 어쩌다 보니 Oracle을 사용하게 되었다.다음에 진행할 프로젝트에서 ORM을 사용할지 Mapper를 사용할지 결정된 게 없기 때문에 우선 Oracle 기초 문법부터 살펴보자. SELECT문과 별칭 사용DISTINCT 키워드를 사용하여 조회 결과에서 중복된 행을 제거할 수 있다.AS 키워드를 사용하여 열이나 테이블에 별칭을 지정할 수 있다. 날짜 함수NEXT_DAY(date, char): 주어진 날짜 이후의 다음 특정 요일의 날짜를 반환한다.ADD_MONTHS(date, n): 주어진 날짜에 n개월을 더하거나 뺀다.MONTHS_BETWEEN(date1, date2): 두 날짜 사이의 개월 수를 계산한다. 조건문(CASE) 사용 CASE 문은 SQL에서 조건.. 2024. 11. 18. 이전 1 다음