일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- graphrag
- 알고리즘
- intern10
- 인턴10
- likelion
- DP
- parklab
- 마이온컴퍼니
- Python
- folium
- likelionlikelion
- paper review
- GIS
- 멋재이사자처럼
- 멋쟁이사자처럼
- BFS
- TiL
- 파이썬
- Rag
- 마이온
- 멋사
- 시각화
- 프로젝트
- seaborn
- GNN
- SQL
- Join
- DFS
- 그리디
- ux·ui디자인
- Today
- Total
지금은마라톤중
멋사 AI스쿨_SQL_TIL (3) 본문
설날 끝나서 첫 수업이었다.
2023.01.25
● sqrt
- 제곱근을 구하는 합수
- ex) select sqrt(9) -> 3문자열 함수
● substr(문자열, 시작 위치, 길이)
- 시작번호가 0,1 둘다 가능하다.
- 길이를 입력하지 않으면 시작 위치부터 끝까지 출력
● left(문자열, 길이)
- 왼쪽부터 길이만큼 출력
● right(문자열, 길이)
- 오른쪽부터 길이만큼 출력
● concat(문자열1, 문자열2, 문자열3, ....)
- 2개이상의 문자열을 합치는 함수
● 문자열 1 || 문자열 2 || 문자열 3
- 2개이상의 문자열을 합치는 함수
- concat과 같은 기능을 해준다.
● lower
- 모든 문자를 소문자로 바꿔주는 함수
● upper
- 모든 문자를 대문자로 바꿔주는 함수
● initcap
- 제일 앞 문자만 대문자로 바꿔주는 함수
● replace( 범위(전체 문자열, 컬럼), 타겟 문자열, 바꿀 문자열)
- 문자열을 바꾸는 함수
- ex) select replace('happy new year', 'year', 'day') -> 'happy new day'
● length
- 모든 문자를 소문자로 바꿔주는 함수
● instr(문자열, 타겟 문자열)
- 문자열에서 타겟 문자열의 위치를 알려줌.
- ex) select instr( 'abcefg' ' 'b') -> 2
● IFNULL(컬럼, 대치 값)
- 컬럼의 값이 널값이면 대치 값으로 바꾸어주는 함수
- ex) SELECT IFNULL(NULL, 'hello') -> 'hello'
SELECT IFNULL('123', 'hello') -> '123'
변환함수
● CAST(데이터 as 타입명)
# -> 숫자열
# 문자열 -> 숫자로 바꾸는 거
# 문자열 -> 자연수(INTEGER)
# 문자열 -> FLOAT
select CAST('123' AS INT64)
select '123' + '123' # 에러
select CAST('123' AS INT64) + CAST('123' AS INT64)
select CAST('123.123' AS FLOAT64)
select CAST('123' AS NUMERIC)
select CAST('123.123' AS NUMERIC)
# -> 문자열
# 숫자(INTEGER) -> 문자
# 숫자(FLOAT) -> 문자
# true, false -> 문자
select CAST(123 AS STRING)
select CAST(123.123 AS STRING)
select CAST(true AS STRING)
select CAST(false AS STRING)
select CAST(NULL AS STRING)
● DATE, DATETIME
- DATE : 날짜
- DATETIME : 날짜와 시간
- CURRNET_DATE : 오늘 날짜 출력
- '-'으로 연, 월, 일 구분하여 표시
# -> 날짜
# 날짜 타입
# 1) DATE
# 문자열 -> DATE
# 2) DATETIME
# 문자열 -> DATETIME
select DATE('2011-12-01 11:12:34')
select DATETIME('2011-12-01 11:12:34')
●EXTRACT( 추출값 from 값)
- 추출하는 함수
- 날짜일 때 연, 월, 일, 시 ,분, 초 추출 가능
- ex) SELECT EXTRACT( YEAR FROM DATE('2013-12-31')) -> 2013
SELECT CURRENT_DATE();
SELECT DATE(2023,1,1);
SELECT DATE('2023-1-1');
SELECT DATE('2023-1-1', 'Asia/Seoul');
select id, DATE(created_at)
from `thelook_ecommerce.users`;
# 연도별 카운트, 합계, 평균
# 월별 카운트, 합계, 평균
# 일별 카운트, 합계, 평균
# 시간별 카운트, 합계, 평균
# 요일별 카운트, 합계, 평균
select EXTRACT(YEAR FROM DATE('2013-12-31'))
select EXTRACT(YEAR FROM DATE '2013-12-31')
select EXTRACT(MONTH FROM DATE '2013-12-31')
select EXTRACT(DAY FROM DATE '2013-12-31')
select
id,
EXTRACT(YEAR FROM DATE(created_at)) as year,
EXTRACT(MONTH FROM DATE(created_at)) as month,
EXTRACT(DAY FROM DATE(created_at)) as day
from `thelook_ecommerce.users`
limit 10
● FORMAT_DATE, FORMAT_DATETIME( 날짜형식, 날짜)
- 포맷에 맞게 문자열 출력
- 날짜형식 ' %y-%m-%d %T'
- 날짜형식에서 %Y : 4글자 연도, %y : 2글자 연도
- ex) SELECT FORMAT_DATE( '%y-%m-%d %T', DATETIME '2023-1-25 15:30:00')
● DATE_DIFF(a, b, DAY)
- 날짜간 차이 계산 - 연, 월, 일
- 날짜에 더하기, 빼기
- 나중 날짜가 앞에 와서 보기 양수로 계산 됨
- ex) SELECT DATE_DIFF(CURRENT_DATE(), DATE(created_at), DAY) as diff_day
● DATE_ADD( 데이터, INTERVAL 간격 )
- 날짜 데이터에 간격 만큼 더함
- ex) SELECT DATE_ADD(DATE '2023-1-25', INTERVAL 5 DAY);
● DATE_SUB ( 데이터, INTERVAL 간격 )
- 날짜 데이터에 간격 만큼 뺌
- 간격에 음수를 지정하면 더함
- ex) SELECT DATE_SUB(DATE '2023-1-25', INTERVAL 5 DAY);
❗️꿀팁 : MySQL에서는 연도, 월, 일, 시, 분 ,초를 추출할 수 있는 함수가 있다. ex) YEAR(JOINED), MONTH(JOINED), DAY(JOINED), HOUR(JOINED), MINUTE(JOINED), SECOND(JOINED) |
'멋쟁이사자처럼 > SQL' 카테고리의 다른 글
멋사 AI스쿨_SQL_TIL (6) (0) | 2023.02.07 |
---|---|
멋사 AI스쿨_SQL_TIL (5) (0) | 2023.02.02 |
멋사 AI스쿨_SQL_TIL (4) (0) | 2023.02.02 |
멋사 AI스쿨_SQL_TIL (2) (0) | 2023.01.20 |
멋사 AI스쿨_SQL_TIL (1) (4) | 2023.01.13 |