분류 전체보기(205)
-
[SQL] 테이블 합치기 - JOIN
테이블은 목적에 따라 여러 속성을 가지고 있다. 하지만 현재 필요로 하는 속성이 다른 테이블에 있는 경우가 더러 있다. 이럴 때 두 테이블의 공통 속성을 기준으로 테이블의 데이터를 합친 결과 데이터를 조회할 수 있다. 0. JOIN 의 종류 나의 경우 JOIN 에 대해 이해할 떄 위와 같은 그림을 통해 이해하였다. 그저 외우기보다 그림을 보면 각 상황에 결과 테이블이 어떻게 생성될지 생각을 반복했다. 종류가 굉장히 많아 보이지만 일단 'LEFT JOIN' 과 'RIGHT JOIN' 중에 하나만 이해하면 반대되는 개념도 쉽게 이해 가능했다(나의 경우에는 LEFT JOIN 을 기준으로 학습했다). 그림을 통해 자주 사용하는 2가지 JOIN 을 정리했다.(INNER) JOIN : 'JOIN' 또는 INNER..
2024.08.19 -
[사전캠프] TIL 작성 - 24.08.18(일)
1. 학습 오늘은 알고리즘 및 SQL 코드카타를 풀고서 SQL 강의를 마저 수강했다. 수강 내용은 'SubQuery' 에 대한 내용이었는데 개인적으로는 이전에 배운 내용에 비해 크게 흥미롭지 않았다. 그렇다고 대충한 것은 아니지만, '내가 과연 순수하게 SQL만을 다룰일이 있을까?' 라는 생각을 하면서 해당 작성법에 대한 생각을 좀 더 하게 되었다. 나의 경우 아마 DB 에 한 번의 쿼리로 원하는 데이터를 가져와 비즈니스 로직을 통해 데이터를 가공하는 과정을 많이 겪을 텐데 저렇게 Java 깊어지는 조건/반복문의 골마냥 중간에 사용하는 'SubQuery' 는 참 매력적이지 못하다는 생각을 했다. 2. 과제 4주차(화) 개인과제와 코드카타를 진행하였다. SQL 코드카타를 진행하면서 SQL 에서 날짜 및 ..
2024.08.18 -
[사전캠프] 날짜별 획득 포인트 조회하기
※ 참고 : 기존 문제가 문맥이 좀 맞지 않는다... 그래서 과제 제목에 맞추어 개인적으로 약간 손 보았다.문제 : 이용자들이 사용하는 포인트를 따라가면 얼마나 활동적인지 파악할 수 있다. 포인트가 많을 수록 활동이 많다는 의미가 되니 날짜별로 이용자의 평균 포인트를 확인해보자.조건 : 날짜별 이용자의 평균 포인트가 높은 순으로 정렬해 언제 가장 활동적이었는지 확인SELECT DATE(created_at) created_at, ROUND(AVG(point), 0) average_pointsFROM point_usersGROUP BY 1ORDER BY 2 DESC 기존 'create_id' 는 'datetime' 타입이었다. 해당 컬럼에서 'DATE' 를 사용해 날짜 정보를 가져왔고, 'ROUND' 를 통..
2024.08.18 -
[SQL] 날짜/시간 데이터 다루기 - YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, NOW, CURRENT_DATE, CURRENT_TIME
SQL 에서는 날짜 데이터를 어떻게 다룰까? 지금까지 학습을 하면서, 분명 보이는 것은 문자열 보이지만 실제로 'datetime' 타입인 경우를 많이 접할 수 있었다. 자연스레 'datetime' 에서 '원하는 값만 뽑아 쓸 수 없을까?' 라는 생각이 들었고 해당 내용을 따로 찾아 이렇게 정리하게 되었다. 날짜 및 시간 데이터를 다루는 함수들은 많지만 가장 기본적인 함수들에 대해서 다루었다. 0. 데이터 타입(자료형) 날짜 및 시간을 표현하는 데이터 타입에는 여러가지가 있지만 그 중 가장 기본적이고 보편적으로 사용하는 타입들에 대해 이야기 해보자.DATE : 날짜 정보를 갖는 타입이다. 'YYYY-MM-DD' 형식을 사용한다.TIME : 시간 정보를 갖는 타입이다. 'HH:MM:SS' 형식을 사용한다.D..
2024.08.18 -
[SQL] Query 안의 Query - SubQuery
지금까지는 SELETE 절이나 WHERE 절을 사용해 필요한 데이터만을 추리거나 필요에 따라 데이터를 가공하는 과정을 거치도록 쿼리를 작성했다. 이는 당장 작성에는 괜찮을지 몰라도 추후에 다시 보거나 다른 이가 봤을 땐 한 번에 이해하기 어렵다는 문제를 갖는다. 그래서 SQL 에는 좀 더 보기 편한 쿼리를 작성할 수 있게 'SubQuery' 라는 것이 있다. 개인적으로 학습하고 느낀점은 SQL 만을 사용해서 데이터에 접근하지 않을 나로써는 딱히 마음에 드는 방식은 아니었다. 아무튼 'SubQuery' 에 대해 알아보자. 1. 기본 문법SELECT 컬럼명3, 컬럼명4 // A QueryFROM(SELECT 컬럼명1, 컬럼명2 // B QueryFROM 테이블명) AS 별명 기본 구조를 통해 파악해보면 'A..
2024.08.18 -
[사전캠프] TIL 작성 - 24.08.17(토)
1. 학습 오늘은 사전캠프에 늦게 참여해 밀린 개인과제를 통한 학습과 이전에 강의에서 배운 SQL 을 토대로 SQL 코드카타를 진행했다(물론 알고리즘 코드카타도 진행했다). 어제 진행되었지만 미처 마저 정리하지 못한 팀 스터디에서 다룬 아티클에 대한 정리도 같이 진행하였다. 2. 과제 'Java, Spring 톺아보기' 를 통해서 자바에대해서 다시 한 번 알아보고 더불어 Spring 과 Kotlin 에 대해 알아보았다. 더욱이 Kotlin 의 경우 평소 따로 생각이 없었으니 알아보니 충분히 배울만한 언어라는 생각을 가지게 되었다. '데이터 속 김서방 찾기' 의 경우 자세한 설명이 없어서 임의로 문제를 만들어 SQL 을 작성해 문제를 해결해 보았다. SQL 코트카타와 더불어 진행하다보니 현재까지 배운 ..
2024.08.17