logo

[SQLite] 기본 함수

 

절대값 구하기: abs

  • X의 절대값을 반환합니다.
  • 예: abs(-5)5를 반환합니다.
 

변경된 행의 수 구하기: changes

  • 가장 최근에 실행된 INSERT, DELETE, UPDATE 문에 의해 변경된 행의 수를 알려줍니다.
  • 예: UPDATE 문을 실행한 후 changes()를 호출하면, 업데이트된 행의 수를 알 수 있습니다.
 

문자열 만들기: char

  • 주어진 유니코드 코드 포인트 값들로부터 문자열을 만듭니다.
  • 예: char(65, 66, 67)'ABC'를 반환합니다.
 

NULL이 아닌 첫 번째 값 찾기: coalesce

  • 주어진 값 중에서 NULL이 아닌 첫 번째 값을 반환합니다.
  • 예: coalesce(NULL, NULL, 'hello', 'world')'hello'를 반환합니다.
 

문자열 합치기: concat

  • 모든 인자를 문자열로 변환하여 하나의 문자열로 합칩니다.
  • 예: concat('Hello, ', 'world!')'Hello, world!'를 반환합니다.
 

구분자로 문자열 합치기: concat_ws

  • 첫 번째 인자를 구분자로 사용하여 나머지 인자들을 합칩니다.
  • 예: concat_ws(', ', 'Apple', 'Banana', 'Cherry')'Apple, Banana, Cherry'를 반환합니다.
 

형식 지정 문자열 만들기: format

  • 주어진 형식에 따라 문자열을 만듭니다.
  • 예: format('%s %d', 'Age:', 25)'Age: 25'를 반환합니다.
 

패턴 매칭: glob

  • Y 문자열이 X 패턴과 일치하는지 확인합니다.
  • 예: glob('*world', 'hello world')는 참을 반환합니다.
 

16진수 문자열 만들기: hex

  • 인자를 BLOB으로 해석하여 16진수 문자열을 반환합니다.
  • 예: hex('ABC')'414243'를 반환합니다.
 

두 값 중 NULL이 아닌 값 찾기: ifnull

  • X가 NULL이 아니면 X를, 그렇지 않으면 Y를 반환합니다.
  • 예: ifnull(NULL, 'default')'default'를 반환합니다.
 

조건에 따라 값 선택하기: iif

  • X가 참이면 Y를, 거짓이면 Z를 반환합니다.
  • 예: iif(1 > 2, 'Yes', 'No')'No'를 반환합니다.
 

문자열에서 부분 문자열 찾기: instr

  • Y 문자열이 X 문자열 내에서 처음 나타나는 위치를 반환합니다.
  • 예: instr('hello world', 'world')7을 반환합니다.
 

마지막으로 삽입된 행의 ID 구하기: last_insert_rowid

  • 마지막으로 삽입된 행의 ID를 반환합니다.
  • 예: INSERT문 실행 후 last_insert_rowid()를 호출하면 새로 삽입된 행의 ID를 얻을 수 있습니다.
 

문자열 또는 BLOB의 길이 구하기: length

  • 문자열의 경우 문자의 수, BLOB의 경우 바이트의 수를 반환합니다.
  • 예: length('Hello')5를 반환합니다.
 

문자열이 패턴과 일치하는지 확인: like

  • 문자열 Y가 패턴 X와 일치하는지 확인합니다. 선택적으로 ESCAPE Z 절을 사용할 수 있습니다.
  • 예: like('%neon%', name)name이 'neon'을 포함하고 있는지 확인합니다.
 

조건에 따른 확률 제공: likelihood, likely, unlikely

  • likelihood(X, Y)X를 그대로 반환하며, X가 참일 확률을 약 Y로 가정합니다.
  • likely(X)X가 대부분 참일 것으로 가정합니다.
  • unlikely(X)X가 대부분 거짓일 것으로 가정합니다.
  • 예: likely(score > 10)score가 10보다 클 확률이 높다고 가정합니다.
 

SQLite 확장 기능 로드: load_extension

  • 확장 기능을 로드하여 SQLite의 기능을 확장합니다. 기본적으로 보안상의 이유로 비활성화되어 있습니다.
  • 예: load_extension('my_extension')my_extension 확장 기능을 로드합니다.
 

문자열을 소문자로 변환: lower

  • 주어진 문자열 X의 모든 대문자 ASCII 문자를 소문자로 변환합니다.
  • 예: lower('HELLO')'hello'를 반환합니다.
 

문자열 왼쪽의 공백 제거: ltrim

  • 문자열 X의 왼쪽 끝에서 Y에 있는 문자들을 제거합니다. Y가 생략되면 공백을 제거합니다.
  • 예: ltrim(' hello')'hello'를 반환합니다.
 

최대값 찾기: max

  • 주어진 인자들 중 최대값을 반환합니다.
  • 예: max(2, 3, 5)5를 반환합니다.
 

최소값 찾기: min

  • 주어진 인자들 중 최소값을 반환합니다.
  • 예: min(2, 3, 1)1을 반환합니다.
 

인자가 같을 경우 NULL 반환: nullif

  • 두 인자 X, Y가 같으면 NULL을, 다르면 X를 반환합니다.
  • 예: nullif(5, 5)는 NULL을 반환합니다.
 

문자열의 바이트 길이 구하기: octet_length

  • 문자열 X의 바이트 길이를 반환합니다. X가 NULL이면 NULL을 반환합니다.
  • 예: octet_length('Hello')는 문자열 'Hello'의 바이트 길이를 반환합니다.
 

문자열 포맷에 따른 출력 생성: printf

  • 지정된 형식에 따라 문자열을 생성합니다.
  • 예: printf('%s %d', 'Age:', 25)'Age: 25'를 반환합니다.
 

SQL 리터럴로 인코딩: quote

  • 인자 X를 SQL 리터럴로 인코딩하여 반환합니다.
  • 예: quote('It''s easy')'It''s easy'를 반환합니다.
 

난수 생성: random, randomblob

  • random은 임의의 정수를, randomblob(N)N 바이트 크기의 난수 바이트를 반환합니다.
  • 예: random()는 임의의 정수를, randomblob(5)는 5 바이트의 난수 바이트를 반환합니다.
 

문자열 교체: replace

  • 문자열 X에서 Y를 찾아 Z로 교체합니다.
  • 예: replace('hello world', 'world', 'SQLite')'hello SQLite'를 반환합니다.
 

반올림: round

  • 숫자 X를 반올림하여 Y 자리까지의 수를 반환합니다. Y가 생략되면 0으로 간주합니다.
  • 예: round(3.14159, 2)3.14를 반환합니다.
 

문자열 오른쪽의 공백 제거: rtrim

  • 문자열 X의 오른쪽 끝에서 Y에 있는 문자들을 제거합니다. Y가 생략되면 공백을 제거합니다.
  • 예: rtrim('hello ')'hello'를 반환합니다.
 

숫자의 부호 판별: sign

  • 숫자 X의 부호에 따라 -1, 0, +1을 반환합니다.
  • 예: sign(-10)-1을 반환합니다.
 

문자열의 사운덱스 값: soundex

  • 문자열 X의 사운덱스 값을 반환합니다.
  • 예: soundex('hello')H400을 반환합니다.
 

SQLite 컴파일 옵션 조회: sqlite_compileoption_get, sqlite_compileoption_used

  • sqlite_compileoption_get(N): SQLite 라이브러리를 빌드할 때 사용된 N번째 컴파일 시간 옵션을 반환합니다. N이 범위를 벗어나면 NULL을 반환합니다.
  • sqlite_compileoption_used(X): X라는 이름의 컴파일 시간 옵션이 빌드 중에 사용되었는지 여부를 true(1) 또는 false(0)로 반환합니다.
  • 예: SQLite가 어떤 컴파일 옵션을 사용하여 빌드되었는지 확인할 수 있습니다.
 

데이터 레코드 오프셋 찾기: sqlite_offset

  • sqlite_offset(X): 테이블이나 인덱스에서 값을 읽기 시작하는 데이터베이스 파일 내의 바이트 오프셋을 반환합니다. X가 일반 테이블의 열이 아니면 NULL을 반환합니다.
  • 예: 특정 열의 데이터가 파일 내 어디에 위치하는지 알고 싶을 때 사용할 수 있습니다. 이 기능은 SQLite가 특정 컴파일 옵션을 사용하여 빌드될 때만 사용 가능합니다.
 

SQLite 소스 버전 조회: sqlite_source_id

  • sqlite_source_id(): SQLite 라이브러리를 빌드한 소스 코드의 특정 버전을 식별하는 문자열을 반환합니다. 이 문자열에는 소스 코드가 체크인된 날짜와 시간, 그리고 해당 체크인의 SHA3-256 해시가 포함됩니다.
  • 예: SQLite 라이브러리의 구체적인 소스 코드 버전을 확인할 때 사용합니다.
 

SQLite 라이브러리 버전 조회: sqlite_version

  • sqlite_version(): 현재 실행 중인 SQLite 라이브러리의 버전 문자열을 반환합니다.
  • 예: 현재 사용 중인 SQLite의 버전을 확인할 때 사용합니다.
 

부분 문자열 추출: substr, substring

  • substr(X, Y, Z): 문자열 X에서 Y번째 문자부터 시작하여 Z개의 문자로 구성된 부분 문자열을 반환합니다. Z가 생략되면 Y번째 문자부터 문자열 끝까지 반환합니다. Y가 음수이면 오른쪽에서부터 시작합니다. Z가 음수이면 Y번째 문자 앞에 있는 Z개의 문자를 반환합니다.
  • substring(X, Y, Z): substr의 별칭으로, SQLite 버전 3.34부터 사용 가능합니다.
  • 예: substr('Hello, World!', 8, 5)'World'를 반환합니다.
 

변경된 행의 총 수: total_changes

  • total_changes() 함수는 현재 데이터베이스 연결이 시작된 이후 INSERT, UPDATE, DELETE 문에 의해 변경된 행의 총 수를 반환합니다.
  • 예: 데이터를 많이 수정한 후 total_changes()를 호출하면, 변경된 행의 총 수를 알 수 있습니다.
 

문자열 양쪽 공백 제거: trim

  • trim(X, Y) 함수는 문자열 X 양쪽 끝에서 Y에 해당하는 모든 문자를 제거한 새 문자열을 반환합니다. Y가 생략되면 공백을 제거합니다.
  • 예: trim(' hello ')'hello'를 반환합니다.
 

표현식의 데이터 타입 반환: typeof

  • typeof(X) 함수는 표현식 X의 데이터 타입을 나타내는 문자열을 반환합니다: "null", "integer", "real", "text", 또는 "blob".
  • 예: typeof(123)'integer'를 반환합니다.
 

16진수 문자열을 BLOB으로 변환: unhex

  • unhex(X, Y) 함수는 16진수 문자열 X를 디코딩하여 BLOB 값을 반환합니다. X에 16진수가 아닌 문자가 포함되어 있고 그 문자가 Y에 없으면 NULL을 반환합니다. Y가 생략되면 X는 순수한 16진수 문자열이어야 합니다.
  • 예: unhex('48656C6C6F')는 'Hello' 문자열의 BLOB 값을 반환합니다.
 

문자열의 첫 번째 문자에 해당하는 유니코드 코드 포인트 반환: unicode

  • unicode(X) 함수는 문자열 X의 첫 번째 문자에 해당하는 유니코드 코드 포인트를 숫자로 반환합니다.
  • 예: unicode('A')65를 반환합니다.
 

거의 거짓일 것으로 예상되는 표현식: unlikely

  • unlikely(X) 함수는 X를 그대로 반환합니다. 이 함수는 쿼리 플래너에게 X가 거의 거짓일 것이라는 힌트를 제공합니다.
  • 예: unlikely(id = 1)id = 1이 거의 거짓일 것으로 예상됩니다.
 

문자열을 대문자로 변환: upper

  • upper(X) 함수는 입력된 문자열 X의 모든 소문자 ASCII 문자를 대문자로 변환한 새 문자열을 반환합니다.
  • 예: upper('hello')'HELLO'를 반환합니다.
 

공간 예약을 위한 BLOB 생성: zeroblob

  • zeroblob(N) 함수는 N 바이트 크기의 0x00으로 이루어진 BLOB을 반환합니다. 이 BLOB은 나중에 쓰기 작업을 위한 공간을 예약하는 데 사용될 수 있습니다.
  • 예: zeroblob(10)은 10바이트의 0x00으로 이루어진 BLOB을 반환합니다.
Previous
가상 테이블과 텍스트 검색