본문 바로가기
[업무 지식]/MySQL

연산자 & 구문 & 함수 모음집

by 에디터 윤슬 2024. 10. 3.

목차

     

    연산자 & 구문

     

    연산자 & 구문 연산의 예 의미
    >, < N<10, N>10 N이 10 미만인 값 출력, 
    N이 10 초과인 값 출력
    >=, <= N>=10, N<=10 N이 10 이상인 값 출력,
    N이 10 이하인 값 출력
    = N=10 N이 10인 값 출력
    != N!=10 N이 10이 아닌 값 출력
    LIKE LIKE('%커피%')

    메가커피,
    커피나라
    %% 사이에 있는 문자가 있는 데이터를 모두 출력
    AND a AND b a 그리고 b를 모두 만족하는 값
    OR a OR b a 또는 b인 값
    NOT, !, <> NOT a, !a, <>a a가 아닌 값
    BETWEEN a BETWEEN 10 AND 20 a가 10가 20 사이에 포함된 값
    IS NULL a IS NULL a 값이 비어 있는 값
    IS NOT NULL a IS NOT NULL a 값이 비어 있지 않는 값
    IN A IN (a, b, c, d .....) 괄호 안에 데이터 중 하나라도 포함된 값 출력
    AS AS '별칭' 컬럼의 별명 지정 기입
    ASC ORDER BY 컬럼1 ASC 컬럼1 기준으로 오름차순
    DESC ORDER BY 컬럼1 DESC 컬럼1 기준으로 내림차순
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

     

    함수

    함수 예시 의미
    SUM SUM(컬럼1)  컬럼1의 모든 값을 더한 값
    AVG AVG(컬럼1) 컬럼1 모든 값의 평균 값
    COUNT COUNT(컬럼1) 컬럼1의 데이터의 모든 갯수를 구한 값(중복 포함)
    DISTINCT DISTINCT(주문 고객) 오늘 주문 고객의 수(중복 데이터 제거)
    MIN MIN(날짜, 수량) 가장 빠른 날짜, 가장 적은 수량
    MAX MAX(날짜, 수량) 가장 늦은 날짜, 가장 많은 수량
    LOWER LOWER('ABCD') 'abcd' 소문자로 변환
    UPPER UPPER('abcd') 'ABCD' 대문자로 변화
    INITCAP INITCAP('abcd') 첫 번째 글자만 대문자로 변환
    SUBSTR SUBSTR('ABC', 1(문자의 시작 위치), 2(문자의 갯수)) 문자열 중 일부를 선택
    REPLACE REPLACE('AB', 'A', 'E') 특정 문자열을 찾아 바꾼다. A를 찾아 E로 바꾼다
    CONCAT CONCAT('[', 'A', 'B', ' ' ']') 문자열을 연결한다 [AB ]
    LENGTH LENGTH('AB')    -> 2 문자열의 길이를 구한다. 
    INSTR INSTR('ABCE', 'E')    -> 4 명명된 문자의 위치를 구한다. 
    LPAD LPAD('ABCD', 6, '*')   -> **ABCD 왼쪽부터 특정 문자로 자리를 채운다. (이메일 주소 특정 위치 구할 때 사용 용이해 보임)
    RPAD RPAD('ABCD', 6, '*')    -> ABCD** 오른쪽부터 특정 문자로 자리를 채운다
    LTRIM LTRIM('ABCD', 'AB')    -> CD 주어진 문자열의 왼쪽 문자를 지운다
    RTRIM RTRIM('ABCD', 'CD')    -> AB 주어진 문자열의 오른쪽 문자를 지운다
    ROUND ROUND(15.351, 0)    -> 15 숫자를 반올림한다. 0은 정수까지 남기고, 소수점 첫 째자리에서 반올림한다는 뜻
    TRUNCATE TRUNC(15.351, 1)    -> 15.3 숫자를 절삭한다. 1은 소수점 첫 째자리를 남기고, 둘 째자리부터 삭제한다는 뜻
    MOD MOD(15, 2)     -> 1 나누기 후 나머지를 구한다.
    CEIL CEIL(15.351)     -> 16 숫자를 정수로 올림한다.
    FLOOR FLOOR(15.351)    -> 15 숫자를 정수로 내림한다.
    SIGN SIGN(15)      -> 1 양수(1), 음수(-1), 0 인지 구분하여 출력한다
    POWER POWER(2, 3)  -> 8 거듭제곱 값을 출력
    SQRT SQRT(4)     -> 2 제곱근 값을 출력
    MONTHS_BETWEEN MONTHS_BETWEEN(SYSDATE, HIRE_DATE) 두 날짜 사이의 월수를 계산한다.
    ADD_MONTHS ADD_MONTHS(HIRE_DATE, 5) 월을 날짜에 더한다
    NEXT_DAY NEXT_DAY(HIRE_DATE, 1) 명시된 날짜부터 돌아오는 요일에 대한 날짜를 출력한다
    LAST_DAY LAST_DAY(HIRE_DATE) 월의 마지막 날을 계산한다.
    ROUND ROUND(HIRE_DATE, 'MONTH') 날짜를 가장 가까운 연도 또는 월로 반올림한다(YEAR OR MONTH)
    TRUNC TRUNC(HIRE_DATE, 'MONTH') 날짜를 가장 가까운 연도 또는 월로 절삭한다(YEAR OR MONTH)
    TO_CHAR [날짜 지정 형식]
    * TO_CHAR(SYSDATE, 'YYYY')  -> 2024
    * TO_CHAR(SYSDATE, 'YY') -> 24
    * TO_CHAR(SYSDATE, 'Q')   -> 1분기, 2분기, 3분기, 4분기 중 현재 날짜 기준
    * TO_CHAR(SYSDATE, 'MM')  -> 10
    * TO_CHAR(SYSDATE, 'MONTH') -> 10월
    * TO_CHAR(SYSDATE, 'DD') -> -07
    * TO_CHAR(SYSDATE, 'DAY') -> 목요일
    * TO_CHAR(SYSDATE, 'YYMMDD') ->20241003

    [시간 지정 형식]
    * AM or PM
    * HH / HH12 or HH24
    * MI
    * SS  ------ TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24-MI-SS')

    [숫자 지정 형식]
    * 9: 9로 출력 자릿수 지정
    * 0: 자릿수만큼 0을 출력
    * $: 달러 기호
    * L: 지역 화폐 기호(원)
    * .: 명시한 위치에 소수점
    * ,: 명시한 위치에 쉼표   --- TO_CHAR(SYSDATE, '9,999,999')   -> 24,000
    숫자, 문자, 날짜 값을 지정 형식의 VARCHAR2 타입으로 변환
    TO_NUMBER TO_NUMBER('123) 문자를 숫자 타입으로 변화
    TO_DATE TO_DATE('20241003', 'YYMMDD') 날짜를 나타내는 문자열을 지정 형식의 날짜 타입으로 변환
    NVL NVL(컬럼 이름, 치환 값) 컬럼의 행이 NULL이라면 치환 값을 출력
    NVL2 NVL2(컬럼 1, 컬럼 2, 컬럼 3) 컬럼 1이 NULL이 아니면, 컬럼 2를 출력, NULL이면 컬럼 3을 출력
    DECODE DECODE(컬럼, 조건 값, 치환 값, 기본 값) 데이터 값이 조건 값과 일차하면 치환 값을 출력하고, 일치하지 않으면 기본값을 출력
    CASE CASE WHEN THEN ELSE END 해당 조건에 부합하면 THEN 값 출력, 반복, 반복, 이외 값은 ELSE 이후 값으로 출력
    RANK RANK() OVER([PARTITION BY 컬럼] ORDER BY 컬럼) 공통 순위를 출력하되 공통 순위만큼 건너뛰어 다음 순위를 출력
    DENSE_RANK DENSE_RANK() OVER 공통 순위를 출력하되 건너뛰지 않고 바로 다음 순위를 출력
    ROW_NUMBER ROW_NUMBER() OVER 공통 순위 없이 출력
    SUBSTRING_INDEX SUBSTRING_INDEX(email, '@', 1) @을 기준으로 구분된 함수의 첫 번째 항목을 출력
    ABS ABS(-1)    ->    1 절대값을 출력
    DATEDIFF datediff('2024-10-04', '2024-10-02') -> 2 두 날짜를 뺄셈하여 출력
    UNIX_TIMESTAMP unix_timestamp().  --->. 정수 출력 현재시간을 UNIXTIME으로 변환
    DATE_ADD date_add('2024-10-04', interval 1 day)  -> 2024-10-05 날짜에서 기준값을 덧셈하여 출력
    DATE_SUB date_sub('2024-10-04', interval 1 day) -> 2024-10-03

    기준값: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
    날짜에서 기준값을 뺄셈하여 출력