[MySQL] Like절 사용법 예제

반응형

    LIKE 연산자

    MySQL에서 LIKE 연산자는 패턴 매칭을 수행하는 데 사용됩니다. 이 연산자는 문자열의 일부 또는 전체를 비교하여 특정 패턴을 가진 데이터를 검색하는 데 유용합니다.


    SELECT * FROM [테이블명] WHERE LIKE [조건]

     

     

    LIKE 연산자 패턴


    % : 글자숫자를 정해주지않음(EX 컬럼명 LIKE '홍%')
    _ : 글자숫자를 정해줌(EX 컬럼명 LIKE '홍_동')

     

    LIKE 연산자와 % 기호를 사용하는 경우, 패턴 매칭이 데이터베이스에서 모든 레코드에 대해 수행되어야 하기 때문에 성능에 영향을 미칠 수 있습니다. 일반적으로 다음과 같은 점을 고려할 수 있습니다:

    인덱스 활용 여부

    %로 시작하는 패턴 매칭은 인덱스를 사용하기 어려울 수 있습니다. 왜냐하면 와일드카드가 문자열의 처음에 나타나기 때문에 인덱스를 효과적으로 활용할 수 없습니다. %로 끝나는 패턴도 인덱스를 사용하기 어려울 수 있습니다.


    인덱스 사용 가능한 경우

    %로 시작하지 않고 끝나는 패턴은 일반적으로 인덱스를 사용할 수 있습니다. 이 경우 인덱스가 패턴의 끝에 일치하는 부분을 찾을 수 있기 때문입니다.


    인덱스 타입 및 데이터베이스 종류

    데이터베이스 종류와 인덱스 타입에 따라 성능 차이가 발생할 수 있습니다. 몇몇 데이터베이스는 패턴 매칭에 최적화된 인덱스를 제공할 수도 있습니다.


    데이터 양


    데이터베이스의 크기에 따라 성능이 다를 수 있습니다. 작은 데이터베이스에서는 성능 차이가 크게 느껴지지 않을 수 있지만, 대용량의 데이터베이스에서는 성능이 중요한 고려사항이 될 수 있습니다.


    검색 패턴의 복잡성


    %를 많이 사용하는 복잡한 패턴은 성능에 영향을 미칠 수 있습니다. 데이터베이스 엔진의 최적화 기능과 인덱스 설계를 고려하여 데이터베이스 성능을 최적화할 수 있습니다. 검색 성능에 대한 정확한 평가를 위해서는 테스트 환경에서 실제 데이터와 쿼리를 사용하여 실험을 진행하는 것이 좋습니다.

     

     

     

     

     

    LIKE 연산자 활용 1

     

    LIKE 패턴 매칭을 이용한 쿼리들은 데이터를 효과적으로 필터링하고 검색하는 데 도움이 됩니다. MySQL에서는 다양한 패턴 매칭 옵션을 사용할 수 있으며, 이를 조합하여 원하는 결과를 얻을 수 있습니다.

     

    시작 문자열로 검색 (Starting with):


    SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A%';

     

     

    종료 문자열로 검색 (Ending with):


    SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A';

     

     

    문자열에 특정 문자 포함 (Containing)


    SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A%';

     

     

    특정 위치의 문자 패턴 (Single character wildcard)


    SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A_';

     

     

    특정 문자 제외 (Not starting with)


    SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[^A]%';

     

     

    특정 문자 세트 중 하나로 시작 (Character set)


    SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[ABC]%';
    
    또는
    
    SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[A-C]%';

     

     

     

    LIKE 연산자 활용 2

     

    '김'으로 시작하는 사원 조회


    SELECT * FROM My_Table WHERE Nm_Kor LIKE '김%';

     

     

    김'이 들어가는 사원 조회


    SELECT * FROM My_Table WHERE Nm_Kor LIKE '%김%';

     

     

    '김'으로 끝나는 사원의 사원번호 조회


    SELECT No_Emp FROM My_Table WHERE Nm_Kor LIKE '%김';

     

    반응형

    댓글

    Designed by JB FACTORY