SQLite 문자열 함수: REPLACE, SUBSTR, TRIM, ROUND

SQLite 기본적으로 SQLite 도서관. C 언어를 사용하여 다른 사용자 정의 기능을 추가하여 핵심 기능을 확장할 수도 있습니다.

다음 모든 예제에서 sqlite3.exe를 실행하고 샘플 데이터베이스에 대한 연결을 다음과 같이 열어야 합니다.

단계 1) 이 단계에서,

  1. 내 컴퓨터를 열고 다음 디렉토리로 이동합니다.C:\sqlite" 그리고
  2. 열려 있는 "sqlite3.exe":

SQLite 문자열 함수

단계 2) 데이터베이스 열기 “튜토리얼SampleDB.db다음 명령을 사용하여:

SQLite 문자열 함수

이제 무엇이든 실행할 준비가 되었습니다. 질문 다음 섹션에 사용된 모든 쿼리를 시도해 보세요.

문자열의 길이 찾기 SQLite

문자열의 길이를 찾으려면 LENGTH(X)를 사용합니다. 여기서 X는 문자열 값입니다. X가 null 값인 경우 길이 함수는 null 값을 반환합니다.

숫자 값과 함께 길이 함수를 사용하여 숫자 값의 길이를 얻을 수도 있습니다.

예:

다음 예에서 우리는 다음과 같은 값을 사용하여 LENGTH 함수 구문을 시도할 것입니다:

SELECT LENGTH('A string'), LENGTH(NULL), LENGTH(20), LENGTH(20.5);

이것은 당신에게 줄 것입니다 :

문자열의 길이 찾기 SQLite

결과는 다음과 같습니다.

  • LENGTH('A string')은 "A string" 문자열의 길이인 8을 반환합니다.
  • LENGTH(NULL)는 null을 반환합니다.
  • LENGTH(20)은 2의 길이가 20이므로 2를 반환합니다.
  • LENGTH(20.5)는 4를 반환합니다. 부동 소수점 "."은 문자로 계산되므로 숫자의 길이인 3개의 문자, 그리고 부동 소수점 "."에 대한 문자가 하나 더 있습니다.

UPPER 함수와 LOWER 함수로 케이스 변경하기

UPPER(X)는 동일한 x 문자열을 반환하지만 모든 문자열 문자를 대문자로 나타냅니다.

LOWER(X)는 동일한 x 문자열을 반환하지만 모든 문자열 문자를 작은 문자로 나타냅니다.

UPPER 및 LOWER에 null 값을 전달하면 null 값이 반환됩니다.

숫자 값을 UPPER 또는 LOWER에 전달하면 둘 다 정확한 숫자 값을 반환합니다.

예:

SELECT UPPER('a string'), LOWER('A STRING'), UPPER(20), LOWER(20), UPPER(NULL), LOWER(NULL);

이것은 당신에게 줄 것입니다 :

UPPER 및 LOWER 함수의 예 SQLite

결과는 다음과 같습니다.

  • UPPER('문자열')은 문자열 “을 반환합니다.문자열” 대문자로 표현 “문자열".
  • LOWER('A STRING')은 문자열 “을 반환합니다.문자열" 소문자로 표현 "문자열".
  • UPPER(20), LOWER(20)은 숫자에 아무런 영향을 미치지 않으므로 같은 숫자를 반환합니다.
  • UPPER(NULL), LOWER(NULL)은 null 값을 전달했기 때문에 null을 반환합니다.

SQLite SUBSTR 함수

SUBSTR 함수는 특정 위치에서 시작하여 특정 개수의 문자열을 반환합니다. 다음과 같이 함수에 세 개의 피연산자를 전달할 수 있습니다.하위 문자열(X,Y,Z)” 다음과 같습니다:

  • X는 구문 분석할 문자열 리터럴 또는 문자열 열입니다. 리터럴 값(정적 값)이나 열 이름을 전달할 수 있으며, 이 경우 열의 값에서 값을 읽습니다.
  • Y는 여기서 시작하는 문자열을 빼는 시작 위치입니다.
  • Z는 특정 위치 Y부터 구문 분석할 문자 수입니다. 이 숫자는 선택사항이므로 무시해도 됩니다. SQLite Y 위치에서 시작하여 문자열을 빼서 문자열의 끝을 알려줍니다.

예:

다음 쿼리에서는 SUBSTR 함수를 사용하여 학생 이름의 두 번째 문자부터 시작하는 4개의 문자를 가져옵니다.

SELECT StudentName, SUBSTR(StudentName, 2, 4), SUBSTR(StudentName, 2)
FROM Students;

이것은 당신에게 줄 것입니다 :

SUBSTR 함수의 예 SQLite

  • SUBSTR(학생이름, 2, 4) 문자열 "을 부분 문자열로 묶습니다.학생 이름” 두 번째 문자부터 시작하여 다음 4자를 반환합니다.
  • 그러나 함수에서는 SUBSTR(학생이름, 2) 반환될 문자의 숫자를 지정하지 않았기 때문에 SQLite "의 나머지 문자를 모두 반환했습니다.학생 이름” 두 번째 위치부터 시작됩니다.

다음을 사용하여 문자열의 일부를 변경합니다. SQLite 교체 기능

REPLACE는 다른 문자열에 발생한 각 문자열을 문자열로 바꾸는 데 사용됩니다.

REPLACE(X, Y, Z) – X는 입력 문자열 리터럴 또는 열입니다. Y는 문자열 Z로 바꿀 문자열입니다. 문자열 Y를 하나만 바꾸는 것이 아니라 Z로 바꾸는 데 유의하세요.

예:

다음 쿼리에서는 문자열 "의 모든 발생을 대체합니다.xx” 문자열 “SQLite":

SELECT REPLACE('xx is very lightweight, xx is easy to learn', 'xx', 'SQLite');

이것은 당신에게 줄 것이다

REPLACE 함수의 예 SQLite

  • 교체 기능은 모든 문자열 "을 교체했습니다.xx” 문자열 “SQLite".
  • 따라서 출력은 다음과 같습니다. "SQLite 매우 가볍고, SQLite 배우기 쉽습니다.”

공백을 트리밍 SQLite TRIM 기능

TRIM은 문자열의 시작이나 끝에서 공백을 제거합니다. 문자열 중간의 공백은 제거되지 않고 처음이나 끝에서만 제거됩니다.

예:

다음 쿼리에서는 TRIM 함수를 사용하여 문자열의 시작과 끝에서 공백을 제거합니다.

연결 연산자 "||"는 문자열 끝에 여분의 ";"를 추가하는 데 사용됩니다. 검은색 창에서 빈 공간이 제거되었음을 보여주기 위해.

SELECT TRIM('      SQLite is easy to learn        ') || ';';

이것은 당신에게 줄 것입니다 :

TRIM 기능의 예 SQLite

  • 문자열의 시작과 끝에서 공백이 어떻게 제거되고 ' ; 로 대체되었는지 확인하세요. ' 마지막에.

절대값 읽기 SQLite ABS 기능

ABS 함수는 숫자 값의 절대값을 반환합니다. 절대값은 양수 또는 음수 부호가 없는 숫자 값입니다. ABS(X)는 다음과 같이 X의 값에 따라 값을 반환합니다.

  • X가 숫자 값인 경우 X의 절대값입니다.
  • X가 null 값인 경우 NULL 값입니다.
  • X가 문자열인 경우 "0.0" 값입니다.

예:

다음 쿼리에서는 ABS 함수를 사용하여 문자열, 숫자, null 값의 절대값을 구해 보겠습니다.

SELECT ABS(-2), ABS(+2), ABS('a string'), ABS(null);

이것은 당신에게 줄 것입니다 :

ABS 기능의 예 SQLite

결과는 다음과 같습니다.

  • ABS(-2), ABS(+2)는 2를 반환합니다. 2는 "-2"와 "+2" 모두에 대한 절대값이기 때문입니다.
  • ABS('a string')은 숫자 값이 아닌 문자열 값을 전달했기 때문에 "0.0"을 반환합니다.
  • ABS(null)은 null 값을 전달했기 때문에 null을 반환합니다.

ROUND 함수를 사용하여 값을 반올림합니다. SQLite

20.5진수는 부동 소수점 "."이 붙은 숫자입니다. 예를 들어 "8.65", "XNUMX". 부동 소수점 왼쪽 부분을 정수 부분이라고 하고, 부동 소수점 오른쪽 부분을 XNUMX진수 부분이라고 합니다.

정수는 부동 소수점이 없는 숫자입니다. 예를 들어, "20", "8".

ROUND(X)는 소수 값 또는 열 X를 정수로만 변환합니다. 소수점 왼쪽에 있는 부분인 정수 부분이 반환되고 소수점 오른쪽에 있는 모든 숫자가 제거됩니다.

예:

다음 쿼리에서는 다양한 옵션과 함께 ROUND 함수를 시도해 보겠습니다.

SELECT ROUND(12.4354354), ROUND(12.4354354, 2), ROUND(NULL), ROUND('a string');

이것은 당신에게 줄 것입니다 :

ROUND 함수의 예 SQLite

결과는 다음과 같습니다.

  • ROUND(12.4354354) – 자릿수를 지정하지 않았기 때문에 "12" 값을 반환합니다. 그래서, SQLite 소수 부분을 모두 제거했습니다.
  • ROUND(12.4354354, 2) – 소수점 오른쪽에서 두 자리인 12.44자리만 반올림하도록 지정했기 때문에 "2" 값을 반환합니다.
  • ROUND(NULL) – null 값을 전달했기 때문에 null을 반환합니다.
  • ROUND('a string') – 문자열 값을 전달했기 때문에 "0.0" 값을 반환합니다.

TYPEOF 함수를 사용하여 표현식의 데이터 유형 찾기

열의 유형이나 리터럴 값을 확인하려면 TYPEOF 함수를 사용하면 됩니다.

TYPEOF(X) 함수는 이름에서 표현식 X의 데이터 유형을 반환합니다. X의 데이터 유형을 나타내는 문자열 값을 반환합니다. "NULL" 값인지 여부에 관계없이 데이터 유형을 기반으로 값을 반환합니다. 실수, 텍스트, 정수, ... 등

예:

다음 쿼리에서는 다양한 유형의 리터럴 값을 사용하여 TYPEOF 함수를 시도합니다.

SELECT TYPEOF(null), TYPEOF(12), TYPEOF(12.5), TYPEOF('a string');

이것은 당신에게 줄 것입니다 :

TYPEOF 함수의 예 SQLite

반환된 결과는 다음과 같습니다.

  • TYPEOF(null) – null 값을 전달했기 때문에 null을 반환합니다.
  • TYPEOF(12) – 12가 정수이므로 정수를 반환합니다.
  • TYPEOF(12.5) – 12.5가 실수이므로 REAL을 반환합니다.
  • TYPEOF('a string') – "문자열"이 텍스트이므로 텍스트를 반환합니다.

마지막으로 삽입된 레코드 찾기 SQLite LAST_INSERT_ROWID

SQLite 모든 테이블의 모든 행에 정수 키(Id)를 할당합니다. 이 번호는 이러한 행을 고유하게 식별하는 데 사용됩니다.

테이블에 새 행을 INSERT하면 SQLite rowid에 고유한 값을 할당합니다.

테이블의 한 열에만 선언된 기본 키가 있고 해당 열이 INTEGER 데이터 유형인 경우 이 열 값은 rowid로 사용됩니다.

LAST_INSERT_ROWID() 함수는 데이터베이스의 모든 테이블에 마지막으로 삽입된 행의 ROW_ID를 반환합니다. 피연산자를 사용하지 않는다는 점에 유의하세요.

예:

다음 예에서는 LAST_INSERT_ROWID() 함수를 다음과 같이 실행합니다.

SELECT LAST_INSERT_ROWID();

이것은 당신에게 줄 것입니다 :

LAST_INSERT_ROWID 함수의 예 SQLite

  • LAST_INSERT_ROWID()는 현재 데이터베이스 연결의 테이블에 삽입된 행이 없기 때문에 0을 반환합니다.

이제 새 학생을 삽입하고 다음과 같이 insert 문 다음에 LAST_INSERT_ROWID() 함수를 다시 실행해 보겠습니다.

INSERT INTO Students VALUES(11, 'guru', 1, '1998-10-12');
SELECT LAST_INSERT_ROWID();

이것은 당신에게 줄 것입니다 :

LAST_INSERT_ROWID 함수의 예 SQLite

  • ID가 11인 새 학생을 삽입한 후 LAST_INSERT_ROWID()는 마지막으로 삽입된 행 ID인 11을 반환합니다.

버전 가져오기 SQLite 도서관

버전을 얻으려면 SQLite 라이브러리를 사용하려면 SQLITE_VERSION() 함수를 호출해야 합니다.

예:

버전이 무엇인지 알아볼까요? SQLite 다음 명령을 실행하여 사용합니다:

SELECT SQLITE_VERSION();

이것은 당신에게 줄 것입니다 :

버전을 가져오는 예 SQLite 도서관

SQLITE_VERSION()은 3.9.2를 반환합니다. SQLite 우리는 사용하고 있습니다.

사용자 정의 함수 생성 및 사용자 정의 함수 집계

일부 사용자의 경우, SQLite 핵심 기능이 제한되어 있습니다. 사용자 정의 요구에 맞게 사용자 정의 기능을 추가해야 할 수도 있습니다.

SQLite 사용자 정의 함수 생성을 지원하지 않습니다. 다른 데이터베이스 관리 시스템과 달리 사용자 정의 함수를 생성할 수 없습니다. SQLite 직접.

그러나 C#, C, PHP 또는 같은 프로그래밍 언어를 사용하여 함수를 만들 수 있습니다. C++ 그 기능을 코어에 연결했습니다. SQLite 기능 SQLite "를 사용하여 라이브러리 자체sqlite3_create_function" 기능. 그런 다음 데이터베이스에서 이를 재사용할 수 있습니다.

예:

다음 예제에서는 다음을 사용하여 사용자 정의 함수를 생성합니다. C# 프로그래밍 언어를 추가하고 SQLite 기능 :

[SQLiteFunction(Name = "DoubleValue", Arguments = 1, FuncType = FunctionType.Scalar)]
public class DoubleValue: SQLiteFunction
{
    public override object Invoke(object[] args)
    {
        return args[0] * 2;
    }
}

이 코드 조각은 C# 프로그래밍 언어; C# 코드를 사용하여 C# 함수를 만듭니다.

함수 이름은 “Double가치관” 이는 하나의 매개변수를 취하고 그 값에 2를 곱한 값을 반환합니다.

C#에서는 이 함수를 자동으로 추가합니다. SQLite. 필요한 것은 이 코드를 컴파일하고 실행하는 것뿐입니다. 그런 다음 C#에서는 동일한 이름의 해당 함수를 목록에 추가합니다. SQLite 기능. 그런 다음 이 기능을 다음에서 사용할 수 있습니다. SQLite.

C#, C, PHP 등의 프로그래밍 언어를 사용하는 것과 같은 방법입니다. C++, 집계 사용자 정의 함수를 생성할 수도 있습니다. 집계 함수를 확장하는 데 사용됩니다. SQLite 이를 사용하여 사용자 정의 집계 함수를 만듭니다.

제품 개요

  • SQLite 앞서 본 것처럼 데이터베이스의 테이블과 열 작업을 쉽게 해주는 포괄적인 내장 함수 세트를 제공합니다. SQL 쿼리의 모든 표현식 내에서 리터럴 값은 물론 열과 함께 이러한 함수를 사용할 수 있습니다.
  • 숫자 값과 함께 길이 함수를 사용하여 숫자 값의 길이를 얻을 수도 있습니다.
  • UPPER 및 LOWER에 null 값을 전달하면 null 값이 반환됩니다.
  • SUBSTR 함수는 특정 위치부터 시작하여 특정 수의 문자열을 반환합니다.
  • REPLACE는 다른 문자열에 발생한 각 문자열을 문자열로 바꾸는 데 사용됩니다.
  • TRIM은 문자열의 시작이나 끝에서 공백을 제거합니다.
  • ABS 함수는 숫자 값의 절대값을 반환합니다.
  • ROUND(X)는 소수 값 또는 열 X를 정수로만 변환합니다.
  • TYPEOF(X) 함수는 이름에서 표현식 X의 데이터 유형을 반환합니다.
  • LAST_INSERT_ROWID() 함수는 데이터베이스의 테이블에 마지막으로 삽입된 행의 ROW_ID를 반환합니다.

이 게시물을 요약하면 다음과 같습니다.