[내배캠/사전캠프] TIL - 4일차

euphony·2024년 11월 22일
0

내일배움캠프

목록 보기
3/66

✅오늘의 한 일

  • SQL 퀘스트 걷기반 4 ~ 6번 풀고 정리하기
  • 자바 중급 1편 강의 듣기
  • TIL 제출하기

💻오늘의 학습

SQL 퀘스트

기본적인 문법이지만 공부한지가 오래되어서 계속 까먹는 각종 함수들을 간단하게 정리했다. 퀘스트하면서 잘 안풀렸던 부분 + 관련된 추가 내용까지!

날짜 관련 함수

  1. CURRENT_DATE() / CURDATE() : 현재 날짜(YYYY-MM-DD)를 반환한다.
  2. NOW() : 현재 날짜와 시간(YYYY-MM-DD HH:MM:SS)을 반환한다.
  3. YEAR() / MONTH() / DAY() : 날짜의 연도, 월, 일을 추출한다.
  4. DATEDIFF() : 두 날짜 간의 차이를 일수로 반환한다.
  5. DATE_ADD() / DATE_SUB() : 날짜에 특정 간격을 추가하거나 뺀다.
  6. LAST_DAY() : 주어진 날짜가 속한 달의 마지막 날짜를 반환한다.
  7. STR_TO_DATE() : 문자열을 날짜로 변환한다.
  8. DATE_FORMAT() : 날짜를 특정 형식으로 변환한다.

윈도우 함수

  • 윈도우 함수 : SQL에서 그룸화 없이도 데이터 집합의 각 행에 대해 계산을 수행할 수 있는 함수. OVER() 절과 함께 사용된다.

윈도우 함수 중에서도 이번 퀘스트에서 나온 순위 관련 함수를 보자.
1. ROW_NUMBER(): 그룹 내에서 각 행에 고유한 순위를 부여한다.
2. RANK(): 동일한 값에 동일한 순위를 부여하며, 이후 순위를 건너뛴다.
3. DENSE_RANK(): 동일한 값에 동일한 순위를 부여하지만, 이후 순위를 건너뛰지 않는다.

퀘스트 중, 각 유저의 레이팅 순위를 계산하는 쿼리를 작성하는 문제가 있었다. 해당 문제에서 순위를 계산하기 위해 RANK() 함수를 사용했다. rating 순으로 내림차순 정렬 후, 순위를 매기게 된다.

  SELECT 
      id,
      name,
      region,
      rating,
      RANK() OVER (ORDER BY rating DESC) AS ranking
  FROM lol_users;

자바 강의

String

자바에서는 문자열을 더 쉽게 다룰 수 있도록 String 클래스를 제공한다. String 클래스 내부를 보면, char[]에(자바 9이후부터는 효율성을 위해 byte[]을 사용) 문자가 하나하나 보관된다. String 클래스가 없다면 char[]에 한 글자씩 저장해야 했을지도 모른다.

✔️ String 클래스의 기능(메서드)

  • length() : 문자열의 길이를 반환한다.
  • charAt(int index) : 특정 인덱스의 문자를 반환한다.
  • substring(int beginIndex, int endIndex) : 문자열의 부분 문자열을 반환한다.
  • indexOf(String str) : 특정 문자열이 시작되는 인덱스를 반환한다.
  • toLowerCase() , toUpperCase() : 문자열을 소문자 또는 대문자로 변환한다.
  • trim() : 문자열 양 끝의 공백을 제거한다.
  • concat(String str) : 문자열을 더한다.

String은 클래스, 즉 참조형이기 때문에 실제 값이 아닌 참조값(주소값)이 들어있다. 따라서 +와 같은 연산은 원칙적으로 사용할 수 없지만, 사람들이 많이 쓰기 때문에 특별히 + 연산을 제공한다.

	String a = "hello";
    String b = "cat";
    String result = a + b;

📝오늘의 회고

오늘은 팀원분들이 대부분 바쁘셔서 2명이서 끝까지 완료했다. 같은 시간이더라도 최대한 집중해서 많은 일을 하고 싶은데 쉽지가 않다. 다음 주에는 사전캠프 시간 외에도 계획한 일을 완벽히 할 수 있도록 해야겠다. 운동도 소홀해지는 요즘...정신체리고 다시 열심히 하자👊🏻

📌내일의 할 일

  • 자바 알고리즘 강의 밀린 것 듣기
  • 자바 스터디 발표

0개의 댓글

관련 채용 정보