WeniVooks

검색

SQL 베이스캠프

SQL 함수란

1. SQL 함수란?

SQL 함수는 미리 정의된 기능을 수행하는 구문으로, 데이터 처리와 변환을 간편하게 할 수 있게 도와줍니다. SQL 함수는 크게 단일 행 함수(한 행에 대해 하나의 값을 반환)와 그룹 함수(여러 행에 대해 하나의 값을 반환)로 나뉩니다. 이 장에서는 SQLite에서 자주 사용되는 SQL 함수들을 다룰 것입니다.

1.1 데이터 타입 관련 함수

SQLite는 동적 타입 시스템을 사용하므로, 명시적인 데이터 타입 함수가 제한적입니다. 그러나 값의 타입을 확인하거나 변환할 때 사용할 수 있는 함수들이 있습니다.

  • typeof(값): 값의 데이터 타입을 문자열로 반환합니다.
  • cast(값 AS 타입): 값을 지정된 타입으로 변환합니다.
SELECT typeof(123), typeof('abc'), typeof(4.56);
SELECT cast('123' AS INTEGER), cast(456 AS TEXT);
SELECT typeof(123), typeof('abc'), typeof(4.56);
SELECT cast('123' AS INTEGER), cast(456 AS TEXT);
실습환경 바로가기
1.2 문자열 처리 함수

문자열을 다룰 때 사용하는 함수는 데이터 검색과 변환 시 유용합니다.

  • lower('ABC')'abc': 문자열을 소문자로 변환합니다.
  • upper('abc')'ABC': 문자열을 대문자로 변환합니다.
  • substr('hello world', 1, 5)'hello': 문자열의 일부분을 추출합니다. 첫 번째 숫자는 시작 위치, 두 번째 숫자는 추출할 문자열의 길이를 나타냅니다.
  • replace('hello world', 'world', 'SQL')'hello SQL': 문자열의 일부를 다른 문자열로 대체합니다.
  • length('hello')5: 문자열의 길이를 반환합니다.
  • instr('ABCDEF', 'B')2: 특정 문자가 문자열 내에서 처음 등장하는 위치를 반환합니다. SQLite에서는 인덱스가 1부터 시작합니다.
SELECT lower('HELLO'), upper('world'), substr('SQLite', 1, 3), replace('Hello World', 'World', 'SQLite'), length('Function'), instr('ABCDEF', 'D');
SELECT lower('HELLO'), upper('world'), substr('SQLite', 1, 3), replace('Hello World', 'World', 'SQLite'), length('Function'), instr('ABCDEF', 'D');
실습환경 바로가기
1.3 숫자 관련 함수

숫자를 처리할 때 사용할 수 있는 다양한 수학적 함수가 있습니다.

  • round(123.456, 2)123.46: 숫자를 반올림합니다. 두 번째 인자는 소수점 자릿수를 나타냅니다.
  • abs(-10)10: 절대값을 반환합니다.
  • random(): -9223372036854775808과 +9223372036854775807 사이의 정수를 무작위로 반환합니다.
SELECT round(123.456, 2), abs(-10), random();
-- 0부터 100 사이의 랜덤 정수 생성
SELECT abs(random()) % 101;
SELECT round(123.456, 2), abs(-10), random();
-- 0부터 100 사이의 랜덤 정수 생성
SELECT abs(random()) % 101;
실습환경 바로가기
1.4 그룹 함수

그룹 함수는 여러 행의 데이터를 집계할 때 사용됩니다. 일반적으로 GROUP BY 절과 함께 사용됩니다.

  • count(): 행의 개수를 셉니다. NULL 값을 제외하고 계산합니다.
  • sum(컬럼명): 특정 열의 값을 모두 더합니다.
  • avg(컬럼명): 특정 열의 평균 값을 계산합니다.
  • min(컬럼명): 특정 열의 최소 값을 반환합니다.
  • max(컬럼명): 특정 열의 최대 값을 반환합니다.
SELECT SUM(가격) FROM 상품;
SELECT AVG(가격) FROM 상품;
SELECT MIN(가격), MAX(가격) FROM 상품;
SELECT COUNT(*) from 상품;
SELECT SUM(가격) FROM 상품;
SELECT AVG(가격) FROM 상품;
SELECT MIN(가격), MAX(가격) FROM 상품;
SELECT COUNT(*) from 상품;
실습환경 바로가기

SQL 함수는 데이터를 효율적으로 처리하고 분석하는 데 필수적인 도구입니다. 각 함수는 데이터 타입이나 목적에 맞게 사용할 수 있으며, 여러 함수를 조합하여 복잡한 계산이나 변환도 손쉽게 수행할 수 있습니다. SQLite에서는 일부 함수가 제한적일 수 있으므로, 공식 문서를 참조하여 사용 가능한 함수를 확인하는 것이 좋습니다.

3장 SQL 함수3.2 단일 행 함수