TIL / DB 1주차(7) / 함수

병아리코더 아카이브·2023년 9월 2일
0

DB

목록 보기
7/9
post-thumbnail

함수

숫자 관련 함수들

  • ROUND([칼럼명]) 처럼 숫자타입의 칼럼 데이터에 함수로 산술표현 할 수 있다.

  • WHERE ABS(Quantity - 10) < 5; 와 같이 조건절 안에도 함수를 넣어 만족하는 데이터만 찾을 수 있다.
    ( Quantity 칼럼의 데이터들 중 10을 뺀 절대값이 5보다 작은 경우의 데이터들을 가지고 온다. )

  • ROUND( ) : 반올림

  • CEIL( ) : 올림

  • FLOOR( ) : 내림

  • ABS( ) : 절대값

  • 여기서는 OrderDetailID , ProductID, Quantity 의 컬럼 데이터들을 비교하여 그 중 최대값과 최소값을 구했다.

  • GREATEST( ) : ( 괄호 안의 칼럼들의 데이터를 비교했을 때 ) 가장 큰 값

  • LEAST( ) : ( 괄호 안의 칼럼들의 데이터를 비교했을 때 ) 가장 작은 값

  • MAX( ) : ( 괄호 안 칼럼의 데이터들 중 ) 최대값

  • MIN( ) : ( 괄호 안 칼럼의 데이터들 중 ) 최대값

  • COUNT( ) : ( 괄호 안 칼럼의 데이터들의 ) 갯수 - 이때 NULL 값은 제외한다.

  • SUM( ) : ( 괄호 안 칼럼의 데이터들의 ) 총합

  • AVG( ) : ( 괄호 안 칼럼의 데이터들의 ) 평균 값

  • POW( A, B ) : A 를 B 만큼 제곱

  • POWER( A, B ) : A 를 B 만큼 제곱

  • SQRT( ) : ( 괄호 안 데이터의 ) 제곱근

  • 숫자 1234.5678 의 소숫점 자리를 선택한다. 이때 음수면 실수 자리를 선택하여 나머지는 0으로 처리한다.

  • TRUNCATE( N, n ) : N을 소숫점 n자리까지 선택


문자열 관련 함수들

  • UCASE( ) / UPPER( ) : 모두 대문자로

  • LCASE( ) / LOWER( ) : 모두 소문자로

  • CONCAT( ) : 괄호 안의 내용 이어붙인다. 이 때 숫자도 문자열로 변환된다.

  • CONCAT_WS( S, ... ) : 괄호 안의 내용들 사이사이 S로 이어붙인다.

  • SUBSTR( ) / SUBSTRING( ) : 주어진 값에 따라 문자열을 자른다.
    여기서는 순서대로 'ABCDEFG' 글자의 3번째부터 끝까지를 잘라 보여준다.
    두번째는 'ABCDEFG' 글자의 3번째부터 시작해서 2개만 잘라 보여준다.
    세번째는 'ABCDEFG' 글자의 뒤에서 4번째부터 시작해서 끝까지 잘라 보여준다.
    네번째는 'ABCDEFG' 글자의 뒤에서 4번째부터 시작해서 2개만 잘라 보여준다.

  • LEFT( ) : 왼쪽부터 N 글자
    여기서는 'ABCDEFG' 글자의 왼쪽에서부터 3개인 ABC를 보여준다.

  • RIGHT( ) : 오른쪽부터 N 글자
    여기서는 'ABCDEFG' 글자의 오른쪽에서부터 3개인 EFG를 보여준다.

  • LENGTH( ) : 문자열의 바이트 길이
    여기서 한글은 3byte 로 인식함.

  • CHAR_LENGTH( ) / CHARACTER_LEGNTH( ) : 문자열의 진짜 문자 길이

  • 공백으로 인한 실수를 방지하는데 사용한다.

  • TRIM( ) : 양쪽 공백 제거

  • LTRIM( ) : 왼쪽 공백 제거

  • RTRIM( ) : 오른쪽 공백 제거

  • LPAD 로 SupplierID 의 앞에 5글자가 될 때까지 0을 붙여주었고
    RPAD 로 Price 의 뒤에 6글자가 될 때까지 0을 붙여주었다.

  • LPAD( S, N, P ) : S가 N글자가 될 때까지 P를 앞에서 이어붙인다.

  • RPAD( S, N, P ) : S가 N글자가 될 때까지 P를 뒤에서 이어붙인다.

  • '맥도날드' 를 '버거킹' 으로 바꾸었다.

  • REPLACE( S, A, B ) : S중 A를 B로 변경

  • CustomerName의 띄어쓴 부분이 1~6글자 이내에 있는 것들의 데이터를 뽑아낸다. 즉, 이름의 첫 부분이 6글자 이내인 사람들의 데이터만 보여준다는 의미다.
    이때 그냥 < 6 으로 하면 글자수에 상관 없이 띄어쓰기가 없는 이름도 포함이 되므로 주의해야 한다.

  • INSTR( S, s ) : S중 s의 첫 위치 반환, 없을 시 0

  • CAST( A AS T ) : A를 T 자료형으로 변환
    예를 들어 CAST( '01' AS DECIMAL ) 을 사용하면 문자열을 숫자 자료형으로 바꿔준다

  • CONVERT( A, T ) : A를 T 자료형으로 변환


시간/날짜 함수

  • CURRENT_DATE( ) / CURDATE( ) : 현재 날짜 반환

  • CURRENT_TIME( ) / CURTIME( ) : 현재 시간 반환

  • CURRENT_TIMESTAMP( ) / NOW( ) : 현재 시간과 날짜 반환

  • DATE 는 날짜를 반환하고 TIME 은 시간을 반환한다.

  • 그래서 DATE , TIME 비교시엔 날짜 = 시간 비교여서 false 가 나온다.

  • DATE( ) : 문자열에 따라 날짜 생성

  • TIME( ) : 문자열에 따라 시간 생성

  • YEAR( ) : 주어진 값의 년도 반환

  • MONTHNAME( ) : 주어진 값의 몇월인지 영문으로 반환

  • MONTH( ) : 주어진 값이 몇월인지 숫자로 반환

  • WEEKDAY( ) : 주어진 값의 요일값 반환 (월요일: 0)

  • DAYNAME( ) : 주어진 값의 요일명을 영문으로 반환

  • DAYOFMONTH( ) / DAY( ) : 주어진 값의 날짜(일) 반환

  • HOUR( ) : 주어진 값의 시 반환

  • MINUTE( ) : 주어진 값의 분 반환

  • SECOND( ) : 주어진 값의 초 반환

  • INTERVAL 구문이 들어간다.

  • 가령 -2 MONTH 는 6월에서 2개월을 뺀다는 의미다.

  • ADDDATE( ) / DATE_ADD( ) : 시간/날짜 더하기

  • SUBDATE( ) / DATE_SUB( ) : 시간/날짜 빼기

  • DATE_DIFF( A, B ) : A, B 두 시간/날짜 간 일수차

  • TIME_DIFF( A, B ) : A, B 두 시간/날짜 간 시간차

  • LAST_DAY( ) : 주어진 값의 해당 달의 마지막 날짜

  • 여기서 명령어는 DATE_FORMET 으로 지정한 형식으로 변환한 날짜/시간을 AM -> 오전으로 바꾸고 PM -> 오후로 바꾼다는 의미다.

  • DATE_FORMET( ) : 시간/날짜를 지정한 형식으로 반환

  • 형식 :

  • STR_TO_DATE( S, F ) :S를 F형식으로 해석하여 시간/날짜 생성


기타 함수들

  • IF( 조건, T, F ) : 조건이 참이라면 T의 값 , 거짓이면 F의 값 반환

  • 좀 더 복잡한 구문은 CASE 절을 사용한다.

  • IFNULL( A, B ) : A가 NULL일 시 B 출력. 백업할 때 주로 사용.

출처 : https://www.yalco.kr/lectures/sql/

0개의 댓글

관련 채용 정보