강의 외부에서 추가로 알게 된 내용
DATE_ADD 함수
DATE_ADD 함수는 SQL에서 날짜 또는 시간을 더하는 데 사용하는 함수다. 기준 날짜에 특정 간격(일, 월, 년 등)을 더한 결과를 반환한다. 기본 문법은 아래와 같다.
DATE_ADD(date, INTERVAL expression unit)
date는 기준이 되는 날짜 또는 시간이다. expression는 더할 숫자(정수)다. unit는 더할 단위로, DAY, MONTH, YEAR 등 다양한 값이 가능하다. 주요 시간 단위는 DAY(일), MONTH(월), YEAR(년), HOUR(시간), MINUTE(분), SECOND(초) 등이 있고, YEAR_MONTH, DAY_HOUR 등으로 두 단위를 동시에 다룰 수도 있다. 예시를 통해 자세히 알아보자.
# 날짜에 하루 더하기
SELECT DATE_ADD('2024-11-18', INTERVAL 1 DAY) AS Result;
# 결과
+------------+
| Result |
+------------+
| 2024-11-19 |
+------------+
# 날짜에 한 달 더하기
SELECT DATE_ADD('2024-11-18', INTERVAL 1 MONTH) AS Result;
# 결과
+------------+
| Result |
+------------+
| 2024-12-18 |
+------------+
# 현재 날짜에 5일 더하기
SELECT DATE_ADD(CURDATE(), INTERVAL 5 DAY) AS FutureDate;
# 결과 : 실행일 기준으로 현재 날짜에 5일을 더한 값.
# 두 단위 조합
SELECT DATE_ADD('2024-11-18', INTERVAL '1-2' YEAR_MONTH) AS Result;
# 결과
+------------+
| Result |
+------------+
| 2025-01-18 |
+------------+
비슷한 함수로는 DATE_SUB라는 함수가 있다. DATE_SUB은 DATE_ADD와 반대로, 날짜에서 특정 간격을 빼는 함수다. 예시는 아래와 같다.
SELECT DATE_SUB('2024-11-18', INTERVAL 1 DAY) AS Result;
# 결과
+------------+
| Result |
+------------+
| 2024-11-17 |
+------------+
INTERVAL 1 DAY
SQL에서 날짜 또는 시간 간격을 지정할 때 사용하는 표현이다. 이는 특정 날짜나 시간 값에 1일을 추가하거나 빼는 연산에 사용한다. INTERVAL 키워드는 시간 또는 날짜 간격을 정의할 때 사용한다. 숫자와 시간 단위를 조합해 특정 시간 간격을 나타낸다. 시간 단위로는 DAY, HOUR, MINUTE, SECOND, MONTH, YEAR 등이 있다. 예를 들어 1 DAY는 1일을 의미하며, 2 DAY라면 2일, -1 DAY라면 하루를 빼는 연산을 수행한다. 예를 들어보자.
# 날짜 더하기
SELECT DATE_ADD('2024-11-18', INTERVAL 1 DAY) AS NextDay;
# 결과
+------------+
| NextDay |
+------------+
| 2024-11-19 |
+------------+
# 날짜 빼기
SELECT DATE_SUB('2024-11-18', INTERVAL 1 DAY) AS PreviousDay;
# 결과
+--------------+
| PreviousDay |
+--------------+
| 2024-11-17 |
+--------------+
# 현재 날짜에서 하루 더하기
SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY) AS Tomorrow;
복습
or 연산자
Python에서 or 연산자는 왼쪽 표현식의 값을 평가하여, 그 값이 참이면 왼쪽 값을 반환하고, 거짓이면 오른쪽 값을 반환한다. or 연산자의 동작 순서를 통해 자세히 알아보자.
- 왼쪽 값을 먼저 평가한다.
- 만약 왼쪽 값이 참(True)이면, 오른쪽 값을 볼 필요가 없다. 왜냐하면 or 연산에서 참을 만나면 전체 결과가 항상 참이기 때문이다.
- 따라서 오른쪽 값을 "평가하지 않고" 바로 반환한다.이게 바로 단락 평가다.
- 왼쪽 값이 거짓(False)인 경우
- 이제 오른쪽 값을 평가해야 한다. 왜냐하면 왼쪽 값만으로는 전체 or 표현식의 결과를 알 수 없기 때문이다.
- 오른쪽 값이 참이라면 전체 결과가 참, 거짓이라면 전체 결과도 거짓이 된다.
- 그래서 오른쪽 값을 평가하여 반환한다.
단락 평가의 원리는 아래와 같다.
단락 평가는 불필요한 연산을 줄이기 위해 사용된다.
- 왼쪽 값이 참일 때는 오른쪽을 평가할 필요가 없기 때문에 건너뛴다.
- 왼쪽 값이 거짓일 때는 오른쪽을 반드시 평가해야 결과를 알 수 있다.
or 연산자의 기본 원리를 살펴보자.
- 왼쪽 값이 참(True)
- 왼쪽 값을 반환하고 오른쪽은 무시한다.
- 왼쪽 값이 거짓(False)
- 오른쪽 값을 평가하여 반환한다.
참/거짓 판별 기준을 알아보자. Python에서 아래의 경우들은 거짓(False)으로 간주된다.
- False
- None
- 0 (숫자)
- "" (빈 문자열)
- [] (빈 리스트)
- {} (빈 딕셔너리)
- () (빈 튜플)
그 외의 값은 모두 참(True)으로 간주된다.
예시를 살펴보자.
# 기본 동작
print(5 or 10) # 출력: 5 # 왼쪽 값이 True이므로 오른쪽은 무시
print(0 or 10) # 출력: 10 # 왼쪽 값이 False이므로 오른쪽 평가
# 문자열과 함께 사용
print("" or "EMPTY") # 출력: "EMPTY" # 왼쪽 값이 빈 문자열(거짓)이므로 오른쪽 값 반환
print("hello" or "EMPTY") # 출력: "hello" # 왼쪽 값이 빈 문자열이 아니므로 왼쪽 값 반환
# 복잡한 표현식
x = 0
y = "Hello"
z = None
print(x or y or z) # 출력: "Hello" # x가 False -> y가 True -> y 반환
print(5 or y or z) # 출력: 5 # x가 True이므로 x 반환
if문들이 실행될까? 실행되지 않을까? (= ()안이 참일까? 거짓일까?)
- if ( "python" ) → O : 참, 비어있지 않은 문자열
- if( "" ) → X : 거짓, 빈 문자열
- if( [1,2,3] ) → O : 참, 비어있지 않은 리스트
- if [] ) → X : 거짓, 빈 리스트
- if( (1,2,3) ) → O : 참, 비어있지 않은 튜플
- if( ( ) ) → X : 거짓, 빈 튜플
- if( 1 ) → O : 참, 0이 아닌 숫자
- if( 0 ) → X : 거짓, 숫자 0은 거짓
- if( None ) → X : 거짓, None은 거짓
- if( 1==1 ) → O : 참, 계산 결과가 참
- if( 1 < 3 ) → O : 참, 계산 결과가 참
- if( 1 > 3 ) → X : 거짓, 계산 결과가 거짓
'AI 부트캠프 > 챕터3(11.08~12.04)' 카테고리의 다른 글
TIL 44 (1) | 2024.11.20 |
---|---|
TIL 43 도전 과제 (2) | 2024.11.19 |
TIL 41 (0) | 2024.11.17 |
TIL 40 (2) | 2024.11.16 |
WIL 6 (0) | 2024.11.15 |