공부/패스트 캠퍼스 챌린지

코딩테스트 - 패스트캠퍼스 챌린지 40일차

kNOwAnswer 2022. 3. 4. 08:52

수강한 강의

Part 4. SQL

Chapter 01. 오리엔테이션
- 강의 목적 및 소개
Chapter 02. 문법 설명
- 기본 검색 및 정렬 (Select, Where, Order by 절)

학습 후기

알고리즘 강의 후 모의 테스트 강의가 있었는데 모의 테스트는 주말에 시간을 내서 한번 풀어보려고 SQL 강의로 넘어왔다. 간혹 코딩 테스트에서 SQL 문제를 내는 곳도 있는데 이번 강의를 통해서 기본적인 SQL 코딩 테스트 준비는 마칠 수 있어서 좋을 거 같다. 해당 강의는 샘플데이터가 주어지고 Postgresql 9.6, DBeaver Community를 사용하여 강의를 진행한다.

 

문법 설명

SQL 문제 풀이 실습을 위해서 기본적으로 알고 있어야 하는 문법을 설명해 준다.

1. 기본 검색 및 정렬

2. 그룹제어

3. 분기분

4. 집합 연산

기본적인 문법들의 사용방법을 익힘으로써 좀 더 쉽게 문제를 풀 수 있도록 구성되어있다.

 

1. 기본 검색 및 정렬

SELECT /* 컬럼명 ,로 구분 */
FROM /* 테이블 */
WHERE /* 조건 and, or로 구분 */
ORDER BY /* 컬럼명 ,를 통해 구분 */

SELECT
    id
    , name
    , age
FROM
    student
WHERE
    age = 10
ORDER BY name desc;

위 SQL문 예시를 보면 student 테이블에서 id, name, age 컬럼명을 조회하는데 age가 10인 학생들만 name을 내림차순으로 정렬한다.

 

2. 그룹제어

SELECT /* GROUP BY에서 사용된 컬럼명들 ","로 구분 */
FROM /* 테이블 */
WHERE /* 조건 "and, or"로 구분 */
GROUP BY /* 컬럼명 ","를 통해 구분 */
HAVING /* GROUP BY절에 해당하는 조건 ","를 통해서 구분 */

SELECT
    age
    , count(*)
FROM
    student
WHERE
    id > 0
GROUP BY age
HAVING age = 10;

해당 sql은 student 테이블에서 id가 0보다 큰 데이터를 age로 그룹화하고 그룹화한 age가 10인 컬럼의 총개수를 보는 sql이다.

 

3. 분기분

/* 1 */
SELECT
    (CASE age
        WHEN 8 THEN '1학년'
        WHEN 9 THEN '2학년'
        WHEN 10 THEN '3학년'
        WHEN 11 THEN '4학년'
        WHEN 12 THEN '5학년'
        WHEN 13 THEN '6학년'
        ELSE '-'
    END) AS GRADE
FROM
    student
    
/* 2 */
SELECT
    (CASE
        WHEN age = 8 THEN '1학년'
        WHEN age = 9 THEN '2학년'
        WHEN age = 10 THEN '3학년'
        WHEN age = 11 THEN '4학년'
        WHEN age = 12 THEN '5학년'
        WHEN age = 13 THEN '6학년'
        ELSE '-'
    END) AS GRADE
FROM
    student

분기분은 2가지 방법으로 사용할 수 있다.

1) CASE [컬럼] WHEN [비교값] THEN [반환값]... ELSE [반환값] END 형식

2) CASE WHEN [조건문] THEN [반환값]... ELSE [반환값] END 형식

 

4. 집합 연산

SELECT
    age
    , name
FROM
    student
WHERE
    age = 10
    
UNION ALL

SELECT
    age
    , name
FROM
    student
WHERE
    age = 11

집합 연산으로 두 테이블 SELECT 쿼리를 묶어서 한 번에 보여준다. 주의 사항은 두 SELECT 쿼리 모두 컬럼의 개수와 순서가 동일해야 하며 각 컬럼의 데이터 형식이 호환되어야 한다. UNION은 중복되는 결과가 있으면 생략하고 UNION ALL 중복되더라도 표시해 준다.

 

수강 인증샷

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

반응형