제목 : [캠프 5일차] + 오늘의 학습 키워드
1. 오늘 학습 키워드, 내용을 나만의 언어로 정리하기
예제로 익히는 sql
뭘 보고 싶다=select(열, 컬럼, 필드). 어떤 걸 보고 싶냐가 select[필자 입장에서는 다시한번 정리하는 시간이 됨.]
-distinct: 중복없이 컬럼조회 ex)select distinct 컬럼이름
select count(distinct 컬럼)= 컬럼을 중복없이 조회하는데 그게 몇개인지 세줘. 라는 뜻
-case when: (조건을 만족할 때)새로운 컬럼을 만들어주는 것
case when 조건식1 then 결과1 ->조건식1을 만족하면 결과1을 주고,
when 조건식2 then 결과2 ->조건식1을 만족하지 못한 값들에서 조건식2를 만족하면 결과2값을 주고,
when 조건식3 then 결과3 ->조건식2를 만족하지 못한 값들에서는 조건식 3을 만족하면 결과3값을 줘라.
Else 결과4 ->위의 조건식1,2,3을 다 만족하지 못했을 때는 결과4로 주기. end as 새로운 컬럼이름 -> 새로운 컬럼 이름 만들어주기
from 테이블명
정리해보자면
select case when 조건식1 then 결과1
when 조건식2 then 결과2
when 조건식3 then 결과3
else 결과4
end as 새로운 컬럼이름
from 테이블명
(when이 더 늘어날 수도, 줄어들 수도 있음)
-조건문을 지원하는 연산자.
where, case when 조건문은 다양한 연산자를 지원함.
(오늘 처음 안 연산자들 정리)
- !=, A!=1, A가 1이 아닌 값
- LIKE, Like(%과자), Like는 비슷한 값을 가져오라는 의미로 '과자'라는 단어 앞에 어떤 단어가 오든 뒤에 '과자'가 붙으면 모두 가져오라는 의미. 예를 들어 like(%놀이%)라고 한다면 '놀이' 라는 단어가 포함된 모든 값을 가져오라는 뜻이다.
- not=! , notA=!A, A가 아닌 값. 이라는 뜻
- IN은 정확한 값을 이야기함. 정확하게 일치해야 한다는 것임. A in B 라고 했을 때 B에 A가 포함된 값. ex)where name in('김채영')=정확하게 이름이 김채영. 일치해야 함.
- is null: 비어있는 값. null이라는 단어 자체가 무효의, 없는 이라는 뜻임. 값, 데이터가 없다고 생각하면 됨. 비어있음.
- is not null: 마찬가지로 비어있지 않는 값. 이라는 뜻임.
-order by구문은 특정 열을 기준으로 결과값을 출력 할 때 사용됨.
기본값은 오름차순(asd)임. 사실 오름차순 정렬할 거면 굳이 order by구문 쓰지 않아도 된다고 함.(얘는 직접 디비버에서 시험해보기)
암튼 내림차순은 컬럼 뒤에 desc써주면 됨.
또한 여러 컬럼을 사용할 수도 있는데, order by와 가까울수록(바로 뒤에 올수록, 순서가 처음일수록) 정렬 우선순위가 높다는 것.
ORDER BY 다중조건
날짜를 내림차순으로 우선 정렬하고, 날짜가 같다면! 나이를 기준으로 오름차순 정렬
select 날짜, 이름, 성별, 나이, 직업
from basic.theglory
order by 1 desc, 4 ASC; (숫자는 열 순서임.)

#내일배움캠프 #캠프 #TIL