셋 째 날, 어느정도 적응이 되어가고 있다.
오늘 학습한 내용은 아래와 같다.
1. date_format() 말고!
예시)
--년
Year(date)
--월
Month(date)
--일
Day(date)
활용
--현재 날짜
Getdate()
Now()
Sysdate()
--현재 년
Year(now())
--현재 월
Month(now())
--현재 일
Day(now())
2. round, truncate, ceiling, floor
예시)
n = 123.45
round(n, 1)
-- 123.5
truncate(n, -1)
-- 120
ceiling(n)
-- 124
floor(n)
-- 123
3. Where 절과 Having 절
Where 절 | Having 절 | |
1 | 그룹이 집계되기 전에 행을 필터링 함 | 집계 프로세스 후 그룹을 필터링 함 |
2 | Group by 절 없이 Where 절을 사용 가능 | Group by 절 없이 사용 불가능 |
3 | 행 작업으로 구현됨 | 열 작업으로 구현됨 |
4 | 집계함수가 포함될 수 없음 | 집계함수를 포함할 수 있음 |
5 | Select, Update, Delete와 함께 사용 가능 | Select와만 사용 가능 |
6 | Upper, Lower 등과 같은 단일 행 함수와 함께 사용 | Sum, Count 같은 다중 행 함수와 함께 사용 |
Where절과 Having 절은 SQL을 처음 하면 헷갈리기 쉽다.
위와 같은 점을 상기하며 사용하자
4. 집계함수란? (Aggregate Function)
집계 함수 | 용도 |
Count( * ) | null 값을 포함한 행의 수를 출력함 |
Count( 표현식 ) | 표현식의 값이 null 값인 것을 제외한 행의 수를 출력함 |
Sum( 표현식 ) | 표현식의 null 값을 제외한 합계를 출력함 |
Avg( 표현식 ) | 표현식의 null 값을 제외한 평균을 출력함 |
Max( 표현식 ) | 표현식의 최대값을 출력함 |
Min( 표현식 ) | 표현식의 최소값을 출력함 |
Stddev( 표현식 ) | 표현식의 표준 편차를 출력함 |
Variran( 표현식 ) | 표현식의 분산을 출력함 |
3번에서 나온 집계함수는 위와 같은 함수들을 포함한다.
5. 인라인 뷰 ( Inline View)
예시)
select x.age, x.occu, y.price
from (select age, occu, name from table_2 where 나이>=33) as x, table_2 y
where x.name = y.name
서브쿼리가 from에서 활용 되면 인라인 뷰라고 칭한다.
이를 활용해 위와 같이 join과 똑같은 짓을 할 수 있다.
뷰란?
저장장치 내에 물리적으로 존재하진 않지만 사용자에게 있는 것처럼 보이는 가상의 테이블
6. 스칼라 서브쿼리 (Scalar Subquery)
예시)
select a.name, a.age,
(select b.name from table_2 b where b.name = a.name)
from table_1 a
서브쿼리가 하나의 컬럼처럼 활용 되는 것을 칭한다
예시는 역시 join과 같은 짓,
인라인 뷰는 from후에 오고, 스칼라 서브쿼리는 하나의 컬럼 처럼 사용된다.
'오늘 나는 (TIL)' 카테고리의 다른 글
[TIL 240701] datediff, window function, cominations & permutations (0) | 2024.07.01 |
---|---|
[TIL 240628] Pivot Table, Window Function (0) | 2024.06.28 |
[TIL 240627] union, update, insert, delete, multiple_join (0) | 2024.06.27 |
[TIL 240625] Map 과 Lambda, 그리고 수의 진수 바꾸기 (0) | 2024.06.25 |
[TIL 240624] Where 문과 Subquery, With 문 (0) | 2024.06.24 |