지금은마라톤중

멋사 AI스쿨_SQL_TIL (3) 본문

멋쟁이사자처럼/SQL

멋사 AI스쿨_SQL_TIL (3)

Ojungii 2023. 1. 25. 18:22

설날 끝나서 첫 수업이었다. 

 

 


2023.01.25

숫자열 함수
● round
- 숫자를 반올림해주는 함수
- ex) select round(반올림할 숫자, 자릿수)
 
● trunc
- 자릿수에 음수를 사용하여 버림을 하는 함수
- ex) select trunc(버림할 숫자, 자릿수)
 
● mod
- 나머지를 구하는 함수
- ex) select mod(10,3) -> 10을 3으로 나눈다
 
● power
- 제곱하는 함수 
- ex) select power(10,3) -> 10**3
 

● 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
Comments