[MySQL] Like절 사용법 예제
- 데이터베이스/MySQL
- 2024. 2. 10.
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 '%김';
'데이터베이스 > MySQL' 카테고리의 다른 글
[MySQL] BETWEEN 절 사용법 예제 (0) | 2024.02.13 |
---|---|
[MySQL] IN 연산자 사용법 예제 (0) | 2024.02.12 |
[MariaDB] 원격접속 bind-address 설정 (0) | 2023.06.27 |
[MySQL] 데이터베이스 기초 - 테이블 (Table) 이름 변경 (0) | 2022.10.03 |
[MySQL] 데이터베이스 기초 - 사용자 관리 및 접속 (0) | 2022.10.01 |