수강한 강의
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 중복되더라도 표시해 준다.
수강 인증샷
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'공부 > 패스트 캠퍼스 챌린지' 카테고리의 다른 글
코딩테스트 - 패스트캠퍼스 챌린지 42일차 (0) | 2022.03.06 |
---|---|
코딩테스트 - 패스트캠퍼스 챌린지 41일차 (0) | 2022.03.05 |
코딩테스트 - 패스트캠퍼스 챌린지 39일차 (0) | 2022.03.03 |
코딩테스트 - 패스트캠퍼스 챌린지 38일차 (0) | 2022.03.02 |
코딩테스트 - 패스트캠퍼스 챌린지 37일차 (0) | 2022.03.01 |