LIKE는 MySQL에서 제공하는 연산자로, WHERE 절과 함께 사용되어 테이블 내에서 특정 패턴을 가진 데이터를 검색할 때 활용됩니다.
예를 들어 테이블에서 'a'로 시작하는 값을 찾고 싶은 경우처럼, 특정 조건의 문자열 패턴을 조회해야 할 때 LIKE 문을 사용하면 됩니다.
와일드카드 문자
LIKE 절에는 두 가지 와일드카드 문자가 사용됩니다.
- % – 0개, 1개 또는 여러 개의 문자를 나타냅니다.
- _ (언더스코어) – 정확히 한 개의 문자를 나타냅니다.
패턴 예시
- LIKE 'a%' – 'a'로 시작하는 모든 값을 검색합니다.
- LIKE '%a' – 'a'로 끝나는 모든 값을 검색합니다.
- LIKE '_a%' – 두 번째 자리에 'a'가 위치한 모든 값을 검색합니다. _는 임의의 한 문자를 의미하며, 그 다음 문자는 반드시 'a'여야 하고 그 뒤에는 문자가 더 있어도 없어도 상관없습니다.
기본 문법
SELECT * FROM table_name WHERE column_name LIKE pattern
Python에서 패턴 기반 데이터 검색 절차
- MySQL 커넥터를 임포트합니다.
- connect() 메서드로 데이터베이스 연결을 설정합니다.
- cursor() 메서드로 커서 객체를 생성합니다.
- 적절한 MySQL 문법으로 쿼리를 작성합니다.
- execute() 메서드로 SQL 쿼리를 실행합니다.
- 연결을 종료합니다.
예를 들어 다음과 같은 "Students" 테이블이 있다고 가정해 보겠습니다.
Students
+----------+-----------+ | name | marks | +----------+-----------+ | Rohit | 62 | | Rahul | 75 | | Inder | 99 | | Khushi | 49 | | Karan | 92 | +----------+-----------+
이름이 'K'로 시작하는 학생들을 찾아보겠습니다.
코드 예제
import mysql.connector
db = mysql.connector.connect(
host="your host",
user="your username",
password="your password",
database="database_name"
)
cursor = db.cursor()
query = "SELECT name FROM Students WHERE name LIKE 'K%'"
cursor.execute(query)
names = cursor.fetchall()
for x in names:
print(x)
db.close()위 코드는 테이블에서 'K'로 시작하는 모든 이름을 가져옵니다.
실행 결과
Karan Khushi
같은 방식으로 위에서 소개한 와일드카드를 다양하게 조합하면 원하는 패턴에 맞춰 데이터를 자유롭게 검색할 수 있습니다.