교육 (Today I Learned)/Hanaro

[Hanaro] 44일차 / SQL (단일행 함수)

Bay Im 2024. 3. 20. 00:19

03 단일행 함수 이해 및 실습

  • 문자형 함수
    • CHAR_LENGTH(문자열)
      • 문자의 개수 반환
    • LENGTH(문자열)
      • 문자열에 할당된 바이트 수 반환
    • CONCAT(문자열들)
      • 문자열들 연결
    • CONCAT_WS(구분자, 문자열들)
      • 구분자와 함께 문자열 연결
    • LEFT(문자열, 길이)/RIGHT(문자열, 길이)
      • 문자열의 왼쪽/오른쪽부터 길이만큼 문자열 반환
    • SUBSTR(문자열, 시작위치, 길이)
      • 지정한 위치부터 길이만큼 문자열 반환
    • SUBSTRING_INDEX(문자열, 구분자, 인덱스)
      • 지정한 구분자를 기준으로 문자열 분리 후 가져오는 함수
      • SQL은 인덱스가 1부터 시작한다.
    • LPAD(문자열, 길이, 채울문자열)/RPAD(문자열, 길이, 채울문자열)
      • 지정한 길이에서 문자열을 제외한 빈칸을 특정 문자열로 채울 때 사용
    • LTRIM(문자열)/RTRIM(문자열)
      • 왼쪽/오른쪽 공백 제거
    • TRIM(문자열)
      • 양쪽 공백 제거
    • TRIM(제거할문자열의방향(BOTH/LEADING/TRAILING) 제거할문자열 FROM 문자열)
      • 양쪽에 있는 동일 문자열 제거
    • FIELD(찾을문자열, 문자열들)
      • 문자열들 중에서 찾을 문자열이 있으면 해당 문자열의 위치 반환
      • 찾는 문자열이 없으면 0 반환
    • FIND_IN_SET(찾을문자열, 문자열리스트)
      • 문자열 리스트에서 지정한 문자열을 찾아서 위치 인덱스 반환
    • LOCATE(부분문자열, 기준문자열)
      • 기준 문자열에서 부분 문자열을 찾아서 위치 값 반환
      • INSTR(기준문자열, 부분문자열) 동일
    • ELT(찾을문자열위치, 문자열들)
      • 지정한 위치에 있는 문자열 반환
      • 위치 인덱스 값을 넣어서 찾는다.
    • REPEAT(문자열, 횟수)
      • 문자열 해당 횟수만큼 반복
    • REPLACE(문자열, 원래문자열, 바꿀문자열)
      • 문자열의 일부를 다른 다른 문자열로 대체
    • REVERSE(문자열)
      • 문자열을 거꾸로 뒤집을 때 사용
  • 숫자형 함수
    • CEILING(숫자)
      • 숫자 올림
    • FLOOR(숫자)
      • 숫자 내림
    • ROUND(숫자[, 반올림할자릿수])
      • 지정한 위치에서 반올림
    • TRUNCATE(숫자[, 버림할자릿수])
      • 지정한 위치에서 버림
    • ABS(숫자)
      • 절대값 반환
    • SIGN(숫자)
      • 양수면 1, 음수면 -1 반환
    • MOD(숫자1, 숫자2)
      • 나머지 반환
    • POWER(숫자1, 숫자2)
      • n 제곱승 값 반환
    • SQRT(숫자)
      • 제곱근 값 반환
    • RAND() / RAND(숫자)
      • 매개변수 넣지 않으면 0과 1 사이 임의의 실수 값 반환
      • 매개변수에 숫자를 넣으면 매번 동일한 임의의 값을 얻을 수 있다.
      • ROUND(), TRUNCATE() 등 함수 같이 사용시 임의의 정수를 만들 수 있다.
        • SELECT ROUND(RAND() * n); → 0~n 값 반환
        • SELECT ROUND(RAND() * n) + 1; → 1~n 값 반환
  • 날짜/시간 함수
    • NOW(), SYSDATE()
      • 현재 날짜와 시간 반환
    • CURDATE()
      • 현재의 날짜 반환
    • CURTIME()
      • 현재의 시간 반환
    • YEAR(), QUARTER(), MONTH(), DAY(), HOUR(), MINUTE(), SECOND()
      • 연도, 분가, 월, 일, 시, 분, 초 반환
    • DATEDIFF(끝일자, 시작일자)
      • 지정한 기간 반환
    • TIMESTAMPDIFF(단위, 시작일자, 끝일자)
      • 기간을 지정한 단위 기준으로 반환
    • ADDDATE(날짜, 기간)
      • 지정한 날짜를 기준으로 그 기간만큼 더한 날짜 반환
    • SUBDATE(날짜, 기간)
      • 기간만큼 뺀 날짜 반환
    • LAST_DAY(날짜)
      • 해당 월의 마지막 일자 반환
    • DAYOFYEAR(날짜)
      • 현재 연도에서 며칠이 지났는지 반환
    • MONTHNAME(날짜)
      • 월을 영문으로 반환
    • WEEKDAY(날짜)
      • 요일을 정수로 반환
  • 형 변환 함수
    • CONVERT(값, 데이터타입), CAST(값 AS 데이터타입)
      • 원하는 데이터 타입으로 변경
  • 제어 흐름 함수
    • IF(조건, 수식1, 수식2)
      • 조건의 결과가 참이면 수식1, 거짓이면 수식2 반환
    • IFNULL(수식1, 수식2)
      • 수식1이 NULL이 아니면 수식1의 값 반환, NULL이면 수식2의 값 반환
    • NULLIF(수식1, 수식2)
      • 두 수식의 값을 비교하여 값이 같으면 NULL 반환, 값이 다르면 수식1의 값 반환
    • CASE문
      • SELECT CASE WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 … ELSE 값 END;
        • 모든 조건을 만족하지 않으면 ELSE 다음에 값을 넣어준다.
        • CASE 문은 마지막에 END로 닫아줘야 한다.