문자열 함수 목록

날짜 및 시간보다 더 많은 기능 - 문자열 유형만 있습니다. SQL에서 CHAR(n) 및 VARCHAR(n) 유형으로 제공됩니다. 가장 인기있는 것을 생각해 봅시다.

기능 설명
1 길이(str) 전달된 문자열의 길이를 바이트 단위로 반환
2 CHAR_LENGTH(문자열) 전달된 문자열의 길이를 문자로 반환
LOCATE(substr,str), indexOf() 메서드와 유사한 문자열에서 하위 문자열을 검색합니다.
4 LOCATE(substr,str,pos) pos에서 시작하는 문자열에서 하위 문자열을 검색합니다.
5 CONCAT(str1,str2,...) 여러 줄 연결
6 서브스트링(), 서브스트링() 문자 범위로 주어진 하위 문자열을 반환합니다.
7 낮음(str) 문자열을 소문자로 변환
8 위(str) 문자열을 대문자로 변환
9 바꾸다() 문자열의 하위 문자열을 바꿉니다.
10 성냥() 문자열이 주어진 패턴과 일치하는지 확인
열하나 TRIM(str) 문자열의 시작과 끝에서 빈 문자를 자릅니다.
12 LTRIM(str) 문자열의 시작 부분에서 빈 문자를 자릅니다.
13 RTRIM(str) 문자열 끝에서 빈 문자를 자릅니다.
14 TO_BASE64(str) 문자열을 Base64로 변환
15 FROM_BASE64(str) Base64에서 문자열을 변환합니다.

기능을 사용하는 방법을 더 쉽게 이해할 수 있도록 일부러 기능을 작은 그룹으로 그룹화했습니다. 아래에서 우리는 각 그룹에서 하나의 기능을 고려할 것입니다. 공식 문서 에서 문자열 작업을 위한 전체 함수 목록을 찾을 수 있습니다 .

문자열을 변환하자

먼저 문자열을 약간 다른 형식으로 간단히 변환하는 가장 간단한 함수를 다루겠습니다. 예를 들어 문자열을 대문자와 소문자로 변환합니다. 일반적으로 이들의 동작은 Java 언어의 동일한 기능과 유사합니다.

그래서 나는 단지 몇 가지 예와 함께 표를 줄 것입니다.

# 요구 결과
1 길이 선택 ('텍스트') 4
2 길이 선택 ('안녕하세요') 12
더 낮은 선택 ('안녕하세요') 안녕하세요
4 SELECT UPPER ('안녕하세요') 안녕하세요
5 SELECT SUBSTR ('안녕하세요', 2, 3) 리브
6 SELECT SUBSTR ('안녕하세요?', 8) 어떻게 지내세요?

함수는 JDK의 함수와 마찬가지로 예상대로 작동합니다.

유일한 주의 사항: 첫 번째 줄에서 결과는 8이 아니라 4입니다. 문제는 라틴 문자 인코딩 요청에 1바이트(ASCII 인코딩)가 사용된다는 것입니다. 그러나 데이터베이스의 데이터로 작업하는 경우 문자열의 길이는 데이터베이스 인코딩 설정에 따라 달라집니다 . 데이터베이스로 작업하는 동안 많은 놀라움을 발견하게 될 것입니다 :)

문자열이 있는 복잡한 작업

음, 문자열로 작업할 때 더 복잡한 것을 살펴보겠습니다. 당신은 무엇을 생각해 낼 것인가 ...

작업 테이블에서 작업을 표시하고 작업 기한이 이미 지난 경우 작업 설명에 EXPIRED라는 단어를 추가합니다!

재미있을 것 같습니다. 아직 복잡한 조건을 배우지 않았지만 작업을 조금 단순화합시다. 과거 작업 목록을 표시하는 쿼리를 작성하되 제목에 "EXPIRED!" 라는 단어를 추가해야 합니다. .

이렇게 하려면 CONCAT 함수를 사용해야 합니다.

   SELECT CONCAT( 'EXPIRED! ', name) FROM task 
   WHERE deadline < CURDATE() 

이 쿼리의 결과는 다음과 같습니다.

concat('만료되었습니다! ', 이름)
만료! 프런트엔드의 버그 수정

추천. 데이터를 약간 다른 형식으로 변환하기만 하면 Java 코드 수준에서도 이 작업을 수행할 수 있습니다. 그러나 SQL 서버측 문자열 함수(WHERE 내부)를 사용하려면 문자열 함수 없이는 할 수 없습니다.