mysql like tutorial with syntax
이 자습서에서는 MySQL LIKE 연산자를 사용한 패턴 일치에 대해 설명합니다.
패턴 일치는 Java / C # / Python 등과 같은 거의 모든 프로그래밍 언어에서 중요한 기능으로, 대부분 주어진 문자열 입력에 대한 패턴 일치를 위해 정규식 사용을 활용합니다.
MySQL은 LIKE라는 사용하기 쉬운 연산자를 제공합니다.이 연산자는 지정된 패턴에 대해 문자열 값을 일치시키는 데 사용할 수 있으며 대규모 데이터 집합을 쿼리하는 데 유용합니다.
학습 내용 :
MySQL LIKE
통사론:
LIKE 연산자는 SELECT 쿼리에서 WHERE 절과 함께 사용됩니다.
간단한 쿼리에서 구문은 다음과 같습니다.
SELECT {column_names} (*) FROM {table_name} WHERE {column_with_string_value} LIKE {match_pattern}
이 구문의 여러 구성 요소는 다음과 같이 설명됩니다.
- {column_names} : SELECT 쿼리의 출력으로 표시 될 열 이름입니다. 이러한 값은 모든 열을 선택하기 위해 *이거나 개별 열의 쉼표로 구분 된 이름 일 수 있습니다.
- {table_name} : 쿼리를 실행해야하는 테이블의 이름입니다.
- {column_with_string_value} : 지정된 패턴에 대해 값을 실행해야하는 열입니다. 모든 비교는 문자열로 변환 할 수있는 열에서 수행됩니다.
- {match_pattern} : 열 값을 비교해야하는 일치 표현식입니다. 일치 패턴의 샘플은 –‘ SM % ’. 이것은 SM으로 시작하는 모든 열 값과 일치합니다. 예: SMART, SMELL, SMOKE 등
LIKE는 단지 비교 연산자이며 열 값 비교가 가능한 모든 곳에서 사용할 수 있으므로이 쿼리와 마찬가지로 LIKE 연산자는 JOINS 등의 복잡한 쿼리에서도 사용할 수 있습니다.
노트 : LIKE와 유사하게 'NOT LIKE'인 부정 변형을 사용할 수도 있습니다. 따라서이 경우 일치하는 결과를 반환하는 대신 'NOT LIKE'연산자를 사용하는 쿼리는 일치하지 않는 결과를 반환합니다.
MySQL 일치 패턴
LIKE 연산자는 두 가지 유형의 패턴과 함께 사용할 수 있습니다. 이들은 아래 표에 나열되어 있습니다.
무늬 | |
---|---|
% (백분율) | 모든 문자와 일치 (문자 없음 포함) |
_ (밑줄) | 단일 문자와 일치 |
이제 두 패턴을 사용하는 몇 가지 예를 살펴 보겠습니다.
% 일치 패턴
% 패턴은 배치 전후에 0 개 이상의 문자를 일치시키려는 경우 사용됩니다.
예를 들면 : 직원 이름이있는 열의 'it'문자열을 일치 시키려면 Amit, Anchit, Arpit, Nikita, Smith 등과 같은 이름이 있다고 가정합니다. 모든 이름에 'it'하위 문자열이있는 것을 볼 수 있습니다. 그러나 그들의 위치는 다릅니다.
열 이름이 다음과 같다고 가정합니다. 이름 테이블 이름은 student_names.
다음 샘플 데이터 생성 스크립트를 사용하여 데이터베이스를 채 웁니다.
CREATE TABLE student_names (name VARCHAR(100)); INSERT INTO student_names VALUES('Amit'),('Ankit'),('Smith'),('Nikita'),('Mohit');
% Match 패턴을 사용하는 방법을 살펴 보겠습니다.
SELECT * FROM student_names WHERE name LIKE '%it%'
산출:
이름 |
---|
아밋 |
안킷 |
스미스 |
니키타 |
Mohit |
이제 이것이 의미하는 바는 모든 위치에서 'it'하위 문자열이있는 문자열과 일치 할 수 있고 일치 전후에 원하는 수의 문자가있을 수 있다는 것입니다. 일치하는 모든 이름이 출력으로 반환되는 것을 볼 수 있습니다.
'it'하위 문자열로 끝나는 이름 만 일치하도록 쿼리를 다시 작성하십시오.
SELECT * FROM student_names WHERE name LIKE '%it'
따라서 여기에서는 후행‘%’기호를 제거하고 끝에‘it’문자열을 배치했습니다. 이 패턴은‘it’이전의 모든 문자를 허용하지만 문자열은‘it’하위 문자열로 끝나야합니다.
위 쿼리의 출력 :
이름 |
---|
아밋 |
안킷 |
Mohit |
노트 : 여기서 '%'문자를 사용하여 언급 된 패턴은 대소 문자를 구분하지 않는다는 점에 유의해야합니다. 따라서 위의 예에서‘% it’대신‘% IT’또는‘% It’을 사용할 수 있었지만 출력은 여전히 동일하게 유지되었을 것입니다.
_ 매치 패턴
이제‘_’일치 패턴을 사용하는 방법을 살펴 보겠습니다. ‘_’는 정확히 한 문자 만 허용한다는 것을 알고 있습니다.
동일한 테이블 (student_names)에서 5 개의 문자 이름을 모두 쿼리한다고 가정합니다.
이 경우‘_’패턴 매처를 사용하기 위해 길이가 5자인 이름 만 일치하는 LIKE 패턴과 함께 5 개의 _ (밑줄)을 지정했습니다.
SELECT * FROM student_names WHERE name LIKE '_____'
산출:
이름 |
---|
안킷 |
Mohit |
스미스 |
다른 예를 살펴 보겠습니다. 하위 문자열 'it'로 끝나는 5 개의 문자 이름을 모두 찾고 싶다고 가정 해 보겠습니다.
SELECT * FROM student_names WHERE name LIKE '___it'
여기에서는 3 개의‘_’(밑줄)과 일치해야하는 실제 하위 문자열을 사용했습니다.
산출:
이름 |
---|
안킷 |
Mohit |
스미스 |
% 및 _ 패턴 일치 자 결합
이 섹션에서는 % 및 _ 패턴 매처를 함께 일치시키는 방법에 대해 설명합니다.
C ++ 대 자바 차이점
'it'부분 문자열이 있고 단어 'it'뒤에 정확히 2 자까지 포함 할 수있는 모든 이름을 찾으려고 가정합니다.
SELECT * FROM student_names WHERE name LIKE '%it_'
여기서 우리는 정확한 일치를 찾기 위해 %와 _ 일치 패턴을 결합했습니다.
산출:
이름 |
---|
스미스 |
니키타 |
NOT LIKE 사용
NOT LIKE는 LIKE 연산자가 반환하는 정확한 부정입니다. 즉, 패턴 일치 표현식과 일치하지 않는 모든 레코드 / 행을 반환합니다.
예: 길이가 4 문자가 아닌 모든 이름을 찾고 싶다고 가정합니다.
SELECT * FROM student_names WHERE name NOT LIKE '____'
산출:
이름 |
---|
안킷 |
스미스 |
니키타 |
Mohit |
위의 출력에서 볼 수 있으며 길이가 4자가 아닌 이름 만 반환합니다.
ESCAPE 문자와 함께 MySQL LIKE 사용
여기서 우리는 패턴 매처와 함께 ESCAPE 문자를 사용하는 방법을 볼 것입니다.
가상의 상황에서 실제로 % 및 _ 문자를 포함하는 이름이 있고 해당 이름을 찾으려고하면 실제로 % & _와 일치해야한다고 가정합니다. 이스케이프 문자를 사용하여 수행 할 수 있습니다.
노트 : 이스케이프 문자의 기본값은‘’(백 슬래시)입니다.
% 및 _ 문자가있는 이름을 포함하는 student_names 테이블에 데이터를 추가하십시오.
INSERT INTO student_names VALUES('Darre%n'),('Julia_Roberts'),('Dane_Sherman%');
다음은이를 더 잘 이해하기위한 몇 가지 예입니다.
#1) % 기호가있는 모든 이름을 찾으십시오.
SELECT * FROM student_names WHERE name LIKE '%\%%'
산출:
이름 |
---|
Darre % n |
Dane_Sherman % |
#두) _ 기호가있는 모든 이름 찾기
SELECT * FROM student_names WHERE name LIKE '%\_%'
산출:
이름 |
---|
Julia_Roberts |
Dane_Sherman % |
위의 두 예에서 % 및 _ 문자를 언급하기 위해 이스케이프 문자를 사용했음을 알 수 있습니다. 즉, % 문자 자체를 일치시키기 위해 % 기호 앞에 이스케이프 문자를 사용했습니다 (예 :‘ %’).
자신이 선택한 이스케이프 문자 사용
이제 이전 예제를 확장 해 보겠습니다.
MySQL을 사용하면 패턴 일치 검색을 실행하는 동안 MySQL이 사용해야하는 고유 한 ESCAPE 문자를 지정할 수 있습니다.
이스케이프 문자를 기본값‘’대신‘!’로 업데이트 해 보겠습니다.
SELECT * FROM student_names WHERE name LIKE '%!_%' ESCAPE '!'
산출:
이름 |
---|
Julia_Roberts |
Dane_Sherman % |
위의 예에서는 이스케이프 문자를‘!’로 재정의하고 이름의‘_’문자를 일치시키려는 패턴 매처‘%! _ %’에서 동일한 것을 사용했습니다.
자주 묻는 질문
Q # 1) SQL에서 %%는 무엇을 의미합니까?
대답: ‘%%’는 특정 항목과 일치하지 않습니다. 1 % 문자를 갖는 것과 같습니다. 열 값에서 '%'문자 자체를 일치 시키려면 기본값이 '인 이스케이프 문자와 함께 사용할 수 있습니다.
'%'문자가있는 열 값을 일치시키려는 경우 패턴 일치를 다음과 같이 작성할 수 있습니다. LIKE '% %%'(중간 백분율 (%) 문자 앞에 추가 백 슬래시가 있음에 유의하십시오.
Q # 2) MySQL에서 와일드 카드 란 무엇입니까?
대답: MySQL LIKE 연산자는 MySQL에서 2 개의 와일드 카드 문자로 작동하여 다양한 패턴 일치 방법을 달성합니다.
이것들은:
- % – 임의의 수의 문자와 일치합니다 (0 포함).
- _ – 정확히 하나의 문자와 일치합니다.
Q # 3) MySQL에서 LIKE 쿼리를 작성하려면 어떻게해야합니까?
mp4 비디오 다운로더에 무료 유튜브
대답: LIKE는 일반적으로 SELECT 쿼리에서 WHERE 절과 함께 사용되는 간단한 연산자입니다. 지정된 패턴에 대해 열 값을 일치시키는 데 사용됩니다.
예: employee_details 테이블이 있고 여기에 집 번호, 거리 이름 등이 포함 된 address라는 열이 있다고 가정합니다. 거리가 'Oxford Lane'으로 정의 된 모든 직원을 주소로 찾으려고합니다.
LIKE 연산자를 사용하여 이러한 쿼리를 작성할 수 있습니다.
SELECT * FROM employee_details WHERE address LIKE '%Oxford Lane%'
점에 유의하시기 바랍니다 문자열 패턴은 대소 문자를 구분하지 않음 지정된 일치 표현식과 일치하는 동안.
Q # 4) LIKE 연산자와 함께 다른 이스케이프 문자를 지정하는 방법은 무엇입니까?
대답: MySQL은 기본 문자를 재정의하는 사용자 지정 이스케이프 문자를 지정하는 방법을 제공합니다.
다음은 쿼리 실행을 위해 이스케이프 문자를‘!’로 변경하는 예입니다.
SELECT * FROM employee_details WHERE address LIKE '%!_%' ESCAPE '!'
위의 쿼리에서 '!'를 이스케이프 문자로 언급하고 일치 표현식에서도 동일하게 사용했습니다.
Q # 5) LIKE 연산자를 사용하여 실제 % 또는 _ 문자를 일치시키는 방법은 무엇입니까?
대답: % 및 _와 같은 문자는 문자열의 일부로 실제로 일치해야하는 경우 이스케이프되어야하는 특수 와일드 카드 문자입니다.
기본 이스케이프 문자는‘’이며 와일드 카드 문자를 언급하기 직전에 사용해야합니다.
주어진 열 값에 대해‘_’문자를 일치시키려는 경우 다음과 같이 일치 표현식을 작성할 수 있습니다. 처럼 '%\_%'
결론
이 튜토리얼에서 우리는 LIKE 연산자 (또는 부정 버전, 즉 NOT LIKE)를 사용할 수있는 다양한 방법에 대해 배웠습니다.
또한 지원되는 와일드 카드 문자 (예 : _ 및 %)와 검색 / 일치 할 문자열의 일부 여야하는 경우 어떻게 이스케이프 될 수 있는지에 대해 논의했습니다.
LIKE 연산자는 MySQL에서 제공하는 강력한 기능이며 일반적으로 대규모 데이터 세트를 쿼리하는 동안 레코드를 필터링하는 데 사용됩니다.