5일차 회고 지옥의 SELECT

TaeYoon Kim·2023년 11월 6일
0

SW CAMP

목록 보기
7/30

목차

하나의 테이블에 쓰는 쿼리

  1. ORDER BY (속성)
    속성 기준으로 오름, 내림차순 정렬

  2. GROUP BY : 특정 속성 별로 묶어서 결과를 조회

  3. 내장 함수
    평균, 최대값, 최소값, 카운트 등

  4. HAVING : WHERE랑 비슷한데 GROUP BY로 묶은 값에 대해서 조건을 검색할 때

테이블을 여러개 다룰 때 쓰는 쿼리

  1. IN
    지정된 값들 중에 있는 것만 조회

  2. JOIN ★★
    두 개의 테이블을 하나로 합치는 기능
    6-1: INNER, LEFT OUTER, RIGHT OUTER

  3. 서브 쿼리 : 쿼리문안에 SELECT 를 한 번 더 사용하는 것

  1. ORDER BY

ORDER BY 속성1 ASC, 속성2 DESC, ....;
오름차순은 ASC
내임차순은 DESC

가장 왼쪽에 있는 속성으로 먼저 정렬하고 같은 값들에 대해서 다음 속성을 기준으로 정렬한다.

예제


# 오름차순
SELECT emp_no, salary 
FROM salaries 
ORDER BY salary;

#내림차순
SELECT emp_no, salary 
FROM salaries 
ORDER BY salary DESC;
  1. GROUP BY

#GROUP BY 를 쓸 때는 ~~ 별로 라는 문장이 나올 때 쓴다. ex .(사원 별로, 월별로)

#직원별 최고 급여
SELECT emp_no, MAX(salary)
From salaries
group by emp_no;

#직원들 중 남여 사원의 수를 출력하시오.

select count(emp_no), gender
from employees
group by gender
;
  1. having를 추가해서 where의 효과를 얻을 수 있다.
#사원별 급여의 평균이 80000이상인 사원의 emp_no

select emp_no, avg(salary)
from salaries
group by emp_no 
having avg(salary) > 80000
;

#ENgineer 직급별 사원의 수
SELECT title, count(emp_no)
FROM titles
WHERE title like '%Engineer'
group by title
having 1=1
;

  1. IN (eunm)
    #ENgineer 직급별 사원의 수
    SELECT title, count(emp_no)
    FROM titles
    WHERE title IN ('Senior Engineer','Engineer','Assistant Engineer')
    group by title
    having 1=1
    ;
  1. JOIN

A INNER JOIN B 은 교집합으로 합치기
A OUTER JOIN B 은 A를 그대로 적고 값이 없으면 비워둔다.

PROGRAMMERS 문제 풀기위해 익힌 익힌 문법들

문제 URL 이랑 코드 겪었던 문제

시간값 변환하기(DATE_FORMAT())
NULL 값 대체 하기 (IFNULL())
값 교체하여 출력하기 (CASE WHEN THEN END)
문자열 다루기 CONCAT

UNION
NULL as 'NULL'

0개의 댓글