SQL 연결 문자열을 사용하는 영리한 방법

SQL 연결 문자열을 사용하는 영리한 방법

구조화된 쿼리 언어 (SQL)은 매우 강력한 도구이며 기능으로 가득 차 있습니다. 일단 가장 많이 마스터하면 중요한 SQL 명령 , SQL로 좀 더 창의적으로 시작할 수 있습니다. 오늘은 SQL 연결 문자열에 대해 알아야 할 모든 것을 보여 드리겠습니다.





다양한 SQL 방언이 있습니다. 이 모든 예에 대해 PostgreSQL 변종.





안드로이드에서 이미지 검색을 반대로 하는 방법

연결이란 무엇입니까?

연결은 두 가지를 함께 연결하는 것을 의미합니다. 프로그래밍 언어에서 두 문자열을 결합하는 데 사용했을 수 있습니다. 전체 이름 변수로 함께 결합한 이름 및 성 변수가 있을 수 있습니다.





연결은 두 개의 문자열을 하나로 결합하는 매우 유용한 방법입니다. PHP 문자열을 함께 결합하는 데 마침표를 사용하는 반면 자바스크립트 jQuery는 더하기 기호를 사용합니다.

SQL의 연결은 정확히 동일하게 작동합니다. 특수 연산자를 사용하여 두 가지를 하나로 결합합니다. 다음은 예입니다. 의사 코드 :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

프로그래밍 언어에서 연결은 코드를 읽기 쉽게 만듭니다. 코드가 항상 두 개의 문자열에 액세스해야 하는 경우 이를 하나로 결합하면 기억하기 쉽고 코드 길이가 줄어듭니다.

SQL의 변수는 덜 일반적이지만(여전히 사용됨) 결합된 결과를 반환하거나 데이터를 조작하려면 여전히 연결이 필요합니다.





연결 방법

연결은 매우 SQL에서 쉽습니다. SQL은 공용 언어이지만 개별 데이터베이스 엔진은 다양한 방식으로 기능을 구현합니다. 이 모든 예가 PostgreSQL 방언으로 되어 있지만 웹에서 'Concatenate'를 검색하기만 하면 다른 변형으로 쉽게 번역할 수 있습니다. 엔진마다 연결 구문이 다를 수 있지만 원칙은 동일하게 유지됩니다.

이름 예제로 돌아가서 다음과 같은 기본 사항이 있습니다. 선택하다 질문:





SELECT first_name, last_name, email FROM users_table

여기에는 복잡한 것이 없으므로 연결을 추가해 보겠습니다.

SELECT first_name || last_name AS full_name, email FROM users_table

보시다시피 이 연결은 완벽하게 작동했지만 한 가지 작은 문제가 있습니다. 결과 전체 이름은 두 열의 곱과 정확히 일치합니다. 이름 사이에는 공백이 있어야 합니다!

다행히도 쉽게 고칠 수 있습니다. 둘 사이에 공백을 연결하기만 하면 됩니다.

SELECT first_name || ' ' || last_name AS full_name, email FROM users_table

이것들은 기본적인 예이지만 연결이 어떻게 작동하는지 봐야 합니다. 정말 쉽습니다! 파이프 연산자( | )는 절 사이에 두 번 사용됩니다. SQL 엔진은 이 기호 앞과 뒤의 각 부분이 함께 결합되어 하나로 취급되어야 한다는 것을 알고 있습니다. 그러나 연결 연산자를 사용하지만 아무 것도 연결하지 않으면 오류가 발생하므로 주의하십시오.

위에서 언급했듯이 이 예제에서는 SQL의 PostgreSQL 변형을 사용합니다. 다른 변형은 다른 연산자를 사용하거나 호출해야 하는 특수 기능을 사용할 수도 있습니다. 별로 중요하지 않아 어떻게 데이터베이스 엔진이 기대하는 방식으로 문자열을 연결하면 됩니다.

더 깊이

이제 기본 사항을 알았으므로 몇 가지 일반적인 함정과 함께 몇 가지 심층 예제를 살펴보겠습니다.

대부분의 데이터베이스 엔진은 문자열과 정수, 심지어 날짜도 혼합하여 성공적으로 연결합니다. 배열과 같은 복잡한 유형을 연결하려고 할 때 일반적으로 문제가 발생합니다.

SELECT first_name || ' ' || last_name || ARRAY[123, 456] AS full_name, email FROM users_table

이 코드는 작동하지 않습니다. 배열과 같은 복잡한 객체와 문자열을 결합하는 것은 불가능합니다. 무엇을 해야 하는지 생각해보면 실행에 실패하는 복잡하고 미친 코드가 아니라 작동하는 간단한 코드를 작성할 수 있습니다.

수행해야 할 작업에 대해 신중하게 생각했지만 여전히 SQL을 작동할 수 없다면 프로그래밍 언어 사용을 고려해 보셨습니까? 레거시 코드로 작업하는 소프트웨어 개발자로서, 누군가가 너무 많은 논리를 집어넣은 SQL을 디버깅하려고 시도하는 고통을 알고 있습니다. 프로그래밍 언어(배우기 쉬운 언어가 많이 있음).

연결은 매우 잘 작동합니다. 어디 진술뿐만 아니라 :

SELECT first_name, last_name, email FROM users_table WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR')::date

여기에서 몇 가지 일이 일어나고 있습니다. 이 예에서는 , , 그리고 년도 스크립트에서 전달된 매개변수입니다. 코드에 의해 생성되었거나 사용자가 입력했을 수 있습니다. 이것들은 함께 연결되어 날짜 유형으로 캐스팅됩니다(PostgreSQL 날짜로 캐스팅 구문 사용 ::데이트 ).

이 방법으로 연결을 사용하면 날짜의 개별 부분을 함께 연결할 수 있으며, 문자열이 아닌 '실제' 날짜로 처리될 수 있습니다. 이 기본 예제는 SQL 주입을 방지하지 않으므로 수정하지 않고 프로덕션 코드에서 사용하지 마십시오.

주의해야 할 또 다른 함정은 없는 값(널 문자열은 비어 있거나 존재하지 않는 문자열임). 이 쿼리가 주어졌을 때:

SELECT first_name || ' ' || NULL AS full_name, email FROM users_table

이 쿼리는 자동으로 실패합니다. 이는 연결이 데이터베이스 엔진에서 내부적으로 코딩되는 방식 때문입니다. 이 문제가 항상 발생하는 것은 아니지만 꽤 흔한 일입니다.

쿼리가 반환하는 데이터가 null일 수 있다고 생각되면 다음을 사용해야 합니다. 합체하다 . Coalesce는 대략 '이것이 null인 경우 다른 문자열이나 열로 교체'하는 것으로 생각할 수 있습니다.

SELECT first_name || ' ' || COALESCE(NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table

이제 SQL에서 연결을 사용하는 방법을 알았습니다. 어떻게 하시겠습니까? 당신은 웹사이트를 만들다 SQL로 활기를 띠게 하시겠습니까? 또는 웹 사이트 구축에 대한 더 간단한 접근 방식을 위해 정적 사이트 생성기가 필요할 수 있습니다.

무엇을 하든지 아래 의견에 알려주십시오!

iso를 usb에 쓰는 방법
공유하다 공유하다 트위터 이메일 6가지 대안: 최고의 무료 또는 저렴한 오디오북 앱

오디오북 비용을 지불하고 싶지 않다면 무료로 합법적으로 들을 수 있는 몇 가지 훌륭한 앱이 있습니다.

다음 읽기
관련 항목
  • 프로그램 작성
  • 프로그램 작성
  • SQL
저자 소개 조 코번(136건의 기사 게재)

Joe는 영국 링컨 대학교에서 컴퓨터 공학을 전공했습니다. 그는 전문 소프트웨어 개발자이며 드론을 날리거나 작곡을 하지 않을 때 종종 사진을 찍거나 동영상을 제작하는 모습을 볼 수 있습니다.

조 코번이 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.