AI 부트캠프/챕터3(11.08~12.04)

TIL 42

musukie 2024. 11. 18. 20:36

강의 외부에서 추가로 알게 된 내용

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 연산자의 동작 순서를 통해 자세히 알아보자.

  1. 왼쪽 값을 먼저 평가한다.
    • 만약 왼쪽 값이 참(True)이면, 오른쪽 값을 볼 필요가 없다. 왜냐하면 or 연산에서 참을 만나면 전체 결과가 항상 참이기 때문이다.
    • 따라서 오른쪽 값을 "평가하지 않고" 바로 반환한다.이게 바로 단락 평가다.
  2. 왼쪽 값이 거짓(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