전체 글(205)
-
[사전캠프] TIL 작성 - 24.08.14(수)
1. 학습 'SQL' 에서 데이터를 연산하는 방법과 'GROUP BY', 'ORDER BY' 문에 대해 학습하였다. 이전에 'Spring Data JPA + QueryDSL' 조합을 사용해본 구문이어서 별탈 없이 쉽게 적응해 쿼리를 작성할 수 있었다. 추가적으로 SQL 코드카타 문제를 풀면서 이번에 학습한걸 활용해 볼 수 있어 좀 더 자신감이 붙어 만족스러운 학습이었다 생각한다. 2. 과제 오늘은 강의를 통한 학습 후, 개인과제 보다 알고리즘 및 SQL 을 더 풀고 제출하였다. 별다른 이유는 없고 오늘 배운 SQL 을 잊어버리기 전에 문제풀이를 통해 숙달하고 싶었기 때문이다. 많은 문제를 푼 것은 아니었지만 단 한 문제가 내 발목을 잡았다. 아직 강의에서 배우지 않았거나 강의 내용에 없는 부분이라 판단..
2024.08.14 -
[SQL] 카테고리별 필터링 - HAVING
이전에 배운 집계함수(SUM, AVG, COUNT 등)는 'WHERE' 문과 사용할 수 없기에, 'SELECT' 문과 함께 사용하였다. 그러면 'GROUP BY' 를 통해 그룹화(카테고리화)된 데이터에 그룹별로 조건을 적용해 결과를 얻는 방법은 없을까? 질문에 대한 해답을 찾기 위해 검색을 해보니 'HAVING' 이란 것이 있었고 의문을 해소 할 수 있었다. '아 이런게 있구나' 하고 넘기기엔 아쉬워 좀 더 알아보고 이렇게 게시글에 내용을 정리하게 되었다. 1. 기본 문법SELECT 그룹화 컬럼명, 집계함수(컬럼명) 별명FROM 테이블명GROUP BY 그룹화 컬럼명HAVING 집계함수(컬럼명) 조건식 기본적으로 'HAVING' 은 'WHERE' 과 같이 데이터를 필터링하는 조건절의 역할을 한다. 하지만..
2024.08.14 -
[SQL] 데이터 정렬 - ORDER BY
지금까지 출력된 결과 데이터를 보면 아마 데이터가 DB 에 저장된 순서로 출력 되었을 것이다. 하지만 실무에서는 필요에 따라 특정 조건 순서에 따라 출력된 결과를 보는 것이 업무에 더 효율적인 경우가 더러 있을 것이다. 이번에는 출력 결과를 Query 작성자가 원하는 순서대로 출력하는 방법에 대해 알아보자. 1. 기본 문법SELECT 컬럼명FROM 테이블명ORDER BY 정렬 대상 컬럼명 ASC // 'ASC' 는 생략 가능 'ORDER BY' 문에는 정렬을 원하는 컬럼명을 작성하면 된다. 'ASC' 는오름차순(점점 값이 커지는 순서)을 의미하며 생략이 가능하다(아마 기본 값이 'ASC' 인 것 같다). 반대 개념의 내림차순(점점 값이 작아지는 순서)은 'DESC' 를 사용하면 된다 2. 사용 예시2-..
2024.08.14 -
[SQL] 카테고리별 연산 - GROUP BY
지금까지 학습한 내용으로 음식점의 음식 종류(한식, 일식 등) 별로 음식 가격의 평균을 구하면 어떨까?SELECT cuisine_type, AVG(price)FROM food_ordersWHERE cuisine_type = 'Korean' 이런식의 쿼리를 'cuisine_type' 값의 가짓수 만큼 반복해야 할 것 이다. 이는 너무 비효율적인 작업이 될 것 이다. 개발자는 어떻게든 최소한의 쿼리로 원하는 결과를 얻기 위해 노력해야 하므로 우리는 'GROUP BY' 를 알아야 한다. 1. 기본 문법SELECT 카테고리화 할 컬럼명, 집계함수(계산 대상 컬럼명)FROM 테이블명GROUP BY 카테고리화 할 컬럼명 위에서 든 예시처럼 음식 종류마다 가격 평균을 구한다고 하면, '카테고리화 할 컬럼명' 에는 '..
2024.08.14 -
[SQL] 데이터 계산 - SUM, AVG, COUNT, MIN, MAX
데이터를 다루다 보면 특정 속성의 합계, 평균, 개수, 최소, 최대 등에 대한 계산이 필요로 하는 경우가 많을 것이다. 이번에는 계산에 관한 내용을 알아보자. 1. 기본 문법 'SELECT, FROM' 구문을 사용하므로 기본 문법은 해당 게시글을 참고하도록 하자. 2. 사용 예시2-1. ' + ', ' - ', ' / ', ' * ' 'food_orders' 테이블의 'food_preparation_time(조리 시간)' 과 'delivery_time(배송 시간)' 을 조회해 고객이 음식을 배달 받기까지 걸린 'time_taken(소요 시간)' 을 구해 출력해보자.SELECT food_preparation_time, delivery_time, food_preparation..
2024.08.14 -
[사전캠프] 랜덤 닉네임 생성기
문제 : 랜덤한 닉네임을 생성하는 코드를 작성해보세요.조건 : 사용자는 최소 27가지 이상의 닉네임 중 하나를 랜덤으로 출력할 수 있다.package generator;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Random;/** * 사용자는 최소 27가지 이상의 닉네임 중 하나를 랜점으로 출력 할 수 있다. * 사용 가능한 키워드는 {기절초풍, 멋있는, 재미있는}, {도전적인, 노란색의, 바보같은}, {돌고래, 개발자, 오랑우탄} 이다. * 키워드 그룹에서 하나씩 키워드를 랜덤하게 선택해 닉네임을 생성하고 출력한다. */public class Main { public static ..
2024.08.13