로운's 기술노트

[2주차] 프로그래밍 기초 주차 (2/5) 본문

내배캠_데이터분석가_'24.04~08/회고

[2주차] 프로그래밍 기초 주차 (2/5)

로운's 2024. 4. 23. 22:36
ㅇ 오늘 목표 : SQL코드카타 3문제 + 세션 및 과제 + 생활코딩 DB 1, 2강   >  완료 !!

 

 

오늘 진행했던 프로그래머스 문제 중에 문제 정답이 무려 '4가지'나 있더라

풀이가 아니라, 인정되는 정답 기준으로..

2024.04.23 - [내일배움캠프_데이터분석가/SQL] - [프로그래머스] 그룹별 조건에 맞는 식당 목록 출력하기

 

- 1시간 이상 충분히 고민하고 쿼리작성

- 다른 사람 풀이 파헤치기(내 쿼리와의 차이까지)

- 튜터님과의 면담

- GPT와의 시간들

- 중간중간 텀을 두고 돌아와서 재고민 등

다양한 방법을 사용해서 도합 3시 간정도만에 알아낸 사실이다.

 

덕분에 다양한 쿼리를 보고 사용방법도 알게 되었다.

특히 과제를 하다가 알게 된 'where절에는 집계함수 사용이 불가하다'를 포함하여

오늘 새롭게 알거나 사용하게 된 것이 몇 가지 있다.

 

 

1. like 검색을 한 번에 여러 개 해주는 연산자 'regexp'

   이메일, 비밀번호 등 특수문자 판별할 때, 주로 사용된다.

사용방법 : where 컬럼명 regexp 정규식


   ㅇ 정규식
      . : 문자 하나
      * : 앞 글자의 *개수 숫자 이상 반복
      ^ : 첫 값
      $ : 끝값
      [.] : 괄호 안의 문자열 일치 확인
      {.} : 반복
      | : or 
         ※ 이 외에도 더 많은 정규표현식이 있으니 필요할 시, 검색!

 

 

2. 테이블을 결합하는 두 번째 방법 'UNION'

   몇 번 보긴 했지만, 테이블 결합에 큰 불편함이 없어 JOIN만 사용하다가 오늘 처음으로 사용하게 되었다.

   2가지 종류가 있는데, 간단하게 설명하면 UNION은 중복을 제거하고 UNION ALL은 중복을 제거하지 않은 테이블

   결합을 의미한다. 특히 2종류 중 하나라도 사용하려면 각 테이블의 동일한 열 순서와 데이터 유형이 선행되어야 한다.

 

 

3. 공통 테이블 표현식 (CTE, Common Table Expression)

일명 with절로 '임시쿼리', 즉 '서브쿼리'와 유사하다고 생각하면 편할 듯하다.

그러나 극명한 차이가 있는데, 서브쿼리처럼 메인쿼리 안에 작성되는 것이 아니기 때문에 가독성이 좋고 재사용이 용이하다는 장점이 있다.

반대로 CTE를 무분별하게 사용할 경우엔 오히려 가독성이 저하되고 성능 문제가 발생할 수 있다.

 

< with절 용법 >

WITH
    cte1 AS (
        -- 첫 번째 CTE 쿼리
    ),
    cte2 AS (
        -- 두 번째 CTE 쿼리
    ),
    cte3 AS (
        -- 세 번째 CTE 쿼리
    )
-- 메인 쿼리

 

다음은 금일 학습법 세션에서 발췌한 내용이다

- 출처 : 최창식 님  (3) 올리기 | LinkedIn

 ㅇ 내일 목표 : 데이터 리터러시 수강 + 세션 및 과제 + 생활코딩 DB 3, 4강 

 

Comments