Computer >> 컴퓨터 >  >> 프로그램 작성 >> SQL

SQL 연결 함수를 사용하여 쿼리를 작성하는 방법

쿼리로 작업할 때 데이터베이스에서 원시 데이터를 가져와 다른 곳에서 사용하기 위해 다른 방식으로 다시 포맷해야 하는 경우가 있습니다. 이 기사에서는 쿼리에서 문자열 유형으로 작업하는 데 도움이 되는 MySQL의 몇 가지 함수를 살펴봅니다.

스키마 구축

이 섹션은 이 게시물에서 다루는 SQL 개념을 설명하기 위해 빠른 스키마를 준비하는 데 전념합니다. 우리는 기능에 MySQL을 사용합니다. 구문 사용과 검색 쿼리 실행을 연습하려면 SQL Fiddle을 사용하는 것이 좋습니다. 여기에서 다른 관계형 데이터베이스에서 쿼리를 테스트할 수도 있습니다.

표 생성 및 값 삽입

CREATE TABLE birthdays (
 name varchar(200) NOT NULL,
 birthday varchar(10) NOT NULL
);
 
INSERT INTO birthdays (name, birthday) VALUES("Jane", "11/20/1993");
INSERT INTO birthdays (name, birthday) VALUES("Duncan", "01/15/1987");
INSERT INTO birthdays (name, birthday) VALUES("Lucas", "07/21/1996");
INSERT INTO birthdays (name, birthday) VALUES("Alexa", "12/31/1988");

맨 위 네 줄은 "생일" 테이블을 만듭니다. "이름" 및 "생일" 열이 있습니다. 나머지는 데이터베이스에 값을 삽입합니다. 쿼리문을 작성할 때 이것을 사용합니다.

테이블에서 기본 쿼리를 실행하면 쿼리 문과 결과가 다음과 같이 표시됩니다.

SELECT name, birthday FROM birthdays;

결과:

이름 생일
크리스 1993년 11월 20일
던컨 1987년 1월 15일
루카스 1996년 7월 21일
알렉사 1988년 12월 31일

쿼리 문 작성

CONCAT()

CONCAT() 함수는 인수를 하나의 문자열로 결합한 후 결과를 반환합니다. 최소한 하나의 인수가 있지만 여러 기능이 있을 수 있습니다. 함수의 인수는 다음 중 하나일 수 있습니다.

  • 이진 문자열 – 인수 중 하나라도 이진 문자열이면 반환 값은 이진 문자열입니다.
  • 비이진 문자열 – 일반적인 문자열 값입니다. 모든 인수가 이진이 아닌 문자열 값이면 CONCAT() 이진이 아닌 문자열 값을 반환합니다.
  • 숫자 – 하나의 입력이 숫자 유형이면 다른 인수와 결합되기 전에 이진이 아닌 문자열로 강제 변환됩니다.
  • – NULL 값이 있는 경우 해당 값은 단순히 무시됩니다.

형식 구문은 다음과 같습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

CONCAT( <str value 1>, <str value 2>, [ … <str value N> ]);

함수임을 나타내기 위해 한 쌍의 괄호와 함께 CONCAT 키워드를 사용합니다. 괄호 안에는 N개의 입력 문자열이 있습니다. 다음은 MySQL을 사용한 모습입니다.

SELECT CONCAT(name, " ", birthday) AS Result
FROM birthdays;

이름, 공백 문자 및 생일을 연결하여 반환 값을 "선택"하고 "결과"라는 이름을 할당합니다.

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

결과
크리스 1993년 11월 20일
던컨 1987년 1월 15일
루카스 1996년 7월 21일
알렉사 1988년 12월 31일

이 결과를 스키마 작성 섹션에서 테스트한 원래 쿼리 문과 비교하십시오. 어떻게 다른가요? 주어진 방식이 아닌 이런 방식으로 데이터를 설정하면 어떤 이점이 있습니까?

반드시 맞고 틀린 답은 없습니다. 애플리케이션에서 이 데이터를 어떻게 활용하느냐가 관건입니다.

CONCAT_WS()

CONCAT_WS() 함수는 CONCAT()와 동일합니다. 그러나 함수에는 원래 CONCAT()에 없는 필수 첫 번째 인수가 있습니다. 함수. 이 인수는 함수의 나머지 인수 사이에 있는 구분 기호입니다. CONCAT()의 나머지 규칙 적용하다.

형식 구문은 다음과 같습니다.

CONCAT_WS(<separator>, <str value 1>, <str value 2>, [ … <str value N> ]);

CONCAT_WS()를 사용합니다. 함수임을 나타내는 한 쌍의 괄호가 있는 키워드입니다. 괄호 안의 첫 번째 인수는 각 입력 문자열 사이에 있는 구분 기호입니다. 나머지 인수는 함께 결합한 문자열입니다. 다음은 MySQL을 사용한 모습입니다.

SELECT CONCAT_WS(", ", name, birthday) AS Result
FROM birthdays;

결과는 각각의 다른 인수 사이에 있는 첫 번째 인수와 문자열 연결입니다.

결과
크리스, 1993년 11월 20일
던컨 1987년 1월 15일
루카스 1996년 7월 21일
알렉사 1988년 12월 31일

CONCAT()처럼 함수, CONCAT_WS() 함수는 Result라는 열 하나만 반환합니다. 여기서 값은 구분 기호 문자로 연결된 입력 문자열입니다.

결론

이 기사에서는 SQL CONCAT()를 다룹니다. 및 CONCAT_WS() MySQL에서의 사용과 관련하여 기능합니다. 다른 관계형 데이터베이스는 고유한 SQL 특성을 가질 수 있으므로 다른 관계형 데이터베이스를 사용할 때 구문에 약간의 차이가 있을 수 있다는 점에 유의하십시오. 기능의 개념은 동일하지만 표현이 다를 수 있습니다.